あそぶ・実験

迷路をAIが解く 探索アルゴリズム対決

カーナビが一瞬でルートを出せるのは、迷路を賢く探す「アルゴリズム」のおかげ。同じ迷路を、しらみつぶしに調べる方法・一本道を突き進む方法・ゴールの方向を推定する方法で解かせて、調べたマスの数と見つけた経路の違いを見てください。

🧪 グラフ探索(幅優先/深さ優先/A*/貪欲法)+迷路生成(再帰的バックトラック)
調べたマス
経路の長さ
最短との差
比較結果

青=調べたマス、黄=いま調べている先端、緑=見つけた経路。左上がスタート、右下がゴール。

ポイント:賢い探索とは「調べるマスを減らしつつ、最短の経路を見つける」こと。幅優先は必ず最短だが調べすぎ、深さ優先は速いが遠回り、貪欲法は速いが最短の保証なし。A*はゴールまでの推定距離を使って、最短を保証しつつ調べるマスを減らします。カーナビ・ゲームのキャラ・配送計画はほぼA*の仲間です。

4つのアルゴリズム

アルゴリズム探し方長所短所
幅優先探索(BFS)スタートから近い順に全部調べる必ず最短調べるマスが多い
深さ優先探索(DFS)行けるところまで進み、行き止まりで戻るメモリが少なくて済む最短でないことが多い
貪欲法(Greedy)ゴールまでの直線距離が近いマスを優先調べるマスが少ない壁に阻まれると遠回りに
A*(エースター)「ここまでの距離+ゴールまでの推定」が小さい順最短を保証しつつ効率的推定(ヒューリスティック)の設計が要

A*が「賢い」理由

A*は各マスに f = g + h という点数を付けます。g はスタートからの実距離、h はゴールまでの推定距離(迷路ならマンハッタン距離)。h が「実際の距離を超えない」推定なら、A*は必ず最短経路を見つけることが証明されています。1968年にスタンフォード研究所のロボット「シェーキー」の経路計画のために開発されました。

現実での使われ方

分野使い方
カーナビ・地図アプリ道路をグラフとみなし、A*やその改良版(ダイクストラ法+前処理)で最短ルート
ゲームのキャラクター敵キャラが壁を避けてプレイヤーに向かう移動はほぼA*
配送・物流倉庫ロボットの走行経路、配送順の決定
ネットワークインターネットのパケットの経路選択(ダイクストラ法)

観察のコツ

「抜け道の多さ」を上げると迷路に複数の経路が生まれ、深さ優先と貪欲法が遠回りする様子がはっきり見えます。抜け道0%(完全迷路)では経路が1本しかないため、どのアルゴリズムも同じ経路にたどり着き、違いは「調べたマスの数」だけになります。

引用・転載について

本ページのシミュレーション結果・数値は、出典を明記いただければブログ・ニュース記事・SNS・授業や社内資料への引用を歓迎します。事前連絡は不要です。

推奨クレジット表記:出典:シミュラボ「迷路をAIが解く 探索アルゴリズム対決」 https://shimulabo.com/sims/maze-ai/

よくある質問

迷路はどう作っている?
「再帰的バックトラック」という方法で、スタートから壁を掘り進み、行き止まりで戻る操作を繰り返して完全迷路(経路が1本)を作ります。「抜け道の多さ」の分だけ、あとから壁をランダムに壊しています。
A*が幅優先より調べるマスが少ないのはなぜ?
幅優先はゴールの方向を知らないため、全方向に均等に広がります。A*はゴールまでの推定距離で「見込みのない方向」を後回しにできるため、無駄な探索が減ります。
貪欲法が遠回りする理由は?
「ゴールに近そう」だけで選ぶため、壁の裏側の行き止まりに引き込まれます。戻って別の道を探す間に、経路が長くなります。

💡 こんなシミュも見てみたい?

あなたの「これ数字で見たい」を送ってください。投票で人気の案から実際に作ります。

リクエストする →
🗳️ みんなのリクエストに投票する →