1
J.Korczak, ULP 1
Jerzy KORCZAK
email : jjk@dpt-info.u-strasbg.fr
http://lsiit.u-strasbg.fr/afd http://kia.u-strasbg.fr
Arbres de recherche
Arbres de rechercheArbres de recherche
Arbres de recherche
Le plus court chemin
J.Korczak, ULP 2
Algorithmes de parcours d
Algorithmes de parcours dAlgorithmes de parcours d
Algorithmes de parcours d’
’un espace de recherche
un espace de rechercheun espace de recherche
un espace de recherche
• Recherche en profondeur d’abord (DFS) et en largeur (BFS)
Hill Climbing (descente de gradient)
• Recherche heuristique : Best-First search
en profondeur ordonnée, en faisceau, du meilleur premier
• Algorithme A* , IDA*, SMA*
• Recherche concurrentielle : jeux
– MIN-MAX, élagage α−β, approfondissement progressif
Propriétés
• Complétude
• Complexité en temps
• Complexité en espace
• Optimum
J.Korczak, ULP 3
Graphes et arbres : rappel
Graphes et arbres : rappelGraphes et arbres : rappel
Graphes et arbres : rappel
Un graphe orienté G est représenté par un couple (V,E) V
est une ensemble fini et Eune relation binaire sur V.
Sest l’ensemble des sommets de Get Eest l’ensemble des
arcs de G.
Dans un graphe orienté G(V,E), un chemin de longueur k d’un
sommet uà un sommet vest une séquence de sommets.
Un graphe non orienté acyclique est une forêt et un graphe
non orienté connexe acyclique un est un arbre.
J.Korczak, ULP 4
Exemples
Graphe
contenant un cycle Forêt Arbre
J.Korczak, ULP 5
Graphes et arbres : rappel
Propriétés des arbres
1. Deux sommets quelconques de G(V,E) sont reliés par un unique
chemin élémentaire.
2. Gest connexe et IEI = IVI-1.
3. Gest connexe, mais si une arrête quelconque est ôtée de E, le
graphe résultant n’est plus connexe.
4. Gest acyclique et IEI = IVI-1.
5. Gest acyclique, mais si une arrête quelconque est ajoutée à E, le
graphe résultant contient un cycle.
Un arbre enraciné est un arbre dans lequel l’un des sommets se
distingue des autres (la racine)
Le degré : le nombre de fils du nœud x
La profondeur : la longueur du chemin entre la racine et le nœud x.
J.Korczak, ULP 6
Problème de plus courts chemin
On possède en entrée un graphe orienté pondéré G=(V,E) de
fonction de pondération w: A
→ ℜ
.
Le poids du chemin p = (v0, v1, …,vk)est la somme de ses
arcs :
w(p)=
Σ
w(vi-1, vi), i=1,2,…k
2
J.Korczak, ULP 7
Parcours des graphes
Eviter de parcourir des cycles !
Convention : initialement les sommets sont tous blancs ; lorsqu’il est rencontré pour la
première fois un sommet est peint en gris ; lorsque tous ses successeurs dans l’ordre
de parcours ont été visités, un sommet est repeint en noir.
Parcours en profondeur
PP(G)
Pour chaque sommet ude Gfaire couleur[u] BLANC
Pour chaque sommet u de Gfaire si couleur[u]=BLANC alors VISITER-PP(G,u,couleur)
VISITER-PP(G,u,couleur)
couleur[s] GRIS
Pour chaque voisin de vde sfaire
si couleur[v]=BLANC alors VISITER-PP(G,v,couleur)
couleur[s] NOIR
J.Korczak, ULP 8
Exemple: Trouver un chemin de S à G
S
D
A B C
E F
G
3
4
4 4
55
243
J.Korczak, ULP 9
Parcours en profondeur (
((
(
depth-first search
)
F
A
C
E
E
B
B
F
B
D
A
E
D
C
A
C
G
S
G
GF
D
B C
F
EG
13
15
15
25
17
17
19
19
11 14
4
2
4
3
J.Korczak, ULP 10
Parcours en largeur
PL(G)
couleur[s] GRIS
Pour chaque sommet ude G, u
sfaire couleur[u] BLANC
F{s}
Tant que F
faire
uSUPRESSION(F)
Pour chaque voisin de vde ufaire
si couleur[v]=BLANC
alors couleur[v] GRIS
INSERTION (F,v)
couleur[s] NOIR
J.Korczak, ULP 11
Parcours en largeur
(
brea
d
th
-
first
search
)
F
A
C
E
E
B
B
F
B
D
A
E
D
C
A
C
G
S
G
GF
D
B C
F
EG
13
15
15
25
17
17
19
19
11 14
4
2
4
3
J.Korczak, ULP 12
W=2 A
Recherche heuristique (beam search)
F
A
C
E
E
B
B
F
B
D
A
E
D
C
A
C
G
S
G
GF
D
B C
F
EG
13
6,7
10,4
6,9
10,4
8,9
6,9
8,9
6,7
3,0
0,0
3
J.Korczak, ULP 13
Plus courts chemins à origine unique
But : trouver les plus courts chemins depuis un sommet
origine set vers n’importe quel autre sommet.
Algorithme de Dijkstra
Algorithme de Bellman-Ford
Algorithme Floyd-Warshall
J.Korczak, ULP 14
Algorithme de Dijkstra
L’a.D. maintient à jour un ensemble V
de sommets de Gdont le plus court
chemin à partir de l’origine sest
connu et calculé.
A chaque itération, l’algorithme choisit
parmi les sommets successeurs – le
sommet udont l’estimation de plus
court chemin est minimale.
9
0
∞ ∞
10
1
5
2 3
2
74 6
9
0
5
10
10
1
5
2 3
2
74 6
J.Korczak, ULP 15
Algorithme de Dijkstra
SOURCE-UNIQUE-INITIALISATION [G,s]
pour chaque sommet v de G faire
d[v]+
; la longueur de chemin
Π
[v] NIL ; le prédécesseur de v
d[s] 0
RELACHER(u,v,w)
si d[v] > d[u] + w(u,v) alors
d[v] d[u] + w(u,v)
Π
[v] u
DIJKSTRA(G,w,s)
SOURCE-UNIQUE-INITIALISATION [G,s]
E
FV
Tant que F≠∅ faire
u EXTRAIRE-MIN(F) ; détermine la complexité → Θ(|F|)=O(|V|)
EE{u}
pour chaque arc (u,v) de Gfaire ; la complexiO(|V|2+ |A|) = O(|S|2
RELACHER(u,v,w)
J.Korczak, ULP 16
Algorithme de Bellman-Ford
L’a.B-F renvoie un booléen indiquant si le
graphe contient ou non un circuit de poids
strictement négatif accessible à partir de
l’origine.
BELLMAN-FORD(G,s, w)
SOURCE-UNIQUE-INITIALISATION [G,s]
Pour i
1 à |S|-1 faire
Pour chaque arc (u,v)
A faire
RELACHER(u,v,w)
Pour chaque arc (u,v) A faire
si d[v]> d[u] + w(u,v) alors envoyer FAUX
renvoyer VRAI
A la fin de la ieitération de la première
boucle, les plus courts chemins contenant
au plus i arcs sont connus.
-3
2
0
∞ ∞
6
5
7
8
9
7
-4
-2
0
2
7
6 4
6
5
7
8
9
7
-4
-2
2
-3
J.Korczak, ULP 17
Algorithme de Floyd-Warshall
FLOYD-WARSHALL(W)
n lignes(W)
D(0) W
Pour k 1 àn faire
Pour i 1 àn faire
Pour j 1 àn faire
di,jkmin(di,jk-1 , di,kk-1 + dk,jk-1 )
renvoyer D(n)
La complexité : Θ
ΘΘ
Θ(n3)
J.Korczak, ULP 18
Algorithme de Floyd-Warshall
Principe de la programmation dynamique
1
2
3
5 4
3 4
-4 2 1 -5
78
6
0 3 8 -4
0 1 7
D(0) = 4 0 ∞ ∞
2 -5 0
6 0
0 3 8 -4
0 1 7
D(1) = 4 0 ∞ ∞
2 5 -5 0 -2
6 0
0 3 8 2 -4
0 1 7
D(2) = 4 0 5 11
2 5 -5 0 -2
6 0
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !