人工知能 - 検索および解決戦略

第 5 章 検索と解決の戦略

5.1 検索の概念

人間の探索行動の実際
人工知能が解決すべき問題の多くは、明確な解決手順が存在せず、既存の知識を利用して段階的に探索することしかできません。
探索とは何ですか?
問題の実際の状況に基づいて利用可能な知識を常に探し、問題を満足に解決できるように低コストの推論ルートを構築するプロセスを探索と呼びます

検索で対処する必要がある基本的な質問

(1) 確実に解が見つかるかどうか
(2) 見つかった解が最適解かどうか
3) 時間と空間の計算量はどれくらいか
4) 操作を終了するか、無限ループに陥るか

1. 探索方向:
(1) データドリブン: 初期状態から開始する前方探索

前方検索 - 問題によって与えられた条件から開始します

(2) 目的主導: 目標状態から開始する逆探索
逆探索: 達成したい目標から開始して、どの演算子が目標を生成できるか、また、これらの演算子を適用して目標を生成するにはどのような条件が必要かを確認します。
(3) 双方向検索、
双方向検索: 順方向検索は開始状態から開始され、逆方向検索は宛先状態から開始され、2 つのパスが中間のどこかで交わるまで開始されます。

2. ブラインド サーチとヒューリスティック サーチ: (1) ブラインド サーチ:
特定の問題に関する関連情報なしで、固定手順 (操作演算子を順番にまたはランダムに呼び出す) に従って検索します。
(2) ヒューリスティック サーチ: 特定の問題領域で適用可能な知識を考慮します。演算演算子を呼び出すステップを動的に決定しより適切な演算演算子を優先し、できるだけ早く終了状態に到達するために不必要な検索を最小限に抑えます。

検索法の古典的な応用:
8 桁問題、
宣教師と野蛮人問題、
巡回セールスマン問題、
4 クイーン問題、
迷路問題
、ゲーム問題

5.2 状態空間知識表現法

問題の正式な説明:

状態の説明: 数学的手法を使用してシステム状態を定義する
初期状態、ターゲット状態
アクション ルール: 後続ノードを生成する
ターゲット テスト: 現在のノードがターゲット ノードであるかどうかを判断する

パス コスト: 各検索パスのコスト数値を定義します。

ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します

ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します

探索方法の一般的な手順
1.状態記述形式を定義する
2.演算子を定義する1 は、問題をある状態から別の状態に変換するためのメソッド コード、つまり状態進化規則
3.初期状態(初期ノード)を決定する4.状態の更新 -演算子
に従って現在の状態を更新します(演算子セットをスキャンし、現在の状態に適用できるいくつかの演算子を現在の状態に適用して新しい状態を取得し、ポインタを確立します) 5.ターゲット
テスト 1 は、更新された状態がターゲット状態であるかどうかを判断します。そうでない場合は 4 に進み、再度検索します。そうでない場合は、6 に進みます。
6. 検索が成功した場合は、検索パスを記録します (終了状態から開始状態への逆方向の関連ポインタ)、ソリューション パスを提供)
オープン テーブルとクローズ テーブルを使用して、検索で渡された各ノードを保存します
ここに画像の説明を挿入します

5.3 ブラインドグラフ検索戦略

全数検索とも呼ばれますが、事前に指定された検索制御戦略に従ってのみ検索でき、これらの制御戦略を変更するための中間情報はありません。
複雑な問題を解決するには盲目的で非効率的で不便です。

一般的に使用される方法には、幅優先検索深さ優先検索、およびこれら 2 つの検索方法の改良が含まれます。

5.3.1 幅優先の検索戦略

最も単純なグラフ検索アルゴリズムの 1 つはブラインド検索方法です。

目的は、グラフ内のすべてのノードを体系的に展開して調べて、結果を見つけることです。
基本的な考え方は、最初に最初のノードから 1 の距離にあるすべての頂点を検索し、次に最初のノードから 2 の距離にある他の頂点を検索するということです
。結果の位置の可能性は考慮されません。を実行し、結果が見つかるまでグラフ全体を徹底的に検索します。
ここに画像の説明を挿入します

口長所
完全性: 問題に解決策がある場合、幅優先探索は限られたステップ数内で常にターゲット ノードを見つけることができます
最適性: 経路コストを考慮せず、幅優先探索は常に最も浅いターゲット ノードを見つけることができます 口
短所:
各ノードを横断するため、検索効率が悪く、多くのメモリと時間を消費します

5.3.2 幅優先探索の拡張 – コストツリー幅探索

コスト ツリー幅検索 (コスト誘導検索) は、任意のシングル ステップ パス コストに最適な検索戦略です。
基本的な考え方は、最初に最小のパス コスト を持つノードを拡張すること
です。任意のノード n については、 f(n) を使用して次のように表します。 n を初期値に ノードのパスコスト、つまりコスト
ここに画像の説明を挿入します

ここに画像の説明を挿入します

5.3.3 深さ優先検索戦略
  • 深さ優先検索では、常に検索ツリーの現在のエッジにある最も深いノードが最初に展開されます。

  • 最も独創的なバイオニクス アルゴリズムの 1 つであり、ブランチ上のクローラーの検索プロセスから派生しました。

深さ優先検索アルゴリズム:
ステップ 1 では、最初のノード SO を OPEN テーブルに入れます。

ステップ 2 OPEN テーブルが空の場合、検索は失敗し、終了します。

ステップ 3. OPEN テーブルの最初のノード N を取得し、それを CLOSED テーブルに入れ、シーケンス番号 n を与えます。
ステップ 4: ターゲット ノードが Sg-N の場合、検索は成功して終了します。
ステップ 5: N を展開できない場合は、ステップ 2
とステップ 6 に進み、N を展開します。すべての子ノードに N を指すリターン ポインタを配置します。 OPEN テーブルの先頭に順番に入れて、手順 2 に進みます。
ここに画像の説明を挿入します

例: 宣教師と未開人の問題
3 人の宣教師と 3 人の未開人が川を渡っています。川の両側またはボートに
2 人を乗せることができるボートは 1 隻だけです
。未開人の数が宣教師の数より多い場合は、 、その後、宣教師は危険です。
安全に川を渡ってください。

ここに画像の説明を挿入します

ここに画像の説明を挿入します

利点:
メモリ要件が少なくなります。ノードのすべての子孫が完全に探索されている場合、このノードとそのすべての子孫をメモリから削除できます (オープン テーブルとクローズ テーブル)。
欠点:
完全ではなく、最適でもありません。

深さ優先検索の拡張 - 深さ限定検索
深さ限定
検索では、無制限検索ツリーの問題を解決するために、検索
の深さ l が事前に設定されます。検索プロセス中に、深さのあるノードには後続ノードがないため、バックトラックする必要があると見なされます。短所
: アルゴリズムの不便さが増大します。

5.3.4 バックトラッキング戦略

ここに画像の説明を挿入します

双方向検索初期状態から前方への検索と、目標状態から後方への検索の 2 つの検索
を同時に行い、あるノードで一致すると検索成功となります。


5.3.5 ブラインドサーチについての議論

アルゴリズムの評価
(1) 完全性:
ある種の解決可能な問題と探索プロセスにおいて、その探索プロセスがそのタイプの問題に対する解を確実に得ることができれば、その探索プロセスは完全であると呼ばれ、それ以外の場合は、その探索プロセスは不完全であると呼ばれます。
完全な検索プロセスは「検索アルゴリズム」と呼ばれます。不完全な検索プロセスはアルゴリズムではなく、「プロセス」と呼ばれます。
幅優先検索、コストツリー幅優先検索、および改良された境界付き深さ優先検索はすべて完全な検索プロセスであり、その他の検索プロセスは不完全です。
(2) 最適性 - 探索によって得られた解が最適解であるかどうか
(3) 時間計算量: アルゴリズムの所要時間

(4) 空間の複雑さ: アルゴリズムによるコンピューター メモリの需要

(5) 浸透度: P=L/T
ここで、L は最初のノードからターゲット ノードまでの経路長、T は検索プロセス全体で生成されるノードの総数です。
ペネトランスは、検索プロセス中に最初のノードからターゲット ノードに移動するときの検索領域の幅を反映します。T=L、P=1の場合、探索処理中に生成されるノードは毎回1つだけであり、それが解経路上のノードとなるため、探索効率が最も高くなる。Pが小さいほど、探索中に無駄なノードが生成され、探索効率が低下します。
ここに画像の説明を挿入します

重複ステータス:
ノードを展開するときに、新しく生成されたノードが開いているテーブルまたは閉じているテーブルにすでに存在します。この状況は重複ステータスと呼ばれます。場合によっては
、重複ステータスにより検索が失敗します。場合によっては、重複ステータスが原因で検索が失敗することがあります。状態を保持することもできますが、計算リソースの追加消費が発生するため、一般的には可能な限り状態の繰り返しを避けることが
期待されますが、このときノードポインタがリダイレクトされる場合があります。

5.4 ヒューリスティックなグラフ検索戦略

5.4.1 ヒューリスティック戦略

または「ヒューリスティック」(ヒューリスティック):演算子や検索方法の発見・発明に関する研究。
口状態空間検索では、ヒューリスティックは一連の演算子として定義され、状態空間から問題解決への最も有望なパスを選択
できます。口ヒューリスティック戦略:問題に関連するヒューリスティック情報を使用して検索します。

ヒューリスティック戦略が使用される基本的な状況は 2 つあります:
(1) 問題ステートメントとデータ取得における固有のあいまいさのため、問題には明確な解決策がない可能性があります
(2) 問題には明確な解決策があるかもしれませんが、その状態空間は特に大きく、検索中に生成される拡張状態の数は検索の深さに応じて指数関数的に増加します。

情報検索とも呼ばれるヒューリスティック検索では、問題に関する特定の知識を使用して検索方向の選択を支援します。
検索プロセス中に、展開される各ノードが評価されて最適な位置が取得され、この位置からターゲットまで検索されます。 。
ヒューリスティック検索の目的は、多数の不必要な検索パスを省略し、効率を向上させることです。
ヒューリスティック検索ではノードの評価が非常に重要であり、評価関数が検索の成否の鍵となります。

5.4.2 ヒューリスティック情報と評価関数

ヒューリスティック関数とも呼ばれる評価関数は、問題に対するヒューリスティックな情報を提供します。その目的に応じて、次の 3 つのカテゴリに分類できます。
拡張ノードの選択に使用されます。生成のためのやみくもな拡張を避けるために、どのノードを最初に拡張するかを決定します。
ノードの選択は、無駄なノードがあまりにも多く生成されるのを避けるために、後続のどのノードを生成するかを決定するために使用されます。
ノードの選択は、どの無駄なノードを拡張するかを決定するために使用されます。さらなる時間とスペースの無駄を避けるために削除されました。

ノード n の評価関数の構築は、通常 2 つの部分で構成されます。

最初のノードから現在のノード n までのパス コスト g(n)

現在のノード n からターゲット ノードまでの予想コスト h(n) は次
のようになります。評価関数は次のように表すことができます。
f(n)=g(n)+h(n)
ここで、g(x) はノードからの移動を表します。初期ノード S からノードまでのコスト x; h(x) は、ノード x からターゲット ノード S までの最適なパスのコスト推定値ですf(x) は、OPEN テーブル内のノードの順序を決定します。

g(x) は、検索の水平傾向を示します。これは検索の完全性には有益ですが、検索の効率には影響します。
h(x) は検索の垂直方向の傾向を示しており、検索の効率を向上させるのに役立ちますが、検索の完全性に影響します。
f(x) を決定するとき、g(x)+h(x) はそれぞれ適切な割合を占める必要があります。

ここに画像の説明を挿入します

ここに画像の説明を挿入します

貪欲検索のヒューリスティック関数では、展開されるノードからターゲット ノードまでの予想コストのみが考慮され、最初のノードから展開されるノードまでの実際のコストは考慮されません。
貪欲検索は深さ優先検索に似ています。常に最初に 1 つのブランチに沿って検索します。
貪欲な検索は両方とも不完全、最適ではありません

5.4.3 検索アルゴリズム

アルゴリズム A:
f(n)=g(n)+h(n)
コスト ツリー幅検索では、最初のノードから展開されるノードまでのパス コストのみが考慮されます。
貪欲検索では、拡張されるノードからの予想コストのみが考慮されます。アルゴリズム
A では、拡張されるパス コスト、拡張ノードからターゲット ノードまでの予想コスト、および最初のノードから拡張されるノードまでのパス コストの両方が考慮されます。

ここに画像の説明を挿入します
ここに画像の説明を挿入します

5.4.4 A* 探索アルゴリズムとその特性分析

ここに画像の説明を挿入します

5.4.5 ヒューリスティック検索: 山登り法
5.4.6 ヒューリスティック検索: シミュレーテッドアニーリングアルゴリズム
5.4.6 ヒューリスティック検索: 遺伝的アルゴリズム

5.5 AND/OR グラフ検索戦略 (未テスト)

おすすめ

転載: blog.csdn.net/weixin_64625466/article/details/134636956