問題タブ [agents]
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.
paradigms - エージェントソフトウェアの高粒度適応社会?
私は、私たちの社会が自由な個人の集まりによってどのように行動にインセンティブを与え、それらの個人の仕事が社会全体の要件を満たすかについて考えていました. たとえば、人々は働くことで貢献し、お金を稼ぎ、そのお金を使って他の人の貢献から公正な分け前を得ます。それはほとんどの場合機能します...しかし、人々が寄付をせずに他人の寄付を不当に共有することを可能にする盗みなどを防ぐために警察が必要です。
マービン・ミンスキーは「Society of Mind」という本を持っていて、これらの方向に沿っていくつかのアイデアを発展させた可能性があります。そして、それらは創発的行動、セルオートマトンなどに関するニューラルネットの古いアイデアでした.そして最近、協調エージェントなどに関する研究があります.
しかし、システム全体として機能し、進化するように設計された粒度の高いエージェントの大規模なシステムを設計した人は誰もいないと思います (つまり、警察などの恒常性のためのさまざまな役割)。これらの線に沿った作品を知っていますか?
scala - 高度に自律的なアクターをエージェントと見なすのは合理的ですか?
マルチエージェントシステム( JADEを使用してJavaで開発された)の学歴から来て、私はアクターの並行性パラダイムを周辺的にしか認識していませんでした。Scalaの探索を始めた今、エージェントとアクターのアプローチの類似点に驚かざるを得ませんでした。
単にJADEライブラリを呼び出すのではなく、ScalaのActorライブラリを次の研究プロジェクトに使用したいと思っています。これにより、言語をより深く理解する必要があります。さらに、JADEがすべてを動作の観点から定義することに焦点を当てていることは、私の問題にはあまり適切ではありません。
自律性の高いアクターとエージェントの間に根本的に違うものがありますか?
clojure - エージェントへのアクションのディスパッチに関して、Clojureの「送信」機能と「送信」機能の違いは何ですか?
Clojure APIは、これら2つの関数を次のように記述します。
(af&argsを送信)-アクションをエージェントにディスパッチします。すぐにエージェントを返します。その後、スレッドプールからのスレッドで、エージェントの状態は次の値に設定されます:(apply action-fn state-of-agent args)
と
(send-off af&args)-潜在的にブロックしているアクションをエージェントにディスパッチします。すぐにエージェントを返します。その後、別のスレッドで、エージェントの状態が次の値に設定されます:(apply action-fn state-of-agent args)
唯一の明らかな違いは、アクションがブロックされる可能性がある場合に見送りを使用する必要があることです。誰かがこの機能の違いをより詳細に説明できますか?
java - JADE での使用に最適なデータベース パッケージ
JADE (Java Agent DEvelopment Framework) を使用しており、データベース バックエンドをセットアップする必要があります。どのデータベースシステムがフレームワークでうまく機能するかについて、誰かに推奨事項はありますか?
user-interface - JADEでテキストファイルを読む方法
Javeテキストファイルの読み取りコードをJADEGUIに配置するのに行き詰まっています。助けてください。つまり、簡単なコードを使用して表示します。私はJadeを初めて使用しますが、Javaコーディングの経験があります。
java - JADE (Java) - エージェントコンテナの変更
エージェントを別のコンテナーに再割り当てする方法はありますか? または、新しいコンテナーを作成してから、新しいコンテナー内にエージェントのすべての新しいインスタンスを作成する必要がありますか?
私は多くの検索を行ってきましたが、コンテナーの再割り当てに関するものは何も見つからないようです。
事前に情報をありがとう!
scala - ClojureのエージェントはScalaの俳優と比べてどうですか?
アクターとエージェントを比較するために、Scala(ソースはこちら)(Scala 2.8 RC7)とClojure(ソースはこちら)(Clojure 1.1)のリングネットワークトポロジのシミュレーションを作成しました。
Scalaバージョンはネットワーク内のノード数を100から1000000に増やすとほぼ一定のメッセージ交換レートを示しますが、Clojureバージョンはノード数の増加とともに減少するメッセージレートを示します。また、1回の実行中、Clojureバージョンのメッセージレートは時間の経過とともに低下します。
だから私はScalaの俳優がClojureのエージェントとどのように比較されるのか興味がありますか?エージェントは本質的にアクターよりも並行性が低いのですか、それともコードは非効率的に記述されていますか(オートボクシング?)?
PS:Scalaバージョンのメモリ使用量はノード数の増加に伴って大幅に増加しますが(100万ノードの場合は> 500 MB)、Clojureバージョンのメモリ使用量ははるかに少なくなります(100万ノードの場合は約100 MB)。
編集:
両方のバージョンは同じJVMで実行されており、すべてのJVM引数とアクターおよびエージェントの構成パラメーターがデフォルトとして設定されています。私のマシンでは、Scalaバージョンは1億から100万ノードで一貫して約5000メッセージ/秒のメッセージレートを提供しますが、Clojureバージョンは100ノードで60000メッセージ/秒で始まり、100万ノードで200メッセージ/秒に減少します。
編集2
私のClojureバージョンは非効率的に書かれていることがわかりました。nodes
コレクションのタイプをからに変更するlist
とvector
、一貫した動作が表示されます。100ノードの場合は100000メッセージ/秒、100000ノードの場合は80000メッセージ/秒です。したがって、ClojureAgentはScalaActorsよりも高速であるように見えます。リンクされたソースも更新しました。
asynchronous - unbounded_buffer、_CrtSetDbgFlagおよびメモリリーク
新しい機能の1つである非同期エージェントライブラリを使用しようとしています。追加しました
unbounded_buffer m_myDataBuffer; 私のC++クラスには、これ以上何もありません。エージェントはまだ実行されていません。
アプリケーションでメモリリーク検出を有効にするために、次を使用しています。
しかし、アプリケーションウィンドウを閉じた後(私は単純なWin 32 GUIアプリケーションを使用しています)、VisualStudioは大量のメモリリークを示しています。
コメントアウトするとすぐにリークがなくなります
またはコメントアウトした後
unbounded_bufferを使用しなくても解放するために、何か特別なことはありますか?または、特別な方法で_CrtSetDbgFlagを設定する必要がありますか?_CrtSetDbgFlagはメモリリークの原因ですか、それともこの場合に何らかの理由で誤った検出を作成していて、実際のメモリリークはありませんか?ここで何が欠けていますか?
私も持っているので、これらのリークは私のコードから来ていないことを100%確信しています
stdafx.hにあるので、コードからのメモリリークにはファイル名と行があります。しかし、unbounded_bufferのものにはそのような情報がないので、エージェントライブラリからのものだと思います。