回答:
@nbroはすでにヒルクライミングはローカル検索アルゴリズムのファミリーであると述べています。だから、質問でヒルクライミングと言ったとき、私はあなたが標準的なヒルクライミングについて話していると思いました。標準バージョンの山登りにはいくつかの制限があり、多くの場合、次のシナリオでスタックします。
これらの問題を解決するために、山登りアルゴリズムの多くのバリアントが開発されました。これらは最も一般的に使用されます:
ヒルクライムアルゴリズムの成功は、状態空間ランドスケープのアーキテクチャに依存します。マキシマとプラトーがほとんどない場合は常に、ヒルクライム検索アルゴリズムのバリアントが非常にうまく機能します。しかし、現実の世界では、平らな床にはげたヤマアラシの家族が広く散らばっていて、各ヤマアラシの針の先端に小さなヤマアラシが住んでいるような風景があります(本の第4章「人工知能:A現代的なアプローチ)。NP-Hardの問題は、通常、立ち往生する指数関数的な極大値を持ちます。
与えられたアルゴリズムはこれらの種類の問題を克服するために開発されました:
リファレンスブック-人工知能:現代的なアプローチ
ヒルクライミングはアルゴリズムではなく、「ローカルサーチ」アルゴリズムのファミリです。「山登り」アルゴリズムのカテゴリに分類される特定のアルゴリズムは、2 opt、3 opt、2.5 opt、4 opt、または一般的には任意のN optです。これらのローカル検索アルゴリズムの一部(TSPに適用)の詳細については、「David S. JohnsonとLyle A. McGeochによる」ペーパー「巡回セールスマン問題:ローカル最適化のケーススタディ」の第3章を参照してください。
このカテゴリの1つのアルゴリズムを他のアルゴリズムと区別するのは、アルゴリズムが使用する「近傍関数」です(簡単に言えば、特定のソリューションの隣接ソリューションを見つける方法)。実際には、これが常に当てはまるわけではないことに注意してください。多くの場合、これらのアルゴリズムにはいくつかの異なる実装があります。
ヒルクライミングアルゴリズムの最も明らかな制限は、その性質によるものです。つまり、それらはローカル検索アルゴリズムです。したがって、彼らは通常ちょうど見つけるローカル極大(又は極小)を。したがって、これらのアルゴリズムのいずれかがすでに局所的最小値(または最大値)に収束していて、ソリューションまたはサーチスペースに、この見つかったソリューションに近い、より良いソリューションがある場合、これらのアルゴリズムのいずれもこれを見つけることができません。より良いソリューション。彼らは基本的に閉じ込められます。
ローカル検索アルゴリズムは通常、単独では使用されません。これらは、シミュレーテッドアニーリング、反復ローカル検索などのその他のメタヒューリスティックアルゴリズムのサブルーチンとして、または任意のアリコロニーアルゴリズムで使用されます。そのため、それらの制限を克服するために、通常、それらを単独で使用することはありませんが、確率論的な性質を持ち、グローバルな最小値または最大値を見つけることができる他のアルゴリズム(たとえば、任意のアリコロニーアルゴリズム)と組み合わせて使用します。