arbre recouvrant de poids minimal - irem clermont-ferrandintroduction algorithme de kruskal...
TRANSCRIPT
![Page 1: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/1.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Arbre Recouvrant de Poids Minimal
Philippe Lac([email protected])
Malika More([email protected])
IREM Clermont-Ferrand
Stage Algorithmique
Année 2010-2011
![Page 2: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/2.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
1 IntroductionArbre recouvrantGraphe valué
2 Algorithme de Kruskal
3 Algorithme de Prim
![Page 3: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/3.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
1 IntroductionArbre recouvrantGraphe valué
2 Algorithme de Kruskal
3 Algorithme de Prim
![Page 4: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/4.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Arbre recouvrant
1 IntroductionArbre recouvrantGraphe valué
2 Algorithme de Kruskal
3 Algorithme de Prim
![Page 5: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/5.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Arbre recouvrant
Définition
graphe non orienté G
arbre T{
sommets : tous les sommets de Garêtes : certaines arêtes de G
T arbre recouvrant de G
![Page 6: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/6.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Arbre recouvrant
Définition
graphe non orienté G
arbre T{
sommets : tous les sommets de Garêtes : certaines arêtes de G
T arbre recouvrant de G
![Page 7: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/7.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Arbre recouvrant
Remarques
1 Un graphe peut avoir plusieurs arbres recouvrants.2 Un arbre n’a qu’un seul arbre recouvrant, lui-même.3 Un graphe non connexe n’a aucun arbre recouvrant.
(Autrement dit, un graphe qui a un arbre recouvrant estforcément connexe.)
4 Un graphe connexe a forcément (au moins) un arbre recouvrant.(par exemple un arbre de parcours)
![Page 8: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/8.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Arbre recouvrant
Remarques
1 Un graphe peut avoir plusieurs arbres recouvrants.2 Un arbre n’a qu’un seul arbre recouvrant, lui-même.3 Un graphe non connexe n’a aucun arbre recouvrant.
(Autrement dit, un graphe qui a un arbre recouvrant estforcément connexe.)
4 Un graphe connexe a forcément (au moins) un arbre recouvrant.(par exemple un arbre de parcours)
![Page 9: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/9.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Arbre recouvrant
Remarques
1 Un graphe peut avoir plusieurs arbres recouvrants.2 Un arbre n’a qu’un seul arbre recouvrant, lui-même.3 Un graphe non connexe n’a aucun arbre recouvrant.
(Autrement dit, un graphe qui a un arbre recouvrant estforcément connexe.)
4 Un graphe connexe a forcément (au moins) un arbre recouvrant.(par exemple un arbre de parcours)
![Page 10: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/10.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Arbre recouvrant
Remarques
1 Un graphe peut avoir plusieurs arbres recouvrants.2 Un arbre n’a qu’un seul arbre recouvrant, lui-même.3 Un graphe non connexe n’a aucun arbre recouvrant.
(Autrement dit, un graphe qui a un arbre recouvrant estforcément connexe.)
4 Un graphe connexe a forcément (au moins) un arbre recouvrant.(par exemple un arbre de parcours)
![Page 11: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/11.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Arbre recouvrant
Remarques
1 Un graphe peut avoir plusieurs arbres recouvrants.2 Un arbre n’a qu’un seul arbre recouvrant, lui-même.3 Un graphe non connexe n’a aucun arbre recouvrant.
(Autrement dit, un graphe qui a un arbre recouvrant estforcément connexe.)
4 Un graphe connexe a forcément (au moins) un arbre recouvrant.(par exemple un arbre de parcours)
![Page 12: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/12.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Arbre recouvrant
Remarques
1 Un graphe peut avoir plusieurs arbres recouvrants.2 Un arbre n’a qu’un seul arbre recouvrant, lui-même.3 Un graphe non connexe n’a aucun arbre recouvrant.
(Autrement dit, un graphe qui a un arbre recouvrant estforcément connexe.)
4 Un graphe connexe a forcément (au moins) un arbre recouvrant.(par exemple un arbre de parcours)
![Page 13: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/13.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Arbre recouvrant
Remarques
1 Un graphe peut avoir plusieurs arbres recouvrants.2 Un arbre n’a qu’un seul arbre recouvrant, lui-même.3 Un graphe non connexe n’a aucun arbre recouvrant.
(Autrement dit, un graphe qui a un arbre recouvrant estforcément connexe.)
4 Un graphe connexe a forcément (au moins) un arbre recouvrant.(par exemple un arbre de parcours)
![Page 14: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/14.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Graphe valué
1 IntroductionArbre recouvrantGraphe valué
2 Algorithme de Kruskal
3 Algorithme de Prim
![Page 15: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/15.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Graphe valué
Définition
Chaque arête a un poids (> 0)Le poids d’une chaîne est la somme des poids des arêtesqui la composent.
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 16: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/16.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Graphe valué
Définition
Chaque arête a un poids (> 0)Le poids d’une chaîne est la somme des poids des arêtesqui la composent.
5
1
2
1
3
3
3
13 2
1
4 5
2
1 + 5 + 1 + 3 = 10
![Page 17: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/17.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Graphe valué
Question
Étant donné un graphe valué connexe
On veut construire un arbre recouvrantde poids total le plus petit possible
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 18: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/18.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Graphe valué
Question
Étant donné un graphe valué connexe
On veut construire un arbre recouvrantde poids total le plus petit possible
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 19: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/19.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Graphe valué
Question
Étant donné un graphe valué connexe
On veut construire un arbre recouvrantde poids total le plus petit possible
5
1
2
1
3
3
3
12
1
4 5
2
3
1 + 2 + 5 + 1 + 3 + 5 + 1 + 3 = 21
Peut-on faire mieux ?
![Page 20: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/20.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Graphe valué
Question
Étant donné un graphe valué connexe
On veut construire un arbre recouvrantde poids total le plus petit possible
5
1
2
1
3
3
3
13 2
1
4 5
2
2 + 2 + 1 + 3 + 1 + 4 + 1 + 2 = 16
Peut-on faire mieux ?
![Page 21: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/21.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
1 IntroductionArbre recouvrantGraphe valué
2 Algorithme de Kruskal
3 Algorithme de Prim
![Page 22: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/22.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Idée générale
5
1
2
1
3
3
3
13 2
1
4 5
2
On part d’une forêt d’arbres constitués de chacun dessommets isolés du graphe.À chaque itération, on ajoute à cette forêt l’arête de poidsle plus faible ne créant pas de cycle avec les arêtes déjàchoisies.On stoppe quand on a examiné toutes les arêtes.
![Page 23: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/23.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Méthode
Initialiser T avec{sommets : tous les sommets de Garêtes : aucune
Traiter les arêtes de G l’une après l’autrepar poids croissant :
Si une arête permet de connecter deuxcomposantes connexes de T,
alors l’ajouter à Tsinon ne rien faire
Passer à l’arête suivante
S’arrêter quand il n’y a plus d’arêtes
Retourner T
![Page 24: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/24.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 25: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/25.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 26: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/26.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 27: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/27.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 28: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/28.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 29: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/29.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 30: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/30.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 31: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/31.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 32: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/32.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 33: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/33.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 34: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/34.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 35: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/35.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 36: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/36.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 37: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/37.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 38: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/38.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 39: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/39.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 40: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/40.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 41: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/41.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 42: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/42.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 43: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/43.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 44: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/44.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 45: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/45.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
1 + 1 + 1 + 1 + 2 + 2 + 3 + 3 = 14
Peut-on faire mieux ?
![Page 46: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/46.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Rappel de l’algorithme de Kruskal
Initialiser T avec{sommets : tous les sommets de Garêtes : aucune
Traiter les arêtes de G l’une après l’autrepar poids croissant :
Si une arête permet de connecter deuxcomposantes connexes de T,
alors l’ajouter à Tsinon ne rien faire
Passer à l’arête suivante
S’arrêter quand il n’y a plus d’arêtes
Retourner T
![Page 47: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/47.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Pourquoi l’algorithme de Kruskal construit-il un arbrerecouvrant de poids minimal ?
Kruskal s’arrête toujoursKruskal construit un arbre recouvrantl’arbre recouvrant construit par Kruskal est de poidsminimal
![Page 48: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/48.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Pourquoi l’algorithme de Kruskal construit-il un arbrerecouvrant de poids minimal ?
Kruskal s’arrête toujoursKruskal construit un arbre recouvrantl’arbre recouvrant construit par Kruskal est de poidsminimal
Il n’y a qu’un nombre fini d’arêtes, donc l’algorithme finit par s’arrêter
![Page 49: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/49.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Pourquoi l’algorithme de Kruskal construit-il un arbrerecouvrant de poids minimal ?
Kruskal s’arrête toujoursKruskal construit un arbre recouvrantl’arbre recouvrant construit par Kruskal est de poidsminimal
Propriétés du graphe T retourné par Kruskal :
Sommets de T = Sommets de G
Arêtes de T ⊆ Arêtes de G
T sans cycle car on n’ajoute une arête que pour connecter deuxcomposantes connexes, ce qui ne peut pas créer de cycle, etinitialement T n’a pas d’arêtes, donc pas de cycles.
Reste à vérifier que T est connexe
![Page 50: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/50.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Pourquoi l’algorithme de Kruskal construit-il un arbrerecouvrant de poids minimal ?
Kruskal s’arrête toujoursKruskal construit un arbre recouvrantl’arbre recouvrant construit par Kruskal est de poidsminimal
Supposons que T ne soit pas connexe, et notons T1 et T2 deuxcomposantes connexes de T .
Comme G est connexe, il existe des arêtes de G entre T1 et T2.Notons e la première de ces arêtes dans la liste.
Lorsque l’algorithme a visité e, il aurait dû l’ajouter à T ,puisqu’elle permettait de connecter deux composantesconnexes de T (a priori plus petites que T1 et T2)
Contradiction : T est bien connexe
![Page 51: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/51.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Pourquoi l’algorithme de Kruskal construit-il un arbrerecouvrant de poids minimal ?
Kruskal s’arrête toujoursKruskal construit un arbre recouvrantl’arbre recouvrant construit par Kruskal est de poidsminimal
Supposons que ce ne soit pas le cas.
Soit T ′ un arbre recouvrant de poids minimal de G, qui différe lemoins possible de T .
Soit e la première arête de T qui n’est pas une arête de T ′.
On ajoute e à T ′, et on crée un cycle.
Ce cycle ne contient pas que des arêtes de T (car T n’a pas decycle).
![Page 52: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/52.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Pourquoi l’algorithme de Kruskal construit-il un arbrerecouvrant de poids minimal ?
Kruskal s’arrête toujoursKruskal construit un arbre recouvrantl’arbre recouvrant construit par Kruskal est de poidsminimal
Soit e′ une arête du cycle de T ′ ∪ {e} qui n’est pas une arête de T .
On note T ′′ = T ′ ∪ {e} − {e′}.
T ′′ est un arbre recouvrant de G.
On a Poids(T ′′) ≥ Poids(T ′) (car T ′ est de poids minimal) doncPoids(e) ≥ Poids(e′).
![Page 53: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/53.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Pourquoi l’algorithme de Kruskal construit-il un arbrerecouvrant de poids minimal ?
Kruskal s’arrête toujoursKruskal construit un arbre recouvrantl’arbre recouvrant construit par Kruskal est de poidsminimal
Avant l’étape d’ajout de e, T , T ′ et T ′′ sont identiques.
Or e est choisie de poids minimal en construisant T .
Comme on n’a pas choisi e′ à la place de e, c’est que en faitPoids(e) = Poids(e′).
Donc on a aussi Poids(T ′′) = Poids(T ′), càd T ′′ est de poidsminimum.
![Page 54: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/54.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Pourquoi l’algorithme de Kruskal construit-il un arbrerecouvrant de poids minimal ?
Kruskal s’arrête toujoursKruskal construit un arbre recouvrantl’arbre recouvrant construit par Kruskal est de poidsminimal
Mais T ′′ a plus d’arêtes communes avec T que T ′, ce qui est contraireà l’hypothèse de départ : "T ′ est un arbre recouvrant de poids minimalde G, différant le moins possible de T ".
Conclusion : T ′ n’existe pas et par conséquent T est un arbre recou-vrant de poids minimal de G.
![Page 55: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/55.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Mise en oeuvre
ExerciceAppliquer l’algorithme de KRUSKAL au graphe G suivant.
53 4
14
3
2
x
2
53
24
8
9
9
7
![Page 56: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/56.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Correction pour Kruskal
xx x
x
xx x
x
![Page 57: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/57.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
1 IntroductionArbre recouvrantGraphe valué
2 Algorithme de Kruskal
3 Algorithme de Prim
![Page 58: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/58.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Idée générale
5
1
2
1
3
3
3
13 2
1
4 5
2
On part d’un arbre initial réduit à un seul sommet dugraphe.À chaque itération, on agrandit l’arbre en lui ajoutant lesommet libre accessible de plus petit poids possible.On stoppe quand l’arbre est recouvrant.
![Page 59: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/59.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Méthode
Initialiser T avec{sommets : un sommet de G qu’on choisitarêtes : aucune
Répéter :Trouver toutes les arêtes de G qui relientun sommet de T et un sommet extérieur à TParmi celles-ci, choisir une arête de poidsle plus petit possibleAjouter à T cette arête et le sommetcorrespondant
S’arrêter dès que tous les sommets de Gsont dans TRetourner T
![Page 60: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/60.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 61: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/61.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 62: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/62.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 63: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/63.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 64: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/64.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 65: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/65.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 66: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/66.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 67: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/67.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 68: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/68.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 69: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/69.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 70: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/70.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 71: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/71.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 72: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/72.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 73: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/73.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 74: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/74.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 75: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/75.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 76: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/76.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 77: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/77.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 78: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/78.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
![Page 79: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/79.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Exemple
5
1
2
1
3
3
3
13 2
1
4 5
2
1 + 2 + 1 + 3 + 3 + 1 + 1 + 2 = 14
On obtient un arbre recouvrant différent mais de même poids
![Page 80: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/80.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Rappel de l’algorithme de Prim
Initialiser T avec{sommets : un sommet de G qu’on choisitarêtes : aucune
Répéter :Trouver toutes les arêtes de G qui relientun sommet de T et un sommet extérieur à TParmi celles-ci, choisir une arête de poidsle plus petit possibleAjouter à T cette arête et le sommetcorrespondant
S’arrêter dès que tous les sommets de Gsont dans TRetourner T
![Page 81: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/81.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Pourquoi l’algorithme de Prim construit-il un arbrerecouvrant de poids minimal ?
1 L’algorithme est bien défini car si la condition «Tous lessommets de G sont dans T » n’est pas réalisée, alors ilexiste au moins une arête qui relie un sommet v extérieurà T à un sommet de T (car G est connexe).
2 L’algorithme termine car on ajoute à chaque passage unsommet et une arête.
3 Enfin, au départ, T est réduit à un sommet, c’est donc unarbre et dans la boucle, on passe d’un arbre à un autre parajout d’une feuille. Finalement, quand on sort de la boucleon retourne un arbre.On obtient donc à l’issue de l’algorithme un arbrerecouvrant.
![Page 82: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/82.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Pourquoi l’algorithme de Prim construit-il un arbrerecouvrant de poids minimal ?
Il reste à vérifier que cet arbre est de poids minimal.Sinon, soit T ′ un arbre de poids minimum recouvrant G etpossédant en commun avec T un nombre maximum d’arêtes.On note {e1, . . . ,en−1}) les arêtes de T (dans l’ordre obtenu parl’algorithme de Prim).Comme T et T ′ ne sont pas identiques, T a au moins une arêten’appartenant pas à T ′.Soit ei (1 ≤ i ≤ n − 1), la première arête de T qui n’appartientpas à T ′.Notons S l’ensemble des sommets de G donné par les arêtese1, . . . ,ei−1 (si i = 1, S = {A}, en notant A le sommet dedépart).
![Page 83: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/83.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Pourquoi l’algorithme de Prim construit-il un arbrerecouvrant de poids minimal ?
(suite)Le graphe T ′ + ei a exactement un cycle C.Bien sûr, ei joint un sommet de S et un sommet de T \ S. En faitC contient une autre arête e0 joignant un sommet de S et unsommet de T \ S.Alors, T” = T ′ + ei − e0 est un arbre.L’ordre des arêtes de T étant choisi par l’algorithme de Prim, lepoids de ei est inférieur ou égal au poids de e0 et le poids totalde T” est inférieur ou égal au poids de T ′.Donc, par minimalité du poids de T ′, les poids de T ′ et de T ′′
sont égaux.Or, T” a plus d’arêtes communes avec T que T ′ : absurde.
![Page 84: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/84.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Mise en oeuvre
ExerciceAppliquer l’algorithme de PRIM au graphe G suivant encommençant par le sommet x .
53 4
14
3
2
x
2
53
24
8
9
9
7
![Page 85: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/85.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
Correction pour Prim
xx x
x
xx x
x
![Page 86: Arbre Recouvrant de Poids Minimal - IREM Clermont-FerrandIntroduction Algorithme de Kruskal Algorithme de Prim Idée générale 5 1 2 1 3 3 3 1 3 2 1 4 5 2 On part d’une forêt d’arbres](https://reader036.vdocuments.site/reader036/viewer/2022071418/61160d9ae2f66331d10fbd39/html5/thumbnails/86.jpg)
Introduction Algorithme de Kruskal Algorithme de Prim
FIN