9

マルチエージェントシステム( JADEを使用してJavaで開発された)の学歴から来て、私はアクターの並行性パラダイムを周辺的にしか認識していませんでした。Scalaの探索を始めた今、エージェントとアクターのアプローチの類似点に驚かざるを得ませんでした。

単にJADEライブラリを呼び出すのではなく、ScalaのActorライブラリを次の研究プロジェクトに使用したいと思っています。これにより、言語をより深く理解する必要があります。さらに、JADEがすべてを動作の観点から定義することに焦点を当てていることは、私の問題にはあまり適切ではありません。

自律性の高いアクターとエージェントの間に根本的に違うものがありますか?

4

1 に答える 1

11

はい、違いがあります。非常に単純なエージェントの場合、アクターとエージェントは同じものである可能性があります。ただし、「自律エージェント」の1つ、または少なくとも私は、通常、たとえば、エージェントが自分自身を見つける環境の抽象化を内部的にモデル化するBelief-Desire-Intentionモデルやエージェントのようなものを想定しています。それは相互作用するので、その環境と相互作用してその目標を達成する方法について計画を立てることができます。

アクターはこれらすべてを確実に持つことができますが、単一のエージェントが複数のアクターで構成され、BDIフレームワークのさまざまな部分を共同で処理する場合もあります。アクターは、すべての目的で、スケジューリングユニットです。エージェントが本質的に線形でシングルスレッドの場合、それらは適合します。それらが内部で並列作業を行う場合は、エージェントごとに複数のアクターが必要です。

では、アクターとエージェントには何が共通しているのでしょうか。

  • どちらもメッセージを渡すことで通信します。

  • それらは両方とも(通常)内部状態を持っています-たとえ実行状態に暗黙的であっても。

  • それらは両方とも、他のアクター/エージェントと状態を共有しないことが期待されます。

  • それらは両方とも、他のアクター/エージェントとは独立してスケジュールされることが期待されます。

エージェントには俳優以上のものがありますか?

  • エージェントは通常、エージェントの動作を指示するモデル(たとえば、BDIなど)に従いますが、アクターは通常従いません。ただし、リアクティブエージェントはこの点でアクターに似ています。

  • エージェントには、複数の内部スケジューリングユニットがある場合があります。ただし、そうでないエージェントは、この点でアクターに似ています。

俳優はエージェント以上のものを持っていますか?

  • Scalaのアクターは状態を共有できますが、私が考えることは何もありません。
于 2009-07-21T20:59:04.253 に答える