chapitre3 2012 théorie de la complexité -...

31
Chapitre 3 Théorie de la complexité algorithmique 1 algorithmique

Upload: others

Post on 01-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Chapitre 3

Théorie de la complexité algorithmique

1

algorithmique

Page 2: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Plan

� Définition d'une machine de Turing� Problème de Décision� Problèmes algorithmiques :

� Décidabilité � Calculabilité

2

� Calculabilité

� Classes de complexité� Problèmes C-Complets

Page 3: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Définition d'une machine de Turing

� Introduite par Alan Turing en 1936. C'est un modèlemathématique simplifié d’un calculateur, permettantd’accomplir tout processus exécutable par unordinateur. Une Machine de Turing (MT) est plusgénérale qu’un automate à pile. Une MT ressemble àun automate à pile, la différence est qu'un PDAutilise une pile de stockage FILO (first in last out),une MT utilise une bande infinie (dans les deux

3

une MT utilise une bande infinie (dans les deuxdirections) de cellules contenant chacune unsymbole. Un PDA possède une tête de lecture sedéplaçant d’une cellule dans un seul sens, unemachine de Turing utilise une tête delecture/écriture se déplaçant d’une cellule dans unedes deux directions(droite, gauche). Un PDA est un« accepteur » (succès ou rejet les entrées). Une MTpeut être: Un « accepteur »; produit une sortiebinaire : accepte ou rejette ses entrées ouun « transducteur »; produit des résultats sur labande (sortie du calcul).

Page 4: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Définition d'une machine de Turing

Une MT comprend :

� Un contrôleur

� Une bande mémoire composée de cellules pour y stocker des informations.

� Une tête de lecture et d’écriture sur la bande pouvant se déplacer à droite ou à

gauche.

4

a b a a a b ..

hq0

q1

q2q3

Tête de lecture/écriture déplacement droite/gauche Contrôleur

d’états

a b a a a b ..

hq0

q1

q2q3

Tête de lecture/écriture déplacement droite/gauche Contrôleur

d’états

Page 5: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Définition d'une machine de Turing

� Une MT peut effectuer une fonction decalcul, de reconnaissance, ou detraitement de chaînes. Il y'a Plusieursvariétés de MT ; MT avec bande sans débutni fin, avec plusieurs bandes, plusieurstêtes, etc. Une MT augmentée: est unemachine de Turing constituées d'autresmachines de Turing. Une MT modélise tout

5

machine de Turing constituées d'autresmachines de Turing. Une MT modélise toutprocessus formalisé par une procédure decalcul ou un algorithme.

Page 6: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Définition d'une machine de Turing

Fonctionnement d’une MT :

� La tête de lecture/écriture: lit un symbole de la bande et peut le changer.

� L'unité de contrôle: à chaque étape et en fonction de son état courant effectue deux opérations :� Passer à un nouvel état.

6

� Passer à un nouvel état.� Ecrire un symbole sur la bande ou

déplacer la tête à droite ou à gauche notés « L» ou « R »

� La bande est supposée avoir un début àgauche et infinie à droite. La chaîne àtraiter est stockée au début de la bande etsuivie par une infinité decaractères blanc notés "#". La machinepeut écrire autant qu’elle peut à droite dela bande supposée infinie. La machinepossède un état d’arrêt noté "h" poursignaler la fin de traitement

Page 7: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Définition d'une machine de Turing

Définition formelle� Une machine de Turing notée M est définie par un

quadruplet M (k, ∑, δ , q 0) avec:

� k = ensemble fini d’états ne contenant pas "h"� ∑ = ensemble fini des symboles lus et écrits sur la

bande contenant # et non {L, R}� q0 un élément de k est l’état initial de M� h = élément ∉ k désignant l’état d’arrêt.

7

� h = élément ∉ k désignant l’état d’arrêt.

� δ est la fonction de transition de la machineδ : k×∑ → (k ∪ {h})×( ∑ ∪ {L, R})

� La transition δ (q, a)= (p, b) exprime le faite que: � M se trouve à l’état ‘q’.� Lit le symbole ’a’� passe à l’état ‘p’� Et remplace le symbole ‘a’ par ‘b’ si b ∈ ∑� Déplace la tête à droite ou à gauche de la bande si

b ∈ {L, R} � La machine s’arrête si elle arrive dans l’état ‘h’

Page 8: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Définition d'une machine de Turing

Exemple1� Soit la M1 {{q0, q1}, {a, #}, δ, q0) avec :� δ: δ (q0, a)= (q1, #)� δ (q0, #)= (h, #)� δ (q1, #)= (q0, R)� Cette machine permet d’effacer la bande

contenant une suite de ‘a’ et les remplacer par des ‘#’ (C’est une machine qui efface la bande).

8

bande).

Exemple 2 : Soit M1= ({q0,q1}, {a, #}, δ , q0) avec

� Une machine appelée : Déplacement de la tête jusqu’au blanc’#’

� On suppose qu'on commence par la droite: #aaa#

Page 9: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Définition d'une machine de Turing

Principe de Church-Turing

Tout ce qui peut être calculé, peut l'être par une machine de Turing.

9

Page 10: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Définition d'une machine de Turing

Principe de Church-Turing� C'a n'est pas un théorème mais simplement une

affirmation qui n'a pas pu être mise en défaut jusqu'a maintenant.

� Intuitivement, ce qui peut être calculé est ce qui peut être obtenu par une machine en un temps fini.

une classe importante de fonctions mathématiques,

10

� une classe importante de fonctions mathématiques, sont calculables par une machine de Turing, mais il existe des problèmes que n'importe quelle machine de Turing ne peut pas calculer... comme par exemple une machine de Turing qui serait capable de tester si une formule quelconque de la logique du premier ordre (logique des prédicats) est satisfiable.

� les machines de Turing sont un outil théorique pour étudier les propriétés fondamentales de la calculabilité et de la complexité, pour lesquelles la notion d'efficacité ne se mesure pas avec un chronomètre, mais avec des théorèmes...

Page 11: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Définition d'une machine de Turing Non déterministe

� L'idée de cette extension est de supposer que pour chaque transition, la fonction renvoie un ensemble de couples (p,b) (p:le nouvel état, b:action d'écriture ou déplacement) au lieu d'un seul. On peut donc voir une exécution d'une machine non déterministe comme une exécution en parallèle de plusieurs machines

11

exécution en parallèle de plusieurs machines déterministes. Par conséquent, si une machine non déterministe NT exécute au plus k transitions pour un état donné, alors une exécution de NT en n étapes correspond a kn

exécutions linéaires.

� On remarque que implémenter une machine de Turing non déterministe nécessiterait un nombre exponentiel de machines, ce qui n'est pas réaliste ! Toutefois, ces machines non déterministes jouent un rôle fondamental dans la théorie de la complexité.

Page 12: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Problèmes de Décision� La complexité d'un problème est

l'ordre de grandeur de la complexité(dans le pire des cas) du meilleuralgorithme connu pour le résoudre.

� La théorie de la complexité ne traiteque des problèmes de décision binaire, c'est-à-dire posant une question dontla réponse soit oui ou non .

12

la réponse soit oui ou non .

� Cependant on étend la notion decomplexité aux problèmesd'optimisation. En effet il est facile detransformer un problèmed'optimisation en problème dedécision. Si par exemple on cherche àoptimiser une valeur n on traite leproblème de décision qui consiste àcomparer n à un certain k . En traitantplusieurs valeurs de k on peutdéterminer une valeur optimale.

Page 13: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Problèmes de Décision

13

Page 14: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Problèmes de Décision

Algorithme pour REACH

14

Page 15: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Problèmes de Décision

15

Page 16: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Problèmes de DécisionVoyageur de commerce

16

Page 17: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Problèmes de Décision

Exemple:

17

DΠ = l'ensemble de tous les graphesYΠ= l'ensemble des graphes contenant un cycles hamiltonien(instances positives)

Page 18: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Décidabilité

Un problème de décision est dit décidables'il existe un algorithme (ou une Machine de Turing) qui termine en un nombre fini d'étapes, qui le décide, c'est-à-dire qui réponde par oui ou par non à la question

18

réponde par oui ou par non à la question posée par le problème

S'il n'existe pas de tels algorithmes, le problème est dit indécidable

Page 19: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Décidabilité

Exemples de Problèmes décidables

On peut construire un algorithme pour décider si un entier naturel est pair ou non (on fait la division par deux, si le reste est zéro, le nombre est pair, si le reste est un, il ne l'est pas)

19

ne l'est pas)

10ieme Problème de HilbertExite-il un algorithme permettant de déterminer si un polynôme à plusieurs variables admet une racine entièreProblème posé par Hilbert (23 Pbs) le 8 août 1900. Ce 10ème problème a été résolu par Yuri Matiasevivh en 1970. Ce problème est décidable seulement avec une seule variable, et non décidable sinon.

Page 20: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Décidabilité

Exemple de problèmes indécidables

Le barbier: "Le barbier du village rase tous les habitants qui ne se rasent pas eux-mêmes et ne rase pas ceux qui se rasent eux-mêmes."

20

ne rase pas ceux qui se rasent eux-mêmes."Essayer de répondre à la question "Est-ce que le barbier se rase lui-même".

Page 21: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Décidabilité

Mais pour certains on ne sait pas ?La fonction 3x+1 : La fonction de Collatz est définie ainsi :Si x = 1 on s’arrête. Si x est impair, alors x = 3x + 1, si x est pair alors x = x/2. Par exemple pour 7 on trouve :7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

21

7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1Personne ne sait si pour un nombre x le programme s’arrête ou pas.

Page 22: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

DécidabilitéMais pour certains on ne sait pas ?

Le problème avec 196Etant donné un entier positif, renversez les chiffres et ajoutez les au nombre. Recommencez tant que vous n’avez pastrouvé un palindrome. Par exemple pour 5280 on trouve :5280 + 825 = 6105

22

5280 + 825 = 61056105 + 5016 = 1112111121 + 12111 = 23232En général pour n’importe quel nombre cet algorithme s’arrête rapidement.Personne ne sait si cet algorithme se termine pour 196. Cependanton sait qu’il y a au moins 9 millions d’itérations.

Page 23: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Notion de réduction entre problèmes

23

Page 24: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Notion de réduction entre problèmes

24

Exemple:

Page 25: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Notion de réduction entre problèmes

25

Problème 1 plus simple que Problème 2Problème 1 se réduit polynomialement en Problème 2

Page 26: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Problème SAT

26

Page 27: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Problème SAT

27

Page 28: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Algorithme non déterministe

28

Cette question a été posée en 1970 pour la première fois et celui qui arrivera à prouver que P et NP sont différents ou égaux recevra le prix Clay (plus de 1.000.000 $)

Page 29: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Algorithme non déterministe

Le problème de fond est que les algorithmes que l'onprogramme sont tous déterministes. Et ceci pour labonne et simple raison que l'on ne sait pas construirede machine non déterministe (un espoir subsistecependant avec les ordinateurs quantiques). Ce quifait que l'on ne peut que simuler un algorithme nondéterministe par un algorithme déterministe. Or il estdémontré qu'un algorithme déterministe qui simule

29

démontré qu'un algorithme déterministe qui simuleun algorithme non-déterministe qui fonctionne entemps polynomial, fonctionne en temps exponentiel.Ce qui fait que pour de grandes entrées on ne peutpas résoudre le problème en pratique, quelle que soitla puissance de la machine. De plus celà apporte uneconfusion dans le nom NP car on l'associe souvent àNon Polynomial alors que c'est bien Non déterministePolynomial .Le problème P = N P revient à savoir si on peut fairecette simulation en restant polynomial. En effet, s'ils'avérait que P = NP, alors on pourrait résoudre tousles problèmes NP en un temps polynomial sur unemachine déterministe;

Page 30: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Algorithme non déterministe

30

Page 31: chapitre3 2012 Théorie de la complexité - e-monsite2lfig.e-monsite.com/medias/files/chapitre3-2013... · La théorie de la complexité ne traite que des problèmes de décision

Problème NP-complet

Définition Un problème est NP-difficile(ou NP-dur ) si ce problème est plus durque tous problèmes dans NP .Formellement on définit une notion deréduction : soient p et q deux problèmes,p se réduit à q (p ≤p q) si p est uneinstance de q . Et donc p est NP-difficile

31

instance de q . Et donc p est NP-difficilesi pour tout problème q de NP , q seréduit à p .