P, NP et machines de Turing spécialisées

13

Je suis en quelque sorte nouveau, mais très intéressé par le domaine de l'informatique et de la théorie de la complexité, et je veux clarifier ma compréhension de la façon de classer les problèmes et de la façon dont les problèmes sont liés à la machine utilisée pour les résoudre.

Ma compréhension

  • Machine de Turing standard - une machine de Turing qui a un alphabet fini, un nombre fini d'états et une seule bande infinie à droite
  • Turing-Equivalent Machine - une machine de Turing qui peut émuler et être émulée par une machine de Turing standard (assez souvent avec un compromis entre l'espace et le temps réalisé par l'émulation)
  • P - la classe de problèmes qui peuvent être résolus en temps polynomial en utilisant une machine de Turing standard (définie ci-dessus)
  • NP - la classe de problèmes qui peuvent être vérifiés en temps polynomial à l'aide d'une machine de Turing standard
  • NP-complete- les problèmes les plus difficiles qui sont encore en place NP, dans lesquels tous les NPproblèmes peuvent être convertis en temps polynomial

Ma question

Les classes de complexité ( P, NP, NP-complete, etc.) liés à l'algorithme, ou l'algorithme et la machine?

Autrement dit, si vous pouviez créer une machine équivalente de Turing (qui peut résoudre tous les problèmes qu'une norme TM peut, mais dans une quantité de temps / espace différente) et cette nouvelle machine pourrait résoudre un NP-completeproblème dans le temps qui se développe en tant que polynôme par rapport à l'entrée, cela impliquerait-il P=NP?

Ou le NP-completeproblème doit-il être résolu sur toutes les machines de Turing possibles en temps polynomial pour être pris en compte P?

Ou est-ce que je comprends mal quelque chose de fondamental ci-dessus?

J'ai jeté un coup d'œil (peut-être pas avec les termes de recherche corrects, je ne connais pas très bien tout le jargon) mais il semble que la plupart des conférences / notes etc. se concentrent sur les machines standard mais disent que les machines personnalisées ont souvent une certaine vitesse temps / espace au détriment de l'espace / temps, sans dire comment cela se répercute sur les classes de complexité. Je ne connais pas encore assez le jargon dans ce domaine pour trouver des articles qui expliquent cela.

Bingo
la source
Je pense que votre réponse est très similaire à cette réponse: en termes de base, quelle est la définition de P, NP, NP-Complete et NP-Hard? Jetez-y un œil.
Reza

Réponses:

9

Les algorithmes et les machines ne sont pas définis dans votre question et je ne pense pas qu'ils soient nécessaires pour demander ce que vous voulez demander.

Les classes de complexité sont définies à l'aide de machines Turing. Telle est leur définition. Si vous voulez prouver quelque chose, vous devez utiliser ces définitions. Tout ce qui concerne un autre modèle n'est pas lié à moins que vous ne prouviez une correspondance entre ce modèle et les machines Turing.

PNPP

BPP

BPP=P

BQPPP


PNPNP

Kaveh
la source
Donc, si votre machine personnalisée peut résoudre efficacement les problèmes, mais ne peut pas être émulée efficacement par une machine de Turing standard, ce résultat n'est pas pertinent pour P? = NP (même si je peux construire cette machine dans la vie réelle)?
Bingo
Oui c'est correct.
Kaveh
Et alors, cela violerait la thèse étendue de Church-Turing?
Bingo
Pas nécessairement.
Kaveh
6

Juste une note banale pour souligner que la simulation efficace d'une machine de Turing signifie non seulement qu'elle peut simuler le calcul d'une machine de Turing et vice versa efficacement (ralentissement polynomial); mais aussi que ses entrées / sorties doivent être converties efficacement d'un modèle à l'autre.

Un exemple trivial: si vous trouvez un appareil équivalent Turing qui peut résoudre un problème SAT en temps constant, mais utilise en entrée un tas de billes (unaire), alors vous ne pouvez rien conclure. De même si votre appareil utilise une entrée binaire mais qu'il a fallu un nombre exponentiel d'étapes pour convertir une instance de SAT au format d'entrée utilisé par lui.

Vor
la source
3

Votre compréhension est très bonne! Vous pouvez également trouver plus d'informations dans un texte si vous êtes intéressé, par exemple l'introduction de Sipser à la théorie du calcul.

Il y a cette idée appelée la thèse de Church-Turing qui dit que tout ce qui peut être calculé d'une manière ou d'une autre peut être calculé à l'aide d'une machine de Turing. (Ce n'est pas prouvable, mais juste une idée ou une sorte de loi de la nature que nous pensons être vraie).

Je mentionne cela parce qu'il y a aussi la "Thèse de Turing de l'Église étendue" qui dit que tout ce qui peut être calculé en temps polynomial peut être calculé en temps polynomial en utilisant une machine de Turing.

Il y a de bonnes raisons de douter de cette conjecture car nous connaissons des algorithmes de calcul quantique qui obtiennent une accélération meilleure que polynomiale par rapport aux algorithmes classiques les plus connus. Cependant, à part cela, on pense que toute machine classique que vous pouvez construire (certainement toute variante sur une machine de Turing) ne peut pas être exponentiellement plus rapide qu'une machine de Turing. Donc, si votre "machine équivalente de Turing" pouvait exécuter un algorithme qui a résolu un problème NP-complet en temps polynomial, alors P = NP parce que je pouvais le convertir en un algorithme polynomial pour le même problème sur une MT.

Mais si vous avez pensé à une sorte de machine équivalente de Turing, probablement l'une des premières choses que vous feriez serait de comprendre comment la simuler avec une MT classique, et cela vous dirait si vous avez une conversion en temps polynomial ou ne pas. Et la réponse serait presque certainement oui, sauf que peut-être votre pourrait être exponentiellement plus lent (mais pas plus vite - nous pensons, à moins que ce soit quantique, alors peut-être).

usul
la source