すべての貪欲なアルゴリズムはマトロイド構造を持っていますか?


13

ウェル毎マトロイドためことが確立された、任意の重み関数、アルゴリズムが終了の最大重量基準返し。それで、逆方向も本当ですか?つまり、貪欲なアルゴリズムが存在する場合、マトロイド構造も存在する必要があります。MwGreedyBasis(M,w)M


ダイクストラのアルゴリズムは、貪欲なアルゴリズムと見なされることがよくあります(たとえば、KleinbergとTardosによる「アルゴリズム設計」のセクション4.4を参照)。単一ソースの最短パスのマトロイド解釈については知りません。
ニールヤング

実区間のセットを最小数のペアごとに素なサブセットに分割すると、自然な貪欲アルゴリズムが使用されます(開始時間で間隔を列挙し、可能であれば既存のサブセットに追加するか、新しいサブセットを開始します。クラインバーグの第4章を参照してください。タルドス)。この問題はマトロイドとして理解できますか?
ニールヤング

回答:


11

貪欲なアルゴリズムは、正式に定義された概念ではありません。この直感的な概念を捉えようとするさまざまなモデルがありますが、貪欲なアルゴリズムとは何のコンセンサスもありません。貪欲なアルゴリズムが意味するものの正式な定義を指定しない限り、質問に「はい」または「いいえ」と答えることはできません。

greedoidと呼ばれるマトロイドの一般化があります。これは、欲張りなアルゴリズムに触発されて見たいものです。


貪欲なアルゴリズムのクラスのプロパティに同意する場合、正式な定義は必要ありません。たとえば、すべての貪欲なアルゴリズムが(正式に定義された)プロパティPを持っていることに同意し、Pを満たすすべてのアルゴリズムがマトロイドで定義できることを示した場合、OPの質問に対する肯定的な答えが得られます。同様に、特定のアルゴリズムが貪欲であることに同意し、それがマトロイドの貪欲なアルゴリズムではないことを示した場合、否定的な答えが得られます。
独立したラコニア

11

実際、貪欲なアルゴリズムで解決できる問題の完全で一般的な説明は、マトロイドの埋め込みであり、マトロイドの概念とグリードイドの概念の両方を一般化します。答えはノー問題マトロイド構造を有していない貪欲アルゴリズムの必要性によって解決可能ではありませんが、それはされます(あり、残念ながら、はるかに複雑)マトロイド埋め込みの構造を有しています。

このいくつかのメンタルモデルは、最小全域木を見つけることです。Kruskalのアルゴリズムで使用される構造はマトロイドですが、Primのアルゴリズム(開始ノードが必要)で使用される構造はマトロイドではありません。(ただし、それはグリードイドであり、マトロイドの埋め込みです。)

ヘルマン等。(1993)、彼らの論文「貪欲な構造の正確な特徴づけ」は、マトロイドおよびグリードイドに使用されるのと同じ形式である欲張りアルゴリズムの概念を集合システムの観点から定義しています。セットシステム (S,C)SCS f:2SRS

この形式の観点から定義された貪欲なアルゴリズムは非常に単純です:空のセットから始めて、基底に達するまで単一の要素を連続的に追加し、常に(i)セットが各ステップで実行可能であることを保証し、( ii)追加する要素は、結果の目的関数wrtを最大化します。追加できるすべての代替要素。(つまり、概念的には、実行可能なすべての選択肢を追加してみて、最も客観的な価値が得られる選択肢を選択します。)

あなたは、おそらく、貪欲アルゴリズムの他の形態があるかもしれませんが、このセット・システム・ベースのアルゴリズムを記述したアルゴリズムと組合せ最適化にはいくつかの教科書があると主張している可能性が貪欲アルゴリズムが。それは、あなたが合わない何かを記述することを妨げるものではありませんが、それでも貪欲と呼ぶことができると思います。(それでも、これマトロイド構造を持つ可能性のあるものをすべてカバーますが、はるかに一般的です。)

何ヘルマンら。彼らがこのアルゴリズムがいつ機能するかを説明することです。すなわち:

  1. 彼らは、線形目的関数(目的値が要素の重みの合計である)に対して、貪欲アルゴリズムは、マトロイド埋め込みとして定義する構造に正確に作用することを示しています。

  2. これらは、いわゆるボトルネック目標(セットの目標値が個々の要素の重みの最小値に等しい)に対して同様の特性を提供します。そして

  3. それらは、どの目的関数(線形関数を超える)がマトロイド埋め込みの貪欲アルゴリズムによって最適化されるかを正確に特徴付けます。


2
貪欲なアルゴリズムの定義は何ですか?
カヴェー14年

1
彼らの形式主義が何であるかを説明するために私の答えを拡大しました。
マグナスリーヘットランド14年

2

以下の問題を考慮してください。これは、可能な限り最大の注意を要する欲張りアルゴリズムを使用することで解決できます。しかし、この問題にはマトロイド構造はありません。

穴の範囲:位置x_1、x_2、...、x_nに穴があります。長さ10 cmのパッチがあります。できるだけ少ないパッチを使用して穴にパッチを適用します。繰り返しますが、これは貪欲な方法で解決することができます(パッチをできるだけ正確に置くだけです)が、マトロイド構造はありません。


おかげで、疑いはありましたが、確信はありませんでした。したがって、マトロイド構造が存在しない場合でも、貪欲なアルゴリズムを検索する必要があります。

1
@ user3373748私は通常、動的プログラムを探しています。貪欲は退化したDPです。

1
(選り好みすることはありませんが、1ユーロまたは2ユーロの音符はありません。値のセットを{5、10、20、50、100、200}または言い換え;-)に変更することもできます)
Anthony Labarre

説明されているコイン交換アルゴリズムは{1,2,5,10}で機能しますが、他の値の最適な結果を計算しない場合があります。例:{1,3,4}の場合、6の最適解は[3,3]になりますが、アルゴリズムは[4,1,1]を返します。
ソコウィ

1
コイン交換問題のマトロイド構造があります-gauss.ececs.uc.edu/Courses/C671/html/Homework/hw5_sol.html
Tushant Mittal
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.