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 .
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) f1 f2
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.M O φEu φ
Isso mostra que tem complexidade #P.MO
fonte
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.
fonte