Estou interessado em reduzir o -Clique para o SAT sem tornar a instância muito maior.
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 .
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 .
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 fixo. 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.
(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.)
fonte
Respostas:
Pode expressar -clique como um exemplo sab com variáveis e cláusulas. Para fixo , isso é linear em .k O(nk) O(nk2) k n
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=1 v i xi i nk
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 (¬xiu∨xjv1∨⋯∨xjvm) v1,…,vm u u O(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.i xi xi<xi+1 O(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 deklgn lgn 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 + mi k k(k−1)/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=
fonte