すべての最大一致に存在する頂点の数


12

グラフG頂点の最大セットのカーディナリティを見つける必要があります。そのため、可能な限りすべてのマッチングで頂点が存在します。

明らかに各頂点を削除し、それが減少するのを見るために最大一致を見つける以外に解決策はありますか?


あなたが提案したことが解決策であるかどうかはわかりません。 (三角形を検討してください。)

1
@RickyDemer最初に、グラフ全体で最大一致を見つけます。次に、頂点を削除して、再度最大一致を見つけます。差が1の場合、この頂点はすべての最大一致に存在すると言えます。
evil999man

「最大一致の検索」を「最大一致の検索」または「すべての最大一致の検索」に置き換える必要がありますか?

最大一致のサイズに置き換える必要があると思います。
evil999man

@Awesomeは正しい。質問を編集します。
宝陰教馬

回答:



11

グラフは2部構成ですか?なぜなら、もしそうなら:二分割の片側が左で、もう片側が右であると仮定してください。最大一致を見つけ、一致したすべてのエッジを左から右に、一致しないすべてのエッジを右から左に向けます。次に、次の3つの(相互に排他的な)条件のいずれかが当てはまる場合にのみ、頂点を最大一致から除外できます。v

  • はすでに一致していませんv
  • は、結果の有向グラフのバイパーティションの側にある一致しない頂点から到達できます。v
  • v

幅優先または深さ優先の2つの検索を実行することで、1つは一致しない頂点から到達できるグラフの部分を検索し、もう1つは不一致の頂点に到達できる部分を検索することで、線形時間で重要な頂点を見つけることができますすでに一致しています。

おそらく、このようなものは、花を収縮する交互経路検索を使用して、2者間でないケースでも機能しますが、詳細はより複雑になります。


一般的なグラフでどのように行うのか興味があります。説明してもらえますか?
evil999man

すでに詳しく調べていたら、答えに含めていただろう。しかし、基本的には、未到達の頂点からパスを交互に切り替えることで到達できる頂点を見つける必要があります。それらは一致しない可能性があるためです。交互パス検索は、最初に一致するものを見つけるために使用するものとほぼ同じである必要があります。
デビッドエップシュタイン

コメントが遅れてすみません。私のグラフは一般的です。私は方法を考えようとします
芳陰教馬
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.