La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

IFT-66975 Complexité et NP-complétude Chapitre 0 Rappels.

Présentations similaires


Présentation au sujet: "IFT-66975 Complexité et NP-complétude Chapitre 0 Rappels."— Transcription de la présentation:

1 IFT Complexité et NP-complétude Chapitre 0 Rappels

2 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}

3 Un mot sur lalphabet est une séquence finie de symboles. |w| dénote 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 dénoté *. Un langage sur lalphabet est un ensemble de mots de *.

4 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.

5 Terminologie Problème de calcul (ou problème algorithmique): 1. Un ensemble dentrées valides, chacune de ces entrées pouvant être décrites à laide dun mot fini. 2. Une fonction qui associe à chaque entrée possible un ensemble non-vide de sorties valides, chacune de ces sorties pouvant être décrites à laide dun mot fini. Exemple: Le problème du commis-voyageur est un problème de calcul. Les entrées valides sont constitués dun ensemble de villes et dun tableau de distance. Les sorties valides correspondent à un circuit de coût minimal pour ces villes.

6 Terminologie (suite) Instance dun problème: Une instance du problème de calcul C est simplement une entrée valide pour ce problème. Problème de décision: Problème de calcul qui consiste à déterminer si une certaine entrée w fait partie dun langage L. En pratique on ne fera pas la différence entre un langage et un problème de décision. Exemple: Langage des mots de {0,1} * qui décrivent un graphe acyclique. Problème de décision: étant donné un graphe répondre oui si le graphe est acyclique ou non sinon.

7 Machines de Turing Le modèle de référence depuis Turing (années 30) … Contrôle fini À chaque étape, la machine peut en fonction de létat du contrôle fini et du symbole lu: Changer létat du contrôle fini. Réécrire sous la tête de lecture. Déplacer la tête vers la gauche ou la droite dune case. Sarrêter.

8 Formellement, une machine de Turing est un quintuplet M = (Q,,,q 0,,Q) avec Q un ensemble fini détats. q 0 Q létat initial. Q Q des états darrêt. un alphabet dentrée. un alphabet de ruban qui contient et au moins un symbole blanc b. : Q Q {-1,0,1} une fonction de transition.

9 Initialement, le ruban contient un mot dentrée w * suivi de symboles blancs. La tête de lecture est sur la première case du ruban et létat est q 0. À chaque étape, si la machine se trouve dans létat 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 à létat q et déplace sa tête de lecture sur la case max{j+d,0}. Le calcul se poursuit jusquà ce quon atteigne un état darrêt.

10 Si la machine sarrête, alors on appelle sortie le contenu du ruban jusquà la première case contenant un symbole blanc. La fonction calculée par une machine de Turing M est la fonction partielle f: * * telle que f(w) = sortie de M sur lentrée w. Cette fonction est partielle car il se peut que M ne sarrête jamais pour certains w. Un problème de calcul C est résolu par une machine M si pour chaque instance w de C la sortie de M est une sortie valide.

11 Calculabilité Une fonction f: * * est calculable si elle est calculée par une machine de Turing. De même un problème de calcul est calculable sil existe une m.t. qui le résoud. Pour et donnés, il existe un nombre dénombrable de m.t. mais un nombre indénombrable de fonctions de * dans * donc certaines fonctions sont incalculables.

12 Thèse de Church-Turing Nimporte quel modèle 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 décrire un algorithme dans la forme qui nous convient.

13 Soit M une m.t. qui sarrête pour chaque entrée. Le temps dexécution de M sur lentrée w est le nombre détapes nécessaires à M pour atteindre un état darrêt. Le temps dexécution de M est la fonction t M : N N telle que f(n) = temps dexécution maximal de M sur une entrée de longueur n. Nous cherchons à comprendre le comportement asymptotique de t M.

14 Rappel de la notation asymptotique: Soit f et g deux fonctions de N dans N. f O(g) lim n f(n)/g(n) < f o(g) lim n f(n)/g(n) = 0 f (g) lim n f(n)/g(n) = c pour un c 0. f (g) lim n f(n)/g(n) > 0 f (g) lim n f(n)/g(n) =

15 Thèse étendue de Church-Turing Soient R 1 et R 2 des modèles raisonnables de calcul et pour toutes notions raisonnables de temps dexécution de ces modèles, il existe un polynôme p, tel que t étapes dun calcul sur une entrée de longueur n dans le modèle R 1 peut être simulée par p(n,t) étapes dans le modèle R 2.

16 Une première classe de complexité Pour toute fonction t: N N, on dénote DTIME(t) la classe des problèmes de décision (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 très robustes. Si lon change légèrement notre définition de machine de Turing, les classe DTIME(t) et FDTIME(t) ne sont peut-être plus les mêmes.

17 Définitions: La classe de complexité P est un ensemble de problèmes de décision défini par P = k N DTIME(n k ). De la même façon, on définit FP = k N FDTIME(n k ). À cause de la thèse de Church-Turing étendue, cette classe est très robuste.

18 Limportance de P En général, on considère que les problèmes dans P (ou FP) sont des problèmes pour lesquels il existe un algorithme efficace. (Mais on exagère…) Certainement, si un problème nest pas dans P (ou FP), alors il nexiste pas dalgorithme efficace pour le résoudre.

19 Que contient P? Malheureusement, on ne sait pas précisément! Une liste partielle existe dans tous les livres dalgorithmique… Opérations sur les entiers, algèbre matricielle, problèmes de tri, problème de flot, construction dun arbre de recouvrement etc.

20 Fonctions en dehors de P? On peut aisément reprendre la stratégie permettant de montrer lindécidabilité du problème de larrêt opur montrer quil existe un langage décidable qui nest pas dans P.

21 Quel est le langage accepté par la machine de Turing suivante? D = « entrée x; 1. Calculer |x| et initialiser un compteur c de |x| bits. 2. Vérifier si x = 0 k 1 M et rejeter sinon; 3. Simuler M sur lentrée x pendant au plus 2 |x| étapes. Si M accepte x alors D rejette x. Si M rejette x alors D accepte x. »

22 Note: la machine D sarrête sur toutes les entrées. Donc L = L(D) est décidable. Supposons que L P. Alors il existe une machine N telle que L(N) = L et t N = O(n d ) pour un d N. On a t N = o(2 n ) donc il existe un n 0 tel que t N (n) < 2 n pour tout n n 0. Que fait la machine D lorsque son entrée est x = 0 n 0 1 N ? La machine exécute 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 décidable mais L(D) P.

23 Théorème de hiérarchie de temps Pour 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).

24 Quel est le langage accepté par la machine de Turing suivante? D f = « entrée x; 1. Calculer f(|x|) et initialiser un compteur c de longueur f(|x|) / log f(|x|); 2. Vérifier si x = 0 k 1 M et rejeter sinon; 3. Simuler M sur lentrée x pendant au plus c étapes. Si M accepte x alors D f rejette x. Si M rejette x alors D f accepte x. »


Télécharger ppt "IFT-66975 Complexité et NP-complétude Chapitre 0 Rappels."

Présentations similaires


Annonces Google