最近、「マルチエージェント コンピューティング」という言葉を目にしましたが、それが何なのかよくわかりません。それについての本を読んだことがありますが、それはエージェントとは何かという根本的な疑問に答えていませんでした。
誰かが明確で簡潔で、でたらめやマーケティングの話をせずに質問に答える参考文献へのポインタを持っていますか? これが私自身が慣れ親しむべきものなのか、それともおそらく無視できるがらくたなのか、正直に言うとわからないので知りたい.
最近、「マルチエージェント コンピューティング」という言葉を目にしましたが、それが何なのかよくわかりません。それについての本を読んだことがありますが、それはエージェントとは何かという根本的な疑問に答えていませんでした。
誰かが明確で簡潔で、でたらめやマーケティングの話をせずに質問に答える参考文献へのポインタを持っていますか? これが私自身が慣れ親しむべきものなのか、それともおそらく無視できるがらくたなのか、正直に言うとわからないので知りたい.
簡単に言えば、マルチエージェント研究は、自律的なエージェントから構成されるシステムを設計しようとします。つまり、ロボット/人/ソフトウェアエージェントがたくさんいて、それぞれが独自のアクションを実行できますが、自分の周りにあるものしか「見る」ことができません。システムを希望どおりに動作させるにはどうすればよいでしょうか?
例、
感知能力が限られているロボットがたくさんいる場合、どのようにしてそれらに敵のフィールドを監視させますか? フィールド内のすべての地雷を見つけるには?
たくさんの人がいる中で、最も幸せでない人の幸せを最大化するにはどうすればよいでしょうか? 彼らの自由を奪うことなく。
人々のグループが与えられた場合、彼らの幸福を最大化する会議の時間をどのように設定しますか? 彼らの個人情報を明らかにすることなく?
これらの質問のいくつかは、簡単に解決できるように見えるかもしれませんが、そうではありません。
マルチエージェントの研究では、これらの質問に答えるために、ゲーム理論、経済学、人工知能、時には生物学の手法を組み合わせます。
詳細が必要な場合は、Fundamentals of Multiagent Systemsという名前の無料のテキストを作成中です。
マルチエージェントシステムは AI から借用した概念です。それは、観察、通信、反応できるエージェントがいる仮想世界のようなものです。例を挙げると、メモリを要求する必要があるメモリ割り当てエージェントがあり、メモリを提供するかどうかを決定するとします。または、Web サーバーを監視し、ハングした場合に再起動するエージェントがある場合もあります。マルチエージェント システムの背後にある主な目標は、システムのさまざまな部分間でより Smalltalk に似た通信システムを構築して、すべてを連携させることです。これは、中央プログラムからのトップダウン ディレクティブとは対照的です。
「エージェント」は、ソフトウェア設計におけるもう 1 つの抽象概念です。
大まかな階層として。
マシン コード、アセンブリ、マシンに依存しない言語、サブルーチン、プロシージャ、抽象データ型、オブジェクト、そして最後にエージェント。
コンピューティングにおいて相互接続と分散がより重要になるにつれて、他のシステム (異なる利害を持つ) と協力して合意に達することができるシステムの必要性が明らかになります。ここでエージェントの出番です。独立して行動するエージェントは、その環境におけるあなたの最善の利益を表します。
エージェントの他の例:
マルチエージェントシステムは次のものに関連しています。
エージェントは、あなたが取り繕うべきものではないと思います。「マルチ エージェント」については Google Scholar で 200 万件のヒットがあり、CiteSeerではさらに多くのヒットがあります。それは急速に進化しているコンピューター サイエンスの分野です。
マルチエージェント コンピューティングにはいくつかの重要な側面があり、その中に分散と独立性があります。
マルチエージェントは異なるマシン上にある必要はありません.@Kyleが言うように、単一のチップまたはマシン上の複数のプロセスである可能性がありますが、明示的な集中管理なしで動作します. それらは協調して動作する可能性があるため、特定の同期ルールがあります。たとえば、結果を比較するために集まる前に、別々にジョブを実行します。
一般に、個別のエージェントへのセグメンテーションの背後にある理由は、各エージェントのアクションと反応を導くために異なる優先順位を考慮に入れることです。おそらく、経済モデルを使用して共通のリソースを分割するか、さまざまな機能が物理的に分離されているため、互いに緊密にやり取りする必要がないためです。
<抜本的な一般化> 無視すべきものですか? まあ、特に何もないので「クイックソートの概念を無視してもいいですか?」みたいな感じです。クイックソートが何であるかを理解していなくても、開発者として失敗することはありません。人生のほとんどがまったく影響を受けないからです。さまざまなアーキテクチャとモデルについて理解が深まると、新しい予測不可能な場所に展開するための知識が増えます。 <総括的な一般化>
10 年前、「マルチエージェント システム」(MAS) は、学術文献のいたるところに登場するフレーズの 1 つでした。最近はあまり普及していませんが、それが表すアイデアのいくつかは、いくつかの場所で本当に役立ちます。しかし、他の人にはまったく必要ありません。だから私はそれが明確であることを願っています;)
マルチエージェントコンピューティングとは何かを言うのは難しいです。なぜなら、エージェントの定義は通常、マーキング用語などに囲まれて非常にソフトだからです。製造システムの研究に基づいて、それが何であり、どこで使用できるかを説明しようと思います。 、私はよく知っているエリアです。
現代の製造業の「未解決」の問題の1つは、スケジューリングです。問題の定義が静的である場合、最適な解決策を見つけることができますが、実際には、人々は仕事に来ず、製造リソースが失敗し、コンピューターが失敗します。需要は常に変化しており、さまざまな製品が必要です(つまり、製品のマスカスタマイゼーション-1台の生産された車にはエアコンがあり、次の車にはありません...)。これはすべて、a)製造が非常に複雑であり、b)1週間前にスケジュールするなど、静的なアプローチは機能しないという結論につながります。つまり、アイデアはこれです。システムの一部を表すインテリジェントなプログラムが、この混乱から抜け出すために独自に機能するのではないでしょうか。これらのプログラムはエージェントと呼ばれます。彼らは彼らの間でコミュニケーションと交渉を行い、タスクが期限内に完了することを確認する必要があります。エージェントを使用することで、制御システムの複雑さを軽減し、管理しやすくし、人間と機械の相互作用を改善し、堅牢性とエラーの発生を抑え、非常に重要なこととして、制御システムを分散化する必要があります。
つまり、エージェントは単なる概念ですが、誰もが直感的に理解できる概念です。コードはまだ書く必要がありますが、それは別の方法で書かれており、OOPよりも1つ抽象化されています。
マルチエージェント研究のトップ 2 人である Jennings と Wooldridge によると、エージェントはその環境に反応し、積極的かつ社会的なオブジェクトです。つまり、エージェントは、それ自体の目的に適した方法で環境にリアルタイムで反応できるソフトウェアの一部です。それは積極的です。つまり、タスクを実行するように求められるのを常に待つだけではなく、目的に役立つと思われる何かを行う機会があれば、それを実行します。そして、それが社会的であること、つまり他のエージェントと通信できることは、それ自体の目的を達成するためにこれらのことを行う必要は必ずしもありませんが、状況が発生した場合はこれらを行うことができるはずです.
エージェントに関するホワイト ペーパーはこちらでご覧いただけます。