有向グラフの最大独立セットを見つける方法は?


7

私はこの問題を解決しようとしています

問題:与えられたn 正の整数、あなたの仕事は2つの数がないように整数の最大数を選択することです a,b その中で a で割り切れる b

最大独立セットとこのセットのサイズを見つける必要があります。サイズは、ケーニッヒの定理によって見つけることができます。しかし、どのようにして最大独立セットを見つけることができますか(つまり、どの頂点がセットの一部であるか)。

私もいくつか検索をして、ここで何かを見つけまし

If removing a vertex does not change minimum path cover then I can get the desired result without that vertex.

しかし、私は根本的な定理を理解していません。どんな助けも大いに役立ちます。


なぜそれが二部グラフであると思いますか?
Joe

そうではありませんが、有向グラフで最小パスカバーを適用することは可能です。
パラトク2013年

2
クロスポスト:stackoverflow.com/questions/15211918/…。複数のSEサイトに同時にクロス投稿しないでください。元の投稿で数日間満足のいく回答が得られない場合は、ネットワーク内の別のサイトに投稿できます。このような場合は、各投稿に他の投稿へのリンクを追加して、他の投稿があなたの立場を知らせ、重複した作業を回避できるようにします。
Paresh 2013年

回答:


6

与えられた整数のサブセットと分割可能関係によって定義されたposet のを見つけようとしています。幅は posetで比類のない要素の最大セットと同じである抗チェーンの最大数です。

これは、比較可能性グラフの最大独立セットに正確に対応します。各整数は頂点であり、エッジが存在します。uv もしそうなら u 割る v

一般に最大独立セットを見つけることは難しい問題ですが、比較可能性グラフは、効率的なアルゴリズムが存在する特殊なケースです。

ディルワースの定理は、任意のposetの幅を、posetをチェーン(有向比較可能性グラフのソースからシンクへのパス)に分割したものとして特徴付けます。ディルワースの定理は、バイパートマッチングに関するケーニッヒの定理に相当します。これは、提案したように、アルゴリズムを導きます。ケーニッヒの定理を使用し、2部マッチングを介して最大独立セットを見つけるために作成する2部グラフは、上記のWikipediaリンクに簡単に説明されています。完全を期すために、ここに(注釈付きの形式で)含めます。

「二部グラフを定義する G=(U,V,E) どこ U=V=S [整数のセット]および(u、v)はエッジ G いつ u<vS [整数 u 整数を割ります v]。ケーニッヒの定理により、一致が存在しますMG、および頂点のセット CG、グラフの各エッジに少なくとも1つの頂点が含まれる C など M そして C 同じカーディナリティを持っている m

「ましょう A の頂点に対応しないSの要素のセット C; その後A 少なくとも持っています nm 要素(もしあれば Cバイパーティションの両側の同じ要素に対応する頂点が含まれます)。しましょうP 含むことによって形成されるチェーンのファミリーであること x そして y エッジがあるときはいつでも同じチェーンで (x,y) Mで;thenPhasn-m $チェーン。したがって、アンチチェーンとパーティションを同じカーディナリティのチェーンに構築しました。」

の一連の異なる頂点ラベル(整数) A あなたの質問に対する答えです。

IkizとGargによるDilworthのチェーンパーティションのオンラインアルゴリズムのセクション3 では、チェーンパーティションを計算するための2つの異なるオフラインアルゴリズムについて説明しているため、探している独立したセットについても説明しています。アルゴリズムの1つは、Bipartiteマッチング法に基づいています。


1
入力セットが特定の範囲のすべての整数である特別な場合 [1,N]en.wikipedia.org / wiki / Abouabdillah%27s_theorem#Number_theory
Joe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.