Académique Documents
Professionnel Documents
Culture Documents
Graphes et arbres
Mathieu Lefort mathieu.lefort@loria.fr
28 avril 2010
Graphes et arbres
1/ 64
Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
2/ 64
Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
3/ 64
Graphe orient e
Graphes et arbres
4/ 64
Graphe orient e
Dnition e un graphe orient est un couple (S, A) e S est lensemble des sommets du graphe
Graphes et arbres
4/ 64
Graphe orient e
Dnition e un graphe orient est un couple (S, A) e S est lensemble des sommets du graphe A est une relation de S S {0, 1}
Graphes et arbres
4/ 64
Graphe orient e
Dnition e un graphe orient est un couple (S, A) e S est lensemble des sommets du graphe A est une relation de S S {0, 1} A est lensemble des arcs (couple de sommets) du graphe
Graphes et arbres
4/ 64
Graphe orient e
Dnition e un graphe orient est un couple (S, A) e S est lensemble des sommets du graphe A est une relation de S S {0, 1} A est lensemble des arcs (couple de sommets) du graphe Boucle Une boucle est un arc qui relie un sommet ` lui mme a e
Graphes et arbres
4/ 64
Graphe orient e
Exemple S = {1, 2, 3, 4, 5, 6} A = {(1, 2), (2, 2), (2, 4), (2, 5), (4, 1), (4, 5), (5, 4), (6, 3)}
Graphes et arbres
5/ 64
Graphes et arbres
6/ 64
Dnition e un graphe non orient est un couple (S, A) e S est lensemble des sommets du graphe
Graphes et arbres
6/ 64
Dnition e un graphe non orient est un couple (S, A) e S est lensemble des sommets du graphe A est une relation de S S {0, 1}
Graphes et arbres
6/ 64
Dnition e un graphe non orient est un couple (S, A) e S est lensemble des sommets du graphe A est une relation de S S {0, 1} A est lensemble des arcs (paires de sommets) du graphe
Graphes et arbres
6/ 64
Dnition e un graphe non orient est un couple (S, A) e S est lensemble des sommets du graphe A est une relation de S S {0, 1} A est lensemble des arcs (paires de sommets) du graphe les boucles sont interdites
Graphes et arbres
6/ 64
Graphes et arbres
7/ 64
Dnitions e
Sous-graphe Un graphe G = (S , A ) (orient ou non) est un sous graphe de e G = (S, A) si S S et A A.
Graphes et arbres
8/ 64
Dnitions e
Sous-graphe Un graphe G = (S , A ) (orient ou non) est un sous graphe de e G = (S, A) si S S et A A. Sous-graphe recouvrant Un sous-graphe recouvrant de G est un sous-graphe qui contient tous les sommets de G .
Graphes et arbres
8/ 64
Dnitions e
Sous-graphe Un graphe G = (S , A ) (orient ou non) est un sous graphe de e G = (S, A) si S S et A A. Sous-graphe recouvrant Un sous-graphe recouvrant de G est un sous-graphe qui contient tous les sommets de G . Graphe valu e Un graphe G = (S, A) est dit valu lorsque ses artes ont un poids. e e A est alors une relation de S S dans N.
Graphes et arbres
8/ 64
Terminologie
si (u, v ) est un arc dun graphe orient alors on dit que (u, v ) e part du sommet u et arrive au sommet v
Graphes et arbres
9/ 64
Terminologie
si (u, v ) est un arc dun graphe orient alors on dit que (u, v ) e part du sommet u et arrive au sommet v si (u, v ) est un arc dun graphe non orient alors on dit que e (u, v ) est incidente aux sommets u et v
Graphes et arbres
9/ 64
Terminologie
si (u, v ) est un arc dun graphe orient alors on dit que (u, v ) e part du sommet u et arrive au sommet v si (u, v ) est un arc dun graphe non orient alors on dit que e (u, v ) est incidente aux sommets u et v dans un graphe orient le degr sortant dun sommet est le e e nombre dartes qui partent de ce sommet e
Graphes et arbres
9/ 64
Terminologie
si (u, v ) est un arc dun graphe orient alors on dit que (u, v ) e part du sommet u et arrive au sommet v si (u, v ) est un arc dun graphe non orient alors on dit que e (u, v ) est incidente aux sommets u et v dans un graphe orient le degr sortant dun sommet est le e e nombre dartes qui partent de ce sommet e dans un graphe orient le degr (r)entrant dun sommet est le e e nombre dartes qui arrive ` ce sommet e a
Graphes et arbres
9/ 64
Terminologie
si (u, v ) est un arc dun graphe orient alors on dit que (u, v ) e part du sommet u et arrive au sommet v si (u, v ) est un arc dun graphe non orient alors on dit que e (u, v ) est incidente aux sommets u et v dans un graphe orient le degr sortant dun sommet est le e e nombre dartes qui partent de ce sommet e dans un graphe orient le degr (r)entrant dun sommet est le e e nombre dartes qui arrive ` ce sommet e a dans un graphe orient le degr est la somme des degrs e e e entrant et sortant
Graphes et arbres
9/ 64
Terminologie
si (u, v ) est un arc dun graphe orient alors on dit que (u, v ) e part du sommet u et arrive au sommet v si (u, v ) est un arc dun graphe non orient alors on dit que e (u, v ) est incidente aux sommets u et v dans un graphe orient le degr sortant dun sommet est le e e nombre dartes qui partent de ce sommet e dans un graphe orient le degr (r)entrant dun sommet est le e e nombre dartes qui arrive ` ce sommet e a dans un graphe orient le degr est la somme des degrs e e e entrant et sortant dans un graphe non orient le degr dun sommet est le e e nombre dartes qui lui sont incidentes e
Graphes et arbres
9/ 64
Terminologie
si (u, v ) est un arc dun graphe orient alors on dit que (u, v ) e part du sommet u et arrive au sommet v si (u, v ) est un arc dun graphe non orient alors on dit que e (u, v ) est incidente aux sommets u et v dans un graphe orient le degr sortant dun sommet est le e e nombre dartes qui partent de ce sommet e dans un graphe orient le degr (r)entrant dun sommet est le e e nombre dartes qui arrive ` ce sommet e a dans un graphe orient le degr est la somme des degrs e e e entrant et sortant dans un graphe non orient le degr dun sommet est le e e nombre dartes qui lui sont incidentes e si un sommet est de degr 0 il est dit isol e e
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 9/ 64
Terminologie
dans un graphe orient (S, A), un chemin de longueur k dun e sommet u ` un sommet v est une squence de sommets a e (u0 , ..., uk ) telle que u0 = u, uk = v et i [1, k], (ui1 , ui ) A
Graphes et arbres
10/ 64
Terminologie
dans un graphe orient (S, A), un chemin de longueur k dun e sommet u ` un sommet v est une squence de sommets a e (u0 , ..., uk ) telle que u0 = u, uk = v et i [1, k], (ui1 , ui ) A un chemin est lmentaire si tous ses sommets sont distincts ee
Graphes et arbres
10/ 64
Terminologie
dans un graphe orient (S, A), un chemin de longueur k dun e sommet u ` un sommet v est une squence de sommets a e (u0 , ..., uk ) telle que u0 = u, uk = v et i [1, k], (ui1 , ui ) A un chemin est lmentaire si tous ses sommets sont distincts ee un sous chemin p dun chemin p = (u0 , ..., uk ) est une sous squence contigu de ses sommets 0 i j k, e e p = (ui , ..., uj )
Graphes et arbres
10/ 64
Terminologie
dans un graphe orient (S, A), un chemin de longueur k dun e sommet u ` un sommet v est une squence de sommets a e (u0 , ..., uk ) telle que u0 = u, uk = v et i [1, k], (ui1 , ui ) A un chemin est lmentaire si tous ses sommets sont distincts ee un sous chemin p dun chemin p = (u0 , ..., uk ) est une sous squence contigu de ses sommets 0 i j k, e e p = (ui , ..., uj ) dans un graphe non orient, la notion correspondante est la e cha ne
Graphes et arbres
10/ 64
Terminologie
dans un graphe orient (S, A), un chemin de longueur k dun e sommet u ` un sommet v est une squence de sommets a e (u0 , ..., uk ) telle que u0 = u, uk = v et i [1, k], (ui1 , ui ) A un chemin est lmentaire si tous ses sommets sont distincts ee un sous chemin p dun chemin p = (u0 , ..., uk ) est une sous squence contigu de ses sommets 0 i j k, e e p = (ui , ..., uj ) dans un graphe non orient, la notion correspondante est la e cha ne dans un graphe orient, un chemin (u0 , ..., uk ) forme un e circuit si u0 = uk et k 1
Graphes et arbres
10/ 64
Terminologie
dans un graphe orient (S, A), un chemin de longueur k dun e sommet u ` un sommet v est une squence de sommets a e (u0 , ..., uk ) telle que u0 = u, uk = v et i [1, k], (ui1 , ui ) A un chemin est lmentaire si tous ses sommets sont distincts ee un sous chemin p dun chemin p = (u0 , ..., uk ) est une sous squence contigu de ses sommets 0 i j k, e e p = (ui , ..., uj ) dans un graphe non orient, la notion correspondante est la e cha ne dans un graphe orient, un chemin (u0 , ..., uk ) forme un e circuit si u0 = uk et k 1 dans un graphe non orient, la notion correspondante est le e cycle
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 10/ 64
Terminologie
dans un graphe orient (S, A), un chemin de longueur k dun e sommet u ` un sommet v est une squence de sommets a e (u0 , ..., uk ) telle que u0 = u, uk = v et i [1, k], (ui1 , ui ) A un chemin est lmentaire si tous ses sommets sont distincts ee un sous chemin p dun chemin p = (u0 , ..., uk ) est une sous squence contigu de ses sommets 0 i j k, e e p = (ui , ..., uj ) dans un graphe non orient, la notion correspondante est la e cha ne dans un graphe orient, un chemin (u0 , ..., uk ) forme un e circuit si u0 = uk et k 1 dans un graphe non orient, la notion correspondante est le e cycle un graphe non orient sans cycle est dit acyclique e
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 10/ 64
Terminologie
un graphe orient est fortement connexe si chaque sommet est e accessible ` partir de nimporte quel autre a
Graphes et arbres
11/ 64
Terminologie
un graphe orient est fortement connexe si chaque sommet est e accessible ` partir de nimporte quel autre a les composantes fortement connexes dun graphe orient sont e les classes dquivalence de sommets induites par la relation e sont accessibles lun ` partir de lautre a
Graphes et arbres
11/ 64
Terminologie
un graphe orient est fortement connexe si chaque sommet est e accessible ` partir de nimporte quel autre a les composantes fortement connexes dun graphe orient sont e les classes dquivalence de sommets induites par la relation e sont accessibles lun ` partir de lautre a les composantes fortement connexes pour lexemple sont {1, 2, 4, 5}, {3} et {6}
Graphes et arbres
11/ 64
Terminologie
un graphe orient est fortement connexe si chaque sommet est e accessible ` partir de nimporte quel autre a les composantes fortement connexes dun graphe orient sont e les classes dquivalence de sommets induites par la relation e sont accessibles lun ` partir de lautre a les composantes fortement connexes pour lexemple sont {1, 2, 4, 5}, {3} et {6} un graphe non orient est connexe si chaque paire de sommets e est reli par une cha e ne
Graphes et arbres
11/ 64
Terminologie
un graphe orient est fortement connexe si chaque sommet est e accessible ` partir de nimporte quel autre a les composantes fortement connexes dun graphe orient sont e les classes dquivalence de sommets induites par la relation e sont accessibles lun ` partir de lautre a les composantes fortement connexes pour lexemple sont {1, 2, 4, 5}, {3} et {6} un graphe non orient est connexe si chaque paire de sommets e est reli par une cha e ne les composantes connexes dun graphe non orient sont les e classes dquivalence de sommets induites par la relation est e accessible ` partir de a
Graphes et arbres
11/ 64
Terminologie
un graphe orient est fortement connexe si chaque sommet est e accessible ` partir de nimporte quel autre a les composantes fortement connexes dun graphe orient sont e les classes dquivalence de sommets induites par la relation e sont accessibles lun ` partir de lautre a les composantes fortement connexes pour lexemple sont {1, 2, 4, 5}, {3} et {6} un graphe non orient est connexe si chaque paire de sommets e est reli par une cha e ne les composantes connexes dun graphe non orient sont les e classes dquivalence de sommets induites par la relation est e accessible ` partir de a les composantes connexes pour lexemple sont {1, 2, 5}, {3, 6} et {4}
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 11/ 64
Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
12/ 64
Parcours en largeur
Graphes et arbres
13/ 64
Parcours en largeur
Principe on parcourt dabord toutes les artes dun sommet e puis on parcourt rcursivement les sommets trouvs e e
Graphes et arbres
13/ 64
Parcours en largeur
Principe on parcourt dabord toutes les artes dun sommet e puis on parcourt rcursivement les sommets trouvs e e lorsque lon a ni de parcourir une composante connexe, on repart dun sommet non encore visit (si il en reste) e
Graphes et arbres
13/ 64
Parcours en largeur
Principe on parcourt dabord toutes les artes dun sommet e puis on parcourt rcursivement les sommets trouvs e e lorsque lon a ni de parcourir une composante connexe, on repart dun sommet non encore visit (si il en reste) e Application Arbre de recouvrement de poids minimum (voir apr`s). e
Graphes et arbres
13/ 64
Parcours en largeur
Algorithme fonction ParcoursLargeurGraphe((S, A)) pour s S faire etat[s] inconnu pour a A faire etat[a] inconnu pour s S faire si etat[s] = inconnu alors ParcoursLargeurSommet((S, A), s)
Graphes et arbres
14/ 64
Parcours en largeur
Algorithme fonction ParcoursLargeurSommet((S, A), s) etat[s] visit e AS AretesIncidentes(s) AS est une le tant que AS non vide faire (x, y ) Defiler(AS) si etat[(x, y )] = inconnu alors si etat[y ] = inconnu alors etat[(x, y )] d e couvert etat[y ] visit e pour a AretesIncidentes(y ) faire Enfiler(AS, a) sinon etat[(x, y )] retour
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 15/ 64
Parcours en largeur
Graphes et arbres
16/ 64
Parcours en largeur
Complexit e on parcourt chaque sommet une fois on parcourt chaque arte une fois e
Graphes et arbres
16/ 64
Parcours en largeur
Complexit e on parcourt chaque sommet une fois on parcourt chaque arte une fois e T (n) = O(|S| + |A|)
Graphes et arbres
16/ 64
Parcours en profondeur
Graphes et arbres
17/ 64
Parcours en profondeur
Principe on choisit une arte parmi toutes les artes incidentes e e puis on parcourt rcursivement le sommet choisi avant de e parcourir les autres artes e
Graphes et arbres
17/ 64
Parcours en profondeur
Principe on choisit une arte parmi toutes les artes incidentes e e puis on parcourt rcursivement le sommet choisi avant de e parcourir les autres artes e lorsque lon a ni de parcourir une composante connexe, on repart dun sommet non encore visit (si il en reste) e
Graphes et arbres
17/ 64
Parcours en profondeur
Principe on choisit une arte parmi toutes les artes incidentes e e puis on parcourt rcursivement le sommet choisi avant de e parcourir les autres artes e lorsque lon a ni de parcourir une composante connexe, on repart dun sommet non encore visit (si il en reste) e Application Chercher un chemin dans un labyrinthe.
Graphes et arbres
17/ 64
Parcours en profondeur
Algorithme fonction ParcoursProfondeurGraphe((S, A)) pour s S faire etat[s] inconnu pour a A faire etat[a] inconnu pour s S faire si etat[s] = inconnu alors ParcoursProfondeurSommet((S, A), s)
Graphes et arbres
18/ 64
Parcours en profondeur
Algorithme fonction ParcoursProfondeurSommet((S, A), s) etat[s] visit e AS AretesIncidentes(s) AS est une pile tant que AS non vide faire (x, y ) Depiler(AS) si etat[(x, y )] = inconnu alors si etat[y ] = inconnu alors etat[(x, y )] d e couvert etat[y ] visit e pour a AretesIncidentes(y ) faire Empiler(AS, a) sinon etat[(x, y )] retour
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 19/ 64
Parcours en profondeur
Graphes et arbres
20/ 64
Parcours en profondeur
Complexit e on parcourt chaque sommet une fois on parcourt chaque arte une fois e
Graphes et arbres
20/ 64
Parcours en profondeur
Complexit e on parcourt chaque sommet une fois on parcourt chaque arte une fois e T (n) = O(|S| + |A|)
Graphes et arbres
20/ 64
Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
21/ 64
Algorithme de Dijkstra
Contexte soit un graphe valu connexe avec des poids positifs ou nuls e
Graphes et arbres
22/ 64
Algorithme de Dijkstra
Contexte soit un graphe valu connexe avec des poids positifs ou nuls e on cherche les plus courts chemins ` partir dune origine a unique
Graphes et arbres
22/ 64
Algorithme de Dijkstra
Contexte soit un graphe valu connexe avec des poids positifs ou nuls e on cherche les plus courts chemins ` partir dune origine a unique il sagit dun probl`me ` sous structure optimale e a
Graphes et arbres
22/ 64
Algorithme de Dijkstra
Algorithme fonction Dijkstra((S, A), s) s le sommet de dpart e pour s S faire dist[s] prec[s] NULL dist[s] 0 AS S tant que AS = faire x SupprimerMin(AS) on rcup`re le sommet non e e encore visit de distance minimale e pour (x, y ) A faire si dist[y ] > dist[x] + A[(x, y )] alors dist[y ] dist[x] + A[(x, y )] prec[y ] x
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 23/ 64
Algorithme de Dijkstra
Graphes et arbres
24/ 64
Algorithme de Dijkstra
Complexit e la boucle tant que sexcute |S| fois e SupprimerMin est en O(|S|)
Graphes et arbres
24/ 64
Algorithme de Dijkstra
Complexit e la boucle tant que sexcute |S| fois e SupprimerMin est en O(|S|) chaque arte est parcourue une fois e
Graphes et arbres
24/ 64
Algorithme de Dijkstra
Complexit e la boucle tant que sexcute |S| fois e SupprimerMin est en O(|S|) chaque arte est parcourue une fois e on a donc T (n) = O(|S|2 + |A|) = O(|S|2 )
Graphes et arbres
24/ 64
Algorithme de Bellman-Ford
Contexte soit un graphe valu connexe sans circuit de poids strictement e ngatif e
Graphes et arbres
25/ 64
Algorithme de Bellman-Ford
Contexte soit un graphe valu connexe sans circuit de poids strictement e ngatif e on cherche les plus courts chemins ` partir dune origine a unique
Graphes et arbres
25/ 64
Algorithme de Bellman-Ford
Contexte soit un graphe valu connexe sans circuit de poids strictement e ngatif e on cherche les plus courts chemins ` partir dune origine a unique il sagit dun probl`me ` sous structure optimale e a
Graphes et arbres
25/ 64
Algorithme de Bellman-Ford
Contexte soit un graphe valu connexe sans circuit de poids strictement e ngatif e on cherche les plus courts chemins ` partir dune origine a unique il sagit dun probl`me ` sous structure optimale e a lalgorithme dtecte si il y a un circuit de poids strictement e ngatif e
Graphes et arbres
25/ 64
Algorithme de Bellman-Ford
Algorithme fonction Bellman-Ford((S, A), s) s le sommet de dpart e pour s S faire dist[s] prec[s] NULL dist[s] 0 pour i 1 ` |S| 1 faire a pour (x, y ) A faire si dist[y ] > dist[x] + A[(x, y )] alors dist[y ] dist[x] + A[(x, y )] prec[y ] x pour (x, y ) A faire si dist[y ] > dist[x] + A[(x, y )] alors retourner erreur circuit ngatif e
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 26/ 64
Algorithme de Bellman-Ford
Graphes et arbres
27/ 64
Algorithme de Bellman-Ford
Complexit e la premi`re boucle sexcute |S| fois e e la deuxi`me boucle sexcute |A| fois e e
Graphes et arbres
27/ 64
Algorithme de Bellman-Ford
Complexit e la premi`re boucle sexcute |S| fois e e la deuxi`me boucle sexcute |A| fois e e la vrication est en (|A|) e
Graphes et arbres
27/ 64
Algorithme de Bellman-Ford
Complexit e la premi`re boucle sexcute |S| fois e e la deuxi`me boucle sexcute |A| fois e e la vrication est en (|A|) e on a donc T (n) = O(|S||A| + |A|) = O(|S||A|)
Graphes et arbres
27/ 64
Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
28/ 64
Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
29/ 64
Arbre
Graphes et arbres
30/ 64
Arbre
Dnitions e un arbre est un graphe non orient connexe acyclique e une fort est un graphe non orient acyclique e e
Graphes et arbres
30/ 64
Arbre
Dnitions e un arbre est un graphe non orient connexe acyclique e une fort est un graphe non orient acyclique e e un arbre enracin est un arbre dont lun des sommets est dit e racine et impose le sens de parcours de larbre
Graphes et arbres
30/ 64
Arbre
Dnitions e un arbre est un graphe non orient connexe acyclique e une fort est un graphe non orient acyclique e e un arbre enracin est un arbre dont lun des sommets est dit e racine et impose le sens de parcours de larbre les sommets dun arbre sont appels noeuds e
Graphes et arbres
30/ 64
Arbre
Dnitions e un arbre est un graphe non orient connexe acyclique e une fort est un graphe non orient acyclique e e un arbre enracin est un arbre dont lun des sommets est dit e racine et impose le sens de parcours de larbre les sommets dun arbre sont appels noeuds e un noeud sans ls est une feuille, sinon cest un noeud interne
Graphes et arbres
30/ 64
Arbre
Dnitions e un arbre est un graphe non orient connexe acyclique e une fort est un graphe non orient acyclique e e un arbre enracin est un arbre dont lun des sommets est dit e racine et impose le sens de parcours de larbre les sommets dun arbre sont appels noeuds e un noeud sans ls est une feuille, sinon cest un noeud interne le sous arbre de racine x est larbre compos des descendants e de x enracin en x e
Graphes et arbres
30/ 64
Arbre
Dnitions e soit x un noeud dun arbre T de racine r
Graphes et arbres
31/ 64
Arbre
Dnitions e soit x un noeud dun arbre T de racine r
si y est un noeud sur lunique chemin de r ` x alors y est un a anctre de x et x est un descendant de y e
Graphes et arbres
31/ 64
Arbre
Dnitions e soit x un noeud dun arbre T de racine r
si y est un noeud sur lunique chemin de r ` x alors y est un a anctre de x et x est un descendant de y e si T contient larte (y , x) alors y est le p`re de x et x est le e e ls de y (la racine na pas de p`re) e
Graphes et arbres
31/ 64
Arbre
Dnitions e soit x un noeud dun arbre T de racine r
si y est un noeud sur lunique chemin de r ` x alors y est un a anctre de x et x est un descendant de y e si T contient larte (y , x) alors y est le p`re de x et x est le e e ls de y (la racine na pas de p`re) e
Graphes et arbres
31/ 64
Arbre
Dnitions e soit x un noeud dun arbre T de racine r
si y est un noeud sur lunique chemin de r ` x alors y est un a anctre de x et x est un descendant de y e si T contient larte (y , x) alors y est le p`re de x et x est le e e ls de y (la racine na pas de p`re) e
la hauteur dun noeud est la longueur du chemin entre le noeud et la racine le niveau n dun arbre est lensemble des noeuds de hauteur n
Graphes et arbres
31/ 64
Arbre
Dnitions e soit x un noeud dun arbre T de racine r
si y est un noeud sur lunique chemin de r ` x alors y est un a anctre de x et x est un descendant de y e si T contient larte (y , x) alors y est le p`re de x et x est le e e ls de y (la racine na pas de p`re) e
la hauteur dun noeud est la longueur du chemin entre le noeud et la racine le niveau n dun arbre est lensemble des noeuds de hauteur n un arbre ordonn est un arbre enracin dont les ls de chaque e e noeud sont ordonns e
Graphes et arbres
31/ 64
Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
32/ 64
Proprits ee
Soit G = (S, A) un graphe non orient. Les armations suivantes e sont quivalentes : e
Graphes et arbres
33/ 64
Proprits ee
Soit G = (S, A) un graphe non orient. Les armations suivantes e sont quivalentes : e G est un arbre
Graphes et arbres
33/ 64
Proprits ee
Soit G = (S, A) un graphe non orient. Les armations suivantes e sont quivalentes : e G est un arbre deux sommets quelconques de G sont relis par un unique e chemin lmentaire ee
Graphes et arbres
33/ 64
Proprits ee
Soit G = (S, A) un graphe non orient. Les armations suivantes e sont quivalentes : e G est un arbre deux sommets quelconques de G sont relis par un unique e chemin lmentaire ee G est connexe, mais si une arte quelconque est te de A, le e oe graphe nest plus connexe
Graphes et arbres
33/ 64
Proprits ee
Soit G = (S, A) un graphe non orient. Les armations suivantes e sont quivalentes : e G est un arbre deux sommets quelconques de G sont relis par un unique e chemin lmentaire ee G est connexe, mais si une arte quelconque est te de A, le e oe graphe nest plus connexe G est connexe et |A| = |S| 1
Graphes et arbres
33/ 64
Proprits ee
Soit G = (S, A) un graphe non orient. Les armations suivantes e sont quivalentes : e G est un arbre deux sommets quelconques de G sont relis par un unique e chemin lmentaire ee G est connexe, mais si une arte quelconque est te de A, le e oe graphe nest plus connexe G est connexe et |A| = |S| 1 G est acyclique et |A| = |S| 1
Graphes et arbres
33/ 64
Proprits ee
Soit G = (S, A) un graphe non orient. Les armations suivantes e sont quivalentes : e G est un arbre deux sommets quelconques de G sont relis par un unique e chemin lmentaire ee G est connexe, mais si une arte quelconque est te de A, le e oe graphe nest plus connexe G est connexe et |A| = |S| 1 G est acyclique et |A| = |S| 1 G est acyclique, mais si une arte quelconque est ajoute ` A, e e a le graphe rsultant contient un cycle e
Graphes et arbres
33/ 64
Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
34/ 64
Dnitions e
Arbre de recouvrement un arbre de recouvrement dun graphe non orient connexe est e un sous-graphe recouvrant qui est un arbre
Graphes et arbres
35/ 64
Dnitions e
Arbre de recouvrement un arbre de recouvrement dun graphe non orient connexe est e un sous-graphe recouvrant qui est un arbre un arbre de recouvrement nest pas unique sauf si le graphe est un arbre
Graphes et arbres
35/ 64
Dnitions e
Arbre de recouvrement un arbre de recouvrement dun graphe non orient connexe est e un sous-graphe recouvrant qui est un arbre un arbre de recouvrement nest pas unique sauf si le graphe est un arbre Arbre de recouvrement de poids minimum Larbre de recouvrement de poids minimum dun graphe valu est e larbre de recouvrement dont la somme des poids des artes est e minimum.
Graphes et arbres
35/ 64
Dnitions e
Arbre de recouvrement un arbre de recouvrement dun graphe non orient connexe est e un sous-graphe recouvrant qui est un arbre un arbre de recouvrement nest pas unique sauf si le graphe est un arbre Arbre de recouvrement de poids minimum Larbre de recouvrement de poids minimum dun graphe valu est e larbre de recouvrement dont la somme des poids des artes est e minimum. Remarque Le parcours en largeur dun graphe donne larbre de recouvrement des plus courts chemin (en nombre dartes). e
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 35/ 64
Algorithme de Prim
Graphes et arbres
37/ 64
Algorithme de Prim
Complexit e la boucle tant que sexcute |A| fois e SupprimerMin est en O(|A|)
Graphes et arbres
37/ 64
Algorithme de Prim
Complexit e la boucle tant que sexcute |A| fois e SupprimerMin est en O(|A|) chaque arte est parcourue une fois e
Graphes et arbres
37/ 64
Algorithme de Prim
Complexit e la boucle tant que sexcute |A| fois e SupprimerMin est en O(|A|) chaque arte est parcourue une fois e on a donc T (n) = O(|A|2 + |A|) = O(|A|2 )
Graphes et arbres
37/ 64
Algorithme de Prim
Complexit e la boucle tant que sexcute |A| fois e SupprimerMin est en O(|A|) chaque arte est parcourue une fois e on a donc T (n) = O(|A|2 + |A|) = O(|A|2 ) comme gnralement |A| > |S| on pourrait remplacer la e e condition AS = par s, etat[s] = inconnu
Graphes et arbres
37/ 64
Graphes et arbres
38/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
39/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Dnitions e
Arbre binaire un arbre binaire est un arbre enracin, ordonn et dont chaque e e noeud a au maximum deux ls
Graphes et arbres
40/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Dnitions e
Arbre binaire un arbre binaire est un arbre enracin, ordonn et dont chaque e e noeud a au maximum deux ls on appelle le premier sous-arbre, sous-arbre gauche
Graphes et arbres
40/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Dnitions e
Arbre binaire un arbre binaire est un arbre enracin, ordonn et dont chaque e e noeud a au maximum deux ls on appelle le premier sous-arbre, sous-arbre gauche on appelle le deuxi`me sous-arbre, sous-arbre droit e
Graphes et arbres
40/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Dnitions e
Arbre binaire un arbre binaire est un arbre enracin, ordonn et dont chaque e e noeud a au maximum deux ls on appelle le premier sous-arbre, sous-arbre gauche on appelle le deuxi`me sous-arbre, sous-arbre droit e un arbre binaire est dit complet si tous les noeuds ont zro ou e deux ls un arbre binaire est dit parfait si toutes les feuilles sont ` la a mme distance de la racine e
Graphes et arbres
40/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
41/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Parcours prxe e
Graphes et arbres
42/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Parcours prxe e
Principe Soit A un arbre binaire on parcourt le noeud on parcourt rcursivement le sous-arbre gauche e
Graphes et arbres
42/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Parcours prxe e
Principe Soit A un arbre binaire on parcourt le noeud on parcourt rcursivement le sous-arbre gauche e on parcourt rcursivement le sous-arbre droit e
Graphes et arbres
42/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Parcours prxe e
Principe Soit A un arbre binaire on parcourt le noeud on parcourt rcursivement le sous-arbre gauche e on parcourt rcursivement le sous-arbre droit e Application arbre fonctionnel
Graphes et arbres
42/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Parcours inxe
Graphes et arbres
43/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Parcours inxe
Principe Soit A un arbre binaire on parcourt rcursivement le sous-arbre gauche e on parcourt le noeud
Graphes et arbres
43/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Parcours inxe
Principe Soit A un arbre binaire on parcourt rcursivement le sous-arbre gauche e on parcourt le noeud on parcourt rcursivement le sous-arbre droit e
Graphes et arbres
43/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Parcours inxe
Principe Soit A un arbre binaire on parcourt rcursivement le sous-arbre gauche e on parcourt le noeud on parcourt rcursivement le sous-arbre droit e Application arbre dexpressions logiques
Graphes et arbres
43/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Parcours suxe
Graphes et arbres
44/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Parcours suxe
Graphes et arbres
44/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Parcours suxe
Principe soit A un arbre binaire on parcourt rcursivement le sous-arbre gauche e on parcourt rcursivement le sous-arbre droit e
Graphes et arbres
44/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Parcours suxe
Principe soit A un arbre binaire on parcourt rcursivement le sous-arbre gauche e on parcourt rcursivement le sous-arbre droit e on parcourt le noeud
Graphes et arbres
44/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Parcours suxe
Principe soit A un arbre binaire on parcourt rcursivement le sous-arbre gauche e on parcourt rcursivement le sous-arbre droit e on parcourt le noeud Application notation polonaise inverse e
Graphes et arbres
44/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
45/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
ABR
Dnition e un arbre binaire de recherche est un arbre binaire
Graphes et arbres
46/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
ABR
Dnition e un arbre binaire de recherche est un arbre binaire si y est un noeud du sous arbre gauche de x alors clef (y ) clef (x)
Graphes et arbres
46/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
ABR
Dnition e un arbre binaire de recherche est un arbre binaire si y est un noeud du sous arbre gauche de x alors clef (y ) clef (x) si y est un noeud du sous arbre droit de x alors clef (y ) clef (x)
Graphes et arbres
46/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
ABR
Dnition e un arbre binaire de recherche est un arbre binaire si y est un noeud du sous arbre gauche de x alors clef (y ) clef (x) si y est un noeud du sous arbre droit de x alors clef (y ) clef (x) Proprits ee la hauteur maximale dun arbre (de recherche) est n
Graphes et arbres
46/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
ABR
Dnition e un arbre binaire de recherche est un arbre binaire si y est un noeud du sous arbre gauche de x alors clef (y ) clef (x) si y est un noeud du sous arbre droit de x alors clef (y ) clef (x) Proprits ee la hauteur maximale dun arbre (de recherche) est n la hauteur minimale dun arbre de recherche est log2 (n)
Graphes et arbres
46/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Exemple
Graphes et arbres
47/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Rechercher
Algorithme fonction Rechercher(r , x) r la racine et x llment ` ee a rechercher si r = NULL ou clef (r ) = x alors retourner r si clef (r ) > x alors retourner Rechercher(ls gauche(r ), x) sinon retourner Rechercher(ls droit(r ), x)
Graphes et arbres
48/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Insrer e
Algorithme fonction Inserer(r , x) r la racine et x llment ` insrer ee a e si r = NULL alors retourner nouveauABR(x) si clef (r ) x alors ls gauche(r ) Inserer(ls gauche(r ), x) retourner r sinon ls droit(r ) Inserer(ls droit(r ), x) retourner r
Graphes et arbres
49/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Minimum
Algorithme fonction Minimum(r ) r la racine de labr si r = NULL alors retourner NULL si ls gauche(r ) = NULL alors retourner r sinon retourner Minimum(ls gauche(r ))
Graphes et arbres
50/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Successeur
Algorithme fonction Successeur(x) x = NULL si ls droit(x) = NULL alors retourner Minimum(ls droit(x)) sinon y p`re(x) e on tant que y = NULL et x = ls droit(y ) faire recherche le premier lment suprieur en remontant la hirarchie ee e e x y y p`re(y ) e si y = NULL alors x est le maximum de labr retourner NULL sinon retourner y
Mathieu Lefort mathieu.lefort@loria.fr Graphes et arbres 51/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Supprimer
Graphes et arbres
52/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Supprimer
Principe on recherche dabord llment ` supprimer ee a si cest une feuille, on la supprime simplement en supprimant le lien depuis son p`re e
Graphes et arbres
52/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Supprimer
Principe on recherche dabord llment ` supprimer ee a si cest une feuille, on la supprime simplement en supprimant le lien depuis son p`re e si llment na quun sous arbre, alors on le remplace par la ee racine de son sous arbre
Graphes et arbres
52/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Supprimer
Principe on recherche dabord llment ` supprimer ee a si cest une feuille, on la supprime simplement en supprimant le lien depuis son p`re e si llment na quun sous arbre, alors on le remplace par la ee racine de son sous arbre si llment a deux sous arbres, on recherche son successeur ee (qui sera le minimum de son sous arbre droit et naura donc au maximum quun sous arbre) et on les intervertit ; on supprime alors rcursivement llment ` son nouvel emplacement e ee a
Graphes et arbres
52/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Complexit e
Graphes et arbres
53/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Complexit e
tous les algorithmes sont en O(h) on a donc Tmin (n) = O(log2 (n))
Graphes et arbres
53/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Complexit e
tous les algorithmes sont en O(h) on a donc Tmin (n) = O(log2 (n)) et Tmax (n) = O(n)
Graphes et arbres
53/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes Dnitions e Parcours Plus court chemin Arbres Dnitions e Proprits ee Arbres de recouvrement Arbres binaires Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
54/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
AVL
Dnition e Un AVL est un arbre binaire de recherche tel que, pour chaque noeud, la dirence de hauteur entre ses deux sous arbres est au e maximum de 1.
Graphes et arbres
55/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
AVL
Dnition e Un AVL est un arbre binaire de recherche tel que, pour chaque noeud, la dirence de hauteur entre ses deux sous arbres est au e maximum de 1. Proprit ee La hauteur dun AVL est en O(log2 (n))
Graphes et arbres
55/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
AVL
Preuve Soit n(h) le nombre minimum de noeud dans un AVL de hauteur h. n(1) = 1 n(2) = 2 n(h) = 1 + n(h 1) + n(h 2) > 2n(h 2) > 2i n(h 2i) n(h) > 2
h/2 1
n(1)
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
57/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Doubles rotations
Graphes et arbres
58/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
59/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
60/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
Graphes et arbres
61/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
AVL - insrer e
Graphes et arbres
62/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
AVL - insrer e
Principe on ins`re llment comme dans un ABR e ee on remonte de llment ` la racine et si on trouve un noeud ee a pour lequel la proprit dquilibre entre ses sous arbres nest ee e pas respecte, on rpare larbre en utilisant les rotations e e
Graphes et arbres
62/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
AVL - supprimer
Graphes et arbres
63/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
AVL - supprimer
Principe on supprime llment comme dans un ABR ee on remonte de llment ` la racine et si on trouve un noeud ee a pour lequel la proprit dquilibre entre ses sous arbres nest ee e pas respecte, on rpare larbre en utilisant les rotations e e
Graphes et arbres
63/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
AVL - complexit e
Graphes et arbres
64/ 64
Parcours Arbre Binaire de Recherche (ABR) Arbre binaire de recherche quilibr (AVL) e e
AVL - complexit e
tous les algorithmes sont en O(h) de par la proprit des AVL, on a T (n) = O(log2 (n)) ee
Graphes et arbres
64/ 64