Algorithme dont le temps de fonctionnement dépend de P vs. NP


18

Existe-t-il un exemple connu et explicite d'un algorithme avec la propriété telle que si PNP alors cet algorithme ne s'exécute pas en temps polynomial et si P=NP alors il s'exécute en temps polynomial?


9
Sorte de. Si P = NP, l'algorithme de recherche universel de Levin s'exécute en temps polynomial sur l'acceptation d'instances en.wikipedia.org/wiki/…
Emil Jeřábek prend en charge Monica

@Emil: si P = NP, alors aussi P = coNP, ne pouvez-vous pas faire simultanément une recherche Levin sur le complément de votre langage, donnant ainsi un algorithme de temps poly vraiment sur toutes les instances?
Joshua Grochow

3
@JoshuaGrochow Afin d'exprimer le langage en tant que coNP, il faudrait d'abord que je connaisse l'algorithme de polytime pour NP, ce qui va à l'encontre du but recherché.
Emil Jeřábek soutient Monica

Réponses:


17

Si vous supposez que P=?NP est prouvable en PA (ou ZFC), un exemple trivial est le suivant:

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

Un autre exemple - moins trivial - qui ne repose sur aucune hypothèse est le suivant:

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 P=NP l'algorithme trouvera tôt ou tard - supposons sur l'entrée x0 - trouver l'index du temps polynomial de Turing (ou une version rembourrée de celui-ci) MSAT qui résout SAT en O(|x||MSAT|) et pour toutes les entrées supérieures à x0 continuera de le simuler et s'arrêtera en temps polynomial (notez que l'étape 2 peut également être vérifiée en temps polynomial). En d'autres termes, si P=NP l'algorithme résout SAT en temps polynomial sur tout sauf un nombre fini d'instances.

Si PNP l'algorithme s'exécute en temps exponentiel.


Comment décider rapidement si "I est un encodage valide d'une preuve de P = NP en PA (ou ZFC)"?
user2925716

@ user2925716 Vous pouvez le faire en temps polynomial (imaginez que I est une chaîne qui représente la preuve complète dans tout système de déduction raisonnable).
Marzio De Biasi,

2
Hypothèse haute.
Jirka Hanika

1
Si P ≠ NP, le temps d'exécution de l'algorithme inconditionnel est superpolynomial (comme demandé), mais si NP n'est que très légèrement superpolynomial, pas exponentiel. Nous pouvons changer l'algorithme pour le rendre io-exponentiel, mais de manière prouvable le rendre exponentiel (par opposition à juste io-exponentiel) si P ≠ NP est probablement aussi difficile que de résoudre P = NP.
Dmytro Taranovsky

1
x|Mi|2x
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.