ヒューリスティックとアルゴリズムの違いは何ですか?
ヒューリスティックとアルゴリズムの違いは何ですか?
回答:
アルゴリズムは、問題に対する自動化されたソリューションの記述です。アルゴリズムの動作は正確に定義されています。解決策は可能な限り最高の解決策であるかもしれませんが、最初からどのような結果が得られるかはわかっています。あなたは、実装するアルゴリズムを(の一部)を取得するためにいくつかのプログラミング言語を使ってプログラムを。
現在、いくつかの問題は困難であり、許容可能な時間内に許容可能なソリューションを取得できない場合があります。このような場合、任意の選択(教育的推測)を適用することで、それほど悪くない解をより速く得ることができます。これはヒューリスティックです。
ヒューリスティックは依然として一種のアルゴリズムですが、問題の考えられるすべての状態を探索するわけではなく、最も可能性の高いものを探索することから始まります。
典型的な例はゲームです。チェスのゲームプログラムを書くとき、考えられるあらゆる動きをある深さのレベルで試し、評価関数をボードに適用することを想像できます。ヒューリスティックは明らかに悪い動きで始まる完全なブランチを除外します。
場合によっては、最適なソリューションではなく、いくつかの制約に適合するソリューションを探します。優れたヒューリスティックは短時間で解決策を見つけるのに役立ちますが、唯一の解決策が試行しないことを選択した状態にある場合、解決策を見つけることができない場合もあります。
最適な解を見つけるための効率的なアルゴリズムが知られていない多くの問題には、最適に近い結果を非常に迅速に生成するヒューリスティックなアプローチがあります。
いくつかの重複があります。「遺伝的アルゴリズム」は受け入れられる用語ですが、厳密に言うと、これらはアルゴリズムではなくヒューリスティックです。
ヒューリスティックは、一言で言えば「経験に基づく推測」です。ウィキペディアはそれをうまく説明しています。最後に、指定された問題に対する最適な解決策として、「一般に受け入れられる」方法が採用されます。
ヒューリスティックは、問題解決、学習、発見に役立つ経験ベースの手法の形容詞です。ヒューリスティックな方法を使用して、可能な限り最良の答え、または「最適なソリューション」に近いことが望まれるソリューションにすばやく到達します。ヒューリスティックは、「経験則」、経験に基づく推測、直感的な判断、または単に常識です。ヒューリスティックは、問題を解決する一般的な方法です。名詞としてのヒューリスティックスは、ヒューリスティック手法の別名です。
より正確に言えば、ヒューリスティックスは、人間や機械の問題解決を制御するために、緩やかに適用可能な、容易にアクセス可能な情報を使用する戦略を表しています。
アルゴリズムは、問題の解決に使用される命令の有限セットを含む方法です。この方法は、数学的にまたは科学的に問題を解決することが証明されています。正式な方法と証明があります。
ヒューリスティックアルゴリズムは、一般的なヒューリスティックの方法で、多くの実際的なシナリオで問題の許容可能なソリューションを生成できるアルゴリズムですが、その正確さの正式な証明はありません。
アルゴリズムが実行されるべき動作の自己完結型のステップバイステップのセットである4を、典型的には、(コンピュータまたはヒト)の有限のシーケンスとして解釈され、等の問題に対する解決策を決定するための命令:Aへの経路が存在するがB、またはAとBの間の最小パスは何ですか。後者の場合、「かなり近い」代替ソリューションで満足することもできます。
アルゴリズムには特定のカテゴリがあり、そのうちの1つがヒューリスティックアルゴリズムです。この場合のアルゴリズムの(証明された)プロパティに応じて、次の3つのカテゴリのいずれかに分類されます(注1)。
近似アルゴリズムもヒューリスティックですが、出力するソリューション(値)にバインドされていることが証明されているという強いプロパティがあることに注意してください。
一部の問題については、最適なソリューションを計算するための「効率的な」アルゴリズムを発見した人はいません(注2)。これらの問題の1つは、よく知られた巡回セールスマン問題です。たとえば、巡回セールスマン問題に対するクリストフィズのアルゴリズムは、最適解の50%以内であることが証明されなかったため、以前はヒューリスティックと呼ばれていました。しかしながら、それが証明されているので、クリストフィデスのアルゴリズムはより正確に近似アルゴリズムと呼ばれます。
コンピュータで実行できることには制限があるため、常に最適なソリューションを効率的に見つけることが常に可能とは限りません。問題に十分な構造がある場合、たとえ解空間が巨大であっても(つまり、最短経路の問題において)、解空間をトラバースする効率的な方法があるかもしれません。
通常、ヒューリスティックスは、「エキスパート情報」または「教育的推測」を追加して検索方向をガイドすることにより、アルゴリズムの実行時間を改善するために適用されます。実際には、ヒューリスティックは、最初にどこを見るべきかを決定するための最適なアルゴリズムのサブルーチンである場合もあります。
(注1):さらに、アルゴリズムは、ランダムな要素または非決定的な要素を含むかどうかによって特徴付けられます。常に同じ方法で実行され、同じ答えを生成するアルゴリズムは、決定論的と呼ばれます。
(注2):これはP対NP問題と呼ばれ、NP完全およびNP困難として分類される問題には、「効率的な」アルゴリズムがありません。注意; @Krissがコメントで述べたように、計算に指数時間または空間が必要になる可能性がある「悪い」タイプの問題さえあります。
質問の一部に答えるいくつかの答えがあります。私はそれらの完成度が低く、十分に正確ではないと判断し、@ Krissの承認済みの回答を編集しないことにしました
実際、私はそれらの間には多くの共通点があるとは思いません。一部のアルゴリズムは、ロジックでヒューリスティックを使用します(多くの場合、計算が少なくなるか、結果が速くなります)。通常、ヒューリスティックはいわゆる貪欲アルゴリズムで使用されます。
ヒューリスティックは、アルゴリズムで最良の選択を行うために(選択を行う必要がある場合)使用するとよいと考えるいくつかの「知識」です。たとえば...チェスのヒューリスティックスは、これがより強力な数値であることを知っているので、可能であれば、常に対戦相手のクイーンを奪います。ヒューリスティックスは、それが正しい答えにつながることを保証しませんが、(仮定が正しい場合)多くの場合、はるかに短い時間で最良に近い答えを取得します。
ヒューリスティックは、将来のソリューションの状態を予測するのが難しいため、人工知能の学習ベースモデルで使用される制約に近いと思います。
しかし、上記の回答を読んだ後の私の疑問は、「確率的最適化手法を使用してヒューリスティックをどのようにうまく適用できるのか、または確率的最適化と一緒に使用すると、完全なアルゴリズムとして機能するのか」です。
私が読んだ最良の説明の1つは、私が今引用しているすばらしい本Code Completeから来ています。
ヒューリスティックは、答えを探すのに役立つテクニックです。ヒューリスティックは見方だけを示し、何を見つけるかを教えてくれるので、その結果は偶然の影響を受けます。ポイントAからポイントBに直接移動する方法は示されていません。ポイントAとポイントBがどこにあるかさえわからない場合があります。実際には、ヒューリスティックはピエロのスーツのアルゴリズムです。予測可能性は低く、楽しいですし、30日間の返金保証はありません。
誰かの家まで運転するためのアルゴリズムは次のとおりです。ハイウェイ167を南に向かってピュイ・アルプまで行きます。サウスヒルモールの出口を出て、4.5マイルの丘をドライブします。食料品店のそばの信号を右折し、最初の角を左折します。714 North Cedarの左側にある大きな黄褐色の家の私道に入ります。
誰かの家に行くためのヒューリスティックは次のとおりです。メールで送った最後の手紙を見つけます。帰りの住所にある町へ車で行きます。町に着いたら、家のどこにいるか尋ねてください。誰もが私たちを知っています。誰かが喜んであなたを助けてくれます。誰も見つからない場合は、公衆電話からお電話ください。
アルゴリズムとヒューリスティックの違いはわずかであり、2つの用語は多少重複しています。この本の目的上、2つの主な違いは、ソリューションからの間接参照のレベルです。アルゴリズムが直接指示を出します。ヒューリスティックは、自分自身の指示を発見する方法、または少なくともそれらを探す場所を示します。