Optimisation discrète : Séance 1-b (corrigés, indications)
GRAPHES
Objectifs Quelques résultats d’illustration de la théorie des graphes.
FIG. 1 – Exemple de graphe
1 Représentations d’un graphe
Déf 1 Dictionnaire du graphe :
1 : 2, 4
2 : 3
3 : 4, 5
4 : 2
5 : ®
Si on ne dispose pas d’un langage adapté (genre Python), on peut toujours repré- senter le dictionnaire avec deux vecteurs :
D = [ 2,4, 3, 4,5, 2, 0, 0 ]
C = [ 1, 3, 4, 6, 7, 8 ]
Déf 2 Matrice associée :
B=
0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0
Déf 3 Matrice d’adjacence :
M =
1 1 0 0 0 0
−1 0 1 0 0 −1
0 0 −1 1 1 0
0 −1 0 −1 0 1
0 0 0 0 −1 0
Ex 1 Exemples de fonctions de conversion (en scilab) : function [ B ] = d2b (D, C)
// conversion : Dictionnaire -> Matrice associee //
n = max (D) B = zeros (n,n) for i = 1:n
for k = C(i) : C(i+1) - 1 j = D(k)
if j > 0 then B(i,j) = 1, end end
end
endfunction // ...
function [ M ] = d2m (D, C)
// conversion : Dictionnaire -> Matrice d’incidence //
n = max (D)
p = length (D) - 2 M = zeros (n,p) a = 0
for i = 1:n
for k = C(i) : C(i+1) - 1 j = D(k)
if j > 0 then a = a + 1 M(i,a) = 1
M(j,a) = -1, end end
end
endfunction // ...
2 Cheminements dans un graphe
Ex 2 CalculerB2, B3, . . .
B2(i, j)donne les chemins dedeuxarcs au plus, existant entre les sommetsiet j.
Si on calcule en booléen, on obtient 0/1 c’est à dire l’existence. Si on calcule en entier, on obtient le nombre de tels chemins.
Ex 3 Algorithme de test d’absence de circuits.
Les terminaisons possibles sont : ou bien on arrive à marquer tous les sommets (pas de circuits), ou bien c’est impossible (il y a un circuit).
La structure de données la plus adaptée est celle qui détermine rapidement les sommets adjacents : aucune panacée pour cela (sauf à accepter une énorme structure de données, redondante).
Circuits hamiltoniens
Ex 4 Sinest impair un cavalier ne peut pas passer par toutes les cases et revenir à son point de départ.
Le déplacement du cavalier alterne la couleur des cases (on parle alors de graphe bi-parti ou 2-coloriable).
Comme on ne peut faire que des zigzags, un cycle est toujours de longueur paire.
Or sinest impair,n2aussi et c’est impossible.
Un graphe 2-coloriable n’admet pas de cycle de longueur impaire.
Ex 5 Le graphe associé au dodécaèdre est hamiltonien : voir figure.
FIG. 2 – Dodécaèdre
3 Stabilité
Stabilité interne
3.0.1 Exemple
Soit à colorier une carte de 10 pays, dont la matrice binaire représente le graphe de contiguïté : Aij = 1siietjsont limitrophes.
A=
• 1 0 1 1 0 1 0 0 1
• 1 1 0 1 0 0 1 0
• 0 1 0 0 0 0 1
• 1 1 0 1 1 0
• 1 0 0 0 1
• 1 1 0 0
• 0 1 0
• 0 1
• 0
•
D B E F NL
I L P CH
A
On peut trouver (par énumération) les sous ensembles stables maximaux du graphe (maximal veut dire non contenu dans un autre d’ordre supérieur). Ce sont les suivants :
→ 1 3 6
1 6 8
→ 2 3 6
→ 3 5 6 7
→ 4 5 8
5 6 7 8 Ex 6 Comment peut-on conclure ?
Soitile numéro du pays,jcelui du sous-ensemble stable maximal, et : – Aij = 1siiest coloré parj
– xj = 1sijest retenu.
On minimise le nombre de couleurs sous la contrainte que chaque pays doit apparaître une fois :
minX
j
Xj
X
j
AijXj≥1
4 Graphes particuliers
Aborescences
Ex 7 Etant donnée l’expression : sin (x+y) +
Z a+1 a−1
(2p
x2+ 1 +y)dx
On a :
+ (sin(+(x,y)),int(-(a,1),+(a,1),+(*(2,sqrt(+(sqr(x),1))),y)) d’où l’arborescence :
Ex 8 Parcours de l’arborescence : en profondeur.
Graphes planaires
Thm 1 Si un graphe connexe est planaire et siSest le nombre de sommet,Ale nombre d’arête etF le nombre de face on a (relation d’Euler) :
S+F−A= 2 En effet :
– tant qu’il y a des cycles dans le graphe, on retire une arêteeappartenant à un cycle, soitG0 =G−e.
Si le graphe est planaire cette arête appartient en fait à deux cycles1, en retirant l’arête commune ces deux cycles n’en forment plus qu’un.
Le grapheG0a alors une arête et une face en moins.
– S’il n’y a plus de cycle le graphe est alors un arbre :S=A+ 1etF = 1.
Rappel :K5est le graphe complet à5noeuds, i.e. c’est la réunion du pentagone et du pentagone étoilé.K3,3est le graphe à(3 + 3) = 6noeuds dont les arêtes relient trois maisons à trois puits.
Ex 9 Les graphesK5etK3,3ne peuvent pas être planaires.
– PourK5,S= 5, A= 10, doncF = 7.
les faces possibles d’une représentation plane de K5 sont bordées par des cycles, or les seuls cycles deK5 sont ou des triangles et des pentagones, ils ont donc tous plus de 3 arêtes, ce qui fait que le nombre d’aretesAvérifie A≥7×3/2(chaque arête est comptée deux fois).
DoncA≥10,5ce qui est faux.
– PourK3,3le raisonnement est le même on en déduit queF = 5.
Or tous les cycles sont d’ordre4ou6. Ce qui impliqueraitA≥5×4/2, donc A≥10, orA= 9.
1C’est cette propriété qui est fausse pour un graphe tracé sur, par exemple, un tore