Algoritmo cuyo tiempo de ejecución depende de P vs. NP


18

¿Existe un ejemplo explícito conocido de un algoritmo con la propiedad tal que si PAG≠nortePAG este algoritmo no se ejecuta en tiempo polinomial y si PAG=nortePAG se ejecuta en tiempo polinómico?


99
Algo así como. Si P = NP, el algoritmo de búsqueda universal de Levin se ejecuta en tiempo polinómico al aceptar instancias en.wikipedia.org/wiki/…
— Emil Jeřábek apoya a Monica el

@Emil: si P = NP, entonces también P = coNP, entonces ¿no puedes hacer Levin simultáneamente en el complemento de tu idioma, dando así un algoritmo de tiempo verdaderamente poli en todas las instancias?
— Joshua Grochow

3
@JoshuaGrochow Para expresar el lenguaje como coNP, primero necesitaría conocer el algoritmo de polytime para NP, lo que frustraría todo el propósito.
— Emil Jeřábek apoya a Monica el

Respuestas:


17

Si supones que PAG=?nortePAG es demostrable en PA (o ZFC), un ejemplo trivial es el siguiente:

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

Otro ejemplo, menos trivial, que no se basa en ningún supuesto es el siguiente:

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.

Si PAG=nortePAG el algoritmo tarde o temprano, supongamos que en la entrada X0 0 , encontrará el índice de la máquina de Turing de tiempo polinomial (o una versión acolchada) METROSUNT que resuelve SAT en O(El |XEl |El |METROSUNTEl |) y para todas las entradas mayores que X0 0 continuarán simulándolo y se detendrán en el tiempo polinómico (tenga en cuenta que el paso 2 también se puede verificar en tiempo polinómico). En otras palabras si PAG=nortePAG El algoritmo resuelve SAT en tiempo polinómico en todas las instancias, excepto en un número finito.

Si PAG≠nortePAG el algoritmo se ejecuta en tiempo exponencial.


¿Cómo decido rápidamente si "I es una codificación válida de una prueba de P = NP en PA (o ZFC)"?
— user2925716

yo

2
Alto supuesto.
— Jirka Hanika

1
Si P ≠ NP, el tiempo de ejecución del algoritmo incondicional es superpolinomial (según lo solicitado), pero si NP es muy ligeramente superpolinomial, no exponencial. Podemos cambiar el algoritmo para hacerlo io-exponencial, pero demostrablemente haciéndolo exponencial (en lugar de solo io-exponencial) si P ≠ NP es tan difícil como resolver P = NP.
— Dmytro Taranovsky

1
XEl |METROyoEl |2X
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.