Sunteți pe pagina 1din 22

Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007


01




Recherche
Oprationnelle



Graphes



Yves Correc
Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
02
Sommaire

0. INTRODUCTION.......................................................................................................................03
0.1. Les graphes ...........................................................................................................................03
0.2. La programmation linaire .....................................................................................................05
1. ELEMENTS DE LA THEORIE DES GRAPHES........................................................................16
1.1. Reprsentations d'un graphe.................................................................................................16
1.1.1. Reprsentation graphique ..............................................................................................16
1.1.2. Dictionnaire des suivants................................................................................................16
1.1.3. Matrice d'adjacence........................................................................................................17
1.1.4. Matrice d'incidence sommets-arcs .................................................................................18
1.2. Dfinitions ............................................................................................................................110
1.3. Analyse de la structure d'un graphe ....................................................................................112
1.3.1. Recherche de circuits ...................................................................................................112
1.3.2. Dcomposition en niveaux............................................................................................114
1.3.3. Fermeture transitive des sommets d'un graphe ...........................................................116
1.3.4. Composantes fortement connexes dun graphe...........................................................119
1.3.5. Composantes connexes d'un graphe ...........................................................................122


Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
03
0. INTRODUCTION
0.1. LES GRAPHES

Les graphes donnent une reprsentation aisment manipulable des relations qui peuvent apparatre
lors de l'analyse des phnomnes tudis. Ces relations peuvent tre spatiales (rseaux), temporelles
(ordonnancement de projet) ou autres (routage, affectation, ...). Les modles ainsi construits peuvent
alors tre utiliss pour rechercher une solution optimale (en un sens prciser : cot, dure,
qualit) aux problmes poss.

Problme rel

position

Problme bien pos

analyse

Modle mathmatique

rsolution

Solution


On n'insistera jamais assez sur l'importance des deux premires tapes: il ne sert rien de se
prcipiter pour rsoudre ce que l'on croit tre le problme mathmatique pos, et trouver une solution
fausse au problme physique originel !

On illustrera ce syndrome malheureusement trop rpandu par un exemple classique: Un problme
d'optimisation de porte-feuille (c'est dire de rpartition de ressources financires entre divers
placements -actions, obligations, etc-) peut se ramener un problme de programmation linaire, ce
qui revient rechercher l'optimum d'une certaine fonction le rendement global- l'intrieur d'un
polydre dont les facettes reprsentent les diverses contraintes qui s'appliquent ce choix.

La question pose habituellement s'nonce "dterminer la politique d'investissement optimale", et
appelle par consquent une solution du genre " investir x en actions machin, y en actions truc, z en
obligations". Mais la contrainte sous-jacente, oublie gnralement par beaucoup d'tudiants, est
que les ressources investir ne sont pas infinies, mme si l'on n'en a pas dit un mot auparavant.

La seule solution consiste donc raisonner en termes de pourcentages (x%, y%, z% de
l'investissement global), ce qui revient inclure explicitement dans les contraintes du problme la
contrainte implicite "x + y + z = 100" ,dont l'absence conduira une solution tout fait surraliste !

En rsum, les trois tapes prcites sont indispensables, et passer rapidement sur les deux
premires est un moyen trs sr de faire des btises. Donc:
(1) Poser correctement le problme physique. Vrifier que l'on a bien compris le besoin du client,
et que toutes les donnes sont sur la table, y compris les hypothses implicites (c'est le non-
dit qui tue!).
(2) Analyser le problme pour le transformer en un problme mathmatique que l'on sait
rsoudre, et dont les mthodes sont l'objet de ce cours.
(3) Rsoudre le problme mathmatique ainsi construit, et ne pas oublier de revenir au problme
physique de dpart, pour en donner la solution dans les termes de celui qui vous l'a pos.
C'est pour cela que la recherche oprationnelle est une discipline part entire. Pour reprendre une
citation du professeur Faure "les mathmatiques sont une science, mais la recherche oprationnelle
est un art".

Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
04
Exemples

Problme du plus court chemin

Etant donn un graphe reprsentant un rseau, il s'agit de trouver le plus court chemin d'un point un
autre. Sur cet exemple, le plus court chemin du point A au point F passe par D et a pour longueur 6.

A
B
C
D
E
F
G
5
4
3
10
6
4
1
5
2
2
6
3
2




Problme d'ordonnancement

Il s'agit de raliser "au mieux" un projet compos d'un certain nombre de tches, soumis en outre
des contraintes de dure, de moyens ou de cot. Cela revient en particulier trouver le chemin
critique dans le graphe reprsentant le projet, c'est dire le chemin tel que tout retard pris sur l'une
des tches qui le constituent se rpercute sur l'ensemble du projet.

Problme de l'arbre minimal

Il s'agit de trouver dans un graphe reprsentant par exemple un rseau de distribution lectrique le
plus petit (longueur, cot) sous-ensemble de celui-ci qui en assure encore les fonctions.

3
B E
4 6 2 3

A 3 C F
5 4

D


Problme du flot maximum

Il s'agit de faire passer le flot maximum au travers d'un rseau dont les lments ont une capacit
donne, limite.

Problme d'affectation

Il s'agit d'affecter un ensemble de personnes un ensemble de tches de telle sorte que la
satisfaction globale (somme des satisfactions individuelles) soit maximale.


Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
05
Problme de transport

Il s'agit d'acheminer au cot minimal un certain nombre de marchandises partir d'un certain nombre
d'origines jusqu' un certain nombre de destinations, compte tenu de contraintes de capacit sur les
tronons utiliss.

Stock0 Destination1

Stock1 Destination2

Stock2 Destination3

Destination4


Problme de tourne

Il s'agit de d'effectuer au moindre cot le ramassage d'une denre quelconque sur l'ensemble des
points d'un rseau, en respectant ventuellement des contraintes additionnelles de capacit de
transport ou de distance parcourue.

0.2. LA PROGRAMMATION LINEAIRE

Soit un processus contrl par n variables x
j
(j=1 n), il en rsulte des effets mesurables y
i
supposs
proportionnels aux variables de contrle x
j
(considres comme causes). Les y
i
(i = 1,n) peuvent donc
s'crire comme combinaisons linaires des x
j
:
y
i
= a
i1
x
1
+ a
i2
x
2
+ a
i3
x
3
+ + a
in
x
n
(i = 1,n)
On cherche alors minimiser un certain rsultat y
0
= c
j
x
j
sous les contraintes de bornes y
i
b
i
.
Ce qui s'crit sous forme matricielle:
Min c x (c x : objectif, cot, fonction conomique)
A x b
Avec l'criture adquate, les problmes de graphes peuvent tre traits comme des problmes de
programmation linaire, mais son intrt n'est videmment pas l: Elle permet de traiter des
problmes beaucoup plus gnraux, pourvu qu'ils rsultent de la modlisation de processus linaires,
en variables continues, entires ou boolennes.

exemple : Problme de production

On fabrique x
1
appareils sur une chane A, sur laquelle chaque appareil ncessite 3h de fabrication et
1h de finition pour un cot unitaire de 20kF.
On fabrique x
2
appareils sur une chane B, sur laquelle chaque appareil ncessite 1h de fabrication et
2h de finition pour un cot unitaire de 60kF.
On dispose dans l'atelier de fabrication de 60h par mois, et dans l'atelier de finition de 70h par mois.
La demande est de 30 appareils au moins par mois. Quelle doit tre la production pour satisfaire la
demande en minimisant le prix de revient ?
(on n'oubliera pas les contraintes de production ateliers-! )

La solution sera donne par la rsolution du problme d'optimisation linaire suivant:

Min 20 x
1
+ 60 x
2
(cot = objectif minimiser)
3 x
1
+ 1 x
2
60 (contrainte atelier de fabrication)
1 x
1
+ 2 x
2
70 (contrainte atelier de finition)
x
1
+ x
2
30 (contrainte demande)

Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
16
1. ELEMENTS DE LA THEORIE DES GRAPHES
1.1. REPRESENTATIONS D'UN GRAPHE

Un graphe est dfini par un doublet (X,U), X tant un ensemble de points et U un ensemble de
segments les joignant: G = (X,U) avec U (X x X)

1.1.1. Reprsentation graphique

X = {points} U = {segments joignants ces points}

Un graphe est orient ou non suivant que l'on impose ou non un sens de parcours sur ses branches.
Exemple de graphe (orient):

u
1
u
4
u
2
u
6
u
3
u
5
u
7
u
8
u
9
x
4
x
1
x
5
x
6
x
3
x
2


On peut affecter chaque branche, une ou plusieurs valeurs numriques qui la caractrisent
(distance, capacit, dure, cot, ...). Il en est de mme pour les noeuds.

Il peut exister plusieurs branches joignant un point un autre (cas o il existe par exemple plusieurs
moyens de transport possibles): on parle dans ce cas de multigraphe.

Les points du graphe sont appels sommets, ou nuds.

Chaque branche joignant deux sommets est appele arc (graphes orients) ou arte (graphes non
orients).



1.1.2. Dictionnaire des suivants

On dfinit l'application : XX qui chaque sommet x du graphe associe l'ensemble (x) des
sommets accessibles par un arc partir de celui-ci. On peut alors reprsenter le graphe, en associant
chaque sommet, la liste de ses suivants: G=(X,)

Ce type de reprsentation est d'autant plus efficace que le graphe est peu dense
(mmoire ncessaire nbsommets x nbarcs issus de chaque sommet) .

La variante symtrique (dictionnaire des prcdents) associe chaque sommet la liste de ses "pres"

-1
(x) (c'est dire les sommets depuis lesquels on peut venir par un arc).


Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
17

Exemple:

A
B
C
D
E
F








1.1.3. Matrice d'adjacence
On dfinit l'application boolenne { } B X X : x , 01 qui deux sommets associe 1 s'il existe un arc
joignant le premier au second, 0 sinon. On reprsente alors le graphe par le tableau double entre
de ses valeurs (matrice boolenne). Cette matrice est aussi appele matrice d'incidence sommets-
sommets. Si le graphe est non orient, la matrice est symtrique. Si les branches du graphe sont
values, on peut remplacer le 1 par la valeur numrique associe la branche correspondante. Ce
type de reprsentation est commode pour la mise en uvre des algorithmes matriciels, mais son
usage est limit par son encombrement (mmoire ncessaire = nbsommets
2
).
La matrice d'adjacence de l'exemple prcdent est:








x (x)

-1
(x)
A B,C
B D A,C
C B,D,E A
D F B,C,E
E D,F C
F D,E
A B C D E F
A 0 1 1 0 0 0
B 0 0 0 1 0 0
C 0 1 0 1 1 0
D 0 0 0 0 0 1
E 0 0 0 1 0 1
F 0 0 0 0 0 0
Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
18

1.1.4. Matrice d'incidence sommets-arcs

On dfinit l'application qui chaque couple (sommet arc) associe +1 si l'arc sort du sommet, -1 s'il y
rentre, et 0 sinon. Le graphe est alors reprsent par le tableau de ses valeurs. Cette notation n'a
qu'un intrt thorique. Dans le cas d'un graphe non orient, las valeurs prises sont 0 et 1. La matrice
correspondant l'exemple trait est donne ci-dessous. On observera, et cela rsulte videmment de
la dfinition d'un arc, que chaque colonne contient un +1 (origine) et un 1 (extrmit).
u
1
u
4
u
2
u
6
u
3
u
5
u
7
u
8
u
9
x
4
x
1
x
5
x
6
x
3
x
2



u
1
u
2
u
3
u
4
u
5
u
6
u
7
u
8
u
9

x
1
+1 +1 0 0 0 0 0 0 0
x
2
-1 0 -1 +1 0 0 0 0 0
x
3
0 -1 +1 0 +1 +1 0 0 0
x
4
0 0 0 -1 -1 0 -1 +1 0
x
5
0 0 0 0 0 -1 +1 0 +1
x
6
0 0 0 0 0 0 0 -1 -1

Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
19
Exercice

Donner les 3 reprsentations du graphe suivant:

B U
4
E

U
1
U
5
U
8
U
10


A U
3
D G

U
2
U
6
U
9
U
11


C U
7
F

Solution

Dictionnaires des suivants et des prcdents

x (x)
-1
(x)
A B C
B CD A E
C A B D F
D C E F B
E B G D
F C G D
G E F

Matrice d'adjacence

A B C D E F G
A 0 1 1 0 0 0 0
B 0 0 1 1 0 0 0
C 0 0 0 0 0 0 0
D 0 0 1 0 1 1 0
E 0 1 0 0 0 0 1
F 0 0 1 0 0 0 1
G 0 0 0 0 0 0 0

Matrice d'incidence sommets-arcs

U1 U2 U3 U4 U5 U6 U7 U8 U9 U10 U11
A +1 +1 0 0 0 0 0 0 0 0 0
B -1 0 +1 -1 +1 0 0 0 0 0 0
C 0 -1 -1 0 0 -1 -1 0 0 0 0
D 0 0 0 0 -1 +1 0 +1 +1 0 0
E 0 0 0 +1 0 0 0 -1 0 +1 0
F 0 0 0 0 0 0 +1 0 -1 0 +1
G 0 0 0 0 0 0 0 0 0 -1 -1

Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
110
1.2. DEFINITIONS

On a vu que les points du graphe sont appels sommets (vertices) ou nuds (nodes), et que chaque
branche joignant deux sommets est appele arc (arc) dans le cas des graphes orients, ou arte
(link, edge) dans le cas des graphes non orients.

Si l'origine d'un arc est l'extrmit d'un autre, ils sont adjacents.

Une boucle (loop) est un arc dont l'origine et l'extrmit sont confondues.
On appelle chemin (path) une suite d'arcs adjacents permettant de passer d'un sommet un autre.
On appelle circuit (circuit) un chemin dont les sommets initial et final concident.
De mme, dans les graphes non orients, on appelle chane (chain) une suite dartes adjacentes, et
cycle (cycle) une chane referme.

Un chemin, un circuit, une chane, un cycle, est dit :
- lmentaire (elementary) s'il ne passe qu'une seule fois par chacun de ses sommets,
- simple (simple) s'il ne passe qu'une seule fois par chacun de ses arcs,
- hamiltonien (hamiltonian) s'il passe une seule fois par chaque sommet du graphe,
- eulrien (eulerian) s'il passe une seule fois par chaque arc du graphe (cf. ponts de Knigsberg),
- prhamiltonien (ou preulrien) s'il passe au moins une fois par chaque sommet (ou chaque arc)
du graphe.

On appelle degr (degree) d'un sommet le nombre d'arcs qui lui sont connects, et plus prcisment
demi degr extrieur (outdegree) le nombre d'arcs qui en sortent, et demi degr intrieur
(indegree) le nombre d'arcs qui y rentrent.

Un graphe est dit complet (complete) si pour toute paire de sommets, il existe un arc les joignant:
(xi,xj) X, (xi,xj) U.

Un graphe est dit symtrique (symmetric) si pour tout arc (xi,xj) il existe aussi un arc de sens oppos
(xj,xi): xi xj (xi,xj) U (xj,xi) U.

Un graphe est dit antisymtrique (antisymmetric) s'il n'existe qu'un arc au plus joignant deux
sommets: xi xj (xi,xj) U (xj,xi ) U.

La cardinalit (cardinality) d'un chemin est le nombre d'arcs qui le composent.
Le poids (weight) ou longueur (length) d'un chemin est la somme des poids ou longueurs des arcs
qui le composent.

On appelle graphe partiel (partial graph) G' de G un graphe ayant les mmes sommets que G, mais
seulement un sous ensemble de ses arcs: G' = (X,V) avec V U.
On appelle sous-graphe (subgraph) engendr par un sous ensemble de sommets A X, le graphe
ayant pour sommets A et pour arcs ceux de U qui ont leurs extrmits dans A.

Un graphe est planaire (planar) s'il peut tre trac sur un plan sans que ses arcs se coupent.

Un graphe est dit connexe s'il existe au moins une chane reliant deux sommets quelconques.
Un graphe est dit fortement connexe s'il existe au moins un chemin reliant deux sommets
quelconques.
Un sous-graphe connexe s'appelle une composante connexe, et un sous-graphe fortement connexe
une composante fortement connexe.

Dans un graphe G = (X,U) connexe, on dit qu'un sommet x est un point d'articulation si le sous-
graphe obtenu en supprimant x n'est plus connexe.
On appelle ensemble d'articulation A d'un graphe G, le sous-ensemble de sommets A X tel que le
sous graphe engendr par X-A n'est pas connexe.
On appelle nombre de connexit , not (G), le nombre minimal de sommets supprimer pour
rendre le graphe G non connexe. Si (G) h (entier), le graphe est dit h-connexe.

On appelle arbre (tree) un graphe connexe sans cycle.
Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
111

On appelle matrice d'incidence gnralise d'un graphe G = (X,U), la matrice des poids des arcs
joignant les sommets.

On appelle fermeture transitive (transitive closure) d'un sommet x, le sous-ensemble A X des
sommets accessibles depuis x par un chemin (xA). Si l'on ajoute x A, on parle de fermeture
rflexo-transitive.





Exercice :

Donner les degrs et demi-degrs du graphe de l'exercice prcdent.
Que peut-on dire de sa connexit?
Existe-t-il des points d'articulation?

Solution

Les demi-degrs sont ici les sommes calcules sur les lignes (-extrieur) ou les colonnes (-intrieur)
de la matrice d'adjacence ( moins que l'on ne prfre effectuer le dcompte pour chaque sommet
individuellement sur la reprsentation graphique). On vrifie que la somme des demi-grs extrieurs
est gale la somme des demi-degrs intrieurs, et au nombre d'arcs du graphe.

A B C D E F G
degr 2 4 4 4 3 3 2
1/2degr extrieur 2 2 0 3 2 2 0
1/2degr intrieur 0 2 4 1 1 1 2

Ce graphe est connexe (au sens large puisqu'il s'agit d'un graphe orient et que la connexit est une
notion non oriente, c'est dire qu'ici l'on "oublie" par abus de langage l'orientation des arcs), mais
pas fortement connexe. Il ne possde aucun point d'articulation, et ses plus petits ensembles
d'articulation sont (B,C) et (E,F). Il est donc 2-connexe. Il admet une seule composante fortement
connexe non dgnre (c'est dire non rduite un seul sommet), qui est le circuit (BDE) (voir le
paragraphe suivant pour la mthode).
Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
112
1.3. ANALYSE DE LA STRUCTURE D'UN GRAPHE

1.3.1. Recherche de circuits

On commence par liminer les boucles qui sont des circuits lmentaires (diagonale de la matrice
d'adjacence). Le principe de base consiste liminer progressivement tous les sommets qui sont, soit
uniquement origine, soit uniquement extrmit des arcs adjacents, et ne peuvent donc appartenir un
circuit.

La procdure est donc la suivante: On examine tous les sommets les uns aprs les autres, dans un
ordre quelconque. Si un sommet possde la proprit dfinie plus haut, on l'limine ainsi que les arcs
adjacents. Puis on passe au sommet suivant. S'il n'y a pas de circuit, tout le graphe disparat. Sinon
seuls subsistent les circuits.

Exemple1 : on entoure en rouge les sommets qui n'ont pas de suivants.

Etape1 :
A
B
C
D
E
F

Etape2 :
A
B
C
D
E


Etape3 :
A
B
C E


Etape4 :
A
B
C



Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
113
Etape5 :
A
C


Etape6 :
A


Le graphe propos n'avait pas de circuit.


Exemple 2 : On entoure aussi en bleu les sommets qui n'ont pas de prcdents


A
B
C
E
F
G D





B E
F
D


B E
D


Il reste un seul circuit (BDE).


x (x) -(x)
A BC
B CD AE
C ABDF
D CFE B
E BG D
F CG D
G EF
x (x) -(x)
B D E
D FE B
E B D
F D
x (x) -(x)
B D E
D E B
E B D
Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
114
1.3.2. Dcomposition en niveaux

Considrons un graphe connexe sans circuit et la relation d'ordre suivante entre deux sommets xi et
xj: xi xj si et seulement s'il existe un chemin de xi xj

.

Il est possible d'ordonner ce graphe partir de cette relation d'ordre, c'est dire de ranger les
sommets suivant des niveaux croissants tels qu'il n'y ait pas de chemin d'un sommet un autre
sommet situ un mme niveau ou un niveau infrieur.

Cette dcomposition peut s'effectuer en recherchant, chaque itration, tous les sommets qui n'ont
pas de prcdent et donc constituent un niveau, et en les effaant avant de rechercher le niveau
suivant. On utilisera pour cela le dictionnaire des prcdents.

Cette dcomposition descendante peut tre remplace par une approche ascendante remontant de la
mme manire du sommet qui n'a pas de descendants jusqu' la racine de la dcomposition, en
utilisant le dictionnaire des suivants.

Exemple:

B D


A F


C E

Premier niveau : A na pas de prcdent

A

Deuxime niveau : C na pas de prcdent, car A retir.

A C

Troisime niveau : B et E nont pas de prcdent car C et A retirs.

B

A C

E

Quatrime niveau : D na pas de prcdent car B, C et E retirs.

B

A C D

E

Dernier niveau : F.

B

A C D F

E


Avec dictionnaire des prcdents.
x
-1
(x)
A
B A ,C
C A
D B, C, E
E C
F D, E

Retrait de A
x
-1
(x)
B C
C
D B, C, E
E C
F D, E

Retrait de C
x
-1
(x)
B
D B, E
E
F D, E

Retrait de E et B
x
-1
(x)
D
F D

Retrait de D
x
-1
(x)
F


Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
115
On utilisera les dictionnaires des suivants ou des prcdents pour effectuer la dcomposition en
niveaux. Cette dcomposition sera utile dans la rsolution des problmes d'ordonnancement.
NB. La recherche des circuits d'un graphe par limination rsulte de la double application de la
procdure ascendante/descendante.



CALCUL MATRICIEL (RAPPELS)

Pour ceux qui auraient tout oubli, il est sans doute utile avant le paragraphe suivant de rappeler
brivement les quelques notions lmentaires de calcul matriciel qui seront ncessaires pour la suite.
On passera sur le fait qu'un vecteur est la reprsentation algbrique d'un point d'un espace n
dimensions R
n
et une matrice celle d'une application linaire de cet espace dans lui-mme:
A: R
n


R
n
: x Ax
a
11
a
12
... a
1n

Soit une matrice A =[a
ij
]= ...
a
n1
a
n2
... a
nn

Par convention, i sera l'indice des lignes, et j l'indice des colonnes

b
1

Soit un vecteur b = [b
i
] = ...
b
n


La somme de deux vecteurs ou deux matrices a pour terme gnrique la somme des composantes
correspondantes:
b
1
+c
1

Somme de 2 vecteurs [b+c]= ... ou encore [b+c]
i
= [b
i
+c
i
]
b
n
+c
n


Somme de 2 matrices [A+B]
ij
= [a
ij
+b
ij
]

Le produit d'un vecteur x par une matrice A est un vecteur dont chaque composante est le produit
scalaire du vecteur par la ligne correspondante de la matrice. Exemple avec une matrice 3x3:
x
1

x
2

x
3


a
11
a
12
a
13
a
11
*x
1
+a
12
*x
2
+a
13
*x
3

a
21
a
22
a
23
x = a
21
*x
1
+a
22
*x
2
+a
23
*x
3

a
31
a
32
a
33
a
31
*x
1
+a
32
*x
2
+a
33
*x
3


Soit [Ax]
i
=
k
a
ik
x
k


Le produit de 2 matrices est une matrice ayant pour terme gnrique le produit scalaire d'une ligne de
la premire et d'une colonne de la seconde. Exemple du produit de deux matrices 2x2:

b
11
b
12

b
21
b
22

a
11
a
12
a
11
b
11
+a
12
b
21
a
11
b
12
+a
12
b
22

a
21
a
22
x = a
21
b
11
+a
22
b
21
a
21
b
12
+a
22
b
22


Soit [A.B]
ij
=
k
a
ik
b
kj

Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
116
1.3.3. Fermeture transitive des sommets d'un graphe

On va s'intresser aux ensembles de suivants des sommets du graphe, soit les (xi) accessibles
directement depuis xi par un chemin de longueur 1 (un arc), les
2
(x
i
)= ( (x
i
)) accessibles par un
chemin de longueur 2, etc...
Dans un graphe n sommets, il ne peut y avoir de chemin lmentaire (les circuits ne servent rien
ici) de plus de (n-1) arcs (sans rptition de sommet), si bien que la recherche pourra s'arrter
l'ordre n-1, c'est dire
n-1
(xi). En fait, on pourra s'arrter ds que
k+1
(x
i
)=
k
(x
i
).

Pour dterminer la matrice des fermetures transitives M

, on utilise la matrice boolenne d'adjacence


M. Introduisons les oprations matricielles "somme" et "produit" * dfinies partir des oprations
scalaires "somme" et "produit" * par:

C = A B C
ij
= a
ij
b
ij
(AA)
C = A * B C
ij
=
k
( a
ik
* b
kj
) (PP)

Nous prendrons pour et * la somme et le produit boolen, soit "max" et "min", ou encore "ou" et "et".

M
2
= M*M nous donnera les listes des sommets reli aux sommets xi par des chemins lmentaires
de longueur 2. L'opration a priori bizarre que nous venons de dfinir a t construite exactement
pour cela.
Considrons en effet le terme (M
2
)
ij
de cette matrice: il sera gal 1 s'il y a un chemin (Xi,Xj) entre Xi
et Xj, chemin dcomposable en deux arcs adjacents (Xi,Xk) et (Xk,Xj) avec Xk ventuel sommet
intermdiaire entre Xi et Xj. Il nous reste donc regarder pour tous les indices k possibles s'il existe
un arc entre Xi et Xk (alors a
ik
=1) et un arc entre Xk et Xj (alors a
ik
=1), pour connatre la valeur de
(M
2
)
ij
, grce la formule (PP).

De mme M
3
= M*M
2
donnera les suivants par des chemins lmentaires de longueur 3, et ainsi de
suite La matrice cherche sera alors M M
2
M
3
... M
n-1
.

Pratiquement, on s'intressera plutt la matrice des fermetures rflexo-transitives M= I M

.
En effet, si l'on introduit la matrice M' = I M, on peut montrer que M= (M')
n-1
, dont le calcul est
beaucoup plus rapide. Pour cela il suffit d'observer que l'opration est idempotente (A A = A), et
on dmontre par rcurrence que I M M
2
M
3
... M
n-1
= ( I M )
n-1
.

On calculera donc la suite des ( I M )
k
= M'
k
, qui nous fournira les suivants accessibles par des
chemins de longueur comprise entre 0 et k.

N.B. Comme seule nous intresse la limite M, il sera plus rapide d'valuer les matrices
correspondant aux chemins de longueur 2, 4, 8, 16.. jusqu' ce que le rsultat devienne invariant (la
suite aura converg). La matrice obtenue reprsente l'ensemble des paires de sommets qui peuvent
Xi
Xk
Xk
Xk
Xj
Xk
Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
117
tre joints par un chemin (de longueur quelconque). La fermeture transitive d'un sommet est donc
constitue par les sommets correspondant aux 1 de sa propre ligne.

N.B. Dans M, une colonne de zros correspond une entre du graphe (sommet sans prcdents), et
une ligne de zros une sortie du graphe (sommets sans suivants).






Exemple :

B D


A F


C E

La matrice dadjacence (matrice d'incidence sommet sommets) est :

A B C D E F
A 0 1 1 0 0 0
B 0 0 0 1 0 0
C 0 1 0 1 1 0 = M
D 0 0 0 0 0 1
E 0 0 0 1 0 1
F 0 0 0 0 0 0

Et la matrice M :

A B C D E F
A 1 1 1 0 0 0
B 0 1 0 1 0 0
C 0 1 1 1 1 0 = M I = M
D 0 0 0 1 0 1
E 0 0 0 1 1 1
F 0 0 0 0 0 1

Calculons M
2
:

1 1 1 0 0 0
0 1 0 1 0 0
0 1 1 1 1 0
0 0 0 1 0 1
0 0 0 1 1 1
0 0 0 0 0 1
X

1 1 1 0 0 0 1 1 1 1 1 0
0 1 0 1 0 0 0 1 0 1 0 1
0 1 1 1 1 0 0 1 1 1 1 1 = M
2
0 0 0 1 0 1 0 0 0 1 0 1
0 0 0 1 1 1 0 0 0 1 1 1
0 0 0 0 0 1 0 0 0 0 0 1

Calculons par exemple le terme (1,4) (en rouge):
(M
2
)
14
= (1 et 0) ou (1 et 1) ou (1 et 1) ou (0 et 1) ou (0 et 1) ou (0 et 0)

Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
118
On calculera de la mme manire M
4
:

1 1 1 1 1 1
0 1 0 1 0 1
0 1 1 1 1 1 = M
4

0 0 0 1 0 1
0 0 0 1 1 1
0 0 0 0 0 1

M
4
est diffrent de M
2
, et l'on poursuit le calcul avec M
8
:

1 1 1 1 1 1
0 1 0 1 0 1
0 1 1 1 1 1 = M
4
= M
8

0 0 0 1 0 1
0 0 0 1 1 1
0 0 0 0 0 1

Cette fois M
4
= M
8
, et le processus a converg: la matrice des fermetures rflexo-transitives
cherche est M
4
. En fait, nous aurions pu aussi nous arrter la matrice M
3
en observant
simplement le graphe (on peut joindre tout couple de points par un chemin de longueur infrieure ou
gale 3). Mais ce raisonnement bas sur la reprsentation graphique n'est videmment pas
applicable des graphes de grande taille o la visualisation est inaccessible, et seul le calcul
utilisable.


Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
119
1.3.4. Composantes fortement connexes dun graphe

La relation dfinie sur X par
x y ( (il existe au moins un chemin de x y et un chemin de y x) ou (x=y) ) est une
relation dquivalence.
La dfinition de cette relation entrane en effet qu'elle est rflexive (x x car x=x), symtrique (x y
y x), et transitive (x y et y z x z).

Si l'on fait le quotient du graphe par cette relation dquivalence, les classes obtenues se nomment
composantes fortement connexes du graphe (CFC). Ce sont en pratique les classes de sommets
qui sont tous relis entre eux l'intrieur d'une mme classe.

On verra ici deux mthodes pour les construire:

1re mthode (Algorithme de Foulkes):
Cette mthode utilise la matrice Mdes fermetures rflexo-transitives, en observant que la sous-
matrice associe une CFC sera par dfinition pleine de 1 et situe sur la diagonale de M.


M





On cherchera donc les faire apparatre en permutant judicieusement ses lignes et colonnes (ce
qui revient une renumrotation des sommets du graphe), de faon obtenir un partitionnement
de Men sous-matrices carres pleines de 1 (associes aux ensembles de sommets tous relis
deux deux). En d'autres termes, on va permuter lignes et colonnes pour mettre Msous forme
bloc-diagonale.


Exemple:

B



A C



F D



E

Matrice dadjacence M

A B C D E F
A 0 1 0 1 0 1
B 0 0 1 1 1 1
C 0 0 0 1 0 0
D 0 0 0 0 0 0
E 0 1 0 1 0 0
F 1 1 0 1 1 0
Matrice M
4
= M
8
= M

A B C D E F
A 1 1 1 1 1 1
B 1 1 1 1 1 1
C 0 0 1 1 0 0
D 0 0 0 1 0 0
E 1 1 1 1 1 1
F 1 1 1 1 1 1
Matrice M
2


A B C D E F
A 1 1 1 1 1 1
B 1 1 1 1 1 1
C 0 0 1 1 0 0
D 0 0 0 1 0 0
E 0 1 1 1 1 1
F 1 1 1 1 1 1
Matrice M = I M

A B C D E F
A 1 1 0 1 0 1
B 0 1 1 1 1 1
C 0 0 1 1 0 0
D 0 0 0 1 0 0
E 0 1 0 1 1 0
F 1 1 0 1 1 1
Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
120
Permutons les lignes et colonnes pour obtenir la forme bloc-diagonale recherche:









Les 3 composantes fortement connexes de ce graphe sont donc {A,B,E,F} , {C} et {D} (les deux
dernires sont dgnres, rduites un seul sommet).



2me mthode (Dcomposition de Malgrange) :

Le principe de cet algorithme est le suivant: On tablit pour un sommet quelconque la liste de tous ses
prcdents et la liste de tous ses suivants. Les points communs ces deux listes (incluant en
particulier le sommet considr) constituent une composante fortement connexe. On supprime ensuite
ces sommets (et les arcs adjacents) et on repart d'un autre sommet, jusqu' puisement de ceux-ci.

On traitera l'exemple qui suit en utilisant la matrice de fermeture rflexo-transitive M, ou
directement une reprsentation graphique.


B



A C



F D



E

Recherche des CFC sur une reprsentation chane du graphe:

Partant du sommet A, on marque les sommets suivants (jaune) au cours d'une exploration du
graphe mene en profondeur d'abord (depth first search): Partant d'un sommet, on passe son
premier suivant (fils), puis au suivant de celui-ci, etc, en laissant chaque fois momentanment de
ct les autres branchements possibles (frres).
On progresse ainsi le plus loin possible sans former de cycle, puis on remonte jusqu' la dernire
bifurcation laisse de ct, que l'on explore alors en profondeur aussi, et ainsi de suite jusqu'au
retour au sommet de dpart.

On marque de la mme manire par une exploration en profondeur d'abord (et en arrire) les
sommets prcdents (bleu).

Les sommets Mi marqus deux fois constituent CFC(A), puisqu'un tel sommet Mi est reli A par
un chemin dans chaque sens (de A vers Mi par les suivants, et de A vers Mi par les prcdents
c'est dire de Mi vers A). On les retire et on itre sur le graphe rsiduel

On observera que l'exploration du graphe aurait aussi bien pu tre conduite en largeur d'abord
(breadth first search) en marquant tous les suivants d'un sommet avant de poursuivre au niveau
suivant.

A B E F C D
A 1 1 1 1 1 1
B 1 1 1 1 1 1
E 1 1 1 1 1 1
F 1 1 1 1 1 1
C 0 0 0 0 1 1
D 0 0 0 0 0 1
Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
121
Le droulement du processus de construction est rsum sur la figure qui suit:

Suivants Prcdents

A A


B F CFC (A) = {A,B,C,D,E,F} {A,F,B,E} = {A,B,E,F}


C E F B


D E

Puis CFC(C) ={C} , et enfin CFC (D) = {D}




Recherche des CFC sur la matrice de fermeture rflexo transitive M



Suivants (A) = (111111) = {A,B,C,D,E,F}

Prcdents (A) = (110011) = {A,B,E,F}




CFC (A) = (111111) (110011) = (110011)
CFC (A) = {A,B,C,D,E,F} {A,B,E,F} = {A,B,E,F}

On supprime alors les sommets ABEF qui constituent CFC (A) et l'on itre sur la matrice rduite:

C D
C 1 1 CFC (C) = (11) (10) = {C}
D 0 1 Reste enfin CFC (D) = {D}


Matrice M
A B C D E F
A 1 1 1 1 1 1
B 1 1 1 1 1 1
C 0 0 1 1 0 0
D 0 0 0 1 0 0
E 1 1 1 1 1 1
F 1 1 1 1 1 1
A
B
C
D
E
F
Recherche Oprationnelle - Graphes

Yves Correc 08/10/2007
122
1.3.5. Composantes connexes d'un graphe

La vrification de la connexit d'un graphe est un problme important. On va dcrire ici un algorithme
de recherche des composantes connexes d'un graphe, analogue dans son principe celui de
Malgrange (Trmaux 1882, Tarjan 1972).
Partant d'un sommet du graphe, on numrote les sommets dans l'ordre d'une exploration, en
profondeur d'abord (depth first search). L'ensemble des sommets rencontrs forme la premire
composante connexe. Si tous les sommets ont t marqus, le graphe est connexe. Dans le cas
contraire on recommence l'exploration partir d'un sommet non encore rencontr, qui donnera une
seconde composante connexe, et ainsi de suite

NB. La connexit est considrer au sens strict dans un graphe non orient, ou au sens large si l'on
nglige l'orientation des arcs dans un graphe orient.

S-ar putea să vă placă și