- 2008年6月22日 17:02
- 研究
「ソフトウェアエージェント」という言葉について知っておく必要が出てきたので、Wikipediaで簡単に調べてみました。
ソフトウェアエージェント - Wikipedia
ソフトウェアエージェントとは、ユーザとユーザ、ユーザとソフトウェア、ソフトウェアとソフトウェアの間で仲介的な役割を果たすソフトウェアを示す言葉だそうです。
ソフトウェアエージェントの定義は人によってまちまちみたいなのですが、その中でも共通する要素として、以下が挙げられるみたい。
- 永続性
ソフトウェアエージェントは常に起動された状態で、何かの処理を行う時期を自分自身で判断します。
- 自律性
ソフトウェアエージェントは、種々の判断・行動を人間の手を借りることなく実行することができます。
- 社会性
ソフトウェアエージェントは、ほかのエージェントやソフトウェアと協力し、一つのタスクを協調して遂行することができます。
- 反応性
ソフトウェアエージェントは、自分の周りの環境を検知することが可能で、環境の変化にも柔軟に対応可能です。
上の4項目をみると、永続性・自律性を満たすソフトウェアは結構ありふれた存在のように感じます。
一方、社会性・反応性を十分に満たしているソフトウェアはあまり無い感じがするので、ソフトウェアエージェントという概念を説明するために重要な概念かもしれません。
ソフトウェアエージェントから派生する概念がいくつかあるみたいなんですが、ここでは4つだけ紹介します。
- 知的エージェント
タスクの実行結果をよりよいものにするために、個々のエージェントが学習したり推論したりします。
要は人工知能のようなものを備えたエージェントのことを指すのでしょうか?
- 自律エージェント
ある目標を達成するための方法を、自分で考え出し、さらにその方法を実際に利用できるエージェントを指すみたいです(人間の手助けなしで)。
エージェントが学習できる必要はあるはずなので、知的エージェントと重複する部分があるのかもしれません。 - マルチエージェント
エージェント単体では目的を達成できないのですが、ほかのエージェントと協調することで目的を達成可能とするエージェントを指すみたいです。
実装しようとすれば、サーバクライアントシステムではなくて、P2Pシステムになる感じ?
マルチエージェントシステムを実現するためのフレームワークとしてGNUBrainというものがあるそうです(リンク先は現在PHPのエラーが出ているため閲覧不可orz)。 - モバイルエージェント
実行環境(コンテキスト?)とともにコンピュータからコンピュータへと移動し、移動先のコンピュータでも動作することができるエージェントを指すみたいです。
まさに移動するソフトウェア。
モバイルエージェントを利用したP2PプラットフォームとしてPIAXがあります。
個人的には、マルチエージェントとモバイルエージェント、あるいはそれらを組み合わせたようなシステムに非常に興味があります。
どうやら「マルチモバイルエージェント」という言葉があるみたい。
今度調べます。
今回は完全にWikipedia情報を鵜呑みにしてしまいましたが、今後は論文も少しずつ読んでいって、エージェントに関する理解を深めていきたいと思います。
自分の知らないことを調べたり勉強したりするのっておもしろいですね!
- Newer: 博士課程入学試験の参考書を入手
- Older: 博士課程に進学したら研究したいこと