ヒルクライミングアルゴリズムにはどのような制限があり、それらを克服するにはどうすればよいですか?


回答:


6

@nbroはすでにヒルクライミングはローカル検索アルゴリズムのファミリーであると述べています。だから、質問でヒルクライミングと言ったとき、私はあなたが標準的なヒルクライミングについて話していると思いました。標準バージョンの山登りにはいくつかの制限があり、多くの場合、次のシナリオでスタックします。

  • ローカルマキシマ:ローカル最大値の近くに到達する山登りアルゴリズムは、ピークに向かって引き寄せられ、そこに行き詰まり、他に行く場所がありません
  • リッジ:これらは極大値のシーケンスであり、アルゴリズムのナビゲートを困難にします。
  • 高原:これは平坦な状態空間領域です。進むべき困難がないので、アルゴリズムはしばしば高原で失われます。

これらの問題を解決するために、山登りアルゴリズムの多くのバリアントが開発されました。これらは最も一般的に使用されます:

  • 確率的ヒルクライミングでは、上り坂の動きからランダムに選択します。選択の確率は、上り坂の急勾配によって異なります。
  • First-Choice Climbingは、より優れたクライミングが見つかるまでランダムにサクセサを生成することにより、上記のものを実装します。
  • ランダム再開の山登り検索は、ランダムに生成された最初の動きから、目標状態に到達するまで検索します。

ヒルクライムアルゴリズムの成功は、状態空間ランドスケープのアーキテクチャに依存します。マキシマとプラトーがほとんどない場合は常に、ヒルクライム検索アルゴリズムのバリアントが非常にうまく機能します。しかし、現実の世界では、平らな床にはげたヤマアラシの家族が広く散らばっていて、各ヤマアラシの針の先端に小さなヤマアラシが住んでいるような風景があります(本の第4章「人工知能:A現代的なアプローチ)。NP-Hardの問題は、通常、立ち往生する指数関数的な極大値を持ちます。
与えられたアルゴリズムはこれらの種類の問題を克服するために開発されました:

  • 刺激されたアニーリング
  • ローカルビーム検索
  • 遺伝的アルゴリズム

リファレンスブック-人工知能:現代的なアプローチ


ヒルクライミングの問題を克服するために利用できる選択肢は他にもあります。つまり、順列グループ、パターンデータベース、および文法ベースの検索です。彼らは、ドメイン固有の知識を使用して、状態空間での検索を高速化しています。
マヌエルロドリゲス

はい、@ ManuelRodriguez。ドメイン固有の知識に依存するアルゴリズムは、優れた結果をもたらします。しかし、ヒルクライムサーチの制限を克服できるいくつかの方法を挙げて、一般的な問題への回答を維持しようとしました。
Ugnes 2018年

5

ヒルクライミングはアルゴリズムではなく、「ローカルサーチ」アルゴリズムのファミリです。「山登り」アルゴリズムのカテゴリに分類される特定のアルゴリズムは、2 opt、3 opt、2.5 opt、4 opt、または一般的には任意のN optです。これらのローカル検索アルゴリズムの一部(TSPに適用)の詳細については、「David S. JohnsonとLyle A. McGeochによる」ペーパー「巡回セールスマン問題:ローカル最適化のケーススタディ第3章を参照してください。

このカテゴリの1つのアルゴリズムを他のアルゴリズムと区別するのは、アルゴリズムが使用する「近傍関数」です(簡単に言えば、特定のソリューションの隣接ソリューションを見つける方法)。実際には、これが常に当てはまるわけではないことに注意してください。多くの場合、これらのアルゴリズムにはいくつかの異なる実装があります。

ヒルクライミングアルゴリズムの最も明らかな制限は、その性質によるものです。つまり、それらはローカル検索アルゴリズムです。したがって、彼らは通常ちょうど見つけるローカル極大(又は極小)を。したがって、これらのアルゴリズムのいずれかがすでに局所的最小値(または最大値)に収束していて、ソリューションまたはサーチスペースに、この見つかったソリューションに近い、より良いソリューションがある場合、これらのアルゴリズムのいずれもこれを見つけることができません。より良いソリューション。彼らは基本的に閉じ込められます。

ローカル検索アルゴリズムは通常、単独では使用されません。これらは、シミュレーテッドアニーリング、反復ローカル検索などのその他のメタヒューリスティックアルゴリズムのサブルーチンとして、または任意のアリコロニーアルゴリズムで使用されます。そのため、それらの制限を克服するために、通常、それらを単独で使用することはありませんが、確率論的な性質を持ち、グローバルな最小値または最大値を見つけることができる他のアルゴリズム(たとえば、任意のアリコロニーアルゴリズム)と組み合わせて使用​​します。


いい答え(+1)!アリコロニーアルゴリズムについて学ぶためのリソース(YouTube、ブログ投稿、アーカイブペーパー、本)を推薦できますか?私はそれについて聞いたことがなく、それらの大まかな考えを知りたいです。
Martin Thoma

1
@MartinThoma申し訳ありませんが、ACSに関する非常に優れたチュートリアルは本当に知りません。多分あなたは次の簡単なチュートリアルと対応する実装から始めることができます:cleveralgorithms.com/nature-inspired/swarm/…。あなたはまた、より深刻な実装に興味があれば、TSPに適用され、その後、この1を見て:aco-metaheuristic.org/aco-code Stützle(その他)によって実装され、発展への貢献の一つをこれらのテクニックの。
nbro

質問者はウィキペディアの記事を読んだので、山登りの正式な定義は何かを知っています。問題は、それを人工知能にどのように使用するかということです。ヒルクライミングはローカルスペースでしか検索できないため、AI関連の問題が発生しにくいことがわかっています。通常、検索はローカルオプティマで行き詰まります。これは、巡回セールスマン問題の最短ルートが見つからないことを意味します。
マヌエルロドリゲス

1
@MartinThomaとにかく、あなたは研究論文を見ることもできます。私はあなたにいくつかの重要な研究者だけを伝えることができます:ドリゴ(これらの技術を導入した最初の人、AFAIK)、ガンバルデラとシュテッツレ。彼らの論文を見てください。どちらを提案すればよいかわかりません。また、詳細に行きたくなったら、群れの知能(ボナボー作)を専門に扱った本があります。
nbro
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.