ift-66975 complexité et np-complétude

Download IFT-66975 Complexité et  NP-complétude

Post on 14-Jan-2016

21 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

IFT-66975 Complexité et NP-complétude. Chapitre 0 Rappels. Quelques définitions. Un alphabet est un ensemble fini non-vide. On appelle ses éléments des symboles . Exemples:  binaire = {0,1}  latin = {a,b, …, z}  ADN = {A,C,T,G}. - PowerPoint PPT Presentation

TRANSCRIPT

  • IFT-66975Complexit et NP-compltudeChapitre 0Rappels

  • Quelques dfinitionsUn alphabet est un ensemble fini non-vide. On appelle ses lments des symboles. Exemples:binaire = {0,1}latin = {a,b, , z}ADN = {A,C,T,G}

  • Un mot sur lalphabet est une squence finie de symboles. |w| dnote la longueur de w (nombre de symboles) et le mot vide ( ou ) est le mot de longueur 0.Lensemble de tous les mots sur est dnot *.Un langage sur lalphabet est un ensemble de mots de *.

  • Quelques exemples de langages:Mots de {a,b}* contenant plus de a que de b.Les mots de {0,1}* qui sont lencodage binaire dun nombre premier.Les mots de {0,1}* qui sont lencodage dun graphe qui contient un chemin de longueur 8.

  • TerminologieProblme de calcul (ou problme algorithmique): Un ensemble dentres valides, chacune de ces entres pouvant tre dcrites laide dun mot fini.Une fonction qui associe chaque entre possible un ensemble non-vide de sorties valides, chacune de ces sorties pouvant tre dcrites laide dun mot fini.

    Exemple: Le problme du commis-voyageur est un problme de calcul. Les entres valides sont constitus dun ensemble de villes et dun tableau de distance. Les sorties valides correspondent un circuit de cot minimal pour ces villes.

  • Terminologie (suite)Instance dun problme: Une instance du problme de calcul C est simplement une entre valide pour ce problme.

    Problme de dcision:Problme de calcul qui consiste dterminer si une certaine entre w fait partie dun langage L. En pratique on ne fera pas la diffrence entre un langage et un problme de dcision.

    Exemple: Langage des mots de {0,1}* qui dcrivent un graphe acyclique. Problme de dcision: tant donn un graphe rpondre oui si le graphe est acyclique ou non sinon.

  • Machines de TuringLe modle de rfrence depuis Turing (annes 30). chaque tape, la machine peut en fonction de ltat du contrle fini et du symbole lu:

    Changer ltat du contrle fini. Rcrire sous la tte de lecture. Dplacer la tte vers la gauche ou la droite dune case. Sarrter.

  • Formellement, une machine de Turing est un quintuplet M = (Q,,,q0,,Q) avecQ un ensemble fini dtats.q0 Q ltat initial.Q Q des tats darrt. un alphabet dentre. un alphabet de ruban qui contient et au moins un symbole blanc b. : Q Q {-1,0,1} une fonction de transition.

  • Initialement, le ruban contient un mot dentre w * suivi de symboles blancs. La tte de lecture est sur la premire case du ruban et ltat est q0.

    chaque tape, si la machine se trouve dans ltat q Q, lit le symbole a sur la case j tel que (q,a) = (q,a,d) alors la machine remplace le symbole a de la case j par a, passe ltat q et dplace sa tte de lecture sur la case max{j+d,0}. Le calcul se poursuit jusqu ce quon atteigne un tat darrt.

  • Si la machine sarrte, alors on appelle sortie le contenu du ruban jusqu la premire case contenant un symbole blanc.

    La fonction calcule par une machine de Turing M est la fonction partielle f: * * telle que f(w) = sortie de M sur lentre w. Cette fonction est partielle car il se peut que M ne sarrte jamais pour certains w.

    Un problme de calcul C est rsolu par une machine M si pour chaque instance w de C la sortie de M est une sortie valide.

  • CalculabilitUne fonction f: * * est calculable si elle est calcule par une machine de Turing. De mme un problme de calcul est calculable sil existe une m.t. qui le rsoud.

    Pour et donns, il existe un nombre dnombrable de m.t. mais un nombre indnombrable de fonctions de * dans * donc certaines fonctions sont incalculables.

  • Thse de Church-TuringNimporte quel modle raisonnable de calcul est de puissance quivalente aux machines de Turing.

    Malgr leur apparente simplicit, les m.t. sont donc aussi puissantes que nimporte lequel de nos ordinateurs. Pour montrer quune fonction est calculable, il suffit de dcrire un algorithme dans la forme qui nous convient.

  • Soit M une m.t. qui sarrte pour chaque entre.Le temps dexcution de M sur lentre w est le nombre dtapes ncessaires M pour atteindre un tat darrt.Le temps dexcution de M est la fonction tM: N N telle que f(n) = temps dexcution maximal de M sur une entre de longueur n.Nous cherchons comprendre le comportement asymptotique de tM.

  • Rappel de la notation asymptotique:Soit f et g deux fonctions de N dans N.

    f O(g) limn f(n)/g(n) < f o(g) limn f(n)/g(n) = 0f (g) limn f(n)/g(n) = c pour un c 0.f (g) limn f(n)/g(n) > 0f (g) limn f(n)/g(n) =

  • Thse tendue de Church-TuringSoient R1 et R2 des modles raisonnables de calcul et pour toutes notions raisonnables de temps dexcution de ces modles, il existe un polynme p, tel que t tapes dun calcul sur une entre de longueur n dans le modle R1 peut tre simule par p(n,t) tapes dans le modle R2.

  • Une premire classe de complexitPour toute fonction t: N N, on dnote DTIME(t) la classe des problmes de dcision (ou des langages) calculables en temps O(t) et FDTIME(t) la classe des fonctions calculables en temps O(t).

    noter que ces classes ne sont pas trs robustes. Si lon change lgrement notre dfinition de machine de Turing, les classe DTIME(t) et FDTIME(t) ne sont peut-tre plus les mmes.

  • Dfinitions: La classe de complexit P est un ensemble de problmes de dcision dfini par P = k N DTIME(nk). De la mme faon, on dfinit FP = k N FDTIME(nk).

    cause de la thse de Church-Turing tendue, cette classe est trs robuste.

  • Limportance de PEn gnral, on considre que les problmes dans P (ou FP) sont des problmes pour lesquels il existe un algorithme efficace. (Mais on exagre)Certainement, si un problme nest pas dans P (ou FP), alors il nexiste pas dalgorithme efficace pour le rsoudre.

  • Que contient P?Malheureusement, on ne sait pas prcisment!Une liste partielle existe dans tous les livres dalgorithmique Oprations sur les entiers, algbre matricielle, problmes de tri, problme de flot, construction dun arbre de recouvrement etc.

  • Fonctions en dehors de P?On peut aisment reprendre la stratgie permettant de montrer lindcidabilit du problme de larrt opur montrer quil existe un langage dcidable qui nest pas dans P.

  • Quel est le langage accept par la machine de Turing suivante?

    D = entre x;Calculer |x| et initialiser un compteur c de |x| bits.Vrifier si x = 0k 1M et rejeter sinon;Simuler M sur lentre x pendant au plus 2|x| tapes. Si M accepte x alors D rejette x. Si M rejette x alors D accepte x.

  • Note: la machine D sarrte sur toutes les entres. Donc L = L(D) est dcidable.

    Supposons que L P. Alors il existe une machine N telle que L(N) = L et tN = O(nd) pour un d N. On a tN = o(2n) donc il existe un n0 tel que tN(n) < 2n pour tout n n0. Que fait la machine D lorsque son entre est x = 0n01N? La machine excute simule N pendant 2|x| tapes et donc atteint la fin du calcul de N.Ainsi D accepte x si N rejette x et D rejette x si N accepte x. Donc L(D) L(N). Contradiction!Donc L(D) est dcidable mais L(D) P.

  • Thorme de hirarchie de tempsPour toute fonction f: N N (temps-constructible), et pour toute fonction g = o(f / log f), il existe un langage L DTIME(f) DTIME(g).

  • Quel est le langage accept par la machine de Turing suivante?

    Df = entre x;Calculer f(|x|) et initialiser un compteur c de longueur f(|x|) / log f(|x|);Vrifier si x = 0k 1M et rejeter sinon;Simuler M sur lentre x pendant au plus c tapes. Si M accepte x alors Df rejette x. Si M rejette x alors Df accepte x.