Académique Documents
Professionnel Documents
Culture Documents
Dr Amar ISLI
Dpartement dInformatique
Facult dElectronique et dInformatique
Universit des Sciences et de la Technologie Houari Boumedine
BP 32, El-Alia, Bab Ezzouar
DZ-16111 ALGER
Nouvelle page :
http://www.usthb.dz/perso/info/aisli
Ancienne page :
http://www.usthb.dz/fei-deptinfo/perso/aisli/amarisli.htm
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
CHAPITRE I
Introduction
Problme et instance dun problme
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
CHAPITRE I
Introduction
Problme et instance dun problme
Exemple :
Master1RSD->Algorithmique
Avance et Complexit
CHAPITRE I
Introduction
Problme et instance dun problme
Exemple :
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
CHAPITRE I
Introduction
Problme et instance dun problme
Instance dun problme
G=<V,E> avec
06/01/2011
V={A,B,C,D}
E={(A,B),(A,C),(A,D),(B,C),(B,D),(C,D)}
c(A,B)=2; c(A,C)=3; c(A,D)=5; c(B,C)=3; c(B,D)=1;
c(C,D)=1
Master1RSD->Algorithmique
Avance et Complexit
CHAPITRE I
Introduction
Remarque
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
CHAPITRE I
Introduction
Taille dun problme
La taille dun problme est la taille de lespace
mmoire ncessaire sa reprsentation ; elle est
mesure en fonction des donnes du problme
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
CHAPITRE I
Introduction
Taille dun problme
06/01/2011
CHAPITRE I
Introduction
Algorithme et complexit
Algorithme
Un algorithme est une suite finie
doprations lmentaires constituant
un schma de calcul ou de rsolution
dun problme
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
CHAPITRE I
Introduction
Algorithme et complexit
Complexit
06/01/2011
10
CHAPITRE I
Introduction
Complexit
Exemple :
dans le cas du TSP, la complexit va tre mesure
en fonction des donnes du problme, qui sont
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
11
CHAPITRE I
Introduction
Complexit
Complexit au meilleur
Complexit en moyenne
Best-case complexity
Average-case complexity
Complexit au pire
06/01/2011
Worst-case complexity
Master1RSD->Algorithmique
Avance et Complexit
12
CHAPITRE I
Introduction
Notations de Landau
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
13
CHAPITRE I
Introduction
Notations de Landau
Besoin des notations asymptotiques de
Landau :
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
14
CHAPITRE I
Introduction
Illustration
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
15
CHAPITRE I
Introduction
Illustration : tri par insertion
TRI-INSERTION{
Pour j=2 n{
cl= A[j]
i=j-1
Tant que i>0 et A[i]>cl{
A[i+1]=A[i]
i=i-1
}
A[i+1]=cl
}
}
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
16
CHAPITRE II
Conception dalgorithmes efficaces
A. Piles et files
Dfinition (pile) :
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
17
CHAPITRE II
Conception dalgorithmes efficaces
Une pile P peut tre implmente par un tableau, et elle est caractrise par :
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
18
CHAPITRE II
Conception dalgorithmes efficaces
EMPILER(P,x){
Si sommet(P)=longueur(P)
alors erreur (dbordement positif)
sinon{
sommet(P)=sommet(P)+1
P[sommet(P)]=x
}
}
DEPILER(P){
Si PILE-VIDE(P)
alors erreur (dbordement ngatif)
sinon{
sommet(P)=sommet(P)-1
retourner P[sommet(P)+1]
}
}
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
19
CHAPITRE II
Conception dalgorithmes efficaces
A. Piles et files
Dfinition (file) :
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
20
CHAPITRE II
Conception dalgorithmes efficaces
Une file F peut tre implmente par un tableau, et elle est caractrise par :
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
21
CHAPITRE II
Conception dalgorithmes efficaces
FILE-VIDE(F){
si tte(F)=NIL
alors retourner VRAI
sinon retourner FAUX
}
INSERTION(F,x){
si [tte(F)NIL et queue(F)=tte(F)]
alors erreur (dbordement positif)
sinon{
F[queue(F)]=x
queue(F)=[queue(F)+1](modulo n)
si[tte(F)=NIL] alors tte(F)=1
}
}
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
22
CHAPITRE II
Conception dalgorithmes efficaces
SUPPRESSION(F){
si FILE-VIDE(F)
alors erreur (dbordement ngatif)
sinon{
temp=F(tte(F));
tte(F)=[tte(F)+1](modulo n);
si[tte(F)=queue(F)]{
tte(F)=NIL ;
queue(F)=1;
}
retourner temp;
}
}
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
23
CHAPITRE II
Conception dalgorithmes efficaces
A. Piles et files
EXEMPLES
06/01/2011
Pile dexcution
Automate pile : ancbn
Simulation de la file dattente dun magasin
Master1RSD->Algorithmique
Avance et Complexit
24
CHAPITRE II
Conception dalgorithmes efficaces
B. Listes chanes
Dfinition (liste chane) :
Une liste chane est une structure de donnes dont les lments sont
arrangs linairement, lordre linaire tant donn par des pointeurs sur les
lments
Si une liste chane L est telle que TETE(L)=NIL alors la liste est vide
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
25
CHAPITRE II
Conception dalgorithmes efficaces
B. Listes chanes
Exemple
INSERTION(30)
SUPPRESSION(7)
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
26
CHAPITRE II
Conception dalgorithmes efficaces
B. Listes chanes
RECHERCHE-LISTE(L,k){
x=TETE(L);
tant que(x!=NIL et cl(x)!=k)x=successeur(x);
retourner x;
}
INSERTION-LISTE(L,X){
successeur(x)=TETE(L);
TETE(L)=x;
}
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
27
CHAPITRE II
Conception dalgorithmes efficaces
B. Listes chanes
SUPPRESSION-LISTE(L,X){
Si x=TETE(L) alors TETE(L)=successeur(x)
sinon{
y=TETE(L);
tant que successeur(y)<>x faire y=successeur(y);
successeur(y)=successeur(x);
}
}
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
28
CHAPITRE II
Conception dalgorithmes efficaces
C. Graphes
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
29
CHAPITRE II
Conception dalgorithmes efficaces
C. Graphes
06/01/2011
artes
Boucles interdites
Une arte (u,v) est incidente aux sommets u et v
Degr dun sommet : nombre dartes qui lui sont incidentes
Chane et chane lmentaire
Cycle et cycle lmentaire
Graphe acyclique
Graphe connexe : chaque paire de sommets est relie par une chane
Composantes connexes dun graphe : classes dquivalence de la relation dfinie comme suit
sur lensemble des sommets : R(s1,s2) si et seulement si il existe une chane de s1 vers s2
Master1RSD->Algorithmique
Avance et Complexit
30
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
Fort :
Arbre :
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
31
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
32
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
Arbre enracin (rooted tree) :
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
33
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
34
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
35
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
Parcours dun arbre ordonn
06/01/2011
36
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
Parcours dun arbre ordonn
PP(A){
Si Arbre(A) nest pas rduit larbre vide{
Pour tous les fils u de racine(A) faire dans lordre
PP(u)
}
}
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
37
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
Parcours dun arbre ordonn
Arbre binaire
06/01/2011
sa
38
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
Parcours dun arbre ordonn
Arbre binaire
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
39
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
40
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
41
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
42
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
43
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
44
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
Parcours dun arbre ordonn
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
45
CHAPITRE II
Conception dalgorithmes efficaces
D. Arbres
PL(A){
Si ANIL{
F=racine(A);
Tant que (non FILE-VIDE(F)){
u=SUPPRESSION(F);
//visiter le noeud
Pour tous les fils v de u (dans lordre) faire
INSERTION(F,v); //faire attendre le noeud
}
}
}
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
46
CHAPITRE II
Conception dalgorithmes efficaces
E. Parcours dun graphe
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
47
CHAPITRE II
Conception dalgorithmes efficaces
E. Parcours dun graphe
VISITER-PP(G,s,couleur){
couleur[s]=GRIS;
Pour chaque voisin v de s{si couleur[v]=BLANC{VISITER-PP(G,v,couleur);}}
couleur[s]=NOIR;
}
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
48
CHAPITRE II
Conception dalgorithmes efficaces
E. Parcours dun graphe
Master1RSD->Algorithmique
Avance et Complexit
49
CHAPITRE II
Conception dalgorithmes efficaces
F. Itrativit versus rcursivit
Rcursivit simple
La fonction puissance :
1
si n=0
x*xn-1
sinon
Xn =
Rcursivit multiple
si p=0 ou p=n
C(n-1,p)+C(n-1,p-1)
sinon
C(n,p)=
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
50
CHAPITRE II
Conception dalgorithmes efficaces
F. Itrativit versus rcursivit
Rcursivit mutuelle
VRAI
si n=0
Pair(n)=
impair(n-1) sinon
FAUX
si n=0
impair(n)=
pair(n-1)
sinon
06/01/2011
n+1
A(m-1,1)
A(m-1,A(m,n-1))
si m=0
si m>0 et n=0
sinon
Master1RSD->Algorithmique
Avance et Complexit
51
CHAPITRE II
Conception dalgorithmes efficaces
F. Itrativit versus rcursivit
Exemple : les tours de Hano
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
52
CHAPITRE II
Conception dalgorithmes efficaces
F. Itrativit versus rcursivit
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
53
CHAPITRE II
Conception dalgorithmes efficaces
F. Itrativit versus rcursivit
h(n) =
h(n-1)+1+h(n-1)
sinon
h(n)
si n=1
1+2xh(n-1)
sinon
h(n)=2n-1
h(n)=O(2n)=Q(2n)
Complexit exponentielle
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
54
CHAPITRE II
Conception dalgorithmes efficaces
F. Itrativit versus rcursivit
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
55
CHAPITRE II
Conception dalgorithmes efficaces
G. Technique diviser pour rgner
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
56
CHAPITRE II
Conception dalgorithmes efficaces
G. Technique diviser pour rgner
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
57
CHAPITRE II
Conception dalgorithmes efficaces
G. Technique diviser pour rgner
Tri par fusion dun tableau
FUSIONNER(A,p,q,r){
i=p;j=q+1;k=1;
tant que iq et jr{
si A[i]<A[j]
alors{C[k]=A[i];i=i+1;}
sinon{C[k]=A[j];j=j+1;}fsi
k=k+1;
}
tant que iq{C[k]=A[i];i=i+1;k=k+1;}
tant que jr{C[k]=A[j];j=j+1;k=k+1;}
Pour k=1 r-p+1{A[p+k-1]=C[k];}
}
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
58
CHAPITRE II
Conception dalgorithmes efficaces
G. Technique diviser pour rgner
Tri par fusion dun tableau : complexit
Q(1) si n=1
T(n)=
T(n)=Q(n log n)
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
59
CHAPITRE III
Structures de donnes avances
A. Arbres binaires de recherche
Dfinition : Un arbre binaire de recherche est un arbre binaire
tel que pour tout nud x :
Tous les nuds y du sous-arbre gauche de x vrifient
clef(y)clef(x)
Tous les nuds y du sous-arbre droit de x vrifient
clef(y)>clef(x)
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
60
CHAPITRE III
Structures de donnes avances
A. Arbres binaires de recherche
Proprit : le parcours (en profondeur dabord) infixe dun arbre
binaire de recherche permet laffichage des cls des nuds par
ordre croissant
Infixe(A){
Si ANIL{
Infixe(A.sa-gauche);
Afficher(A.clef);
Infixe(A.sa-droit);
}
}
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
61
CHAPITRE III
Structures de donnes avances
A. Arbres binaires de recherche
Recherche dun lment :
rechercher(A,k){
si (A=NIL ou A.clef=k) retourner A
sinon
si (kA.clef) rechercher(A.sa-gauche,k)
sinon rechercher(A.sa-droit,k)
}
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
62
CHAPITRE III
Structures de donnes avances
A. Arbres binaires de recherche
Minimum :
minimum(A){
si (A=NIL) retourner A
sinon{
x=A;
tant que (x.sa-gaucheNIL) x=x.sa-gauche;
retourner x;
}
}
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
63
CHAPITRE III
Structures de donnes avances
A. Arbres binaires de recherche
Maximum :
maximum(A){
si (A=NIL) retourner A
sinon{
x=A;
tant que (x.sa-droitNIL) x=x.sa-droit;
retourner x;
}
}
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
64
CHAPITRE III
Structures de donnes avances
A. Arbres binaires de recherche
Insertion dun lment :
Insertion(A,k){
crer nud z;z.clef=k;z.sa-gauche=NIL;z.sa-droit=NIL;
x=A;pre_de_x=NIL;
tant que (xNIL){
pre_de_x=x;
si (kx.clef) x=x.sa-gauche
sinon x=x.sa-droit
}
si (pre_de_x=NIL) A=z
sinon
si (kpre_de_x.clef) pre_de_x.sa-gauche=z
sinon pre_de_x.sa-droit=z
}
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
65
CHAPITRE III
Structures de donnes avances
A. Arbres binaires de recherche
06/01/2011
Chacune des fonctions ncessite, dans le pire des cas, une et une seule
descente complte (sans retour arrire) dans larbre de recherche
En dautres termes, les nuds visits par chacune des fonctions sont
tous sur une unique branche allant de la racine vers une feuille
La complexit de chacune des fonctions est donc en O(h), h tant la
hauteur de larbre de recherche
Comme la hauteur est borne par n-1, la complexit est en O(n)
Master1RSD->Algorithmique
Avance et Complexit
66
CHAPITRE IV
NP-compltude
Problme
Description
Question
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
67
CHAPITRE IV
NP-compltude
Le problme SAT
La conjonction pqprpqr
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
68
CHAPITRE IV
NP-compltude
Le problme PLUS-COURT-CHEMIN
V={A,B,C,D}
E={(A,B),(A,C),(A,D),(B,C),(B,D),(C,D)}
c(A,B)=2; c(A,C)=3; c(A,D)=5; c(B,C)=3; c(B,D)=1; c(C,D)=1
Les sommets A et C
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
69
CHAPITRE IV
NP-compltude
Problme abstrait
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
70
CHAPITRE IV
NP-compltude
Problme de dcision
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
71
CHAPITRE IV
NP-compltude
Le problme SAT est un problme de
dcision
La conjonction pqprpqr
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
72
CHAPITRE IV
NP-compltude
Le problme CHEMIN est un problme de dcision
V={A,B,C,D}
E={(A,B),(A,C),(A,D),(B,C),(B,D),(C,D)}
c(A,B)=2; c(A,C)=3; c(A,D)=5; c(B,C)=3; c(B,D)=1; c(C,D)=1
Les sommets A et C
Lentier k=2
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
73
CHAPITRE IV
NP-compltude
Problmes doptimisation
Exemple :
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
74
CHAPITRE IV :
NP-compltude
Codage
Exemple :
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
75
CHAPITRE IV
NP-compltude
Problme concret
06/01/2011
T(n)c*f(n)
Master1RSD->Algorithmique
Avance et Complexit
76
CHAPITRE IV
NP-compltude
La classe de complexit P
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
77
CHAPITRE IV
NP-compltude
Fonction calculable en temps polynomial
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
78
CHAPITRE IV
NP-compltude
La classe de complexit NP
Algorithme de validation :
pqprpqr
Si on considre une instanciation (b1,b2,b3) du triplet (p,q,r) de
propositions atomiques, on peut facilement vrifier si oui ou non elle
satisfait linstance. Et si elle la satisfait, linstanciation peut tre vue
comme un certificat que linstance du problme SAT est satisfiable
Soit Q un problme concret de dcision. Un algorithme de validation
pour Q est un algorithme de dcision A deux arguments, une
instance du problme Q, et un certificat y. Lalgorithme A valide
linstance x si et seulement si il existe un certificat y tel que
A(x,y)=vrai :
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
79
CHAPITRE IV
NP-compltude
La classe de complexit NP
Rductibilit :
Soient Q1 et Q2 deux problmes concrets. Q1 est
rductible en temps polynomial Q2 (Q1PQ2) sil existe
une fonction calculable en temps polynomial
f:{0,1}*{0,1}* telle que pour tout x{0,1}*:
06/01/2011
80
CHAPITRE IV
NP-compltude
Problme NP-complet
Un problme Q est NP-complet si
1.
2.
QNP
QNP, QPQ
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
81
CHAPITRE IV
NP-compltude
Le problme SAT
Le problme 3-SAT
CYCLE HAMILTONIEN :
VOYAGEUR DE COMMERCE :
CLIQUE :
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
82
CHAPITRE IV
NP-compltude
Preuve de NP-compltude
Thorme
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
83
CHAPITRE IV
NP-compltude
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
84
CHAPITRE IV
NP-compltude
06/01/2011
Master1RSD->Algorithmique
Avance et Complexit
85