Gegeben sei eine Menge Familie von Teilmengen eines Universums . Sei und wir wollen antworten, ist .
Ich bin auf der Suche nach einer Datenstruktur, die es mir ermöglicht, diese schnell zu beantworten. Meine Anwendung basiert auf der Graphentheorie, bei der ich sehen möchte, ob beim Löschen eines Scheitelpunkts und seiner Umgebung isolierte Scheitelpunkte verbleiben und für jeden Scheitelpunkt alle isolierten Scheitelpunkte aufgelistet werden, die er hinterlässt.
Ich möchte das komplette Poset oder eventuell ein erstellen F | 2 Tabelle, die wahr falsch speichert und genau sagt, welche Mengen Teilmenge von einander sind.
Sei , und nehme an,
Wir können die Erzeugung Eindämmungs Matrix (die bipartite graph) in Zeit und dann die Tabelle aller schaffen Vergleiche in Zeit für jeden Satz , eine Schleife durch alle Elemente aller anderen Mengen und markieren Sie die Menge als keine Teilmenge von wenn sie das Element nicht in . Insgesamt Zeit.
Können wir etwas schneller machen? Insbesondere ist Zeit möglich oder nicht?
Ich habe einige verwandte Artikel gefunden:
Ein einfacher subquadratischer Algorithmus zur Berechnung der Teilmengenordnung (1995), der einen Algorithmus ergibt .
Die Teilmengen-Teilreihenfolge: Computing and Combinatorics verbessert das oben Gesagte geringfügig, behauptet jedoch auch, dass das oben genannte Papier das Problem in -Zeit löst, wobei die maximale Anzahl von Mengen ist, die sich ein gemeinsames Element teilen, aber ich konnte dieses Ergebnis nicht verstehen.
In dem Artikel Zwischen und zeigen die Autoren, wie in einem Diagramm die verbundenen Komponenten nach dem Löschen der geschlossenen Nachbarschaft eines Scheitelpunkts unter Verwendung der Matrixmultiplikation gefunden werden. Dies kann verwendet werden, um das Set Inclusion Poset zu berechnen, indem alle Komponenten gefunden werden, die Singletons mit einer Laufzeit von .
Auch diese Forumsdiskussion steht im Zusammenhang mit: Was ist der schnellste Weg, um die Einbeziehung von Sets zu überprüfen? was eine Untergrenze von impliziert .
quelle
Antworten:
Wenn die Zufälligkeit in Grenzen liegt, besteht eine grobe Idee darin, eine Reihe von "zufälligen monotonen Signatur" -Funktionen zu generieren und diese zur Approximation der Teilmengenrelation zu verwenden (a la Bloom-Filter). Leider weiß ich nicht, wie ich daraus einen praktischen Algorithmus machen kann, aber hier sind einige Schätzungen, die die Idee nicht sofort für unmöglich halten. Dies ist sehr weit von einer nützlichen Lösung entfernt, aber ich werde es aufschreiben, falls es hilft.
Nehmen Sie der Einfachheit halber an, dass alle Mengen fast gleich groß sind, sagen wir und das s = o ( u ) . Wir können davon ausgehen 1 « s , sonst sind wir fertig. Definiere q|S|=s±O(1) s=o(u) 1≪s
Man beachte, dassp≫1 ist.
Selbst wenn die obigen Berechnungen korrekt sind, habe ich keine Ahnung, wie man schnell monotone Signaturfunktionen mit den gewünschten Merkmalen erzeugt. Es ist auch wahrscheinlich, dass sich diese Technik nicht auf signifikant unterschiedliche Satzgrößen erstreckt.
quelle