Académique Documents
Professionnel Documents
Culture Documents
OPTIMISATION
ENSI/II.1: 2019/2020
1
Plan du chapitre
1) Arbre couvrant à poids minimal
Définitions, propriétés.
Algorithmes de Résolution.
2
PART 1 : ARBRE COUVRANT À POIDS MINIMAL
DÉFINITIONS :
• Un arbre est un graphe connexe sans cycle.
3
• THÉORÈME :
soit T(ST, AT) un graphe d'ordre n ≥ 2 ; les six propriétés
suivantes sont équivalentes pour caractériser un arbre :
PROPOSITION :
Un graphe admet un arbre couvrant si et seulement s’il est
connexe.
5
• Le problème de l’arbre couvrant de poids minimum (ACM) est
de chercher un arbre T* de G tel que:
c (T * ) = m in {c (T ) / T = (S , A T ) e s t u n A .C d e G }
Remarque 1 :
Un arbre couvrant de poids minimal est unique si et seulement si
les poids de ces arêtes sont deux à deux distincts.
6
Remarque 2: on suppose dans la suite que le graphe G est
connexe. S’il ne l’est pas le problème sera résolu sur chaque
composante connexe de G.
8
Construction d’un ACM
G = (S, A, c) : non-orienté, connexe et valué (c : A → IR).
HISTORIQUE
Boruvka (1926) ⇒ Kruskal (1956)
plusieurs parties de l’arbre couvrant de poids minimum sont
construites à part,
10
PRINCIPE DE L’ALGORITHME DE KRUSKAL (1956)
11
11
ALGORITHME DE KRUSKAL (1956)
12
Complexité:
• Soit G = (S; A) le graphe d’origine, avec |S| = n, et
|A| = m, soit T = (S ; AT ) l’arbre couvrant
13
Complexité totale en O (m.log(m))
EXEMPLE
Situation qui illustre les coûts estimés de la construction de trottoirs
entre des immeubles. On veut s’assurer que tous les immeubles sont
reliés à un coût minimal.
B
A C
920
D E
A C
920
D E
EF CE BE BD BF BC BA AF CF
750 790 835 850 920 1160 1320 2640 2880 15
B
A C
920
D E
EF CE BE BD BF BC BA AF CF
750 790 835 850 920 1160 1320 2640 2880 16
B
A C
920
D E
EF CE BE BD BF BC BA AF CF
750 790 835 850 920 1160 1320 2640 2880 17
B
A C
920
D E
EF CE BE BD BF BC BA AF CF
750 790 835 850 920 1160 1320 2640 2880 18
B
A C
920
D E
EF CE BE BD BF BC BA AF CF
750 790 835 850 920 1160 1320 2640 2880 19
B
A C
920
D E
EF CE BE BD BF BC BA AF CF
750 790 835 850 920 1160 1320 2640 2880 20
B
A C
920
D E
EF CE BE BD BF BC BA AF CF
750 790 835 850 920 1160 1320 2640 2880 21
B
A C
920
D E
EF CE BE BD BF BC BA AF CF
750 790 835 850 920 1160 1320 2640 2880
22
Algo Kruskal converge en n-1 itérations ⇒ FIN
L’arbre couvrant T de poids minimales et son poids.
A C
La
construction
des trottoirs
D E
coûtera donc
4545 …
ek EF CE BE BD BF BC BA AF CF A C
k 1 2 3 4 5 6 7 8 9 920
D E
AT l k ek
F
∅ 0 1 EF
{EF} 1 2 CE ne forme pas de cycle
∪{CE} 2 3 BE ne forme pas de cycle
∪{BE } 3 4 BD ne forme pas de cycle
∪{BD} 4 5 BF forme un cycle
6 BC forme un cycle
7 BA ne forme pas de cycle
24
∪{BA} 5=n-1 FIN
Exercice #1 : Détermine l’arbre de valeurs minimales et son poids.
4
A B C
6 3 3 8
2
1 6
D E F
5 5
4 5 2
G H I
10
BH AD FI CE BE HE AB DG EI DH BD CI CF GH
25
1 2 3 4 5 6 8 10
Exercice #1 : Détermine l’arbre de valeurs minimales et son poids.
A B C
1
D E F
G H I
BH AD FI CE BE HE AB DG EI DH BD CI CF GH
26
1 2 3 4 5 6 8 10
Exercice #1 : Détermine l’arbre de valeurs minimales et son poids.
A B C
1
D E F
G H I
BH AD FI CE BE HE AB DG EI DH BD CI CF GH
27
1 2 3 4 5 6 8 10
Exercice #1 : Détermine l’arbre de valeurs minimales et son poids.
A B C
1
D E F
G H I
BH AD FI CE BE HE AB DG EI DH BD CI CF GH
28
1 2 3 4 5 6 8 10
Exercice #1 : Détermine l’arbre de valeurs minimales et son poids.
A B C
3
2
1
D E F
G H I
BH AD FI CE BE HE AB DG EI DH BD CI CF GH
29
1 2 3 4 5 6 8 10
Exercice #1 : Détermine l’arbre de valeurs minimales et son poids.
A B C
3 3
2
1
D E F
G H I
BH AD FI CE BE HE AB DG EI DH BD CI CF GH
30
1 2 3 4 5 6 8 10
Exercice #1 : Détermine l’arbre de valeurs minimales et son poids.
A B C
3 3
2
1
D E F
cycle
G H I
BH AD FI CE BE HE AB DG EI DH BD CI CF GH
31
1 2 3 4 5 6 8 10
Exercice #1 : Détermine l’arbre de valeurs minimales et son poids.
4
A B C
3 3
2
1
D E F
G H I
BH AD FI CE BE HE AB DG EI DH BD CI CF GH
32
1 2 3 4 5 6 8 10
Exercice #1 : Détermine l’arbre de valeurs minimales et son poids.
4
A B C
3 3
2
1
D E F
5
2
G H I
BH AD FI CE BE HE AB DG EI DH BD CI CF GH
33
1 2 3 4 5 6 8 10
Exercice #1 : Détermine l’arbre de valeurs minimales et son poids.
4
A B C
3 3
2
1
D E F
5
5 2
G H I
BH AD FI CE BE HE AB DG EI DH BD CI CF GH
34
1 2 3 4 5 6 8 10
Exercice #1 : Détermine l’arbre de valeurs minimales et son poids.
4
A B C
3 3
2
1
D E F
5
5 2
G H I
BH AD FI CE BE HE AB DG EI DH BD CI CF GH
35
1 2 3 4 5 6 8 10
Déroulement de l’algorithme de Kruskal:
ek BH AD FI CE BE HE AB DG EI DH BD CI CF GH
k 1 2 3 4 5 6 7 8 9 10 11 12 13 14
AT l k ek
∅ 0 1 BH
{BH} 1 2 AD ne forme pas de cycle
∪{AD} 2 3 FI ne forme pas de cycle
∪{FI} 3 4 CE ne forme pas de cycle
∪{CE} 4 5 BE ne forme pas de cycle
∪{BE} 6 HE forme un cycle
7 AB ne forme pas de cycle
∪{AB} 5 8 DG ne forme pas de cycle
36
∪{DG} 9 EI ne forme pas de cycle
∪{EI} 8=n-1 FIN
Exercice #1 : L’arbre couvrant T de poids minimales et son poids.
4
A B C
3 3
2
1
D E F
5
5 2
G H I
Poids de l’arbre : 1 + 2 + 2 + 3 + 3 + 4 + 5 +5 = 25
37
Exercice #2 : Détermine l’arbre de valeurs maximales et son poids.
4
A B C
6 3 3 8
2
1 6
D E F
5 5
4 5 2
G H I
10
38
Exercice #2 : Détermine l’arbre de valeurs maximales et son poids.
A B C
D E F
G H I
10
GH CF CI BD DG EI DH HE AB CE BE AD FI BH
39
10 8 6 5 4 3 2 1
Exercice #2 : Détermine l’arbre de valeurs maximales et son poids.
A B C
8
D E F
G H I
10
GH CF CI BD DG EI DH HE AB CE BE AD FI BH
40
10 8 6 5 4 3 2 1
Exercice #2 : Détermine l’arbre de valeurs maximales et son poids.
A B C
8
D E 6 F
G H I
10
GH CF CI BD DG EI DH HE AB CE BE AD FI BH
41
10 8 6 5 4 3 2 1
Exercice #2 : Détermine l’arbre de valeurs maximales et son poids.
A B C
8
6
D E 6 F
G H I
10
GH CF CI BD DG EI DH HE AB CE BE AD FI BH
42
10 8 6 5 4 3 2 1
Exercice #2 : Détermine l’arbre de valeurs maximales et son poids.
A B C
8
6
D E 6 F
G H I
10
GH CF CI BD DG EI DH HE AB CE BE AD FI BH
43
10 8 6 5 4 3 2 1
Exercice #2 : Détermine l’arbre de valeurs maximales et son poids.
A B C
8
6
D E 6 F
5
5
G H I
10
GH CF CI BD DG EI DH HE AB CE BE AD FI BH
44
10 8 6 5 4 3 2 1
Exercice #2 : Détermine l’arbre de valeurs maximales et son poids.
A B C
8
6
D E 6 F
5 5
5
cycle
G H I
10
GH CF CI BD DG EI DH HE AB CE BE AD FI BH
45
10 8 6 5 4 3 2 1
Exercice #2 : Détermine l’arbre de valeurs maximales et son poids.
A B C
8
6
D E 6 F
5
4 5
G H I
10
GH CF CI BD DG EI DH HE AB CE BE AD FI BH
46
10 8 6 5 4 3 2 1
Exercice #2 : Détermine l’arbre de valeurs maximales et son poids.
4
A B C
8
6
D E 6 F
5
4 5
G H I
10
GH CF CI BD DG EI DH HE AB CE BE AD FI BH
47
10 8 6 5 4 3 2 1
inutiles
Exercice #2 : L’arbre couvrant de poids maximales et son poids.
4
A B C
8
6
D E 6 F
5
4 5
G H I
10
Poids de l’arbre : 10 + 8 + 6 + 6 + 5 + 5 + 4 + 4 = 48
48
Remarque : L’arbre couvrant de poids maximales, pour cet exemple, n’est pas
unique. En effet
4
A B C
8
6
D E 6 F
5
4 5
G H I
10
Poids de l’arbre : 10 + 8 + 6 + 6 + 5 + 5 + 4 + 4 = 48
49
Principe de l’Algorithme de Prim (1957)
6 b 4
1 c
f 5 5
a
3 2
5 3
e d
6
51
51
6 b 4 6 b 4 6 b 4
1 c 1 c 1 c
f 5 5 f 5 5 f 5 5
a a a
3 2 3 2 3 2
5 3 5 3 5 3
e d e d e d
6 6 6
6 b 4 6 b 4 6 b 4
1 c 1 c 1 c
f 5 5 f 5 5 f 5 5
a a a
3 2 3 2 3 2
5 3 5 3 5 3
e d e d e d
6 6 6
52
ALGORITHME DE PRIM
1- Initialisation:
{
2- Sélectionner j ∈ S T / π k ( j ) = m in π k ( i ); i ∈ S T }
F a ir e S T := S T ∪ { j} s i S T = S ⇒ F in .
s in o n a lle r à 3
3- pour tout i ∈ ST adjacent à j Faire
k := k + 1, (
πk (i ) = min πk −1 (i ) , c ji , )
et Retour à 2
Complexité : de l’algorithme de Prim
54
Retour à l’Exemple
6 b 4
1 c
f 5 5
a
3 2
5 3
e d
6
ST a b c d e f
{b} 1 0 4 +∞ +∞ 6
{
j ∈ S T / π k ( j ) = m in π k ( i ); i ∈ S T }
55
55
6 b 4
1 c
f 5 5
a
3 2
5 3
e d
6
ST a b c d e f
{b} 1 0 4 +∞ +∞ 6
{b,a} 4 3 5 5
i ∈ ST adjacent à j
k := k + 1, (
πk (i ) = min πk −1 (i ) , c ji , ) 56
et Retour à 2
56
6 b 4
1 c
f 5 5
a
3 2
5 3
e d
6
ST a b c d e f
{b} 1 0 4 +∞ +∞ 6
{b,a} 4 3 5 5
{b,a,d} 2 5 5
57
57
6 b 4
1 c
f 5 5
a
3 2
5 3
e d
6
ST a b c d e f
{b} 1 0 4 +∞ +∞ 6
{b,a} 4 3 5 5
{b,a,d} 2 5 5
{b,a,d,c} 5 5
58
58
6 b 4
1 c
f 5 5
a
3 2
5 3
e d
6
ST a b c d e f
{b} 1 0 4 +∞ +∞ 6
{b,a} 4 3 5 5
{b,a,d} 2 5 5
{b,a,d,c} 5 5
{b,a,d,c,e} 3
59
59
6 b 4
1 c
f 5 5
a
3 2
5 3
e d
6
ST a B c d e f
{b} 1 0 4 +∞ +∞ 6
{b,a} 4 3 5 5
{b,a,d} 2 5 5
{b,a,d,c} 5 5
{b,a,d,c,e} 3
60
{b,a,d,c,e,f} =S
1 0 2 3 5 3
Fin
6 b 4
b
1 c c
f 5 5
f
1
a a
3 2 ACM
5 3 3 2
5 3
e d e d
6
CT =14
61