structures de données ift-2000 abder alikacem arbres de recouvrement minimum département...
TRANSCRIPT
![Page 1: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/1.jpg)
Structures de donnéesIFT-2000
Abder AlikacemAbder Alikacem
Arbres de recouvrement minimum
Département d’informatique et de génie logiciel
Édition Septembre 2009
JFK
BOS
MIA
ORD
LAXDFW
SFO BWI
PVD
8672704
187
1258
849
144740
1391
184
946
1090
1121
2342
1846 621
802
1464
1235
337
![Page 2: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/2.jpg)
Définitions L’algorithme de Prim-JarnikAlgorithme de Kruskal
Plan
![Page 3: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/3.jpg)
Définitions
Un sous-graphe couvrant d’un graphe G est un sous-graphe contenant tous les sommets
de G.
Un arbre couvrant d’un graphe est un sousgraphe couvrant qui est un arbre.
Arbre couvrant minimal (minimum spanning tree):
Arbre couvrant d’un graphe avec poids dont le poids total des arêtes est minimal.
ORD
PIT
ATL
STL
DEN
DFW
DCA
101
9
8
6
3
25
7
4
![Page 4: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/4.jpg)
Propriétés
Propriété de cycle: Soit T un arbre couvrant d’un
graphe avec poids G Soit e une arête de G
n’appartenant pas à T et soit C, le cycle obtenu
lorsqu’on ajoute e à T Si T est minimal, alors on a
pour toutes arêtes f dans C poids(f) poids (e)
Preuve: Par contradiction Si poids(f) > poids(e), on
obtient un arbre couvrant de plus petit poids en remplaçant
l’arête f par l’arête e dans notre arbre T
84
2 36
7
7
9
8e
C
f
84
2 36
7
7
9
8
C
e
f
Remplacer f par e donne un arbrecouvrant de plus petit poids total
![Page 5: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/5.jpg)
U V
Propriété de partition des ACM
Propriétés de partition: Considérons une partition des
sommets de G en deux ensembles U et V
Soit e une arête de poids minimal entre U et V
Alors, il existe un arbre couvrant minimal de G contenant e
Preuve: Soit T un arbre couvrant minimal
de G Si T ne contient pas e, soit C le
cycle formé par l’addition de e à l’arbre T et soit f, une arête entre U et V
Par la propriété de cycles, on a,poids(f)
poids(e) Comme on avait pris e de poids
minimal, on a que poids(f) = poids(e) et alors on obtient un autre ACM en remplaçant f par e
74
2 85
7
3
9
8 e
f
74
2 85
7
3
9
8 e
f
Remplacer f par e nousdonne un autre ACM
U V
![Page 6: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/6.jpg)
Algorithme de Prim-Jarnik’s
Algorithme similaire à l”algorithme de Dijkstra (dans le cas des graphes connexes).On choisit un sommet s aléatoirement qu’on met dans un “nuage” et on
construit l’arbre couvrant minimal en faisant grossir le “nuage” d’un
sommet à la fois.On garde en mémoire à chaque sommet v, une étiquette d(v) qui ici est égale au poids minimal parmi les poids des arêtes reliant v à un sommet à l’intérieur du nuage.À chaque étape:
On ajoute au nuage le sommet u extérieur ayant la plus petite étiquette d(u)
On met à jour les étiquettes des sommets adjacents à u
![Page 7: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/7.jpg)
Algorithme de Prim-Jarnik’s
A priority queue stores the vertices outside the cloud
Key: distance Element: vertex
Locator-based methods insert(k,e) returns a
locator replaceKey(l,k)
changes the key of an item
We store three labels with each vertex:
Distance Parent edge in MST Locator in priority
queue
Algorithm PrimJarnikMST(G)Q new heap-based priority queues a vertex of Gfor all v G.vertices()
if v ssetDistance(v, 0)
else setDistance(v, )
setParent(v, )l Q.insert(getDistance(v), v)
setLocator(v,l)while Q.isEmpty()
u Q.removeMin() for all e G.incidentEdges(u)
z G.opposite(u,e)r weight(e)if r getDistance(z)
setDistance(z,r)setParent(z,e)
Q.replaceKey(getLocator(z),r)
![Page 8: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/8.jpg)
Exemple
BD
C
A
F
E
74
28
5
7
3
9
8
07
2
8
BD
C
A
F
E
74
28
5
7
3
9
8
07
2
5
7
BD
C
A
F
E
74
28
5
7
3
9
8
07
2
5
7
BD
C
A
F
E
74
28
5
7
3
9
8
07
2
5 4
7
![Page 9: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/9.jpg)
BD
C
A
F
E
74
28
5
7
3
9
8
03
2
5 4
7
BD
C
A
F
E
74
28
5
7
3
9
8
03
2
5 4
7
Exemple..suite
![Page 10: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/10.jpg)
Analyse de la complexité
Opérations sur les graphes: On appelle l’opération Incidentes(v) une fois pour chaque sommet v. Donc,
temps total si on utilise une liste d’adjacence de O(m)
Étiquettage: On peut changer l’étiquette D(u) d’un sommet u jusqu’à O(deg(u)) fois.
Donc, au total, l’étiquettage prend un temps O(m)
Opérations de liste avec priorités Chaque sommet est inséré une fois dans la liste et retiré une fois. Chaque
insertion et suppresion prend un temps O(log n). Total O(n log n) La clé de chaque sommet u est modifiée au plus O(deg(u)) et prend un
temps O(log n) chaque fois. Total O(m log n)
La complexité en temps de Prim-Jarník est donc de O((n+m) log n)ou O(m log n) si le graphe est simple et connexe
![Page 11: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/11.jpg)
Kruskal’s Algorithm
A priority queue stores the edges outside the cloud
Key: weight Element: edge
At the end of the algorithm
We are left with one cloud that encompasses the MST
A tree T which is our MST
Algorithm KruskalMST(G)for each vertex V in G do
define a Cloud(v) of {v}let Q be a priority queue.Insert all edges into Q using
their weights as the keyT while T has fewer than n-1
edges do edge e = T.removeMin()
Let u, v be the endpoints of eif Cloud(v) Cloud(u) then
Add edge e to TMerge Cloud(v) and
Cloud(u)return T
![Page 12: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/12.jpg)
Structure de données pour Kruskal
L’algorithme maintient une forêt d’arbresUne arête est acceptée, si elle relit deux arbres distinctsOn a besoin d’une structure de données qui maintient une partition i.e une collection d’ensembles disjoints, avec les opérations
Trouver(u): retourne l’ensemble contenant u Union(u,v): remplace les ensemblescontenant u et v par
leur union
![Page 13: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/13.jpg)
Représentation d’une Partition
Chaque élément d’un ensemble est mis enmémoire dans une séquence (l’ensemblepointe vers la séquence contenant ceséléments).
Chaque élément à un pointeur vers l’ensemble L’opération trouver(u) se fait en O(1) et retourne
l’ensemble dont u fait partie Pour l’opération union(u,v), on bouge les éléments du
plus petit ensemble dans la séquence du plus grand ensemble et on met à jour leur pointeur
La complexité en temps de union(u,v), est min(nu, nv) où nu est la taille de l’ensemble contenant u et nv, la taille de l’ensemble contenant v
![Page 14: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/14.jpg)
Kruskal - partition
Algorithme Kruskal(G):Entrée: un graphe avec poids G.Sortie: Un ACM T pour G.Soit P une partition des sommets de G, où chaque sommet est dans un ensemble séparé.Soit Q une liste avec priorités gardant en mémoire les arêtes de G, ordonnéesselon leur poidsSoit T un arbre initialement videTant que Q n’est pas vide faire
(u,v) Q.enleverMin()si P.trouver(u) != P.trouver(v) alors
Ajouter (u,v) à TP.union(u,v)
retourner T
Complexité en temps:O((n+m)log n)
![Page 15: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/15.jpg)
Exemple Kruskal
JFK
BOS
MIA
ORD
LAXDFW
SFO BWI
PVD
8672704
187
1258
849
144740
1391
184
946
1090
1121
2342
1846 621
802
1464
1235
337
![Page 16: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/16.jpg)
JFK
BOS
MIA
ORD
LAXDFW
SFO BWI
PVD
8672704
187
1258
849
144740
1391
184
946
1090
1121
2342
1846 621
802
1464
1235
337
Exemple Kruskal
![Page 17: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/17.jpg)
JFK
BOS
MIA
ORD
LAXDFW
SFO BWI
PVD
8672704
187
1258
849
144740
1391
184
946
1090
1121
2342
1846 621
802
1464
1235
337
Exemple Kruskal
![Page 18: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/18.jpg)
JFK
BOS
MIA
ORD
LAXDFW
SFO BWI
PVD
8672704
187
1258
849
144740
1391
184
946
1090
1121
2342
1846 621
802
1464
1235
337
Exemple Kruskal
![Page 19: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/19.jpg)
JFK
BOS
MIA
ORD
LAXDFW
SFO BWI
PVD
8672704
187
1258
849
144740
1391
184
946
1090
1121
2342
1846 621
802
1464
1235
337
Exemple Kruskal
![Page 20: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/20.jpg)
JFK
BOS
MIA
ORD
LAXDFW
SFO BWI
PVD
8672704
187
1258
849
144740
1391
184
946
1090
1121
2342
1846 621
802
1464
1235
337
Exemple Kruskal
![Page 21: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/21.jpg)
JFK
BOS
MIA
ORD
LAXDFW
SFO BWI
PVD
8672704
187
1258
849
144740
1391
184
946
1090
1121
2342
1846 621
802
1464
1235
337
Exemple Kruskal
![Page 22: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/22.jpg)
JFK
BOS
MIA
ORD
LAXDFW
SFO BWI
PVD
8672704
187
1258
849
144740
1391
184
946
1090
1121
2342
1846 621
802
1464
1235
337
Exemple Kruskal
![Page 23: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/23.jpg)
JFK
BOS
MIA
ORD
LAXDFW
SFO BWI
PVD
8672704
187
1258
849
144740
1391
184
946
1090
1121
2342
1846 621
802
1464
1235
337
Exemple Kruskal
![Page 24: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/24.jpg)
JFK
BOS
MIA
ORD
LAXDFW
SFO BWI
PVD
8672704
187
1258
849
144740
1391
184
946
1090
1121
2342
1846 621
802
1464
1235
337
Exemple Kruskal
![Page 25: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/25.jpg)
JFK
BOS
MIA
ORD
LAXDFW
SFO BWI
PVD
8672704
187
1258
849
144740
1391
184
946
1090
1121
2342
1846 621
802
1464
1235
337
Exemple Kruskal
![Page 26: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/26.jpg)
JFK
BOS
MIA
ORD
LAXDFW
SFO BWI
PVD
8672704
187
1258
849
144740
1391
184
946
1090
1121
2342
1846 621
802
1464
1235
337
Exemple Kruskal
![Page 27: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/27.jpg)
JFK
BOS
MIA
ORD
LAXDFW
SFO BWI
PVD
8672704
187
1258
849
144740
1391
184
946
1090
1121
2342
1846 621
802
1464
1235
337
Exemple Kruskal
![Page 28: Structures de données IFT-2000 Abder Alikacem Arbres de recouvrement minimum Département dinformatique et de génie logiciel Édition Septembre 2009 JFK](https://reader035.vdocuments.site/reader035/viewer/2022062512/551d9da7497959293b8d8ed2/html5/thumbnails/28.jpg)
JFK
BOS
MIA
ORD
LAXDFW
SFO BWI
PVD
8672704
187
1258
849
144740
1391
184
946
1090
1121
2342
1846 621
802
1464
1235
337
Exemple Kruskal