Melhorando a redução genérica de Cook para Clique para SAT?


10

Estou interessado em reduzir o -Clique para o SAT sem tornar a instância muito maior.k

O Clique está no NP, portanto pode ser reduzido para SAT usando espaço logarítmico. A simples redução de livros didáticos da Garey / Johnson aumenta a instância para o tamanho cúbico . No entanto, -Clique está em P para cada fixo, portanto "deve" haver uma redução eficiente pelo menos para o fixo .kkk

Uma maneira de construir a redução é usar as variáveis ​​SAT como um vetor característico , com uma variável configurada como true indicando que o vértice associado está na clique. Essa redução é natural, mas cria uma instância SAT de tamanho quadrático se o gráfico for escasso. Para um gráfico esparso, quadraticamente são necessárias muitas cláusulas para impor que, em cada par de vértices não adjacentes, no máximo um vértice possa estar na clique.

Vamos tentar fazer melhor que .O(n2)

A redução genérica de Cook / Schnorr / Pippenger / Fischer funciona primeiro com um NDTM polinomialmente limitado que decide o idioma, simulando o NDTM por um DTM inconsciente, simulando o DTM inconsciente por um circuito e depois simulando o circuito por um 3 Instância -SAT. Isso cria uma instância 3-SAT do tamanho se o limite de tempo NDTM for . O fator de log parece inevitável devido à sobrecarga ao simular por uma máquina inconsciente. Para -Clique, parece que , que gera uma instância 3-SAT do tamanho de , que é quase linear para fixoO(t(n)logt(n))t(n)kt(n)=O(nk)O(nk(logn+logk))k. Em seu artigo de 1988, Cook perguntou se existe uma redução genérica melhor para idiomas no NP, e até onde eu sei, isso ainda está aberto. No entanto, o Clique possui muita estrutura, portanto, talvez se possa fazer melhor nesse caso.

Existe uma redução melhor conhecida de Clique para SAT?

Em particular, é possível que fixo reduza -Clique a SAT enquanto mantém o aumento no tamanho da instância linear? Ou pode-se usar um resultado existente para argumentar que é improvável que isso seja possível? Eu tentei usar Fortnow / Santhanam e Dell / van Melkebeek, mas as despesas gerais parecem grandes demais para que esses resultados impliquem algo específico.kk

(Estive trabalhando com uma redução que parece evitar o fator de log, mas antes de perder mais tempo com os detalhes sangrentos para verificar sua correção, eu gostaria de saber se essa redução já é conhecida ou se é improvável que existir.)


Veja uma pergunta um pouco relacionada mathoverflow.net/q/224898/440 no MathOverflow, na qual o tamanho pequeno de uma fórmula booleana quantificada para -clique se traduz diretamente na taxa de convergência lenta da lei 0-1 para gráficos aleatórios. A questão já contém uma fórmula de tamanho quadrático; a resposta aceita fornece uma fórmula de tamanho linear que implica a existência de uma classe , mas que pode ser falsa mesmo quando existe um clique. kk
David Eppstein

Deseja uma redução que também seja executada no espaço de log? Como você salienta, -clique pode ser resolvido em tempo polinomial para constante , portanto, uma redução de tempo polinomial pode realmente verificar uma -clique e gerar uma instância SAT de tamanho constante . kkk
Joe Bebel

@ JoeBebel: com espaço , é até possível gerar uma instância SAT com variáveis , cujas soluções são todas as localizações de -cliques no gráfico. Para cada clique em potencial, é emitida uma cláusula proibindo esse -ique, se não estiver presente. Isso captura as soluções com precisão, uma redução individual, e responde à pergunta de Kaveh, mas, como na sua sugestão, resolver a instância antes de decidir como reduzi-la parece uma trapaça muito longe. klognklognkk
András Salamon

Respostas:


8

Pode expressar -clique como um exemplo sab com variáveis e cláusulas. Para fixo , isso é linear em .kO(nk)O(nk2)kn

Seja se for o ésimo vértice na clique (por ordem lexicograficamente classificada). Em outras palavras, é uma codificação "one-hot" do ésimo vértice na clique (é o vetor característico de um conjunto com um elemento). Isso introduz variáveis.xiv=1vixiink

Agora, para cada você pode impor que os dois vértices correspondentes sejam conectados por uma aresta, usando cláusulas. por exemplo, uma cláusula é que são os vértices adjacentes ao vértice . Você recebe uma cláusula por vértice . Isso introduz um total de cláusulas .(i,j)n(¬xiuxjv1xjvm)v1,,vmuuO(nk2)

Para cada , você pode impor que é um vetor de Hamming weight 1 e que , usando cláusulas . Isso adiciona um total de mais cláusulas.ixixi<xi+1O(n)O(nk)


Pode ser possível fazer melhor usando as variáveis para representar os vértices na clique ( bits é suficiente para representar o valor deklgnlgn vértice na camarilha) e construindo um circuito para verificar se um conjunto de k vértices corresponde a uma camarilha. Uma abordagem para construir esse circuito pode ser construindo a lista de todos ospares k ( k - 1 ) / 2 desses vértices, em ordem classificada, comparando-a com a lista de arestas usando o procedimento de mesclagem do Mergesort, ou algo como naquela. Pode ser possível obter algo como um O ( ( n + mikk(k1)/2 circuito de tamanho poli ( lg n ) ) , que se traduz em uma instância SAT do mesmo tamanho (em que m = o número de arestas no gráfico). Eu não tentei descobrir os detalhes para ver se é realmente possível.O((n+m+k2)poly(lgn))m=

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.