Uploaded by selmarahim01

SERIE 3 2021-2022 - Solutions

advertisement
Université d'Alger 1
Faculté des Sciences
Département d’Informatique
2e année
2020/2021
Module : Théorie des graphes
Série n°3 – Solution Exercice1
Graphe
Arbre
Arborescence
Forêt
Oui
Oui
Oui
Oui
Non, absence d’une racine
Oui
Non, nous avons deux arbres
constitués par les sous graphes
{1,2,3,4,5} et {6,7}.
Oui
Non, nous sommes en présence d’un
cycle
Non. Par contre nous avons deux
arborescences constituées par les
sous graphes {1,2,3,4,5} et
{6,7}.
Non. Il existe par exemple,
plusieurs chemins duis 2 vers 3.
Non. Par contre nous avons trois
arbres constitués par les sous
graphes {1,2}, {3,4} et {5,6}.
Non. Par contre nous avons trois
arbres constitués par les sous
graphes {1,2}, {3,4} et {5,6}.
Oui
Oui
Non, l’orientation du graphe ne
permet pas de déterminer une
racine.
Oui
Non
Exercice 2
Montrez que si G = (𝑋, 𝑈) est un graphe pondéré et e est une arête dont le poids est inférieur
à celui de toute autre arête, alors e doit appartenir à chaque arbre couvrant de poids minimum
pour G.
-
Supposons que T=(𝑋, 𝑈𝑇 ) est l’arbre couvrant de poids minimum pour le graphe G et qui ne contient
pas l'arête e.
Considérons alors le graphe T (𝑋, 𝑈𝑇 ∪ {𝑒}). Ce graphe doit contenir un cycle C qui contient l'arête e.
Soit f une arête de C différente de e, et posons T*=T+e−f.
T* est aussi un arbre couvrant pour G, mais w(T*)=w(T+e−f)=w(T)+w(e)−w(f) < w(T),
contrairement à T étant un arbre couvrant de poids minimum. Par conséquent, un tel arbre T (c'està-dire sans e) ne peut exister.
Exercice 4
Combien d’arbres couvrants différents les graphes suivants possèdent-ils ?
𝑁𝑜𝑚𝑏𝑟𝑒 𝑑 ′ 𝑎𝑟𝑏𝑟𝑒𝑠 𝑐𝑜𝑢𝑣𝑒𝑟𝑎𝑛𝑡𝑠 = 𝐶43 = 4
𝑁𝑜𝑚𝑏𝑟𝑒 𝑑 ′ 𝑎𝑟𝑏𝑟𝑒𝑠 𝑐𝑜𝑢𝑣𝑒𝑟𝑎𝑛𝑡𝑠 = 𝐶53 − (𝑐𝑜𝑚𝑏𝑖𝑛𝑎𝑖𝑠𝑜𝑛𝑠 𝑐𝑜𝑛𝑡𝑒𝑛𝑎𝑛𝑡 𝑢𝑛 𝑐𝑦𝑐𝑙𝑒) = 10 − 2 = 8
𝑁𝑜𝑚𝑏𝑟𝑒 𝑑′ 𝑎𝑟𝑏𝑟𝑒𝑠 𝑐𝑜𝑢𝑣𝑒𝑟𝑎𝑛𝑡𝑠 = 𝐶63 − (𝑐𝑜𝑚𝑏𝑖𝑛𝑎𝑖𝑠𝑜𝑛𝑠 𝑐𝑜𝑛𝑡𝑒𝑛𝑎𝑛𝑡 𝑢𝑛 𝑐𝑦𝑐𝑙𝑒) = 20 − 4 = 16
Exercice 5
Faire tourner l’algorithme de Kruskal sur les graphes pondérés ci-contre.
b
d
g
e
a
i
c
f
h
G2
G1
1) Graphe G1
Initialisation : On ordonne les arcs par ordre croissant des poids.
𝒊
1
2
3
4
5
6
7
8
9
10
11
12
13
14
𝒖𝒊
𝒄(𝒖𝒊 )
(c,f)
1
(f,h)
2
(d,e)
2
(a,b)
4
(d,h)
4
(e,f)
5
(c,e)
7
(d,g)
7
(a,c)
8
(b,d)
8
(g,i)
9
(h,i)
10
(b,c)
11
(g,h)
14
𝒊
𝒖𝒊
Création
du cycle ?
Poids
1
(c,f)
2
(f,h)
3
(d,e)
4
(a,b)
5
(d,h)
6
(e,f)
7
(c,e)
8
(d,g)
9
(a,c)
10
(b,d)
11
(g,i)
Non
Non
Non
Non
Non
Oui
Oui
Non
Non
Oui
Non
1
3
5
9
13
-
-
20
28
-
37
𝑃𝑜𝑖𝑑𝑠_ min(𝑮) = 𝟑𝟕
2) Graphe G2
3) Initialisation : On ordonne les arcs par ordre croissant des poids.
𝒊
1
2
3
4
5
6
𝒖𝒊
𝒄(𝒖𝒊 )
(a,c)
1
(a,b)
1
(d,e)
1
(d,f)
1
(b,c)
2
(e,f)
2
𝒊
𝒖𝒊
Création
du cycle ?
Poids
7
(b,d)
5
1
(a,c)
2
(a,b)
3
(d,e)
4
(d,f)
5
(b,c)
6
(e,f)
7
(b,d)
Non
Non
Non
Non
Oui
Oui
Non
1
2
3
4
-
-
9
𝑃𝑜𝑖𝑑𝑠_ min(𝑮) = 𝟗
Exercice 6
Soit le graphe suivant
- Trouver l’arbre de poids minimum puis l’arbre de poids maximum.
Arbre de poids min
Initialisation : On ordonne les arcs par ordre croissant des poids.
𝒊
1
𝒖𝒊
𝒄(𝒖𝒊 )
2
3
4
5
6
7
8
9
10
(2,5) (5,8) (3,6) (1,2) (2,4) (6,7) (1,5) (4,7) (7,8) (1,6)
1
1
1
2
2
2
3
3
3
3
11
12
13
14
15
(3,4)
3
(4,5)
4
(1,3)
5
(4,8)
5
(6,8)
5
𝒊
1
2
3
4
5
6
7
8
𝒖𝒊
Création
du cycle
Poids
(2,5)
(5,8)
(3,6)
(1,2)
(2,4)
(6,7)
(1,5)
(4,7)
Non
Non
Non
Non
Non
Non
Oui
Non
1
2
3
5
7
9
-
12
𝑃𝑜𝑖𝑑𝑠_ min(𝑮) = 𝟏𝟐
Arbre de poids max
La solution du problème de recherche de l'arbre de poids maximum s'obtient en utilisant l’algorithme de
Kruskal après avoir multiplié les poids des arcs par (-1).
𝑃𝑜𝑖𝑑𝑠_ max(𝑮) = −𝑝𝑜𝑖𝑑𝑠_𝑚𝑖𝑛(−𝑮)
𝑖
1
(6,8)
𝒖𝒊
𝒄(𝒖𝒊 ) -5
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(4,8)
-5
(1,3)
-5
(4,5)
-4
(3,4)
-3
(1,6)
-3
(7,8)
-3
(4,7)
-3
(1,5)
-3
(6,7)
-2
(2,4)
-2
(1,2)
-2
(3,6)
-1
(5,8)
-1
(2,5)
-1
𝒊
1
2
3
4
5
6
7
8
9
10
11
𝒖𝒊
Création
du cycle ?
Poids
(6,8)
(4,8)
(1,3)
(4,5)
(3,4)
(1,6)
(7,8)
(4,7)
(1,5)
(6,7)
(2,4)
Non
Non
Non
Non
Non
Oui
Oui
Oui
Oui
Non
-5
-10
-15
-19
-22
-
-
-
-
-27
Non
-25
𝑃𝑜𝑖𝑑𝑠_ max(𝑮) = −(−27) = 𝟐𝟕
Download