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 PAGnortePAG 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 PAGnortePAG 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.