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?
fonte
Respostas:
Na verdade, provavelmente você não pode usar um solucionador SAT para encontrar outro, a menos que algo surpreendente aconteça.
Se P = NP, você pode. Se P = NP, a hierarquia polinomial entra em colapso (ou seja, P = PH); portanto, existe um algoritmo de tempo polinomial para todos os problemas no PH . O problema de perguntar se existe um algoritmo de resolução mais rápida do SAT é essencialmente umΣ2 problema, que faz parte da hierarquia polinomial; se a hierarquia polinomial entrar em colapso, existe um algoritmo de tempo polinomial para cada problema no PH e, portanto, para todo problema noΣ2 . Assim, você pode, em tempo polinomial, procurar um melhor solucionador SAT, se P = NP.
Mas a maioria dos pesquisadores espera que P não seja igual a NP, portanto, essa afirmação provavelmente é discutível e improvável que seja útil na prática.
Se P não for igual a NP, esse raciocínio não funcionará. De fato, muitos pesquisadores esperam queΣ2 é ainda mais difícil que o NP (existem problemas em Σ2 que são mais difíceis do que qualquer problema no NP), portanto, seria surpreendente se houvesse uma redução simples para expressar o problema "encontre um solucionador SAT mais rápido" como uma instância do SAT. Em particular, os solucionadores de SAT podem resolver o SAT ou qualquer outro problema no NP - mas, em qualquer caso, apenas problemas no NP. Se (como suspeitamos)Σ2 é mais difícil que o NP, os solucionadores SAT não conseguem resolver problemas Σ2 .
Claro, na verdade não sabemos. É sempre possível que a sabedoria convencional esteja errada e que amanhã descobrimos que P é realmente igual a NP. Seria uma grande surpresa, mas não podemos descartá-la completamente.
O Golden Ticket está tentando compreender melhor por que os teóricos da complexidade consideram o problema P vs NP tão importante e tão fundamental. Parte disso envolve explorar mundos contrafactuais e suposições contrafatuais que suspeitamos serem provavelmente falsas, para ver quais seriam suas conseqüências.
Ou, para explicar de uma maneira diferente:
O problema é que encontrar um melhor solucionador SAT é um∃∀ tipo de declaração. A declaração é da forma∃A∀x.P(A,x) , Onde P(A,x) é a afirmação de que A é rápido e resolve corretamente a instância SAT x . Esses tipos de declarações não podem ser resolvidos com um solucionador SAT. Os solucionadores SAT podem resolver problemas da forma∃x.Q(x) . Contudo,∃∀ declarações são mais difíceis do que ∃ afirmações. Esta é basicamente a diferença entreΣ2 e NP.
fonte