反応性計画

人工知能では、リアクティブプランニングとは、自律エージェントによるアクション選択のための技術群を意味します。 これらの技術は、2つの面で古典的な計画とは異なります。 第一に、それらは適時に動作し、したがって非常に動的で予測不可能な環境に対処することができます。 次に、現在のコンテキストに基づいて、毎瞬間に次のアクションを1つだけ計算します。 リアクティブプランナーは、エージェントの優先順位と動作を記述した構造を格納したリアクティブプランを悪用することが多い(ただし必ずではありません)。

反応性計画という用語は少なくとも1988年にまでさかのぼりますが、ここでは「反応性」という用語は積極的に反意語として使用される敬語になりました。 リアクティブ計画を使用するほとんどすべてのエージェントが積極的であるため、一部の研究者は、リアクティブ計画をダイナミックプランニングと呼んでいます。

反応的な計画表現
反応計画を表す方法はいくつかあります。 すべては、基本的な表現単位と、これらの単位を計画に組み込む手段を必要とします。

条件アクションルール(制作)
条件アクションルール、またはif-thenルールは、条件の場合、アクションの場合のルールです。 これらの規則はプロダクションと呼ばれます。 ルールの意味は次のとおりです。条件が満たされている場合は、アクションを実行します。 アクションは、外部(例えば、何かを選択して移動)、または内部(たとえば、内部メモリにファクトを書き込むか、新しいルールセットを評価する)のいずれかになります。 条件は通常ブール値であり、アクションは実行できるかどうかです。

生産規則は、比較的平坦な構造で編成することができるが、より多くの場合、何らかの種類の階層に編成される。 例えば、包含構造は、相互に関連する動作の層から成り、実際にはそれぞれ適切な入力に応答して動作する有限状態機械である。 これらのレイヤーは単純なスタックに編成され、上位レイヤーは下位レイヤーの目標を包含します。 他のシステムでは、ツリーを使用するか、現在どのゴール/ルールサブセットが現在最も重要かを変更するための特殊なメカニズムを含めることができます。 フラット構造は構築が比較的容易であるが、単純な挙動の記述のみを可能にするか、または不足している構造を補うために非常に複雑な条件を必要とする。

分散アクション選択アルゴリズムの重要な部分は、競合解消メカニズムです。 これは、与えられた瞬間に複数のルールの条件が成立したときに提案されるアクション間の競合を解決するためのメカニズムです。 紛争は、

固定された優先順位を予めルールに割り当てること、
設定を割り当てる(例えばSoarアーキテクチャで)。
ルール間の相対ユーティリティの学習(ACT-Rなど)、
計画の一形態を活用する。
エキスパートシステムでは、ルールを選択するための最近のような他の簡単なヒューリスティックを使用することがよくありますが、単純なアプローチで大規模なシステムで良好な動作を保証することは困難です。

競合解消は、相互に排他的な行動をとるルールにのみ必要です(Blumberg 1996参照)。

このような反応計画のいくつかの制限は、Brom(2005)に見られる。

有限状態マシン
有限状態マシン(FSM)は、システムの動作のモデルです。 FSMはコンピュータサイエンスで広く使用されています。 エージェントのモデリング動作は、可能なアプリケーションの1つに過ぎません。 エージェントの動作を記述するために使用される典型的なFSMは、これらの状態間の状態および遷移のセットからなる。 遷移は実際には条件アクションのルールです。 あらゆる瞬間において、FSMのただ1つの状態がアクティブであり、その遷移が評価される。 移行が行われると、別の状態がアクティブになります。 つまり、一般的に遷移は次の形式のルールです。if condition then activate-new-state。 しかし、移行は、実際に状態を変更することなく移行アクションを実行できるように、一部のシステムでは「自己」状態に接続することもできます。

FSMでビヘイビアを生成する方法は2つあります。 それらは、デザイナーが状態に関連付けられているものに依存しています。それらは、「行為」またはスクリプトのいずれかになります。 「行為」は、そのFSMが所与の状態である場合にエージェントによって実行されるべき原子的な行動である。 このアクションは、毎回のステップで実行されます。 しかしながら、後者の場合がより多い。 ここでは、すべての状態がスクリプトに関連付けられています。このスクリプトは、FSMが所定の状態にある場合にエージェントが実行しなければならない一連のアクションを記述します。 移行が新しい状態を起動すると、元のスクリプトは単に中断され、新しいスクリプトが開始されます。

スクリプトがより複雑な場合、スクリプトはいくつかのスクリプトに分解され、階層的なFSMが悪用される可能性があります。 このようなオートマトンでは、すべての状態にサブ状態を含めることができます。 原子レベルの状態のみがスクリプト(複雑ではない)またはアトミックアクションに関連付けられます。

計算上、階層型FSMはFSMと同等です。 つまり、各階層FSMを古典的なFSMに変換することができます。 しかし、階層的アプローチは設計をより容易にする。 階層型FSMを使用するコンピュータゲームのボットのASMの例については、Damian Isla(2005)の論文を参照してください。

ファジィアプローチ
if-thenルールとFSMの両方をファジー論理と組み合わせることができます。 条件、状態、およびアクションは、それぞれブール値ではなく、「はい/いいえ」ではありませんが、近似的で滑らかです。 その結果、結果として生じる動作は、特に2つのタスク間の遷移の場合に、よりスムーズに移行する。 しかし、ファジィ状態の評価は、その鮮明なものの評価よりもはるかに遅い。

Alex Champandardのアーキテクチャを参照してください。

つながり主義者のアプローチ
反応計画は、人工ニューラルネットワークやフリーフロー階層などの接続ネットワークによっても表現できます。 基本的な表現単位は、「抽象的な活動」でユニットにフィードし、その活動を後続のユニットに伝播する出力リンクを持つ複数の入力リンクを持つユニットです。 各ユニット自体がアクティビティトランスデューサとして機能します。 典型的には、ユニットは層状構造で接続される。

つながり主義的なネットワークのポジティブな点は、結果的に生じる行動が、生き生きとしたif-thenの規則やFSMによって生み出される行動よりも滑らかであること、第二に、ネットワークがしばしば適応的であること、第三に阻害のメカニズムが利用できることである。 (行動を規定的に記述することができるルールを用いて)徴例的にも記述されている。 しかし、この方法にはいくつかの欠点もある。 第1に、設計者にとって、if-thenルールと比較してネットワークによる動作を記述することははるかに複雑です。 第2に、比較的簡単な挙動しか記述できない。特に、適応的特徴を利用しようとする場合。

反応的計画アルゴリズム
典型的なリアクティブプランニングアルゴリズムはif-thenルールを評価したり、接続主義ネットワークの状態を計算したりするだけです。 しかし、いくつかのアルゴリズムには特別な機能があります。

リテー評価:適切なロジック表現(クリスプルールにのみ適しています)を使用すると、ルールはすべてのタイムステップで再評価する必要はありません。 代わりに、前のステップからの評価を記憶するキャッシュの形態を使用することができる。
スクリプティング言語:ルールやFSMは、アーキテクチャのプリミティブ(例:Soar)にある場合もあります。 しかし、より多くの場合、反応計画はスクリプト言語でプログラムされます。この言語では、ルールはプリミティブ(JAMやABLなど)の1つにすぎません。
操舵
ステアリングは、エージェントのナビゲーションに使用される特別な反応技術です。 リアクションステアリングの最も単純な形式は、センサ入力をエフェクタ出力に直接マッピングし、それに従うか、回避することができるBraitenberg車両に採用されています。 より複雑なシステムは、エージェントに作用する魅力的または反発的な力の重ね合わせに基づいている。 この種のステアリングは、Craig Reynoldsのボイドに関するオリジナルの作業に基づいています。 ステアリングによって、以下の簡単な形式を達成することができます。

目標ナビゲーションに向かって
障害回避行動
行動に従う壁
敵が近づいている
捕食者の回避
群衆の行動
ステアリングの利点は、計算上非常に効率的であることです。 コンピュータゲームでは、この技術によって何百人もの兵士が動くことができます。 しかし、より複雑な地形(建物など)の場合、ステアリングは経路探索と組み合わせる必要があります(Milaniなど)。これは計画の一形態です。