ヒューリスティック探索とは
ヒューリスティック探索とは、ゴールにどれだけ近づけそうかという「見込み」で手を評価し、望みの高い候補から先に調べていく探索の方法のことです。すべての可能性をしらみ潰しに試すのではなく、当たりをつけて効率よく答えへ近づく狙いがあります。カーナビの経路案内やパズルを解くプログラムなど、古くからAIの中核を支えてきた考え方です。
英語表記:heuristic search(情報探索=informed search)
ヒューリスティック探索の仕組み
鍵になるのは、いまの状態からゴールまでの近さをおおまかに見積もる評価関数です。地図の探索なら「目的地までの直線距離」のような目安を使い、その値が小さい(ゴールに近そうな)候補から優先して調べます。代表例がA*(エースター)で、ここまでにかかった実際のコストと、ここから先の見込みコストを足し合わせ、最も有望そうな道を選びます。見込みの立て方しだいで、無駄な調べごとをぐっと減らせるわけです。
幅優先・深さ優先探索との違い
比べてみると性格の違いがはっきりします。幅優先探索や深さ優先探索は、手がかりを使わず手当たりしだいに調べる「非情報探索」で、確実な代わりに候補が増えると一気に遅くなりがち。いっぽうヒューリスティック探索は、見込みという手がかりで有望な方向へ絞り込む「情報探索」です。総当たりか、当たりをつけるか。この一点が両者の分かれ目といえるでしょう。山登り法や焼きなまし法も、この見込みを使う仲間にあたります。
ビジネスでの使われ方
身近な応用が、カーナビや配送ルートの最適化です。道順を全部試す時間はないので、見込みで有望な経路に絞り、素早く答えを出します。工場の生産計画や人員シフトづくりのように、選択肢が天文学的に多い問題でも、現実的な時間で「そこそこ良い解」を見つける道具として働きます。ただし必ず最適解にたどり着くとは限らない点は、頭の隅に置いておきたいところ。経営の現場では、完璧な答えより「十分に良い答えを速く」が効く場面は少なくありません。
Topicヒューリスティックと「エウレカ!」は同じ語源
ヒューリスティックの語源は、ギリシャ語で「見つける・発見する」を意味するheuriskō(ヘウリスコー)です。じつは、アルキメデスが浮力の原理をひらめいた瞬間に叫んだとされる「エウレカ(Eureka=わかった!)」も、同じ語根から生まれた言葉。「発見」という一点で兄弟のような関係にあります。きっちり計算し尽くすより、ひらめきに近い当たりで答えを手繰り寄せる。名前そのものが、この探索の性格をよく言い表しているといえるでしょう。
ヒューリスティック探索に関するよくある質問
- ヒューリスティック探索を使えば、必ず最短ルートが見つかりますか?
- 見込みの立て方しだいです。A*のように見込みが実際のコストを上回らない性質を満たせば最短を保証できますが、速さを優先する貪欲な方法では、最短ではない答えで止まることもあります。
- ヒューリスティック探索は、今の生成AIとどうつながっていますか?
- 深層学習が広まる前のゲームAIや経路探索を支えた古典AIの中核です。今の生成AIとは仕組みが異なりますが、すべてを試さず見込みで絞り込むという発想は、AIの探索の基本として受け継がれています。