Algoritmo cujo tempo de execução depende de P vs. NP


18

Existe um exemplo explícito conhecido de um algoritmo com a propriedade tal que, se PNP , esse algoritmo não é executado no tempo polinomial e se P=NP , ele é executado no tempo polinomial?


9
Tipo de. Se P = NP, universais busca algoritmo roda de Levin em tempo polinomial em aceitar casos en.wikipedia.org/wiki/...
Emil Jerabek suporta Monica

@Emil: se P = NP então também P = coNP, então você não pode fazer simultaneamente a pesquisa de Levin no complemento de sua linguagem, fornecendo assim um algoritmo de tempo verdadeiramente poli em todas as instâncias?
21718 Joshua Grochow

3
@ JoshuaGrochow Para expressar a linguagem como coNP, eu precisaria primeiro conhecer o algoritmo polytime para NP, derrotando todo o propósito.
Emil Jeřábek apoia Monica

Respostas:


17

Se você assumir que P=?NP é comprovável no PA (ou ZFC), um exemplo trivial é o seguinte:

Input: N   (integer in binary format)
For I = 1 to N do
begin
  if I is a valid encoding of a proof of P = NP in PA (or ZFC)
    then halt and accept
End
Reject

Outro exemplo - menos trivial - que não se baseia em nenhuma suposição é o seguinte:

Input: x   (boolean formula)
Find the minimum i such that
  1) |M_i| < log(log(|x|))  [ M_1,M_2,... is a standard fixed TM enumeration] 
  2) and  M_i solves SAT correctly 
       on all formulas |y| < log(log(|x|))
          halting in no more than |y|^|M_i| steps
          [ checkable in polynomial time w.r.t. |x| ]
  if such i exists simulate M_i on input x 
      until it stops and accept/reject according to its output
      or until it reaches 2^|x| steps and in this case reject;
  if such i doesn't exist loop for 2^|x| steps and reject.

Se P=NP o algoritmo irá, mais cedo ou mais tarde - suponha na entrada x0 0 - encontrar o índice da máquina de Turing polinomial no tempo (ou uma versão acolchoada) MSAT que resolve SAT em O(|x||MSAT|) e para todas as entradas maiores que x0 continuarão simulando e parando no tempo polinomial (observe que a etapa 2 também pode ser verificada no tempo polinomial). Em outras palavras, se P=NP o algoritmo resolve SAT em tempo polinomial em todos, exceto em um número finito de instâncias.

Se PNP o algoritmo é executado em tempo exponencial.


Como decido rapidamente se "Eu sou uma codificação válida de uma prova de P = NP no PA (ou ZFC)"?
user2925716

I

2
Alto pressuposto.
Jirka Hanika #

1
Se P ≠ NP, o tempo de execução do algoritmo incondicional é superpolinomial (conforme solicitado), mas se NP é apenas levemente superpolinomial, não exponencial. Podemos mudar o algoritmo para torná-lo io-exponencial, mas comprovadamente tornando-o exponencial (em oposição a apenas io-exponencial) se P ≠ NP for provavelmente tão difícil quanto resolver P = NP.
Dmytro Taranovsky

1
x|Mi|2x
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.