家族所与せいぜいのn個の部分集合{ 1 、2 、... 、N }。ユニオンクロージャFは、Fの 1つ以上のセットのユニオンを取ることによって構築できるすべてのセットを含む別のセットファミリCです。作成者| C | Cのセット数を示します。
ユニオンクロージャを計算する最速の方法は何ですか?
ユニオンクロージャと、2つの部分からなるグラフにすべての最大独立セットをリストすることの等価性を示したので、ユニオンクロージャのサイズの決定は#P完全であることがわかります。
しかし、内のすべての最大独立集合(または最大クリーク)リストする方法がありとのグラフの時間Nノードおよびmは築山らエッジ。1977。しかし、これは2部グラフに特化していません。
ランタイム付きの2部グラフのアルゴリズムを提供しました http://www.ii.uib.no/~martinv/Papers/BooleanWidth_I.pdf
我々の方法は、内の任意の要素という観察に基づいているいくつかの他の要素の組合により製造することができるC、元のセットのいずれか。したがって、Cに要素を追加するときはいつでも、n個の元のセットのいずれかで要素を拡張しようとします。これらのそれぞれについてのn ⋅ | C | セットがまだCにあるかどうかを確認する必要があります。Cをバイナリ検索ツリーとして保存するため、各検索にはログが必要です。C | ⋅ n個の時間。
それは、労働組合の閉鎖見つけることが可能であるでOを(| C | ⋅ N 2)の時間?あるいは時間でO (| C | ⋅ N )?
これがあなたの質問に役立つ可能性は低いですが、あなたが求めているのは、ラティス内の要素の上向きの閉包を計算する特別なケースであり、そこから役立つかもしれない結果があるのだろうかと思います。
—
Suresh Venkat
以下の私の回答で指摘する調査は、ラティスとの関連をいくつか示しています。
—
M.kanté2012年