Os principais solucionadores de SAT podem fatorar números fáceis?

11

Os solucionadores modernos de SAT são muito bons em resolver muitos exemplos reais de instâncias de SAT. No entanto, sabemos como gerar números difíceis: por exemplo, use uma redução do fatorial para o SAT e forneça os números RSA como entrada.

Isso levanta a questão: e se eu pegar um exemplo fácil de fatoração. Em vez de pegar dois números primos grandes em bits, e se eu pegar um primo on bits e um primo q em bits, deixe e a codificação como uma instância SAT. seria um número fácil de fatorar por métodos de busca por força bruta ou peneira, já que um dos fatores é tão pequeno; um solucionador moderno de SAT com alguma redução padrão de fatoração para SAT também adota essa estrutura?n/2pregistronn/registronN=pqFUMACTOR(N)N

É possível superar o fator de resolução de SAT onde rapidamente?| p | = log nN=pq|p|=registron

Artem Kaznatcheev
fonte

Respostas:

10

Existem outras instâncias muito mais simples que sabemos que os algoritmos atuais não podem resolver em tempo subexponencial. Esses algoritmos são incapazes de contar (quase todos são melhorias do DPLL que correspondem ao sistema de prova proposicional da Resolution).

Infelizmente, esses exemplos são instâncias insatisfatórias. A questão sobre encontrar instâncias naturais satisfatórias e naturais para esses algoritmos é um problema de pesquisa interessante (Russeell Impagliazzo mencionou isso durante o workshop de complexidade de provas no ano passado em Banff). Há casos satisfatórios em que sabemos que os algoritmos falham mal, se houver, mas eles não são muito naturais (são baseados em fórmulas que expressam a solidez dos algoritmos).

Em relação ao fatoração, se o tamanho dos números for pequeno (por exemplo, logarítmico, como no seu caso, ou seja, os números são apresentados em unário), teoricamente não há resultado que diga que não possa ser resolvido pelos algoritmos atuais e, de fato, possamos escrever de maneira simples. algoritmos de tempo polinomial que fatoram esses números. Portanto, se um determinado programa solucionador SAT pode resolvê-los pode depender do algoritmo específico.

Kaveh
fonte
registroNN/registroN
@Artem, qualquer complexidade de prova inferior para Resolução daria um exemplo, por exemplo, o princípio do buraco de pombo. Pode-se facilmente extrair uma prova de resolução (refutação) para a instância insatisfatória do cálculo desses algoritmos nessa instância. Nathan Segerlind, de 2007, fez uma boa pesquisa de que o IIRC cobre isso entre outras coisas. Deixe-me saber se não está lá e eu vou encontrar outra referência.
Kaveh
@Artem, acho que o argumento funciona também no caso de apenas um dos números ser logarítmico, ou seja, podemos resolvê-lo em tempo polinomial passando por cima de todos os números pequenos para ver se um deles é um fator do produto.
Kaveh
@ Kaven sim, foi por isso que fiz um número logarítmico em tamanho. Eu explico na pergunta. Só não quero uma resposta que assuma representação unária, como sugeriu o seu terceiro parágrafo. Vou dar uma olhada em Segerlind mais tarde. Mais uma vez, obrigado pelo comentário: D.
Artem Kaznatcheev
@ Arttem, de nada. :) (eu usei unário, porque eu assumi que ambos os números são pequenos e usado sendo unário para lidar com o fato de que o tamanho deve ser exponencial neles, alternativamente, pode-se apenas almofada para torná-los grandes.)
Kaveh