Agent Village 〜 エージェントの里 〜

FAQ - よくある質問と回答

エージェント

Q: エージェントとは?
A: 一般的に、エージェントは単なるオブジェクトに加えて、以下の特徴を持っているとされています。
  • 自律性: 外部の環境変化を監視し、判断することで、エージェントが自身の動作を決定すること
  • 協調性: 各エージェントが互いに協力して目標を達成すること。
  • 適応性: エージェントが動作する環境、条件を学習し、柔軟に対応すること。
より詳しい説明を知りたい方は、エージェント・システムの基礎知識をご覧ください。

↑先頭に戻る↑

Q: オブジェクト指向とエージェント指向の違いは何ですか?
A: エージェント指向とは、オブジェクト指向をさらに発展させた考え方です。オブジェクト指向におけるオブジェクトが受動的で、他のオブジェクトからのメッセージに従って処理を実行するのに対し、エージェント指向におけるエージェントは能動的であり、エージェントの外部環境などを自身の価値基準で判断し処理を実行します。

↑先頭に戻る↑

FIPA仕様

Q: FIPA仕様とは?
A: FIPA (Foundation for Intelligent Physical Agents) はエージェント標準化団体の一つです。FIPA仕様についての特徴などについては、FIPAの概要をご覧ください。

↑先頭に戻る↑

Q: FIPA仕様のどこから読むと幸せになれますか?
A: 仕様書 "00001: FIPA Abstract Architecture Specification" ではFIPAが定義する抽象的なエージェント・プラットフォームの概要が解説されています。この仕様書はFIPAの提唱する他の仕様書のインデックス的な役割も持っているので、FIPA仕様を理解するためにまず最初に目を通すべきドキュメントと言えるでしょう。

↑先頭に戻る↑

Q: FIPAとFIFAの違いは何ですか?
A: FIFA (Federation Internationale de Football Association) は、サッカーの発展と普及を目指す世界的な団体のことで、FIPAとはまったく関係ありません。あしからず。

↑先頭に戻る↑

JADE

Q: 同じホストでJADEをふたつ立ち上げようとしたら怒られたのですが?
A: RMIレジストリのポートがバッティングしています。-portオプションで回避しましょう。

Some problem occurred while joining agent platform. jade.core.ProfileException: Can't get a proxy to the Platform Manager [nested The Service Manager was already bound in the RMI Registry [nested ServiceManager]]」という例外が発生している場合はこの症状です。同じノード上のふたつのJADEプラットフォームでRMIレジストリを共有してしまうため、後から起動されたプラットフォーム側でレジストリへの登録に失敗しています。

この状況を回避するには、jade.Boot に与える引数に「-port PortNumber」オプションを追加してRMIレジストリにアクセスするポートをバッティングしないように調整します。PortNumber のデフォルトは 1099 なので、二番目に起動するプラットフォームでは他のアプリケーションなどで使われていない別のポート番号(たとえば 1199 など)を指定して起動します。

↑先頭に戻る↑

Q: JADEで日本語は使えるのですか?
A: JADE 3.2 以降では、なんとか使えるようになってます。

日本語を含むメッセージのエンベロープの encoding: スロットに用いられる文字エンコードの種類(たとえば、US-ASCIIShift-JISUTF-8など)を設定すると、その文字エンコードに従ってメッセージ送受信が行われます。実際にメッセージ・エンベロープに文字エンコードを設定するコードは次のような感じになります(この例ではrequestという変数に入れられているACLMessageのエンベロープにUTF-8のエンコーディングを設定しています)。

Envelope envelope = request.getEnvelope();
if (envelope == null) {
    request.setDefaultEnvelope();
    envelope = request.getEnvelope();
}
envelope.setPayloadEncoding("UTF-8");

↑先頭に戻る↑

Q: エージェント間でBehaviourを共有できますか?
A: 基本的にできません。

なぜなら、個々のBehaviourは各々現在の状態を持つ状態遷移マシンになっているからです。ひとつのBehaviourが複数のエージェントに共有され同時に活性化されると、そのBehaviourの状態遷移がごちゃごちゃになっちゃいます。

↑先頭に戻る↑

その他

Q: なぜこのサイトでは所々に忍者に関係する言葉が使われているのですか?
A: それは秘密です。

↑先頭に戻る↑

JADE is a trademark of Telecom Italia Lab.
Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.
All other products referred to herein are service names, trademarks or registered trademarks of the companies that own and market those products.