Möglicherweise fehlt mir etwas Offensichtliches, aber ich kann keine Hinweise auf die Komplexität des Zählens von Übereinstimmungen (nicht perfekte Übereinstimmungen) in zweigeteilten Diagrammen finden. Hier ist das formale Problem:
- Eingabe: ein zweigeteilter Graph mitE ⊆ U × V.
- Ausgabe: Die Anzahl der Übereinstimmungen von , wobei eine Übereinstimmung eine Teilmenge so dass kein vorhanden ist , das an zwei Kanten von auftritt .v ∈ U ⊔ V F.
Was ist die Komplexität dieses Problems? Ist es # P-schwer?
Es ist bekannt, dass das Zählen perfekter Übereinstimmungen auf zweigeteilten Graphen # P-schwer ist, und es ist bekannt, dass das Zählen von Übereinstimmungen beliebiger Graphen (oder sogar planarer 3-regulärer Graphen) in diesem Artikel # P-schwer ist , aber ich habe es nicht getan. Ich finde nichts über das Zählen nicht perfekter Übereinstimmungen in zweigeteilten Graphen.
Antworten:
Das Problem des Zählens solcher "unvollständiger" Übereinstimmungen in zweigeteilten Graphen ist # P-vollständig.
Dies wurde von Les Valiant selbst auf Seite 415 des Papiers bewiesen
quelle
Eine Woche in meinem Kurs über Komplexitätstheorie am College bestand unser einziges Hausaufgabenproblem darin, zu beweisen, dass # 2-SAT # P-vollständig war, indem wir von #BIPARTITE PERFECT MATCHING reduzierten. Niemand konnte es lösen, selbst wenn wir uns schließlich alle zusammenschlossen, um daran zu arbeiten.
In der nächsten Klasse war der Professor überrascht, wie schwierig wir alle es gefunden hatten, und legte seinen Beweis vor. Es war falsch. Glücklicherweise konnte ein intelligenter Cookie die richtige Reduzierung erzielen, was absolut verrückt und widerlich kompliziert war. Der Professor hat übrigens einen Turing Award :)
Obwohl ich und meine Klassenkameraden dieses Problem nicht lösen konnten, konnten wir das einfachere Problem der Reduzierung von #BIPARTITE MATCHING auf # 2-SAT lösen. Hier ist der Beweis, den ich vor einigen Jahren gefunden habe.
Satz. #BIPARTITE MATCHING # 2-SAT.≤p
Beweis . Sei eine Instanz von #BIPARTITE MATCHING. Die Partitionsmengen seien (also und ) .A = { a i ∣ i ∈ [ n ] } ,G = ( V., E.) | A | = n | B | = m
Nun reduzieren wir auf eine 2SAT-Formel , so dass jede erfüllende Zuordnung von eine Übereinstimmung von ist und umgekehrt. Zu Beginn erstellen Sie für jede Kante eine Variable . Die Idee ist, dass das Setzen der Variablen auf TRUE der Kante entspricht, die im Matching enthalten ist. Erstellen Sie für jeden Scheitelpunkt die 2SAT-Ausdrücke Damit erfüllt ist, muss bis auf höchstens eines von falsch sein. Um dies zu sehen, nehmen Sie beideφ φ G a i b j ∈ E x i jG φ φ G einichbj∈ E. xi j xi j einichbj ich A i x i j x i j x i k ( ¬ x i j ∨ ¬ x i k ) A i B i C = n ⋀ i = 1 A i ∧ m ⋀ i = 1 B.
quelle