Puede que me falte algo obvio, pero no puedo encontrar referencias sobre la complejidad de contar coincidencias (no coincidencias perfectas) en gráficos bipartitos. Aquí está el problema formal:
- Entrada: un gráfico bipartito conE ⊆ U × V
- Salida: el número de emparejamientos de , donde un matchings es un subconjunto de tal manera que no hay que se produce en dos bordes de .F ⊆ E v ∈ U ⊔ V F
¿Cuál es la complejidad de este problema? ¿Es # P-duro?
Es bien sabido que contar coincidencias perfectas en gráficos bipartitos es # P-difícil, y se sabe que contar coincidencias de gráficos arbitrarios (o incluso gráficos planas de 3 regulares) es # P-difícil en este artículo , pero no lo hice No encuentre nada acerca de contar coincidencias no perfectas en gráficos bipartitos.
Respuestas:
El problema de contar tales coincidencias "imperfectas" en gráficos bipartitos es # P-completo.
Esto ha sido probado por el propio Les Valiant, en la página 415 del documento.
fuente
Una semana en mi clase de teoría de la complejidad en la universidad, nuestro único problema de tarea fue demostrar que # 2-SAT era # P-completo, reduciendo de #BIPARTITE PERFECTO ENCUENTRO. Nadie pudo resolverlo, incluso cuando finalmente todos nos unimos para trabajar en ello.
En la siguiente clase, el profesor se sorprendió de lo difícil que todos lo habíamos encontrado y presentó su prueba. Estaba mal. Afortunadamente, una cookie inteligente fue capaz de dar la reducción correcta, lo cual fue absolutamente loco y asquerosamente complicado. Por cierto, el profesor tiene un Premio Turing :)
De todos modos, aunque mis compañeros de clase y yo no pudimos resolver ese problema, pudimos resolver el problema más fácil de reducir de #BIPARTITE MATCHING a # 2-SAT, así que aquí está la prueba que obtuve hace unos años.
Teorema. #BIPARTITE Matching # 2-SAT.≤pags
Prueba . Sea una instancia de #BIPARTITE MATCHING. Deje que los conjuntos de particiones sean A = { a i ∣ i ∈ [ n ] } ,G=(V,E)
(de modo | A | = n y | B | = m ).
Ahora reducimos a una fórmula 2SAT , de modo que cada asignación satisfactoria de sea una coincidencia de , y viceversa. Para comenzar, para cada arista cree una variable . La idea es que establecer la variable en TRUE corresponde a que el borde esté en la coincidencia. Para cada vértice , cree las expresiones 2SAT Para que se satisfaga, todos menos uno como tienen que ser falsos. Para ver esto, asuma que tantoG φ G a i b j ∈ E x i j x i j a i b j i A i = ⋀ j < k ( ¬ x i j ∨ ¬ x i k ) ,φ φ G aibj∈E xij xij aibj i A i x i j x i j x i k ( ¬ x i j ∨ ¬ x i k )
fuente