NP-complet

Dans la théorie de complexité informatique , le NP-complet de la classe de complexité de , également connu sous le nom de NP-C ou NPC , est un sous-ensemble de NP (" ; " polynôme du temps non déterministe ;); ils sont les problèmes les plus difficiles dans le NP dans le sens qu'un déterministe, solution de polynôme-temps au n'importe quel problème NP-complet de fournirait une solution à chaque autre problème au NP (et réciproquement, le cas échéant l'une d'entre elles manque prouvable d'une solution déterministe de polynôme-temps, aucune de elles n'a un). Des problèmes dans le NP-complet sont connus comme problèmes NP-complets du . Une définition plus formelle est donnée ci-dessous.

Un exemple d'un problème NP-complet est le problème de somme de sous-ensemble de qui est : donné un ensemble fini de nombres entiers, déterminer si n'importe quel sous-ensemble non vide de eux des sommes à zéro. Il est très facile vérifier une réponse supposée pour assurer l'exactitude, mais il n'y a aucun algorithme efficace connu pour trouver une réponse ; c'est-à-dire, tous les algorithmes connus sont impraticable lents pour de grands ensembles de nombres entiers

Définition formelle de NP-perfection

Un C du problème de décision est NP-complet si : Le C est dans le NP , et le
  • Chaque problème dans le NP est le réductible au C .

    Le C peut être montré pour être dans le NP en démontrant qu'une solution de candidat au C peut être vérifiée dans le temps polynôme .

    Un L de problème est réductible au C s'il y a un polynôme-temps de beaucoup-un la réduction , un algorithme déterministe qui transforme le l le L d'exemples de ∈ de en C de ∈ du c d'exemples, tels de que la réponse au c est OUI si et seulement si la réponse au l est OUI. Il est suffisant de le montrer qu'un A de problème du NP est en fait un problème NP-complet pour prouver qu'un problème NP-complet déjà connu réduit au A .

    Un état satisfying 2 de problème mais pas nécessairement l'état 1 serait le NP-dur.

    Une conséquence de cette définition est que si nous avions un algorithme polynôme de temps (sur un UTM , ou toute autre machine abstraite Turing-équivalent de ) pour le C , nous pourrait résoudre tous les problèmes au NP dans le temps polynôme.

    Le A davantage a détaillé la définition formelle de la NP-perfection Ca soit le trouvé ici .

    Fond

    Le concept du " ; Le NP-complete" ; a été présenté par le cuisinier de Stephen de dans un papier intitulé « la complexité des procédures theorem-proving » aux pages 151-158 des démarches de du 3ème colloque annuel d'ACM sur la théorie de calculer en 1971, cependant le " de limite ; Le NP-complete" ; n'est pas apparu n'importe où en son papier. À cette conférence de l'informatique du , il y avait une discussion féroce parmi les informaticiens au sujet de si des problèmes NP-complets pourraient être résolus dans le temps polynôme sur une machine déterministe de Turing de du . Le John Hopcroft a apporté chacun à la conférence à un consensus que la question de si les problèmes NP-complets du sont le soluble dans le temps polynôme devrait être posée au loin pour être résolue à certains date ultérieure, puisque personne n'a eu d'une manière ou d'une autre aucune preuve formelle pour leurs réclamations. Ceci est connu comme question de si le P=NP .

    Personne n'a encore pu déterminer d'une manière concluante si les problèmes NP-complets sont en fait solubles dans le temps polynôme , faisant celui-ci des problèmes non résolus de grand des mathématiques . L'institut de mathématiques d'argile de offre une récompense $1 millions à n'importe qui qui a une preuve formelle qui P=NP ou qui P≠NP.

    Dans le théorème célébré de Faire cuire-Levin de (indépendamment prouvé par Leonid Levin ), le cuisinier a montré que le problème booléen de satisfiability de est NP-complet (un plus simple, mais toujours fortement - la preuve technique de de ce est disponible). En 1972, le Richard Karp a montré que plusieurs autres problèmes étaient également NP-complets (voir problèmes NP-complets de Karp de les 21) ; ainsi il y a une classe des problèmes NP-complets du (sans compter que le problème booléen de satisfiability de ). Depuis les résultats originaux du cuisinier, les milliers d'autres problèmes se sont avérés NP-complets par des réductions d'autres problèmes précédemment avérés NP-complets ; plusieurs de ces problèmes sont rassemblés en Garey et des ordinateurs et indocilité de de livre du 1979 de Johnson de : Un guide de la NP-Perfection .

    problèmes NP-complets

    Article principal de : Liste de des problèmes NP-complets

    Un exemple intéressant est le problème , le problème d'isomorphisme de graphique de de la théorie de graphique de déterminer si un isomorphisme de graphique de existe entre deux graphiques . Deux graphiques sont le isomorphe si on peut être transformé par dans l'autre simplement en retitrant les sommets . Considérer ces deux problèmes :
    Isomorphisme de graphique de

    : Le graph G 1 est-il isomorphe au graph G 2 ?
    Isomorphisme de sous-graphe : Le graph G 1 est-il isomorphe à un sous-graphe du graph G 2 ?

  • Le problème d'isomorphisme de sous-graphe est NP-complet. On ne suspecte le problème d'isomorphisme de graphique de pour être ni dans P ni NP-complet, bien que ce soit évidemment au NP. C'est un exemple d'un problème qui est vraisemblablement le dur, mais n'est pas vraisemblablement le NP-complet.

    La manière la plus facile de montrer qu'un certain nouveau problème est NP-complet est première pour montrer qu'elle est au NP, et puis pour ramener un certain problème NP-complet connu à elle. Par conséquent, il est utile de connaître une série de problèmes NP-complets. La liste ci-dessous contient quelques problèmes bien connus qui sont le NP-complet une fois exprimés comme les problèmes de décision style=" de


    Problème booléen (SAT) de satisfiability de
    N-puzzle
    Problème de sac à dos de
    Problème hamiltonien de cycle de
    Problème de représentant de commerce de
    Problème d'isomorphisme de sous-graphe de
    Problème de somme de sous-ensemble de
    Problème de clique de
    Problème de couverture de sommet de
    Problème réglé d'indépendant de
    Problème racial de graphique

    Vers la droite est un diagramme de certains des problèmes et des réductions typiquement employés pour prouver leur NP-perfection. Dans ce diagramme, une flèche d'un problème à l'autre indique la direction de la réduction. Noter que ce diagramme est fallacieux comme description du rapport mathématique entre ces problèmes, car là existe une réduction de polynôme-temps entre deux problèmes NP-complets quelconques ; mais il indique où la démonstration de cette réduction de polynôme-temps a été la plus facile.

    Il y a souvent seulement une petite différence entre un problème dans P et un problème NP-complet. Par exemple, 3SAT le problème, une restriction du problème booléen de satisfiability, demeure NP-complet, tandis que le problème légèrement plus restreint du 2SAT est dans P (spécifiquement, NL-complet), et le problème légèrement plus général de max 2SAT est encore NP-complet. Détermine si un graphique peut être coloré avec 2 couleurs est dans P, mais avec 3 couleurs NP-complet, même lorsque limité aux graphiques planaires déterminant si un graphique est un cycle ou est que bipartite est très facile (dans L ), mais trouvant un bipartite maximum ou un sous-graphe maximum de cycle est NP-complet. Une solution du problème de sac à dos de dans n'importe quel pourcentage fixe de la solution optimale peut être calculée dans le temps polynôme , mais la conclusion de la solution optimale est le NP-complet.

    Solution des problèmes NP-complets

    Actuellement, tous les algorithmes connus pour des problèmes NP-complets ont besoin de le temps qu'est le Superpolynomial dans la taille d'entrée, et il est inconnu s'il y ait des algorithmes plus rapides.

    Les techniques suivantes peuvent être appliquées pour résoudre des problèmes informatiques généralement et elles provoquent souvent des algorithmes sensiblement plus rapides :
    Approximation : Au lieu de rechercher une solution optimale, rechercher un " ; almost" ; l'optimal.
    Randomisation : Employer l'aspect aléatoire pour obtenir un temps de fonctionnement moyen plus rapide , et permettre à l'algorithme d'échouer avec une certaine petite probabilité.
    Restriction : En limitant la structure de l'entrée (par exemple, aux graphiques planaires , des algorithmes plus rapides sont habituellement possibles.
    Paramétrisation : Souvent il y a des algorithmes rapides si certains paramètres de l'entrée sont fixes.
    heuristique : Un algorithme qui fonctionne le " ; raisonnablement well" ; sur beaucoup de cas, mais pour ce qu'il n'y a aucune preuve qu'elle est jeûnent toujours et produit toujours un bon résultat. Les approches de Metaheuristic sont employées souvent.

    Un exemple d'un algorithme heuristique est un algorithme avide suboptimal d'O ( n de notation de n ) utilisé pour la coloration de graphique de pendant la phase de l'attribution de registre de de quelques compilateurs, une technique appelée l'attribution globale de registre de Graphique-coloration de . Chaque sommet est une variable, des bords sont dessinés entre les variables qui sont employées en même temps, et les couleurs indiquent le registre assigné à chacun variable. Puisque la plupart des machines du RISC ont un nombre assez grand de registres d'usage universel, même une approche heuristique est efficace pour cette application.

    Perfection sous différents types de réduction

    Dans la définition de NP-complet donné ci-dessus, le " de limite ; reduction" ; a été employé dans la signification technique d'un Polynôme-temps de beaucoup-un la réduction .

    Un autre type de réduction est la réduction de Turing de Polynôme-temps de . Un X de problème est polynôme-temps Turing-réductible à un Y de problème si, donné une sous-routine qui résout le Y dans le temps polynôme, on pourrait écrire un programme qui appelle cette sous-routine et résout le X dans le temps polynôme. Ceci contraste avec des beaucoup-un la réductibilité, qui a la restriction que le programme peut seulement appeler la sous-routine une fois, et la valeur de retour de la sous-routine doit être la valeur de retour du programme.

    Si on définit l'analogue NP-complet avec des réductions de Turing au lieu de beaucoup-un de réductions, l'ensemble en résultant de problèmes ne sera pas plus petit que NP-complet ; c'est une question ouverte s'il sera plus grand. Si les deux concepts étaient identiques, alors il suivrait le ce le NP = le Co-NP . Ceci se tient parce que par leur définition les classes des problèmes NP-complets et Co-NP-complets sous des réductions de Turing sont les mêmes et parce que ces classes sont les deux superjeux de les mêmes classes ont défini avec beaucoup-un de réductions. Ainsi si les deux définitions de NP-perfection sont égale puis il y a un problème Co-NP-complet (sous les deux définitions) comme par exemple le complément du problème booléen de satisfiability qui est également NP-complet (sous les deux définitions). Ceci implique que le NP = le Co-NP comme est montré dans la preuve dans l'article du Co-NP . Bien que si le NP = le Co-NP est une question ouverte on le considère peu probable et donc il est également peu probable que les deux définitions de la NP-perfection soient équivalentes.

    Un autre type de réduction qui est également employée souvent pour définir la NP-perfection est le Logarithmique-espace de beaucoup-un la réduction qui est un beaucoup-un la réduction qui peut être calculée avec seulement une place logarithmique. Puisque chaque calcul qui peut être fait dans l'espace logarithmique peut également être fait dans le temps polynôme il suit que s'il y a un Logarithmique-espace de beaucoup-un la réduction puis il y a également un Polynôme-temps de beaucoup-un la réduction . Ce type de réduction est plus raffiné que le polynôme-temps plus habituel beaucoup-un de réductions et lui nous permet de distinguer plus de classes telles que le P-complet. Si sous ces types de réductions la définition des changements NP-complets est toujours un problème non résolu.

    Voir également

    Liste de des problèmes NP-complets
    presque complet
    Le théorème de Ladner de
    fortement NP-complet
    P = problème du NP

    .

    Random links:Maggie Smith | Autorité de commande nationale | Système de Linux d'atterrissage en douceur | Wes Parker | Liste de matières autisme-connexes | NP-completo