Complexidade da contagem de correspondências em um gráfico bipartido

8

Talvez esteja faltando algo óbvio, mas não consigo encontrar referências sobre a complexidade da contagem de correspondências (não correspondências perfeitas) em gráficos bipartidos. Aqui está o problema formal:

  • Entrada: um gráfico bipartido comE U × VG=(U,V,E)EU×V
  • Saída: o número de coincidências de , em que um emparelhamentos é um subconjunto de tal modo que não há nenhuma que ocorre em duas arestas de .Gv L V MFEvUVF

Qual é a complexidade desse problema? É # P-difícil?

É bem sabido que contar correspondências perfeitas em gráficos bipartidos é difícil de P, e sabe-se que contar contagens de gráficos arbitrários (ou mesmo gráficos regulares regulares 3) é difícil de P neste artigo , mas eu não não encontre nada sobre a contagem de combinações não perfeitas em gráficos bipartidos.

a3nm
fonte
Parece haver um problema neste algoritmo, existem casos no resultado em que nem todos os nós do lado esquerdo ou direito estão incluídos na solução 2sat, portanto, o algoritmo de contagem exato não funciona. Alguém conhece um algoritmo para soluções únicas de correspondência bipartida máxima derivadas usando uma redução para 2sat?
user3700810

Respostas:

13

O problema de contar essas correspondências "imperfeitas" em gráficos bipartidos é # P-complete.
Isso foi comprovado pelo próprio Les Valiant, na página 415 do artigo

Leslie G. Valiant
A complexidade dos problemas de enumeração e confiabilidade
SIAM J. Comput., 8 (3), 410-421

Gamow
fonte
Parece bom, obrigado! Não sei por que esse simples fato não foi afirmado claramente na página da Wikipedia (ou em qualquer outro lugar da Web). Eu melhorei a Wikipedia de acordo: en.wikipedia.org/w/… Obrigado novamente!
a3nm
0

Uma semana na minha aula de teoria da complexidade na faculdade, nosso único problema de lição de casa era provar que o # 2-SAT estava # P-completo, reduzindo de #BIPARTITE PERFECT MATCHING. Ninguém poderia resolvê-lo, mesmo quando todos nós finalmente nos unimos para trabalhar nisso.

Na aula seguinte, o professor ficou surpreso com a dificuldade que todos havíamos achado e apresentou sua prova. Estava errado. Felizmente, um cookie inteligente foi capaz de dar a redução correta, o que era absolutamente insano e nojento e complicado. A propósito, o professor tem um Prêmio Turing :)

De qualquer forma, enquanto eu e meus colegas de classe não conseguimos resolver esse problema, fomos capazes de resolver o problema mais fácil de reduzir de #BIPARTITE MATCHING para # 2-SAT, então aqui está a prova de que eu vim alguns anos atrás.

Teorema. # HARMONIZAÇÃO # 2-SAT.p

Prova . Seja uma instância de #BIPARTITE MATCHING. Deixe os conjuntos de partições serem (então e ) .A = { a ii [ n ] } ,G=(V,E)| Um | = n | B | = m

A={aii[n]},B={bii[m]}
|A|=n|B|=m

Agora reduzimos a uma fórmula 2SAT , de modo que cada atribuição satisfatória de corresponda a e vice-versa. Para começar, para cada aresta crie uma variável . A ideia é que definir a variável como TRUE corresponda à borda está na correspondência. Para cada vértice , crie as expressões 2SAT Para que seja satisfeito, todos, exceto no máximo um de , devem ser falsos. Para ver isso, assuma queGφφGaibjExijxijaibjiUm i x i j x i j X i k ( ¬ x i j¬ x i k ) Um i B I C = N i = 1 A im i = 1 B

Ai=j<k(¬xij¬xik),Bi:=j<k(¬xji¬xki)
Aixijxije são verdadeiros. Então é falso, assim como . O mesmo vale para . Deixando , temos que é satisfeito se e somente se cada vértice em for incidente em no máximo uma aresta que escolhemos e, portanto, as arestas formam uma correspondência.xik(¬xij¬xik)AiBi C G
C=i=1nAii=1mBi
CG
Gardenhead
fonte
Acho que devo estar faltando alguma coisa aqui. Isso parece mostrar que uma instância arbitrária de #BIPARTITE_MATCHING pode ser codificada como uma instância de # 2-SAT. Mas eu esperava que você tentasse mostrar que uma instância arbitrária de # 2-SAT pode ser codificada como uma instância de #BIPARTITE_MATCHING, não?
Mhum
Opa, você está certo. Isso foi retirado de um antigo problema de lição de casa e eu realmente não tinha a pergunta escrita, apenas a minha resposta. O problema deve ter sido mostrar que # 2-SAT era # P-Complete, sabendo que # BIPARTITE-PERFECT-MATCHING estava # P-complete. Eu vou editar.
gardenhead
1
@ Gardenhead: Obrigado pela sua resposta! Isso é interessante, mas eu não acho que isso esteja muito relacionado à minha pergunta, é? Isso mostra apenas que # BIPARTITE-MATCHING está em # P, o que não é uma surpresa.
a3nm
A redução nesta resposta parece estar correta, embora pareça não ter relação com a pergunta. No entanto, eu não entendo o comentário de @a3nm, nem sigo a história no prefácio da resposta (que atrapalha três reduções diferentes).
András Salamon
Eu descobri como reduzir # MONO-2SAT para #BIPARTITE PERFECT MATCHING, mas a prova não é assim tão simples: P.