No livro de Lance Fortnow, The Golden Ticket , ele menciona que uma vez que você tenha um algoritmo de tempo polinomial para um problema completo de NP, poderá usá-lo para encontrar um algoritmo mais rápido. Você pode me dizer como isso é feito? E uma vez feito isso, você pode usar o novo algoritmo para descobrir um ainda mais rápido e infinito , até um ponto fixo. Abaixo está a citação exata do livro:
"Então, o que você pergunta a um gênio que lhe concederá apenas um desejo?" disse o consultor.
"Não faço ideia", respondeu Steve.
"Você pede um gênio que conceda todos os seus desejos."
A proverbial lâmpada acendeu na cabeça de Steve. Ele sabia que devia haver algum algoritmo melhor para resolver problemas de camarilha por aí, mas ele não conseguia descobrir sozinho. Mas ele possuía o gênio, o código Tsinghua, que podia pesquisar um número exponencial de possibilidades rapidamente. Então, ele escreveu um programa que usava as rotinas de Tsinghua para procurar um algoritmo melhor para problemas de NP. Ele obteve permissão para usar os recursos de computação do National Center for Supercomputing Applications (NCSA), baseado na Universidade de Illinois. Após semanas de tempo de processamento, seu trabalho valeu um pouco, encontrando um novo algoritmo que teve uma melhoria de 5% em relação ao código Tsinghua - bom o suficiente para um trabalho de pesquisa, mas não o suficiente para causar um impacto real.
Seu conselheiro simplesmente disse: "Tente novamente usando o novo código".
Então, Steve usou seu novo código para encontrar um algoritmo ainda mais rápido para problemas de NP. Algumas semanas depois, ele teve uma melhora de 20%.
Mas seu conselheiro não ficou impressionado. "Tente de novo."
Steve respondeu: "Por que simplesmente não configuro o computador para continuar automaticamente tentando com o novo código encontrado?"
O conselheiro deu aquele olhar, o olhar que dizia a um aluno que ele havia alcançado a iluminação, ou pelo menos havia percebido o óbvio.
Steve voltou ao seu escritório e iniciou o complicado processo de escrever código que procura um código mais rápido e, em seguida, usou esse código mais rápido para encontrar um código ainda mais rápido e continuar esse processo até que não encontrasse mais melhorias.
Agora concentre-se no SAT. O MiniSAT é um solucionador rápido de SAT, embora não a ponto de ter tempo polinomial.
Como usar o MiniSAT para descobrir mecanicamente um novo solucionador SAT?