ソフトウェアエージェント
[Wikipedia|▼Menu]

ソフトウェアエージェント(software agent)とは、ユーザーや他のソフトウェアとの仲介 (Agency) 的関係[1]において動作するソフトウェアを説明する計算機科学上の抽象概念であり、論理的モデルである[2][3]。そのような代行的行動は行動の適切さの判断や時期の判断の権限を暗示している。

関連する派生概念として、知的エージェント人工知能的要素である学習や推論を取り入れたもの)、自律エージェント(目的を達成するための方法を自律的に更新できるもの)、分散エージェント(物理的に別個のコンピュータ群上で動作するもの)、マルチエージェントシステム(単体では目的を達成できず、互いに通信する分散エージェント群)、モバイルエージェント(ネットワーク上で自身を実行するプロセッサを乗り換えていくことができるエージェント)などがある。
目次

1 コンセプト

1.1 一般的コンピュータプログラムとの相違点

1.2 オブジェクトとの直観的相違点

1.3 エキスパートシステムとの相違点

1.4 知的ソフトウェアエージェントと人工知能における知的エージェントとの相違点


2 歴史

3 例

3.1 バイヤーエージェント(買い物ボット)

3.2 ユーザー(個人)エージェント

3.3 監視(予測)エージェント

3.4 データマイニング・エージェント

3.5 その他の例


4 設計上の問題

5 影響

5.1 組織への影響

5.2 仕事の満足度への影響

5.3 文化的影響


6 エージェント向けの記法やフレームワーク

7 脚注

8 参考文献

9 関連項目

10 外部リンク

コンセプト

ソフトウェアエージェントの持つ基本特性は次の通りである。

タスクとして厳密に管理されないが、自分自身が勝手に起動することはない。

ホスト上で所定のイベントの発生を待ち続けることがある。

動作条件が整うと動作状態になる。

ユーザーからの指示を必要としない。

通信などの他のタスクを呼び出すことがある。
Nwana によるソフトウェアエージェントの分類

「エージェント」という用語はソフトウェアの抽象化/アイデア/概念を説明するものであり、その意味でオブジェクト指向プログラミングの各種用語(メソッド、クラス、オブジェクトなど)と同類である。エージェントの概念は、ユーザーの代理である程度自律的に行動できる複雑なソフトウェアを説明するための便利で強力な方法を提供する。しかし、メソッドや属性といった用語で定義されるオブジェクトとは異なり、エージェントはその振る舞いで定義される[4]

様々な人々がそれぞれにエージェントの定義を提案しているが、それらには以下のような概念が共通して含まれている。

永続性(persistence) - そのコードは要求されて実行されるのではなく、常に起動された状態で、何らかの行動を起こす時期を自身で判断する。

自律性(autonomy) - エージェントは、実行すべきタスクの選択、優先順位付け、目標に向けた行動、意思決定を人間の手助けなしで行う機能を持つ。

社会性(social ability) - エージェントは他のコンポーネントと何らかの通信や協調をする機能を持ち、1つのタスクを共同で処理する。

反応性(reactivity) - エージェントは周囲の環境を把握し、その変化に適切に反応する。

「エージェント」の概念は規範としてよりもシステムを解析するツールとして最も役立つ。上述したエージェントの概念は人間が複雑な仕事を考える場合の自然な方法を反映したものであり、そのためにエージェントはそのような複雑なタスクのモデルとして有効である。
一般的コンピュータプログラムとの相違点

Fanklin & Graesser (1996)[5] では、一般的プログラムとエージェントを区別する4つの点を指摘した。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:34 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef