Vous êtes sur la page 1sur 57

Recherche Operationnelle

Arbre
Couvrant De
Poids Minimum

Realiser par :
MYA Hayat
BOUCHOUIKRA Hanane
AKKIOUI Nada
KOUMMICH Salma
Introduction

Sommaire Algorithme de Prim

Algorithme de Kruskal

Applications en telecommunication

Conclusion
Introduction - Definitions

Graphe

une représentation visuelle de connexions


entre différentes entités, où les sommets
sont des points d'intérêt et les arêtes sont
les liens qui les unissent.
Introduction - Definitions

Graphe connexe

Un graphe G(V,E) est dit connexe s'il existe


un chemin entre chaque paire de sommets,
Tous sommets sont interconnectés .
Introduction - Definitions

Arbre

Un arbre dans ce contexte est une


structure particulière. C'est un graphe
connexe et sans cycles, où chaque sommet
est relié à un autre par un unique chemin
et la racine, sert de point central à partir
duquel on peut atteindre tous les autres
sommets..
Introduction - Definitions

Foret

Une forêt est un graphe non orienté ne


contenant pas de cycle

Les composants connexes d’une forêt sont


donc des arbres
Introduction - Definitions

Arbre Couvrant Minimal (ACM)

un sous-arbre d'un graphe connexe qui


touche tous les sommets tout en
minimisant la somme des poids des
connexions.
Pourquoi les arbres couvrant minimum
sont-ils importants ?
Algorithme
Présentation de l’algorithme

de Prim Fonctionnement de l’algorithme

Exemple d’application
Algorithme de Prim - Présentation

Présentation de l’algorithme de Prim

Developpé en 1957 par Robert Prim, l’algorithme de Prim est conçu


pour trouver un arbre couvrant minimal (ACM) d’un graphe connexe
non orienté dont les arêtes sont pondérés. Il appartient à la catégorie
des algorithmes gloutons, c’est-à-dire des méthodes de résolution
basées sur la prise de décision optimale locale à chaque étape
d’exécution, sans considérer l’impact sur l’évolution globale du
processus.
Algorithme de Prim - Principe

Principe de l’algorithme de Prim

Voici les grandes lignes du fonctionnement de l’algorithme de Prim :

1. Choisir un sommet initial arbitrairement et l’ajouter à l’ACM.


2. Sélectionner l’arête de poids minimum qui relie un sommet
inclus dans l’ACM et un sommet non inclus dans l’ACM, puis
ajouter cet arête et le sommet non inclus à l’arbre.
3. Répéter l’étape 2 jusqu’à ce que tous les sommets soient inclus
dans l’arbre couvrant minimal.
Algorithme de Prim - Exemple d’application

1. Choisir un sommet initial arbitrairement et l’ajouter à l’ACM.

2 b
a

15
5 g 10
3
3
5 d
7 1
c
10 e
12
11

f
Algorithme de Prim - Exemple d’application

1. Choisir un sommet initial arbitrairement et l’ajouter à l’ACM.

2 b
a

15
5 g 10
3
3
5 d
7 1
c
10 e
12
11

f
Algorithme de Prim - Exemple d’application

2. Sélectionner l’arc de poids minimum qui relie un sommet inclus dans l’ACM et un
sommet non inclus dans l’ACM, puis ajouter cet arc et le sommet non inclus à
l’arbre.

2 b 2 b
a a

15 15
5 g 10 5 g 10
3 3
3 3
5 d 5 d
7 1 7 1
c c
10 e 10 e
12 12
11 11

f f
Algorithme de Prim - Exemple d’application

3. Répéter l’étape 2 jusqu’à ce que tous les sommets soient inclus dans l’arbre couvrant minimal.

2 b 2 b
a a

15 15
5 g 10 5 g 10

5
3
3
3 X 3
d 5 d
7 1 7 1
c c
e e
10 10
12 12
11 11
f f
Algorithme de Prim - Exemple d’application

3. Répéter l’étape 2 jusqu’à ce que tous les sommets soient inclus dans l’arbre couvrant minimal.

2 b 2 b
a a

15 15
5 g 10 5 g 10
3 3
3 3
5 d 5 d
7 1 7 1
c c
e e
10 10
12 12
11 11

f f
Algorithme de Prim - Exemple d’application

3. Répéter l’étape 2 jusqu’à ce que tous les sommets soient inclus dans l’arbre couvrant minimal.

2 b 2 b
a a

5
15
g 10 5 X 15
g 10
3 3
3 3
5 d 5 d
7 1 7 1
c c
e e
10 10
12 12
11 11

f f
Algorithme de Prim - Exemple d’application

3. Répéter l’étape 2 jusqu’à ce que tous les sommets soient inclus dans l’arbre couvrant minimal.

2 b 2 b
a a

15 15
5 g 10 5 g 10
3 3
3 3
5 d 5 d
7 1 7 1
c c
e e
10 10
12 12
11 11

f f
Algorithme de Prim - Exemple d’application

3. Répéter l’étape 2 jusqu’à ce que tous les sommets soient inclus dans l’arbre couvrant minimal.

2 b
a

15
5 g 10
3
3
5 d
7 1
c
e
10
12
11

f
Algorithme de Prim - Exemple d’application

2 b
a
Arbre couvrant de poids
g minimal de poids :
3
3
5 d
1
c Poids ( T ) = 2+3+5+3+1+11 = 25
e

11

f
Presentation de l’algorithme

Algorithme Description du problème

de Kruskal Principe de l’algorithme

Exemple d’application
Algorithme de kruskal - Presentation

Presentation de l’algorithme de Kruskal

En informatique, l'algorithme de Kruskal est un algorithme


de recherche d'arbre recouvrant de poids minimum
(ARPM) ou arbre couvrant minimum (ACM) dans un graphe
connexe non-orienté et pondéré. Il a été conçu en 1956 par
Joseph Kruskal.
Algorithme de kruskal - Description du problème

Description du problème

10
a b
Un graphe G connexe et pondéré
4
7 Poids de l’arête
9 3

e c
3
4
d
Algorithme de kruskal - Description du problème

Un arbre couvrant G

10
a b
Un graphe G connexe et pondéré
4
7 Poids de l’arête
9 3

Poids de cet arbre :


9+10+7+3=29
e c
3
4
d
Algorithme de kruskal - Description du problème

Un arbre couvrant G

10
a b
Un graphe G connexe et pondéré

7 Poids de l’arête
9 3
Poids de cet arbre :
9+10+7+3=29
e c

d on cherche un arbre couvrant de poids min


Algorithme de Kruskal - Principe

Comment trouver un arbre couvrant minimum ?

Principe de l’algorithme de Kruskal

L'algorithme construit un arbre couvrant minimum en


sélectionnant des arêtes par poids croissant. Plus précisément,
l'algorithme considère toutes les arêtes du graphe par poids
croissant (en pratique, on trie d'abord les arêtes du graphe par
poids croissant) et pour chacune d'elles, il la sélectionne si elle ne
crée pas un cycle.
Algorithme de Kruskal - Exemple d’application

Exemple 1:
3
Trier les arêtes par poids croissants
a b
w(f,c)=1
w(a,b)=3
4 4
7 w(b,c)=4
w(a,c)=4
1
f c w(e,d)=5
w(a,f)=7
w(c,d)=9
9 9
w(c,e)=9
5
e d
Algorithme de Kruskal - Exemple d’application

Exemple 1:
3
Trier les arêtes par poids croissants
a b
w(f,c)=1
w(a,b)=3
4 4
7 w(b,c)=4
w(a,c)=4
1
f c w(e,d)=5
w(a,f)=7
w(c,d)=9
9 9
w(c,e)=9
5
e d
Algorithme de Kruskal - Exemple d’application

Exemple 1:
3
Trier les arêtes par poids croissants
a b
w(f,c)=1
w(a,b)=3
4 4
7 w(b,c)=4
w(a,c)=4
1
f c w(e,d)=5
w(a,f)=7
w(c,d)=9
9 9
w(c,e)=9
5
e d
Algorithme de Kruskal - Exemple d’application

Exemple 1:
3
Trier les arêtes par poids croissants
a b
w(f,c)=1
w(a,b)=3
4 4
7 w(b,c)=4
w(a,c)=4
1
f c w(e,d)=5
w(a,f)=7
w(c,d)=9
9 9
w(c,e)=9
5
e d
Algorithme de Kruskal - Exemple d’application

Exemple 1:
3
Trier les arêtes par poids croissants
a b
w(f,c)=1
w(a,b)=3
4 4
7 w(b,c)=4
w(a,c)=4
1
f c w(e,d)=5
w(a,f)=7
w(c,d)=9
9 9
w(c,e)=9
5
e d
Algorithme de Kruskal - Exemple d’application

Exemple 1:
3
Trier les arêtes par poids croissants
a b
w(f,c)=1
w(a,b)=3
4 4
7 w(b,c)=4
w(a,c)=4
1
f c w(e,d)=5
w(a,f)=7
w(c,d)=9
9 9
w(c,e)=9
5
e d
Algorithme de Kruskal - Exemple d’application

Exemple 1:
3
Trier les arêtes par poids croissants
a b
w(f,c)=1
w(a,b)=3
4 4
7 w(b,c)=4
w(a,c)=4
1
f c w(e,d)=5
w(a,f)=7
w(c,d)=9
9 9
w(c,e)=9
5
e d
Algorithme de Kruskal - Exemple d’application

Exemple 1:
3
Trier les arêtes par poids croissants
a b
w(f,c)=1
w(a,b)=3
4 4
7 w(b,c)=4
w(a,c)=4
1
f c w(e,d)=5
w(a,f)=7
w(c,d)=9
9 9
w(c,e)=9
5
e d
Algorithme de Kruskal - Exemple d’application

Exemple 1:
3
Trier les arêtes par poids croissants
a b
w(f,c)=1
w(a,b)=3
4 4
7 w(b,c)=4
w(a,c)=4
1
f c w(e,d)=5
w(a,f)=7
w(c,d)=9
9 9
w(c,e)=9
5
e d
Algorithme de Kruskal - Exemple d’application

Exemple 1 :
3
a b

4 Arbre couvrant de poids minimal :22

1
c
3+4+1+9+5=22
f

5
e d
Algorithme de Kruskal - Exemple d’application

Exemple 1:
3
Trier les arêtes par poids croissants
a b
w(f,c)=1 w(f,c)=1
w(a,b)=3 w(a,b)=3
4 4
7 w(b,c)=4 w(a,c)=4
w(a,c)=4 w(b,c)=4
1 w(e,d)=5
f c w(e,d)=5
w(a,f)=7 w(a,f)=7
w(c,d)=9 w(c,e)=9
9 9
w(c,e)=9 w(c,d)=9
5
e d
Algorithme de Kruskal - Exemple d’application

Exemple 1 :
3
a b

4 Arbre couvrant de poids minimal :22

1
c
3+4+1+9+5=22
f

5
e d
Remarque 1:
l‘arbre couvrant de poids minimal n‘est pas
forcément unique.

Remarque 2:
Un arbre couvrant de poids minimum est unique si
et seulement si les poids de ces arêtes sont deux à
deux distincts .
Applications
en
telecommunications
Routage efficace dans
les réseaux.
Exemple
un réseau de câbles a fibre optique
destinée
a connecter maximum de villes en
minimisant la longueur totale du réseau
le graphe formé par
les villes d'un pays, et
dont les arêtes sont
décrites par
l'ensemble des paires
de villes séparées par
une distance
Contexte d’application

notre objectif est de sélectionner un sous-ensemble optimal d'arêtes du graphe


initial pour constituer le réseau

une solution optimale est un arbre, car tout ensemble d'arêtes contenant un cycle
pourrait être simplifié en éliminant une arête tout en préservant la connexité de
l'ensemble.

on va utilisée l’un des algorithmes déjà citée pour déterminer l’arbre de poids
minimale
L’arbre a poids minimale

la somme totale des poids de d’arrêtes


d’arbre couvrant minimale

4456
Les avantages pratiques des ACMs dans ce exemple

minimise les dépenses liées a l’installation et l’entretien des liaisons physiques

une utilisation plus efficace de la bande passante

adaptabilité aux variations du réseau

améliorant ainsi la performance globale du réseau


Applications en télécommunications

Réseau capteurs sans fil


industriels
Applications en télécommunications

Expérimental

Le réseau de capteurs sans fil industriels,


représenté par G, comporte 16 nœuds et
32 ​bords.
Applications en télécommunications

Le tableau ci-dessous montre les coordonnées des nœuds. La fonction de


poids sur chaque arête est la distance euclidienne entre deux nœuds.
Applications en télécommunications

Le tableau ci-dessous répertorie la correspondance entre les arêtes et les nœuds,


ainsi que le poids des arêtes.
Applications en télécommunications

Résultats

l’algorithme de Kruskal est utilisé


pour gérer cet exemple.
Le AC (l’arbre couvrant) obtenu est
présenté dans le tableau. L'arbre
couvrant résultant a un poids de
1326,409668. L'arbre couvrant
minimum résultant est illustré à la
figure .

ST Poids Série Edge

Solution Optimale 1326.409668 1,2,4,5,7,10,12,15,18,20,23,25,27,31,32


Applications en télécommunications

Pose du fil téléphonique


Applications en télécommunications

Dans ce graphe, chaque bâtiment est représenté par un nœud, et chaque ligne
téléphonique potentielle est une liaison entre deux nœuds. Si nous suivons l'approche
naïve, nous aurions un graphe complet, avec une liaison entre chaque paire de
bâtiments.
Applications en télécommunications

En utilisant un arbre couvrant minimum, nous optimisons la pose du fil téléphonique


en réduisant la quantité de câblage nécessaire, tout en maintenant une connectivité
complète entre les bâtiments. Cela illustre comment cette approche peut être
appliquée dans des scénarios réels pour économiser des ressources tout en offrant
une performance optimale dans les réseaux de télécommunications.
Applications en télécommunications

Réseau informatique
Une application réelle d'un arbre couvrant
minimum serait la conception d'un réseau
informatique. Afin de connecter un groupe
d'ordinateurs individuels sur un réseau filaire
séparés par des distances variables, un ACM
peut être appliqué. Bien que ACM ne puisse
rien faire sur la distance d'une connexion à
une autre, il peut être utilisé pour déterminer
les chemins les moins coûteux et sans cycles
dans ce réseau, connectant ainsi tous les
ordinateurs à un coût minimum.
Applications en télécommunications

Construction d'autoroutes
Construction d'autoroutes ou de voies ferrées : La technique d’arbre couvrant
minimum (ACM) est utilisée à l'échelle mondiale pour la construction de routes ou
de voies ferrées. L'approche ACM détermine le meilleur itinéraire entre deux villes
en fonction de tous les itinéraires potentiels.
Conclusion

Vous aimerez peut-être aussi