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 P≠NP 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 P≠NP 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.