Quelles sont les conséquences d'avoir des problèmes complets dans ?
Quelles sont les conséquences d'avoir des problèmes complets dans ?
Réponses:
Il s'agit d'un problème (large) ouvert; comme dans, on ne sait presque rien. Plus précisément, en raison de la difficulté à prouver les problèmes complets de , nous avons besoin de techniques de preuve très différentes de celles qui existent actuellement. En tant que tel, une discussion sur les conséquences devrait raisonnablement inclure une tangente sur «Qu'est-ce que cela signifierait d'avoir des techniques de preuve aussi puissantes et nouvelles?
Pour une discussion relativement récente du sujet, il y a la 26e colonne NP-Completeness de David Johnson dans ACM Transactions on Algorithms from 2007 ( PDF ). Permettez-moi de paraphraser une partie de ce que David dit concernant la question de prouver l'existence de problèmes -complet et d'ajouter mes réflexions:
Actuellement, nous n'avons que des candidats «faibles» et naturels à l'adhésion à dans le sens où la preuve la plus solide de leur appartenance est que nous n'avons pas encore réussi à leur trouver d'algorithme de temps polynomial. Il énumère quelques candidats: SMALL FACTOR, SIMPLE STOCHASTIC GAME et MEAN PAYOFF GAME. Une partie de la «bizarrerie» supplémentaire de ces problèmes provient des meilleurs temps d'exécution heuristiques pour les résoudre, par exemple, SMALL FACTOR, alias INTEGER FACTOR , a une complexité temporelle aléatoire de . (Si des problèmes complets existent dans, alorscetemps d'exécutionsous-exponentiel(ni purement exponentiel, ni tout à fait polynomial) est-ilendémique de la classe?)
Donc , plus précisément, nous voulons prouver quelque chose comme: problème A est seulement ssi , soit un résultat complet comme le théorème de Cook pour 3SAT et . Pour , ces preuves impliquent universellement des réductions du temps polynomial (et fixent vos restrictions supplémentaires préférées, par exemple les réductions Cook, les réductions Karp). Par conséquent, dans les techniques de réduction du temps polynomial, il doit y avoir une représentation reconnaissable du temps polynomial de la classe. Pour , nous pouvons utiliser des machines de Turing non déterministes qui s'arrêtent au sein d'un polynôme, , nombre d'étapes. Commesouligne David, nous avonsreprésentations similaires pourautres classes (où le statut est plus clair) tels que et# .
La difficulté, cependant, de fournir une représentation similaire pour est que l'analogue "naturel" nous permet d'intégrer le problème de l'arrêt dans la représentation et est donc indécidable . Autrement dit, considérons la tentative suivante de représenter avec deux machines de Turing non déterministes qui, prétendument, reconnaissent des langages complémentaires:
Question: Une machine de Turing s'arrête-t-elle sur l'entrée ?
Construisez deux machines de Turing à temps linéaire et comme suit. Sur l'entrée , lit l'entrée et accepte toujours. rejette toujours sauf si et accepte aux étapes .
Par conséquent, et acceptent des langages complémentaires si ne s'arrête pas à l'entrée . Par conséquent, par contradiction, décider si deux machines de Turing à temps polynomial acceptent des langages complémentaires est indécidable.
Ainsi, la représentation "naturelle" des problèmes n'est pas reconnaissable en temps polynomial. La question demeure: comment représentez-vous les problèmes sorte qu'ils soient reconnaissables en temps polynomial?
Il n'y a eu aucun travail important fait sur cette question, mais sa résolution réussie est nécessaire de prouver l' exhaustivité dans . Par conséquent, je prétends que l'existence d'une technique de preuve qui peut résoudre l'intégralité de sera la plus grande histoire ici - et non les résultats "automatiques" de problèmes complets ( par exemple des classes de complexité, peut-être en train de s'effondrer) dont nous sommes déjà conscients (ou plutôt, nous le serons , hypothétiquement dans le futur).