A complexidade de verificar se duas CNF têm o mesmo número de soluções


14

Dadas duas CNF, se elas tiverem o mesmo número de atribuições para torná-las verdadeiras, responda "Sim", caso contrário, responda "Não".

É fácil ver que está em , pois se soubermos o número exato de soluções para essas duas CNF, apenas as colocamos em campo e respondemos "Sim" ou "Não".P#P

Qual é a complexidade desse problema?

Respostas:


14

O problema é coNP -hard; você pode facilmente reduzir o problema UNSAT para esse problema.

Uma caracterização mais precisa é que o problema é C = P - completo. De fato, uma definição da classe C = P é que é a classe de problemas que são polinomiais muitos redutíveis a esse mesmo problema (geralmente essa definição é declarada em termos de funções GapP ). Mas como isso não diz muito, deixe-me definir essa classe de outra maneira.

Seja C = P a classe de problemas que são polinomiais muitos redutíveis ao seguinte problema: dado um circuito booleano φ e um número inteiro K (em binário), decida se o número de atribuições satisfatórias de φ é igual a K . Por uma redução padrão que mostra a # P-completude do # 3SAT, podemos restringir φ a uma fórmula 3CNF sem afetar a classe. A classe C = P contém uma classe chamada US , que contém UP e coNP.

Com esta definição, seu problema é C = P-completo. Na verdade, é fácil ver a dureza C = P a partir da definição da classe C = P (que usa fórmulas 3CNF).

Para provar a participação em C = P, suponha que devemos decidir se duas fórmulas da CNF φ 1 e φ 2 têm o mesmo número de tarefas satisfatórias ou não. Sem perda de generalidade, podemos assumir que as duas fórmulas têm o mesmo número de variáveis, digamos n . Construa um circuito booleano φ que recebe n +1 bits como entrada para que o número de atribuições satisfatórias de φ seja igual a c 1 + (2 n - c 2 ), onde c 1 e c 2ser o número de atribuições satisfatórias de φ 1 e φ 2 , respectivamente. Então o número de atribuições satisfatórias de φ é igual a 2 n se e somente se c 1 = c 2 .


@Kaveh: Você pode elaborar?
Tsuyoshi Ito

1
@ Kaveh: Não, não é isso que queremos. Queremos decidir se φ_1 e φ_2 têm o mesmo número de tarefas satisfatórias, não necessariamente o mesmo conjunto de tarefas satisfatórias.
Tsuyoshi Ito

1
@ Tsuyoshi: Com base na sua definição de , GI está em C = P ? Eu penso que, pelo menos, GI F P C = P . C=PC=PFPC=P
Mike Chen

1
@ Mike: Obrigado pelo comentário interessante. Você está falando sobre o resultado do isomorfismo do gráfico ∈ SPP (Arvind e Kurur 2006 dx.doi.org/10.1016/j.ic.2006.02.002 )? Se sim, você está certo; SPP está contido em , de modo gráfico Isomorfismo ∈ C = P . C=PC=P
Tsuyoshi Ito

1
@ Mike: Eu aprendi que antes do resultado GraphIso∈SPP, sabia-se que GraphIso∈ LWPP : Köbler, Schöning e Torán 1992 . Como LWPP ⊆ WPP , nós não precisamos do resultado mais forte por Arvind e Kurur dizer que GraphIso∈ C = P . C=PC=P
Tsuyoshi Ito

6

Aqui está uma pequena variação na pergunta original. Seja um oráculo que, na entradaO gera 1 se CNF f 1 tivermaissoluções que CNF f 2 .(f1,f2)f1f2

Dado esse oráculo, construímos uma máquina poli-time que pode resolver o problema # P-complete de calcular o número de soluções para uma determinada CNF φ . Observe que φ pode ter um número exponencial de soluções.Mφφ

funciona da seguinte maneira: Gera fórmulas com número conhecido de soluções, e utilizando busca binária e pedindo a maioria das consultas polinomiais para O , ele encontra uma fórmula & Phi; i que temo mesmonúmero de soluções como φ . Finalmente, gera o número de soluções encontradas.MOφEuφ

Isso mostra que tem complexidade #P.MO


Perdoe minha ignorância, mas como você gera uma fórmula com um número pré-especificado de soluções?
Giorgio Camerani

3
Seja M um número de bits (k + 1) e S sejam os índices i onde m i = 1 . Faça uma fórmula com variáveis x 0 , ... , x k e y 0 , ... , y k . Para cada i S , seja F i a seguinte sub-fórmula: "Todos os { x 0 , ,M=Eu=0 0kmEu2EuSEumEu=1x0 0,...,xky0 0,...,ykEuSFEu verdadeiros E entre { y 0 ,{x0 0,...,xk-Eu} única y i é verdade ". F i tem 2 i atribuições satisfazendo (as variáveis { x k - i + 1 , ... , x k } são livres ), e para i j , as atribuições satisfatórias de F i e F j são desarticuladas devido a y{y0 0,...,yk}yEuFEu2Eu{xk-Eu+1,...,xk}EujFEuFjyvariáveis. A fórmula tem M atribuições satisfatórias. EuSFEuM
Mikero

Observe que é PP-completo para decidir se, dadas duas fórmulas CNF f_1 ef_2, f_1 possui atribuições mais satisfatórias que f_2 ou não.
Tsuyoshi Ito

@ mikero: Ah, me estúpido! Eu deveria ter imaginado isso. Obrigado pela sua explicação esclarecedora.
Giorgio camerani

5

Parece que é pelo menos NP-difícil, pois é possível construir facilmente uma fórmula SAT com apenas uma solução. Então, pelo teorema de Valiant-Vazirani, há uma redução probabilística de cada fórmula SAT para um conjunto de problemas de Unique-SAT (determinando se uma fórmula tem uma solução única) e comparando esses problemas de Unique-SAT com a fórmula SAT construída com apenas uma solução permite determinar a satisfação da fórmula SAT em consideração.


Para ser mais preciso, a primeira frase deve mencionar “sob redutibilidade aleatória” (embora você a mencione na segunda frase).
Tsuyoshi Ito
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.