logo

敵対的検索

敵対的探索とは、私たちが世界に先駆けて計画を立てようとして、他のエージェントが私たちに対して計画を立てているときに生じる問題を調べる探索です。

私のライブクリケット
  • 前のトピックでは、多くの場合一連のアクションの形で表現される、解決策を見つけることを目的とした単一のエージェントにのみ関連付けられる検索戦略を研究しました。
  • ただし、複数のエージェントが同じ検索スペースで解決策を検索する状況が発生する可能性があり、この状況は通常、ゲームのプレイ中に発生します。
  • 複数のエージェントが存在する環境は次のように呼ばれます。 マルチエージェント環境 、各エージェントが他のエージェントの対戦相手となり、互いに対戦します。各エージェントは、他のエージェントのアクションと、そのアクションがパフォーマンスに与える影響を考慮する必要があります。
  • それで、 相反する目標を持つ 2 人以上のプレイヤーが解決策を求めて同じ検索空間を探索しようとする検索は、敵対的検索と呼ばれ、ゲームとしてよく知られています。
  • ゲームは検索問題とヒューリスティック評価関数としてモデル化されており、これらは AI でのゲームのモデル化と解決に役立つ 2 つの主な要素です。

AI におけるゲームの種類:

決定論的 チャンスムーブ
完璧な情報 チェス、チェッカーズ、囲碁、オセロ バックギャモン、モノポリー
不完全な情報 戦艦、盲目、三目並べ ブリッジ、ポーカー、スクラブル、核戦争
    完璧な情報:完璧な情報を持つゲームとは、エージェントがボード全体を調べることができるゲームのことです。エージェントはゲームに関するすべての情報を持っており、お互いの動きも確認できます。例としては、チェス、チェッカー、囲碁などが挙げられます。不完全な情報:ゲーム内でエージェントがゲームに関するすべての情報を持っておらず、何が起こっているのかを認識していない場合、そのようなタイプのゲームは、三目並べ、戦艦、ブラインド、ブリッジなど、不完全な情報を持つゲームと呼ばれます。決定論的なゲーム:決定論的ゲームとは、ゲームの厳密なパターンと一連のルールに従って行われるゲームであり、それに伴うランダム性はありません。例としては、チェス、チェッカー、囲碁、三目並べなどが挙げられます。非決定的なゲーム:非決定的とは、さまざまな予測不可能なイベントが発生し、偶然や運の要素が含まれるゲームです。この偶然や運の要素は、サイコロやカードによってもたらされます。これらはランダムであり、各アクションの応答は固定されていません。このようなゲームは確率的ゲームとも呼ばれます。
    例: バックギャモン、モノポリー、ポーカーなど。

注: このトピックでは、決定論的なゲーム、完全に観察可能な環境、ゼロサム、および各エージェントが交互に動作する場所について説明します。

ゼロサムゲーム

  • ゼロサム ゲームは、純粋な競争を伴う敵対的探索です。
  • ゼロサム ゲームでは、各エージェントの効用の獲得または喪失は、別のエージェントの効用の喪失または獲得によって正確にバランスがとれます。
  • ゲームの 1 人のプレイヤーは 1 つの値を最大化しようとし、他のプレイヤーはそれを最小化しようとします。
  • ゲーム中の 1 人のプレイヤーによる各動きはプライと呼ばれます。
  • チェスや三目並べはゼロサム ゲームの例です。

ゼロサム ゲーム: 埋め込まれた思考

ゼロサム ゲームには、1 人のエージェントまたはプレイヤーが次のことを理解しようとする組み込みの思考が含まれています。

  • 何をするか。
  • 動きの決め方
  • 相手のことも考える必要がある
  • 相手もどうするか考えてる

各プレイヤーは、自分の行動に対する対戦相手の反応を探ろうとしています。これには、AI でゲームの問題を解決するための組み込み思考または逆方向推論が必要です。

問題の形式化:

ゲームは AI における検索の一種として定義でき、次の要素で形式化できます。

    初期状態:ゲームの開始時にどのようにセットアップするかを指定します。プレイヤー:どのプレイヤーが状態空間内で移動したかを指定します。行動):状態空間内の正当な手のセットを返します。結果:これは状態空間での移動の結果を指定する遷移モデルです。ターミナルテスト:ターミナル テストは、ゲームが終了した場合は true、それ以外の場合はいかなる場合でも false となります。ゲームが終了した状態を終端状態と呼びます。ユーティリティ(s、p):ユーティリティ関数は、プレイヤー p の端末状態 s で終了するゲームの最終的な数値を与えます。ペイオフ関数とも呼ばれます。チェスの場合、結果は勝ち、負け、または引き分けであり、その利得値は +1、0、1/2 です。三目並べの場合、効用値は +1、-1、0 です。

ゲームツリー:

ゲーム ツリーは、ツリーのノードがゲームの状態、ツリーのエッジがプレイヤーの動きであるツリーです。ゲーム ツリーには、初期状態、アクション関数、および結果関数が含まれます。

.tostring java

例: 三目並べゲーム ツリー:

次の図は、三目並べゲームのゲーム ツリーの一部を示しています。ゲームの重要なポイントは次のとおりです。

Javaで文字列を連結する方法
  • プレイヤーは MAX と MIN の 2 人です。
  • プレイヤーには交互のターンがあり、MAX から開始します。
  • MAXはゲームツリーの結果を最大化します
  • MIN は結果を最小化します。
敵対的検索

説明例:

  • 初期状態から、MAX は先攻で 9 つの手を持つことができます。 MAX の位 x と MIN の位 o を指定し、一方のプレイヤーが 3 つ連続するか、すべてのマスが埋まるリーフ ノードに到達するまで、両方のプレイヤーが交互にプレイします。
  • 両方のプレーヤーは、各ノード、ミニマックス、最適な敵対者に対して達成可能な最良のユーティリティであるミニマックス値を計算します。
  • 両方のプレーヤーが三目並べをよく認識し、最高のプレーをしていると仮定します。各プレイヤーは、他のプレイヤーが勝つのを防ぐために最善を尽くしています。 MINはゲーム内でマックスに対して行動します。
  • したがって、ゲーム ツリーには Max の層と MIN の層があり、各層は次のように呼ばれます。 プライ 。 Max が x を置き、次に MIN が o を置き、Max が勝つのを防ぎます。このゲームは終端ノードまで続きます。
  • この場合、MIN が勝つか、MAX が勝つか、引き分けになります。このゲーム ツリーは、MIN と MAX が交互に三目並べをする可能性の探索空間全体です。

したがって、ミニマックス手順の敵対的検索は次のように機能します。

  • MAX がゲームに勝つための最適な戦略を見つけることを目的としています。
  • これは深さ優先探索のアプローチに従います。
  • ゲーム ツリーでは、最適なリーフ ノードがツリーの任意の深さに現れる可能性があります。
  • 終端ノードが検出されるまで、ミニマックス値をツリーまで伝播します。

特定のゲーム ツリーでは、各ノードのミニマックス値から最適な戦略を決定できます。これは MINIMAX(n) と書くことができます。 MAX は最大値の状態への移行を優先し、MIN は最小値の状態への移行を優先します。その場合、次のようになります。

敵対的検索