Vous êtes sur la page 1sur 51

Calculabilit, Complexit et Algorithmique

Lhouari Nourine Universit Blaise Pascal, CNRS, LIMOS

Janvier, 2013 Fs maroc

Cest quoi?
Quels sont les problmes quune machine peut rsoudre?
Trier un tableau ayant une taille xe Colorier un graphe Vrier si un programme en C++ est syntaxiquement correct Vrier si un programme en C++ est correct ! Vrier si un programme C++ sarrte indpendament de lentre!

Plusieurs problmes importants en informatique ne sont rsolvables ou traitables sur des machines mcaniques

2/1

Quelques obstacles

1. Taille des ensembles considrs N Le nombre de programmes C++ est inni

2. Peut-on les parcourir? Acher N, Z, Q. Acher R Acher tous les programmes C++

3/1

Dans quels domaines se trouvent ces dicults

Gnie Logiciel (Vrication, gnration de tests,...)

Systmes transitions (Composition de web services, Artifacts, Modle orient donnes)

Logique

Optimisation combinatoire

4/1

Plan du cours

Ensembles dnombrables (Rcursivement Enumrables) Modles du calcul Notion dalgorithme (dcidabilit) Complexit dun algorithme Complexit dun problme

5/1

Ensembles dnombrables
Deux ensembles A et B ont la mme cardinalit, note A sil y a une bijection entre A et B . Quelques exemples : Npair Nimpair . La bijection est : f (n) = N Npair . La bijection est : f (n ) = 2 n N Z. La bijection est : f (n) =
n 2 1 n+ 2

n 2

(1)

(2)

si n est pair si n est impair

(3)

6/1

Ensembles dnombrables
Denition
Un ensemble A est dnombrable sil est ni ou A dit indnombrable. N est dnombrable (puisque N Z est dnombrable (puisque N Algorithme 1 : Acher les entiers dbut i = 0; tant que 1 faire Acher (i ); i = i + 1; n N). Z). N; sinon il est

7/1

Ensembles dnombrables
Theorem
Un ensemble A et lensemble de ses parties 2A = {B | B A} nont pas la mme cardinalit, i.e. A 2A .

Proof.
Supposons quil y une bijection f : A 2A . On dnit un ensemble C tel que C = f (a) est viole. Soit C = {b A | b f (b)}. C est une image de f . Supposons que C = f (a). Alors a C ssi (par denition de C ) a f (a) ssi (par C = f (a)) a C. Diagonalisation

8/1

Ensembles dnombrables

2N nest pas dnombrable. Puisque 2N nest pas ni et N 2N . R R 2N [0, 1]

9/1

Questions

Pouquoi la preuve par rcurrence marche!!

Peut-on toujours faire une preuve par induction?

10/1

Construction des ensembles

Comment construire des ensembles? Construction inductive Elments de base + rgles de construction

Exemple de la construction de N: Base : 0 N Rgle : Si n N alors n + 1 N

11/1

Construction inductive

Soit L lensemble des langages rguliers sur un alphabet . 1. L

2. L 3. Si a alors a L 4. Si L1 , L2 L alors L1 .L2 L 5. Si L1 , L2 L alors L1 L2 L 6. Si L L alors L L 7. Tout langage de L est obtenu par un nombre ni dapplications des rgles prcdentes.

12/1

Construction inductive

Soit A lensemble des arbres binaires. 1. NIL A 2. Si A1 , A2 A et x un nouveau sommet alors larbre obtenu en mettant A1 et A2 comme ls de la racine x appartient A. 3. Tout arbre de A est obtenu par un nombre ni dapplications des rgles 1. et 2.

13/1

Construction inductive

Preuve dune proprit sur un ensemble construit inductivement : 1. Prouver la proprit pour les lments de base. 2. Prouver que les rgles de construction prservent la proprit.

14/1

Questions

Cest quoi calculer?

Cest quoi programmer?

15/1

Modles du calcul
Un modle du calcul est un ensemble de fonctions de base et des rgles de construction pour dnir dautres fonctions plus complexes. Par exemple : 1. Automate dtats ni (Pile, le, arbre,...) 2. Petri nets 3. Machine de Turing (mmoire inni) 4. RAM 5. Fonctions rcursives 6. .....

16/1

Modles du calcul : Fonctions rcursives


Denition
Lensemble des fonctions primitives recursives est dni par : Les fonctions de base sont:
zero : N0 N, avec zero () = 0. succ : N N, avec succ (n) = n + 1. ik : Nk N, avec 1 i k et ik (a1 , ..., ak ) = ai , (a1 , ..., ak ) Nk .

Rgles de Construction.
Composition : Soient les fonctions primitives rcursives g : Nm Nn et fi : Nk N, pour i [1, m]. Alors la fonction g (f1 (x1 , ..., xk ), ..., fm (x1 , ..., xk )) est rcursive primitive. Rcursion primitive : Soient les fonctions rcursives primitives g : Nk Nm et h : Nk +m+1 Nm , k , n, m N. Alors la fonction f : Nk +1 Nm dnie par : f ( x , 0) = g ( x) f ( x , y + 1) = h( x , y , f ( x , y ))
17/1

Modles du calcul : Fonctions rcursives


Soit add : N2 N avec add (x , y ) = x + y .
2 add (x , 0) = x = 1 (x , 0) 3 add (x , y + 1) = (x + y ) + 1 = succ o 3 (x , y , add (x , y ))

Algorithme 2 : add (x , y ) dbut r = x; pour i = 0 y 1 faire r = succ (r ); n

18/1

Modles du calcul : Fonctions rcursives


Soit moins : N2 N avec moins (x , y ) = x y si x > y et 0 sinon.
2 moins (x , 0) = x = 1 (x , 0)

moins (x , y + 1) = moins (x , y ) 1 =
3 pred o 3 (x , y , moins (x , y ))

Algorithme 3 : moins (x , y ) dbut r = x; pour i = 0 y 1 faire r = pred (r ); n

19/1

Modles du calcul : Fonctions rcursives

Est-ce-que toutes les fonction calculables sont primitives rcursives?

20/1

Modles du calcul : Fonctions rcursives


Une autre rgle de construction. minimisation : Soit g : Nn+1 N une fonction rcursive. Alors la fonction f : Nn N dnie par : f ( x ) = y [g ( x , y ) = 0] est rcursive. f ( x ) est le plus petit y pour lequel g ( x , y ) = 0 et g ( x , z ) est dnie pour tout z < y . Algorithme 4 : f (x1 , ..., xk ) dbut y = 0; tant que g (x1 , ..., xk , y ) = 0 faire y = y + 1; Retourner(y); n
21/1

Modles du calcul : Fonctions rcursives

1. racine (x ) = y [(y + 1)2 > x )] 2. y [y 2 = x ) = 3. y [2y = x ] =


x 2

(x ) indeni

si x est un carr parfait sinon si x est pair sinon

(4)

indeni

(5)

22/1

Modles du calcul : Question

Que peut-on programmer si on enlve Tant que et Rpter de C++?

23/1

Modles du calcul : Machine de Turing


Une machine de Turing dterministe (MT) est un 7-tupl M = (Q , , , , q0 , B , F ) Q un ensemble ni dtats. est un ensemble ni de symboles, appel alphabet du travail. B , un symbole spcial blanc associ une case vide. {B } est lensemble des symboles avec lesquels les entres sont exprimes. q0 S , ltat initial. F Q est lensemble des tats naux. : Q Q {, } est la fonction de transition.

24/1

Modles du calcul : Machine de Turing


Opration de base dun MT. Soit la transition (q , a) = (q , a , D ) : Si la MT est dans ltat q , et le symbole au dessous de la tte de lecture est a, alors
Ltat est chang par q , le symbole en cette position est chang par a , Si D =, la tte se dplace droite dune position, Si D =, la tte se dplace gauche dune position,

Une machine de Turing M accepte un mot w crit dans son alphabet dentre ssi M sarrte dans un tat nal.

25/1

Modles du calcul : Machine de Turing


Une conguration de la MT peut tre dcrite par une chane de caractres : X1 X2 ....Xi 1 qXi ....Xn q est ltat actuel et la tte lit le ime caractre. Supposons que (q , Xi ) = (p , Y , ) alors la nouvelle conguration est X1 X2 ....Xi 1 qXi ....Xn X1 X2 ....Xi 2 qXi 1 YXi +1 ....Xn

Il ya deux exceptions pour le dplacement gauche: 1. Si i = 1 : qX1 X2 ....Xn qBYX2 ....Xn X1 X2 ....X n 1qXn1 2. Si i = n et Y = B : X1 X2 ....Xn1 qXn

26/1

Modles du calcul : Machine de Turing

Soit la machine de Turing M = ({q0 , q1 , q2 , q3 , q4 }, {0, 1}, {0, 1, X , Y , B }, , q0 , B , {q4 }) Q 0 1 X Y B q0 (q1 , X , ) (q3 , Y , ) q1 (q1 , 0, ) (q2 , Y , ) (q1 , Y , ) q2 (q2 , 0, ) (q0 , X , ) (q2 , Y , ) q3 (q3 , Y , ) (q4 , B , ) q4 La squence complte de dplacements de M pour le mot 0011 est : q0 0011 Xq1 011 X 0q1 11 Xq2 0Y 1 q2 X 0Y 1 Xq0 0Y 1 XXq1 Y 1 XXYq1 1 XXq2 YY Xq2 XYY XXq0 YY XXYq3 Y XXYYq3 B XXYYBq4 B

27/1

Modles du calcul : Machine de Turing

Langage accept par une MT Soit M = (Q , , , , q0 , B , F ) une MT. On note par L(M ) = {w | q0 w p , p F , , }.

Lensemble des langages quon peut accepter par une MT est appel les langages rcursivement numrables (RE).

28/1

Modles du calcul : Machine de Turing

Un langage L est semi-calculable sil existe une machine de Turing M telle que lensemble des mots sur accepts est exactement L. Semi-algorithme ou Semi-dcidable ou Rcursivement numrable

L est calculable si de plus M sarrte sur tous les mots w . Algorithme ou Dcidable ou Rcursif

29/1

Modles du calcul : Machine de Turing non dterministe


La dirence entre une MT non-dterministe (NMT) et une MT dterministe est la fonction de transition : (q , X ) = {(q1 , Y1 , D1 ), ..., (qk , Yk , Dk )}.

Une NMT accepte une donne w sil existe une squence de choix de dplacements qui mne dun tat initial un tat nal.

Si MN est une NMT alors il existe une MT MD tel que L(MN ) = L(MD ).

30/1

Complexit dun algorithme

Denition
Un algorithme est une squence doprations lmentaires ni, sarrte en un temps ni et qui fournit un rsultat rpondant un problme donn.

Une opration lmentaire est une transition dans la MT. une opration arithmitique ou logique,... dans le modle RAM.

31/1

Complexit dun algorithme


La notation O permet une analyse sans tenir compte de facteurs constants. Les fonctions considres sont du type : g (n) : N N . g (n) = O (f (n)), sil existe deux constantes strictement positives c et n0 telles que cf (n) est une borne suprieure de g (n) pour tout n > n0 (ie. g (n) cf (n), n > n0 ). g (n) = (f (n)), sil existe deux constantes strictement positives c et n0 telles que cf (n) est une borne infrieure de g (n)pour tout n > n0 (ie. g (n) cf (n), n > n0 ). g (n) = (f (n)) si g (n) = O (f (n)) et g (n) = (f (n)).

32/1

Complexit dun algorithme

Soient A un algorithme ayant une entre de taille n et g (n) son temps dexcution. ALors A est dit logarithmique si g (n) O (logn). linaire si g (n) O (n). quadratique si g (n) O (n2 ). plynomial si g (n) O (nk ), k une constante exponentiel si g (n) O (2n )..

33/1

Complexit dun problme


La thorie de complexit considre que les problmes de dcision.

Probleme (CHEMIN)
Instance : Soient G = (X , E ) un graphe orient, x , y X , k un entier; Question : Existe-t-il un chemin de x y de longueur au plus k?

Probleme (HAM)
Instance : Soit G = (X , E ) un graphe non orient; Question : G est-il un hamiltonien?

34/1

Complexit dun problme

Denition
Un problme de dcision Q est une fonction de IQ vers {0, 1}, avec IQ lensemble des instances de Q .

Une instance pour le problme CHEMIN est < G , x , y , k >. Langage CHEMIN L(CHEMIN ) = {< G , x , y , k > | G = (X , E ) est un graphe orient, x , y X , k est un entier, et il existe un chemin de x y de longueur au plus k }.

35/1

Complexit dun problme

Pourquoi les problmes de dcision alors quen pratique sont des problmes doptimisation? Si un problme doptimisation est facile alors le problme de dcision associ est aussi facile. Si un problme de dcision est dicile alors le problme doptimisation associ est dicile. La complexit tudie la dicult des problmes

36/1

Complexit dun problme

Denition
La classe P est lensemble des problmes de dcision quon peut rsoudre par un algorithme dterministe en temps polynomial.

37/1

Complexit dun problme

Denition
La classe NP est lensemble des problmes de dcision quon peut rsoudre par un algorithme non-dterministe en temps polynomial.

Denition
La classe NP est la classe des problmes de dcision qui peuvent tre vris par un algorithme dterministe polynomial.

38/1

Complexit dun problme

P NP . NP P est toujours ouvert. Tout problme de dcision dans NP, peut tre rsolu par un algorithme dterministe exponentiel.

Hypothse : P = NP

39/1

Complexit dun problme

Une transformation polynomiale dun problme de dcision Q1 en un problme de dcision Q2 , note Q1 <<p Q2 , est une fonction f : IQ1 IQ2 , vriant les deux proprits suivantes : 1. f est calculable en un temps polynomial. 2. Pour tout i IQ1 , i L(Q1 ) ssi f (i ) L(Q2 ). La relation <<p est transitive.

Quelle est lintrt de la transformation polynomial?

40/1

Complexit dun problme

Si Q1 <<p Q2 alors Q2 P implique Q1 P . Si Q1 <<p Q2 alors Q1 P implique Q2 P .

Algorithme 5 : AQ1 (i IQ1 ) dbut i = f (i ); AQ2 (i ); n

41/1

Complexit dun problme


Deux problmes de dcision Q et Q sont dits quivalents si Q <<p Q et Q <<p Q .

Probleme (STABLE-MAX)
Instance : Soient G = (X , E ) un graphe non orient et k un entier; Question : G contient-il un stable de taille au moins k?

Probleme (CLIQUE-MAX)
Instance : Soient G = (X , E ) un graphe non orient et k un entier; Question : G contient-il une clique de taille au moins k? STABLE-MAX et CLIQUE-MAX sont quivalents.
42/1

Complexit dun problme

Denition
Un problme Q est dit NP-complet si : 1. Q NP . 2. Pour tout Q NP , Q <<p Q . Q est dit NP-dicile sil satisfait la seconde condition.

La classe NP-complets est donc compose des problmes diciles de la classe NP.

43/1

Complexit dun problme

Property
Un problme NP-complet Q est dit NP-complet si : 1. Q NP. 2. Q << Q avec Q un problme NP-complet.

Quel est le premier problme NP-complet?

Theorem
SAT et 3-SAT sont NP-complets.

44/1

Complexit dun problme

Theorem
STABLE MAX et CLIQUE MAX sont NP-complets.

45/1

Complexit dun problme


Probleme (ISO-SOUS-GRAPHE)
Instance : Soient G = (X , E ) et H = (Y , F ) deux graphes non orients; Question : Existe-t-il une application : Y X telle que (y , y ) F ssi ((y ), (y )) E ;

Probleme (LONG-CHEMIN)
Instance : Soient G = (X , E ) et k |V | un entier positif; Question : G contient-il un chemin lmentaire ayant au moins k artes. ?

46/1

Complexit dun problme

Hypothse : P=NP, P versus NP. On dispose dun algorithme dterministe (oracle) polynomial pour tout problme de NP.

Peut-on trouver un algorithme dterministe polynomial pour la version optimisation?

47/1

Complexit dun problme

Exemples. CLIQUE-MAX. LONG-CHEMIN SAT

48/1

Ce quil faut retenir

La calculabilit est de savoir sil existe un algorithme pour rdoudre un problme.

La complexit est classer les problmes suivant la dicult de rsolution

Pourqoui on sintresse aux problmes de dcision?

49/1

Dans quels domaines se trouvent ces problmes

Gnie Logiciel (Vrication, Tests,...) Web services Logique. Optimisation

50/1

Y-a-t-il encore des problmes intressants et ouverts

La plupart des instances en pratique ne sont pas diciles (Solveur SAT, Cplex,...) Intgration, data-exchange, Privacy, Base de donnes incompltes .......

51/1