web-dev-qa-db-ja.com

ヒューリスティックとメタヒューリスティックの違いは何ですか?

アルゴリズムについて調査した結果、混乱を招く2つの用語が見つかりました。私は少なくとも20の論文を読みましたが、どちらについても明確な定義はありません。誰かがヒューリスティックとメタヒューリスティックのアルゴリズムの違いを教えてくれるといいのですが。そして、可能であれば、そのソースを追加します。

ps:言葉の意味はすでに知っていますが、コンピューターサイエンスでの正確な違いはわかりません。

前もって感謝します

28
Nico Liu

問題の近似(近似ではない)ソリューションのようなヒューリスティックを考えることができます。近似と近似の違いは、1つ目は問題の解決策を適切に推測することですが、それがどれほど優れているかは実際にはわかりません。 2つ目は、最適なソリューションにどれだけ近いかを証明できるソリューションを取得することです。

したがって、ヒューリスティックはしばしば問題に依存します。つまり、特定の問題のヒューリスティックを定義します。メタヒューリスティクスは、問題に依存しない手法であり、幅広い問題に適用できます。たとえば、ヒューリスティックは、Quicksortでピボットするためにランダムな要素を選択することです。メタヒューリスティックは、適用される問題について何も知りません。関数をブラックボックスとして扱うことができます。

ヒューリスティックは問題依存の情報を利用して特定の問題の「十分に良い」解決策を見つける一方で、メタヒューリスティックは設計パターンのように、幅広い問題に適用できる一般的なアルゴリズムのアイデアであると言えます。

35
Alejandro Piad

アレハンドロの回答と比較して、適切な引用をするために:

"メタヒューリスティックは、ヒューリスティック最適化アルゴリズムを開発するための一連のガイドラインまたは戦略を提供する高レベルの問題に依存しないアルゴリズムフレームワークです。[...]メタヒューリスティックフレームワークで表現されたガイドラインに従って、ヒューリスティック最適化アルゴリズムの問​​題固有の実装メタヒューリスティックとも呼ばれます"(Sörensen、Glover on http://scholarpedia.org/article/Metaheuristics

完全に完了すること。正確アルゴリズム、近似アルゴリズム、およびヒューリスティックアルゴリズムを区別する必要があります。正確なアルゴリズムは正確な解を見つけます。近似アルゴリズムは、許容可能な時間内で近似解を見つけるとともに、想定される最適解との不一致範囲を示す必要があります。ヒューリスティックは、許容可能な時間内に、十分なソリューションを見つけるだけです。

ちなみに、アレハンドロクイックソートの例は、2つまたは3つの異なる理由により、十分とは言えません。

  1. 実際、ヒューリスティックスとメタヒューリスティックスは最適化の分野の一部です。したがって、彼らが取り組もうとしている問題は、ソートではなく、最適を検索することです。
  2. ヒューリスティックは通常、計算したい意味で、対処したい問題が複雑すぎる場合に使用されます。これは、並べ替えの問題には当てはまりません。
  3. クイックソートの例で指摘されたのは、よく理解していればランダム要素です。原則として、決定論的なヒューリスティックを使用できます。私は決定論的なメタヒューリスティックスに遭遇したことはありませんが、おそらくコーディングすることができます。少し「言葉で遊ぶ」かもしれませんが、ランダム要素は(メタ)ヒューリスティックスよりも「確率的検索」をより適切に特徴付けます。
7
Touki

詳細な説明については、以下を参照してください。

Sörensen、K.(2015)。Metaheuristics —隠された比喩。OperationalResearchの国際トランザクション、22(1)、3-18

メタヒューリスティックは、ヒューリスティック最適化アルゴリズムを開発するための一連のガイドラインまたは戦略を提供する、高レベルの問題に依存しないアルゴリズムフレームワークです。この用語は、そのようなフレームワークで表現されたガイドラインに従って、ヒューリスティック最適化アルゴリズムの問​​題固有の実装を指す場合にも使用されます(Sörensen、2015年)。

ヒューリスティックはガイドラインであり、メタヒューリスティックはそれらを使用するフレームワークです。

2
dorien