問題タブ [artificial-life]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
998 参照

open-source - 多目的 3D 人工生命エンジン?

創発を研究すると、新しいアイデアをすばやくテストするために構築するための開発フレームワークを持つことは非常に役立ちます。物理的な衝突を伴う 3D は素晴らしいものであり、オープンソースは大きなプラスになるでしょう。この目的のために「breve」は非常に有望に見えますが、誰かがそれを使用したり、他の適切なエンジンを知っているかどうか疑問に思っていましたか?

0 投票する
4 に答える
803 参照

c++ - ライフシミュレーションの効率的な方法

人工生命に関するかなりの数の記事 (私が非常に興味深いと思うテーマ) と SO に関するいくつかの質問を読んだ後、私は (非常に、非常に、非常に) 単純なシミュレーターを設計するというアイデアをいじり始めました。グラフィックスも必要ありません。質問を見落としている場合は、お気軽に指摘してください。

私が言ったように、これはシムズ レベルのシミュレーションではありません。「許容できるフリーウェア」レベルに到達するのはかろうじてだと思います。これは単なる学習演習であり、休憩中にスキルを維持するためのものです。基本的な前提は、一般的な人が作成されることです。名前、身長などはありません (私が言ったように、単純です)、それが受け取る唯一の実際のものは、「関連付け」と一般的な「使用」、「ピックアップ」、および「ルック」能力のリストです。

私の最初の質問は、協会に関するものです。そのようなことを処理する効率的な方法として、SOは何を推奨していますか? 私はマルチマップを考えていました.キーの比較的簡単な設定はそれが望むもの(食べ物、食事、休息など)であり、他のビット(申し訳ありませんが、私の心は失われました)はその必要性に関連付けるものです.

たとえば、冷蔵庫があるとします。冷蔵庫には食品が入っています (単なる一般的な基本オブジェクト)。最初は冷蔵庫と食べ物を関連付けませんが、食べ物と空腹を関連付けます。そのため、空腹が増すと、勝手に食べ物を探し始めます。手の届くところに食べ物がない場合、オブジェクトを「使用」して食べ物を見つけます。食べ物との関連性は知られていないので、物事を無頓着に使用します (おそらく、最も近いオブジェクトを探して展開します)。冷蔵庫を使用/開くと、冷蔵庫に食品が入っていることを関連付けます (「食品、冷蔵庫」のペアを挿入します)。

今、私はこれが見た目よりもはるかに複雑になることを認識しており、それを打ち出す準備ができています. 問題は、マルチマップが (おそらく) 指数関数的に拡大する関連リストに適しているかどうかです。そうでない場合は、どうなりますか?

2 番目の質問は、おそらくはるかに簡単です。簡単に言えば、一般的なオブジェクト/アイテム インターフェイスは、ほとんどのアイテムに適していますか? 言い換えれば、一般的な「使用」インターフェースは、私が意図したものに対して機能しますか? 私はこれをうまく説明しているとは思わない。

とにかく、どんなコメントでも大歓迎です。

0 投票する
6 に答える
354 参照

algorithm - 生物学に着想を得たソフトウェア

生物学を利用したソフトウェア技術を知っている人はいますか? たとえば、ロボットの世界にはたくさんありますが、ソフトウェアはどうでしょうか。

0 投票する
2 に答える
1969 参照

artificial-intelligence - ソフトウェアプログラムが知的であることの基準

ソフトウェア生命体が存在すると仮定して、好奇心から。彼/彼女をどのように検出しますか? 何か/誰かが知性があるかどうかを判断する基準は何ですか?

適切なターゲットを設定すれば、そのようなソフトウェアを作成するのは非常に簡単なように思えます (素朴な「人間を模倣する->チューリングテストに合格する」方法に従うだけではありません)。

回答を投稿するときは、反例も見つけてみてください。私は、私自身が同意する一貫したものを発明するのが本当に困難です。

準備し始める

0 投票する
2 に答える
1834 参照

c# - 2D での XNA 視野

群れに基づく XNA の 2D ゲームに取り組んでいます。私は Craig Reynold のフロック技術を実装しました。そして今、グループにリーダーを動的に割り当てて、ターゲットに向かって誘導したいと考えています。

これを行うには、前に他のエージェントがいないゲーム エージェントを見つけてリーダーにしたいのですが、そのための計算がわかりません。

現在私は持っています:

agentContext.ViewAngle は、適切な効果を得るために試したラジアン値ですが、ほとんどの場合、すべてのエージェントがリーダーとして割り当てられます。

エンティティが別のエンティティの「円錐」ビュー内にあるかどうかを検出するために、誰かが私を正しい方向に向けることができますか?

0 投票する
2 に答える
1217 参照

javascript - JavaScriptスタックオーバーフローを防ぐには?

ブラウザで実行するために、javascript/jquery で Conway's Life をビルドてきました。Chrome、Firefox、および Opera または Safari はこれを非常に高速に実行するため、できれば IE を使用しないでください。IE9でも大丈夫です。新しい世代の生命を生成する一方で、歴史をさかのぼることができるように、前の世代を保管しています。これは、メモリがいっぱいになり、ブラウザ(タブ)がクラッシュする特定のポイントまで正常に機能します。

私の質問は次のとおりです。メモリがいっぱいになったことをどのように検出できますか? 世代の履歴を形成する配列に、世代ごとに配列を格納しています。これには大量のメモリが必要であり、使用可能なメモリによっては、数千世代後にブラウザがクラッシュします。JavaScriptが利用可能なメモリの量をチェックできないという事実を認識していますが、方法があるはずです...

0 投票する
1 に答える
493 参照

python - Python の深さ優先アルゴリズムが機能しない

Pythonで行うことにしたプロジェクトがあります。簡単に言うと、リストのリストがあります。それらのそれぞれにもリストがあり、要素が 1 つだけの場合もあれば、それ以上の場合もあります。次のようになります。

ポイントは、numpy 配列の値をこのルール (ルール テーブルの要素) の値と比較することです。一部の [x][y] ポイントを最初の要素 (たとえば、最初の要素の 1) と比較し、それが真の場合は、配列の値 [x-1][j] をリストの 2 番目と比較します。[x][y] ポイントの値を変更するには、最初の 5 つの比較が真でなければなりません。私はこのようにsthを書きました(メイン関数はSimulateLoopです。simulate2関数は2番目の関数の後に書かれたため、順序が入れ替わっています):

データクラス:

NumPy 配列は World クラスのオブジェクトです。ルールは上記のリストであり、別のプログラム (GPL ライセンス) から取得した関数によって解析されます。

正直なところ、うまく機能しているように見えますが、そうではありません。私は他の可能性を試していましたが、運が悪かったのです。動作しています。インタプリタはエラーを返しませんが、何らかの形で配列の値が間違って変化しています。パーサーを取得したプログラム (GPL ライセンス) によって提供されたので、ルールは適切です。

多分それは役に立つでしょう - それはペリエのループ、修正されたラングトンのループ (人工生命) です。

どんな助けにも非常に感謝します!)

0 投票する
4 に答える
4647 参照

java - 群れボイドの行動の問題

昨日、Craig ReynoldsのBoidsに出くわし、その後、Javaでの単純な2Dバージョンの実装を試してみることにしました。私は、コンラッド・パーカーのメモに密接に基づいて、かなり基本的な設定をまとめました。

しかし、私は(私の意見では)かなり奇妙な振る舞いをしています。現在、私のボイドはかなり速くラフなグリッドまたはラティスに移動し、その場でけいれんを起こします。つまり、彼らは少し動き回り、非常に頻繁に回転します。

現在、私は以下を実装しました:

  1. アラインメント
  2. 凝集
  3. 分離
  4. 速度制限

最初、私のボイドは画面領域全体にランダムに分散され(パーカーの方法とは少し異なります)、それらの速度はすべて画面領域の中心に向けられます(ランダムに初期化された速度でも同じ結果が得られることに注意してください)。速度制限値を変更すると、ボイドがこのパターンに移動する速度のみが変更され、パターンの形成は変更されません。

私が見ているように、これは次のようになります。

  1. 私が使用しているパラメーターの結果(現在、私のコードはパーカーの擬似コードで説明されているとおりです。レイノルズで説明されている角度と半径で定義される影響範囲はまだ試していません)。
  2. 実装する必要があるが、気付いていないもの。
  3. 私が間違っていること。

予想される動作は、レイノルズのボイドページのアプレットで発生することの2次元バージョンに沿ったものになりますが、現在、ボイドを画面に表示する方法は実装していません。

誰かがこれに遭遇したことがありますか?原因および/またはそれを修正する方法についてのアイデアはありますか?問題の動作の.gifを投稿できます。

0 投票する
3 に答える
726 参照

ruby - Rubyで「Excelのような」影響力のあるネットワークをプログラムする最良の方法は?

私はノードのネットワークを持っており、各ノードは他のいくつかのノードの状態に影響を与えています(数式を介して他のセルに依存するセル値を持つExcelスプレッドシートを想像してください)。

Rubyでこれを実装する最もクリーンな方法は何ですか?

もちろん、ノードごとに1つのプロセスを持つこともできますが、ノードの数が増えるとどのように実行されますか?そして、そのためのライブラリがあると確信していますが、最新のものを見つけることができません。

ご協力いただきありがとうございます !

更新:EventMachineがその仕事をするように聞こえます...しかし、それは少数の「ノード」により適応しているようです