7

私たちはソフトウェア開発クラスでエージェント指向プログラミングについて学んでおり、私の教授はそれを大いに支持しており、彼の人生全体でエージェント指向プログラミングに取り組んできました。

私の質問は、設計と実装の両方の観点からエージェントを使用することの真の利点/欠点についてです。私の教授の観点からすると、エージェントは通常の OOP メソッドよりもはるかに簡単に非常に複雑な操作を再現できます。しかし、複雑な環境でエージェントをプログラムするのも同様に面倒だと私には思えます。これらは、さまざまな並行性、タイミング、およびデータの整合性の問題の影響を受けます。コーダーの観点から見ると、エージェント コードはかなり複雑で、通常の OOP コードよりもはるかに理解しにくいものです。

ソフトウェアエージェントが実際の開発でどのように見られているか、また学術的な演習以外でどのような利点/欠点があるかについて誰か教えてもらえますか?

4

2 に答える 2

10

AI での「エージェント」という用語の使用 (これはおそらくあなたが言及しているものであり、最も一般的な学術的参考文献です) は、実際には「ユーザーに代わって動作するソフトウェア プログラム」の同義語です。エージェントがより魅力的に見えるのは、それがやや擬人化された用語であり、ユーザーのプロキシであるためです。また、より高次の機能 (エージェントの計画、エージェントの学習、自律型エージェントなど) に関連付けられる傾向があります。ウィキペディアでの用語の起源についての詳細:

http://en.wikipedia.org/wiki/Software_agent

そのため、「エージェント」という用語は、ソフトウェアのプログラム方法ではなく、ソフトウェアの目的と種類に関するものです。OOP は、それが技術的にどのように設計/実装されているかにより関係があります。

したがって、OOP の原則を使用してエージェントを設計することに問題はありません。2 つの主題は相互に排他的ではありません。

また、心に留めておいてください (上記のコメントのいくつかがほのめかしているように、私も同意します)。学界での「エージェント」の使用は、よりロマンチックな用語です。ほとんどのソフトウェアは一部のユーザーに代わって動作するため、多くの場合にエージェント機能があります。結局のところ、それは単なるソフトウェアです。「エージェント」という用語を私たちの集合的な辞書から削除したとしても、純粋なソフトウェアの設計/実装の能力を罰することにはなりません。特にエージェント指向プログラミングに関するフォーラムでは、これと同じ議論の要素が見られます。

http://ootips.org/agent-orientation.html

于 2011-03-08T08:52:10.790 に答える