貪欲なアプローチについての資料を調べていたとき、マトロイド(貪欲)に関する知識が問題への適切なアプローチに役立つことを知りました。マトロイドについて読んだ後、私はマトロイドが何であるかを大まかに理解しました。しかし、与えられた最適化問題を解決するためにマトロイドの概念をどのように使用しますか?
たとえば、活動選択問題を考えてみましょう。問題を解決するためにマトロイド理論を使用する手順は何ですか?
貪欲なアプローチについての資料を調べていたとき、マトロイド(貪欲)に関する知識が問題への適切なアプローチに役立つことを知りました。マトロイドについて読んだ後、私はマトロイドが何であるかを大まかに理解しました。しかし、与えられた最適化問題を解決するためにマトロイドの概念をどのように使用しますか?
たとえば、活動選択問題を考えてみましょう。問題を解決するためにマトロイド理論を使用する手順は何ですか?
回答:
関係は、最適化問題の根底にある構造をマトロイドとして表すことができる場合、正則貪欲アルゴリズムを使用して、任意の正の重み関数の合計を最適化できることです。最適化の目標がこのパラダイムに適合する場合、貪欲なアプローチで問題を解決できます。
正のエッジの重みを持つ最小スパニングツリー問題を考えます¹。その問題に対応するマトロイドが存在することを示します。これは、それが貪欲に、つまり前記マトロイドの標準的な貪欲アルゴリズムによって解決できることを意味します。
LET持つ無向グラフであるエッジコスト関数。次に、と
²
マトロイドです。したがって、エッジの重みの合計最大化するの要素を見つけることができます。これはたまたま最小のスパニングツリーです。正規の貪欲アルゴリズムは、歴史的な理由から、このコンテキストではクラスカルのアルゴリズムと呼ばれていることに注意してください。
表示するには:はマトロイドです。3つのプロパティを確認する必要があります。
表示:で最大の重みを持つ要素は、最小全域木です。まず、がに従って最大の重みを持つことは明らかであるため、定義により、に従って最小の重みも持ち。表示する必要があるのは、それがスパニングツリーであることだけです。そうでない場合でも、(正の重みで)エッジを追加できるという意味では、最大ではなく、最大の重みと矛盾します。