Techniques pour montrer que le problème est dans la dureté

36

Étant donné un nouveau problème dans dont la véritable complexité se situe quelque part entre et NP-complete, il existe deux méthodes que je connais qui pourraient être utilisées pour prouver que la résolution de ce problème est difficile:NPP

  1. Montrer que le problème est GI-complet (GI = Graph Isomorphism)
  2. Montrer que le problème est dans co-UNEM . Selon les résultats connus, un tel résultat implique que si le problème est NP-complet, alors PH s'effondrera au deuxième niveau. Par exemple, le fameux protocole pour le nonisomorphisme graphique fait exactement cela.

Existe-t-il d'autres méthodes (peut-être avec différentes «forces de conviction») qui ont été utilisées? Quelle que soit la réponse donnée, il faut un exemple d'utilisation concrète: il y a évidemment plusieurs façons de montrer cela, mais les exemples rendent l'argument plus convaincant.

Suresh Venkat
la source
12
Si un problème semble assez difficile, mais que vous n'êtes pas en mesure de prouver qu'il s'agit d'un PNJ, une vérification rapide consiste à compter le nombre de chaînes de longueur n dans la langue: si l'ensemble est rare, il est peu probable qu'il s'agisse d'un PNJ (sinon = NP par le théorème de Mahaney) ... il est donc préférable d'orienter ses efforts pour prouver que c'est dans P :-) :-) Un exemple tiré du blog de Fortnow & Gasarch : {(n, k): il existe un moyen de partitionner { 1, ..., n} dans au plus k cases de sorte qu'aucune boîte n'ait x, y, z avec x + y = z}
Marzio De Biasi
5
@MarzioDeBiasi ressemble à une réponse pour moi.
Sasho Nikolov
2
Une telle démonstration comporte deux parties: montrer la difficulté de placer le problème dans BPP et la difficulté de placer le problème dans la classe NP-complete. (Rappelez-vous que IG-complétude signifie simplement "est dans GI et est GI-difficile".)
1
+1 pour Ricky Demer; nous voudrons peut-être avoir une liste de méthodes pour la première partie.
Pteromys
2
Pour les problèmes dans FNP sans version de décision évidente dans NP, PPAD est une classe utile (et en croissance) à prendre en compte. Les problèmes complets de PPAD incluent de nombreux problèmes pour trouver des points fixes, par exemple les équilibres de Nash. La liste de Shiva est utile: cs.princeton.edu/~kintali/ppad.html
András Salamon

Réponses:

47

Montrer que votre problème est en mode CoAM (ou SZK) est en effet l’un des principaux moyens de produire des preuves de "limbo dureté". Mais à part cela, il y en a plusieurs autres:

  • Montrez que votre problème est dans NP ∩ coNP. (Exemple: affacturage.)
  • Montrez que votre problème peut être résolu en un temps quasiipolynomial. (Exemples: dimension VC, approximation des jeux gratuits.)
  • Montrez que votre problème n’est pas plus difficile que d’inverser des fonctions à sens unique ou de résoudre NP en moyenne. (Exemples: beaucoup de problèmes en cryptographie.)
  • Montrez que votre problème se réduit à (par exemple) des jeux uniques ou une extension en petit groupe.
  • Montrez que votre problème est dans BQP. (Exemple: l'affacturage, bien sûr, cela fait également partie de NP ∩ coNP.)
  • Éliminer les grandes classes de réductions de NP-complétude. (Exemple: le problème de minimisation de circuit, étudié par Kabanets et Cai.)

Je suis sûr qu'il y en a d'autres que j'oublie.

Scott Aaronson
la source
2
C'est une excellente liste, Scott!
Suresh Venkat
1
Juste curieux ... laquelle de ces techniques montre qu'il est peu probable que le problème soit résolu en temps polynomial (ou RP, ou BPP)? Je n'en ai pas vu qui semblait faire cela.
Philip White
2
Philip: Tu as raison, ils ne l'ont pas. Pour apporter la preuve qu'un problème particulier de NP n'est pas dans P, tout se résume à (1) essayer de le mettre dans P et échouer, et / ou (2) réduire d'autres problèmes que les gens n'ont pas mis P à résoudre ce problème.
Scott Aaronson
23

D'après le commentaire ci-dessus: si un problème semble assez difficile, mais que vous ne pouvez pas prouver qu'il est NP-complet, une vérification rapide consiste à compter le nombre de chaînes de longueur dans la langue: si l'ensemble est clairsemé, il l'est peu probable d'être NPC, sinon P = NP d'après le théorème de Mahaney ... il est donc préférable d'orienter les efforts pour prouver qu'il est en P :-) :-)n

Un exemple est le problème de la partition des nombres en k-box (extrait du blog de Fortnow & Gasarch, source originale: Cyberpuzzles du docteur Ecco ):

{ 1 , . . . , n }  dans au plus k cases de sorte qu'aucune case ne possède  x , y , z  avec  x + y = z }{(n,k)| il existe un moyen de partitionner  {1,...,n} dans au plus k boîtes de sorte qu'aucune boîte n'a X,y,z avec X+y=z}

Marzio De Biasi
la source
23

Voici trois ajouts à la liste de Scott:

  • Montrez que votre problème est en peu de points. Cela signifie que le nombre de solutions est limité par un polynôme. (Exemple: problème de péage). Aucun problème NP-complet n'est connu dans peu de P. (impossible à moins de peu P = NP).
  • LOgNPNP[log2n]
  • 2nεNPε>0n02nεn

coNPNP/poly

Mohammad Al-Turkistany
la source
1
Ou même dans UP (pas seulement FewP)!
Joshua Grochow