アルゴリズムについて調べた後、私を混乱させる2つの用語を見つけました。私は少なくとも20の論文を読みましたが、どちらについても明確な定義はありません。誰かがヒューリスティックアルゴリズムとメタヒューリスティックアルゴリズムの違いを教えてくれることを願っています。そして、可能であれば、そのソースを追加します。
ps:私はすでに単語の意味が何であるかを知っていますが、コンピュータサイエンスにおけるそれらの正確な違いが何であるかはわかりません。
前もって感謝します
アルゴリズムについて調べた後、私を混乱させる2つの用語を見つけました。私は少なくとも20の論文を読みましたが、どちらについても明確な定義はありません。誰かがヒューリスティックアルゴリズムとメタヒューリスティックアルゴリズムの違いを教えてくれることを願っています。そして、可能であれば、そのソースを追加します。
ps:私はすでに単語の意味が何であるかを知っていますが、コンピュータサイエンスにおけるそれらの正確な違いが何であるかはわかりません。
前もって感謝します
問題の近似(近似ではない)ソリューションのようなヒューリスティックを考えることができます。近似と近似の違いは、最初は問題の解決策を適切に推測することですが、それがどれほど優れているかは実際にはわからないということです。2つ目は、最適なソリューションにどれだけ近いかを証明できるソリューションを取得することです。
したがって、ヒューリスティックは多くの場合問題に依存します。つまり、特定の問題に対してヒューリスティックを定義します。メタヒューリスティックは、問題に依存しない手法であり、幅広い問題に適用できます。ヒューリスティックとは、たとえば、クイックソートでピボットするためのランダムな要素を選択することです。メタヒューリスティックは、適用される問題について何も知りません。関数をブラックボックスとして扱うことができます。
ヒューリスティックは問題に依存する情報を利用して特定の問題に対する「十分な」解決策を見つけると言えますが、メタヒューリスティックはデザインパターンのように、幅広い問題に適用できる一般的なアルゴリズムのアイデアです。
アレハンドロの答えに関連して、適切な引用をするために:
«メタヒューリスティックは、ヒューリスティック最適化アルゴリズムを開発するための一連のガイドラインまたは戦略を提供する、問題に依存しない高レベルのアルゴリズムフレームワークです[...]メタヒューリスティックフレームワークで表現されたガイドラインに従ったヒューリスティック最適化アルゴリズムの問題固有の実装メタヒューリスティックとも呼ばれます»(Sörensen、Glover on http://scholarpedia.org/article/Metaheuristics)
完全に完了するため。正確なアルゴリズム、近似アルゴリズム、ヒューリスティックアルゴリズムを区別する必要があります。正確なアルゴリズムは正確な解決策を見つけます。近似アルゴリズムは、許容可能な時間内に近似解を見つけ、想定される最適解との不一致範囲を示す必要があります。ヒューリスティックは、許容可能な時間内に、十分な解決策を見つけるだけです。
ちなみに、Alejandroクイックソートの例は、2つまたは3つの異なる理由で完全には適切ではないようです。
詳細な説明については、以下を参照してください。
Sörensen、K。(2015)。メタヒューリスティック—公開されたメタファー。オペレーションズリサーチにおける国際取引、22(1)、3-18。
メタヒューリスティックは、ヒューリスティック最適化アルゴリズムを開発するための一連のガイドラインまたは戦略を提供する、問題に依存しない高レベルのアルゴリズムフレームワークです。この用語は、そのようなフレームワークで表現されたガイドラインに従ったヒューリスティック最適化アルゴリズムの問題固有の実装を指すためにも使用されます(Sörensen、2015年)。
ヒューリスティックはガイドラインであり、メタヒューリスティックはそれらを使用するフレームワークです。