ウェル毎マトロイドためことが確立された、任意の重み関数、アルゴリズムが終了の最大重量基準返し。それで、逆方向も本当ですか?つまり、貪欲なアルゴリズムが存在する場合、マトロイド構造も存在する必要があります。
ウェル毎マトロイドためことが確立された、任意の重み関数、アルゴリズムが終了の最大重量基準返し。それで、逆方向も本当ですか?つまり、貪欲なアルゴリズムが存在する場合、マトロイド構造も存在する必要があります。
回答:
貪欲なアルゴリズムは、正式に定義された概念ではありません。この直感的な概念を捉えようとするさまざまなモデルがありますが、貪欲なアルゴリズムとは何のコンセンサスもありません。貪欲なアルゴリズムが意味するものの正式な定義を指定しない限り、質問に「はい」または「いいえ」と答えることはできません。
実際、貪欲なアルゴリズムで解決できる問題の完全で一般的な説明は、マトロイドの埋め込みであり、マトロイドの概念とグリードイドの概念の両方を一般化します。答えはノー問題マトロイド構造を有していない貪欲アルゴリズムの必要性によって解決可能ではありませんが、それはされます(あり、残念ながら、はるかに複雑)マトロイド埋め込みの構造を有しています。
このいくつかのメンタルモデルは、最小全域木を見つけることです。Kruskalのアルゴリズムで使用される構造はマトロイドですが、Primのアルゴリズム(開始ノードが必要)で使用される構造はマトロイドではありません。(ただし、それはグリードイドであり、マトロイドの埋め込みです。)
ヘルマン等。(1993)、彼らの論文「貪欲な構造の正確な特徴づけ」は、マトロイドおよびグリードイドに使用されるのと同じ形式である欲張りアルゴリズムの概念を集合システムの観点から定義しています。セットシステム
この形式の観点から定義された貪欲なアルゴリズムは非常に単純です:空のセットから始めて、基底に達するまで単一の要素を連続的に追加し、常に(i)セットが各ステップで実行可能であることを保証し、( ii)追加する要素は、結果の目的関数wrtを最大化します。追加できるすべての代替要素。(つまり、概念的には、実行可能なすべての選択肢を追加してみて、最も客観的な価値が得られる選択肢を選択します。)
あなたは、おそらく、貪欲アルゴリズムの他の形態があるかもしれませんが、このセット・システム・ベースのアルゴリズムを記述したアルゴリズムと組合せ最適化にはいくつかの教科書があると主張している可能性が貪欲アルゴリズムが。それは、あなたが合わない何かを記述することを妨げるものではありませんが、それでも貪欲と呼ぶことができると思います。(それでも、これはマトロイド構造を持つ可能性のあるものをすべてカバーしますが、はるかに一般的です。)
何ヘルマンら。彼らがこのアルゴリズムがいつ機能するかを説明することです。すなわち:
彼らは、線形目的関数(目的値が要素の重みの合計である)に対して、貪欲アルゴリズムは、マトロイド埋め込みとして定義する構造に正確に作用することを示しています。
これらは、いわゆるボトルネック目標(セットの目標値が個々の要素の重みの最小値に等しい)に対して同様の特性を提供します。そして
それらは、どの目的関数(線形関数を超える)がマトロイド埋め込みの貪欲アルゴリズムによって最適化されるかを正確に特徴付けます。
以下の問題を考慮してください。これは、可能な限り最大の注意を要する欲張りアルゴリズムを使用することで解決できます。しかし、この問題にはマトロイド構造はありません。
穴の範囲:位置x_1、x_2、...、x_nに穴があります。長さ10 cmのパッチがあります。できるだけ少ないパッチを使用して穴にパッチを適用します。繰り返しますが、これは貪欲な方法で解決することができます(パッチをできるだけ正確に置くだけです)が、マトロイド構造はありません。