s
19 708 Pages

NP (complexité)
diagramme de Venn pour les classes de complexité P, NP, NP-complet et NP-dur

la classe des problèmes Il comprend tous les problèmes de décision, de trouver une solution sur une machine de Turing non-déterministe, en utilisant le temps polynomiale. la classe NP Il tire son nom de l'abréviation de Nondéterministe polynomiale.

la classe Il peut être défini d'une autre manière va exploiter machines de Turing non déterministe. En fait, il suivra celle donnée comme ensemble mots sur une alphabet , puis Il est dans la classe si et seulement s'il existe une machine de Turing complexité polynomiale non-déterministe que, pour chaque entrée , Il a au moins un calcul convergentes.

au fond s'il y a une machine de Turing qui accepte nondéterministe (Converge pour chaque entrée ).

Faire une complexité polynomiale non déterministe machine de Turing, il acceptera une langue qui sera un problème qui appartient à la classe . Une telle machine de Turing, par conséquent, pour chaque entrée sera parmi tous les calculs possibles sur cette entrée, qui arrête.

Mais si l'entrée qui est fourni à la machine de Turing qui accepte Il ne fait pas partie de cette dernière langue, alors vous ne calculs sans fin et la machine de Turing diverge évidemment.

Nous avons cette . De cette déclaration, il indique tout d'abord que tous les problèmes de classe P sont également des problèmes NP-classe.

À la suite il est démontré que la classe Elle peut être considérée comme cette classe de problèmes pour lesquels vous êtes en mesure de vérifier rapidement si une solution est en fait tel.

Théorème de projection

les deux une langue qui est un problème. Ensuite, nous aurons que si et seulement s'il y a un problème classe () Et un polynôme de telle sorte que notre problème Il peut être exprimé comme suit:

{, avec que T}

Essentiellement, le théorème nous dit que le problème Il est dans la classe s'il y a un problème la classe (Problème accepté par une machine de Turing déterministe, que nous appelons , telle que pour tout temps polynomial) apport Il est accepté par en temps polynomial, avec la contrainte que la longueur de Il est limité par polynôme.

Cette dernière condition sur la longueur de Il est essentiel de veiller à ce que le contrôle sur le fait qu'il est une solution efficace est fait en temps polynomial.

En effet, il ne suffit pas que et par conséquent accepter en temps polynomial. Donc, fondamentalement, on peut dire que si et seulement si pour chaque Ils sont capables d'associer une solution possible Je sais vérifier en temps polynomial.

démonstration

vers si le théorème) Supposons que vous ayez une langue la classe dont il est décidé par une machine de Turing déterministe et supposons aussi la condition est vraie voir dans le théorème. Ensuite, nous devons construire la machine de Turing non-déterministe (Qui accepte ) Alors que pour chaque entrée relever les 3 étapes suivantes:

  1. calcule
  2. Écrit dans un non-déterministe (ie génère toutes les configurations) avec
  3. Calcule la machine pour l'entrée

La première observation qui peut être fait est que la machine n'est pas déterministe Il a une complexité polynomiale, car les trois étapes sont telles qu'il doit remplir. donc .

Notez également que si elle et puis le calcul de Il arrête. Nous avons donc que si vous appliquez \ En T et et , puis hache . mais si (Machine de Turing complexité polynomiale non-déterministe) accepte , signifie que .

vers et seulement si le théorème), nous avons fondamentalement besoin de montrer que si , qui est, si est acceptée par une machine non-déterministe en complexité polynomiale, alors il est vrai que , T et .

Pour ce faire, je dois construire la langue de façon appropriée. A cet effet, nous supposons que à la fois la machine non-déterministe qui accepte . Comme nous le savons pour toute machine, que ce soit déterministe ou non, chaque calcul peut être représenté comme une séquence de configurations successives.

nous avons, en particulier, pour chaque calcul convergent, la liste des configurations successives est une liste finie. on peut associer un nombre qui dans notre cas sera binaire pour chacune de ces séquences de configurations.

Mais pour une machine de Turing non-déterministe, comme infini peut être différent de calcul possible que je fais, vous aurez des problèmes. Pour remédier à cela, nous pouvons considérer les couples:

{ codant pour un calcul de mettre fin à l'entrée }

qui, comme on peut le voir donner vie à toute langue . De cette langue Il doit être vérifié l'adhésion dans la classe des problèmes . A cet effet, il faut vérifier que pour l'entrée informatique arrête vraiment.

En substance doit être vérifié que la première étape que vous êtes dans l'état écrit sur la bande avec l'entrée ; puis doit vérifier que chaque configuration successive résultant des moyens précédents de la fonction de transition ; Enfin, il convient de vérifier que la dernière configuration est une configuration de type de terminal. Si tout cela est vrai, .

A ce stade, il doit être fait pour voir qu'il ya un polynôme que . À cette fin, nous notons que si le calcul de de converge alors un tel calcul comporte un certain nombre d'étapes polynôme et à chaque étape I a une configuration qui polynôme de longueur par rapport à la longueur de ; aussi aussi Il longueur polynomiale par rapport à . Nous avons donc demandé le polynôme.

Articles connexes