Theorie Des Graphes

61
1

Transcript of Theorie Des Graphes

Page 1: Theorie Des Graphes

1

Page 2: Theorie Des Graphes

Chapitre 1

Introduction

Le but de ce chapitre est de mettre en place les notions fondamentales sur lesgraphes afin de partir sur des bases saines.

1.1 Définitions fondamentales

Il existe plusieurs manières de caractériser un graphe, nous allons en parcourirquelques unes. Notons immédiatement qu’il existe deux grands types de graphes : lesgraphes orientés et les graphes non orientés. Nous allons commencer notre étude parles graphes orientés puis nous traiterons des différences avec le cas non orienté dansune section spécifique.

1.1 Définition (Graphe)Un graphe est caractérisé par 2 ensembles nommés X et E et respectivement nommésSommets et Arcs, avec :

(jXj = n les sommets seront numérotés de 1 à njEj = m les arcs seront numérotés de 1 à m

Par définition, E est composé de couples e = (i; j) 2 X � X.

On appelle respectivement i et j l’ origine et la destination de l’arc e.

Si la notation ensembliste des graphes est la seule qui soit rigoureuse, ces der-niers valent surtout par leur représentation graphique. En effet, soit le graphe G =

(X; E) = (X = f1; 2; 3; 4gE = f(1; 2) ; (2; 1) ; (2; 2) ; (2; 3) ; (2; 3) ; (4; 3) ; (4; 1)g

2

Page 3: Theorie Des Graphes

Ce même graphe peut être associé aux deux représentations suivantes et mêmed’autres. Du coup, n’oubliez jamais la règle suivante :

Ne vous fiez pas à l’aspect visuel de deux graphes pour les comparer.Seule la comparaison des ensembles de sommets et d’arcs est fiable !

f

1 2

4 3

a

b

c

d eg

1

24

3

b

a

c

d eg

f

FIG. 1.1: Deux représentations « graphiques » du même graphe

A cela, nous allons ajouter quelques définitions supplémentaires :

1.2 Définition (Boucle)On appelle boucle un arc (i; i)

Par exemple, dans le graphe de la figure (1.1), l’arc (2; 2) est une boucle.

1.3 Définition (Sommets adjacents)Les sommets i et j du graphe G = (X; E) sont dits adjacents si et seulement si, l’arc(i; j) ou l’arc (j; i) appartiennent à E.

Par exemple, dans le graphe de la figure (1.1), les sommets 1 et 4 sont adjacents(grâce à l’arc (4; 1)), alors que les sommets 2 et 4 ne le sont pas.

1.4 Définition (Graphe simple)Un graphe G = (X; E) est dit simple si et seulement si :

1. Pour tout couple (i; j) 2 X � X, il existe au plus un arc (i; j) 2 E

2. 8 i 2 X; l’arc (i; i) n’existe pas

3

Page 4: Theorie Des Graphes

De manière plus littéraire : un graphe simple est un graphe sans boucle ni arcs mul-tiples entre les même sommets.

Par exemple, le graphe de la figure (1.1) n’est pas un graphe simple car il contientà la fois la boucle (2; 2) et 2 arcs (2; 3).

Remarque : Il existe une bijection entre l’ensemble des graphes simples et l’en-sembles des relations binaires sur X, les propriétés sur les relations s’étendant doncaux graphes.

1.5 Définition (Graphe planaire)On qualifie de planaire tout graphe pouvant être dessiné sans que ses arcs ne secroisent.

Une fois de plus, il convient de ne pas oublier qu’il ne faut jamais se fier à la repré-sentation visuelle d’un graphe. Par exemple, le graphe de la figure suivante n’apparaîtpas planaire sur sa représentation de gauche. Toutefois, si vous modifiez sa représen-tation graphique comme montré à droite il est évident qu’il est bel et bien planaire.

FIG. 1.2: Exemple de graphe planaire

1.2 Les graphes non orientés

1.6 Définition (Graphe non orienté)On appelle graphe non orienté tout graphe où les arcs (i; j) et (j; i) sont indiscer-nables.

4

Page 5: Theorie Des Graphes

Le vocabulaire change un peu : on appelle habituellement arête un arc dans le casnon orienté.

1.3 Cocycles, degrés

Soit G = (X; E) un graphe orienté. On appelle cocycle d’un sommet l’ensemble dessommets qui lui sont adjacents ou l’ensemble des arcs qui lui sont incidents. On note :8>>><

>>>:�+(i) = fj 2 Xj(i; j) 2 Eg��(i) = fk 2 Xj(k; i) 2 Eg!+(i) = f(i; j) 2 Eg!�(i) = f(k; i) 2 Eg

Les cocycles � sont des cocycles de sommets, alors que les cocycles ! sont des co-cycles d’arcs. Les deuxièmes se révèlent beaucoup plus utiles dans le cas général.

Si nous reprenons le graphe de la figure (1.1), nous avons, par exemple :8>>><>>>:

�+(2) = f1 ; 2 ; 3g��(1) = f2 ; 4g!+(2) = fb ; c ; d ; eg!�(3) = fd ; e ; fg

Dans le cas non orienté, l’on a �+ = �� = � et, réciproquement, !+ = !� = !.

Notons qu’il existe un autre système de notation :(�+ , ��� , ��1

Les degrés sont des quantités attachées au sommet et qui expriment la cardinalitédes cocycles. On notera :(

d+G(i) = j�+(i)j = j!+(i)j demi degré extérieur/suprérieur de i dans Gd�G(i) = j��(i)j = j!�(i)j demi degré intérieur/inférieur de i dans G

En gros, le demi degré extérieur compte le nombre d’arcs qui sortent d’un sommetalors que le demi degré intérieur compte le nombre d’arcs qui entrent en un sommet.

On appelle degré du sommet i et l’on note dG(i) = d+G(i) + d�G(i).

Dans le cas non orienté, l’on a : dG(i) = d+G(i) = d�G(i)

Si l’on revient au cas orienté, on a un résultat intéressant. Soit G = (X; E), on a :Xi2X

d+G(i) =Xi2X

d�G(i)

5

Page 6: Theorie Des Graphes

car chaque arc possède exactement une extrémitié initiale et une extrémité finale.

D’où : Xi2X

d+G(i) =Xi2X

d�G(i) = m

avec m nombre d’arcs du graphe.

Finalement :d(G) =

Xi2X

d+G(i) +Xi2X

d�G(i) = 2m

1.4 Matrices associées aux graphes

Il y a deux matrices typiquement associées aux graphes : la matrice d’incidencearc-sommet et la matrice d’adjacence sommet-sommet.

1.4.1 Matrice d’incidence arc-sommet

La matrice d’incidence est de taille n �m, les sommets sont associés aux lignes, lesarcs aux colonnes. NotonsAi(G) la matrice d’incidence associée au grapheG = (X; E).Pour pouvoir l’écrire, nous devons numéroter les arcs du graphe. On obtient alors :

aij =

8><>:

1 si le sommet i est le sommet initial de l’arc j�1 si le sommet i est le sommet terminal de l’arc j0 partout ailleurs

Cette notation est très lourde car la matrice est très creuse. En effet sur une mêmecolonne seuls deux éléments ne sont pas nuls : ceux qui correspondent au sommet ini-tial (1) et au sommet terminal (-1) de l’arc. Sur une même ligne, le nombre d’élémentségal à 1 nous donne le demi degré supérieur alors que le nombre d’éléments égal à -1nous indique le demi degré inférieur du sommet.

Dans le cas non orienté, on ne place que des 1 et la somme d’une ligne indique ledegré du sommet.

Cette matrice est inexpoitable du point de vue algorithmique mais elle est extrè-mement importante du point de vue théorique car elle permet de faire le lien, parexemple, entre la théorie des flots et la programmation linéaire.

6

Page 7: Theorie Des Graphes

1.4.2 Matrice d’adjacence sommet-sommet

C’est une matrice n � n telle que aij = 1 pour tout arc (i; j) appartenant au graphe,tous les autres éléments étant nuls. Lorsqu’un graphe est dense, c’est à dire lorsquem est proche de n2, cette matrice constitue un moyen de stockage efficace au point devue place mémoire mais elle s’avère délicate à utiliser algorithmiquement.

Dans le cas non orienté, la matrice d’adjacence est symétrique. En effet, pour laconstruire on considère chaque arête du graphe comme 2 arcs opposés, lesquels ser-vent de base à la construction de la matrice.

1.4.3 Expression des matrices

Nous allons expliciter les deux matrices sur le graphe suivant. Afin d’éviter touteambiguité entre les sommets et les arcs ces derniers ont été «numérotés» par deslettres.

4

a

b

c

d

e

2

1

3

FIG. 1.3: Graphe d’exemple pour l’expression des matrices d’incidence et d’adjacence

a b c d e

1 1 1 0 0 02 �1 0 1 1 03 0 �1 �1 0 14 0 0 0 �1 �1

1 2 3 41 0 1 0 02 0 0 1 13 0 0 0 14 0 0 0 0

Incidence Adjacence

7

Page 8: Theorie Des Graphes

1.5 Chemins, Chaînes, Circuits, Cycles

Les notions de chemin et de circuit dans les graphes orientés ainsi que leurs homo-logues dans les graphes non orientés, respectivement chaîne et cycle, sont absolumentfondamentales.

Après les définitions générales de ces notions, nous examinerons 2 cas particuliersdes plus intéressants.

1.5.1 Définitions générales

1.7 Définition (Chemin)On appelle chemin depuis un sommet s vers un sommet t une suite d’arcs :

( s = i0 ; i1 )( i1 ; i2 )( i2 ; i3 )

::: :::( ik�1 ; ik = t )

4

a

b

c

d

e

2

1

3

FIG. 1.4: Exemple de chemin (en trait gras) du sommet 1 au sommet 4

De manière plus littéraire, un chemin est une succession d’arcs qui permet derelier un sommet s à un sommet t en empruntant chaque arc dans le bon sens, c’est àdire de son origine vers sa destination.

La figure (1.4) illuste la notion de chemin depuis le sommmet 1 vers le sommet 4.Les arcs utilisés sont dessinés en gras. L’on voit immédiatement qu’ils sont toujoursparcourus depuis leur origine vers leur destination. Ainsi la destination d’un arc estl’origine de son successeur dans le chemin.

8

Page 9: Theorie Des Graphes

Si l’on relache cette dernière contrainte, c’est à dire que l’on s’autorise à emprunterun arc à l’endroit ou à l’envers, on parle alors de chaîne.

1.8 Définition (Chaîne)Une chaîne est un chemin sur lequel on a relaché la contrainte d’orientation.

La notion de chaîne est la seule à avoir une signification dans le cas des graphesnon orientés.

La figure (1.5) illustre la notion de chaîne. Dans ce cas, on voit clairement que l’arcc est parcouru à contre-courant.

4

a

b

c

d

e

2

1

3

FIG. 1.5: Exemple de chaine (en trait gras) du sommet 1 au sommet 4

1.9 Définition (Circuit, Cycle)Un circuit est un chemin dont l’origine et la destination sont confondues.

Dans le cas non orienté, on parle de cycle.

La figure suivante illustre ces deux notions. Notez l’inversion du sens de l’arc d

entre les deux dessins.

1.10 Définition (Chemin simple)Un chemin qui ne passe qu’une seule fois par chacun des arcs qu’il emprunte est ditsimple

1.11 Définition (Chemin élémentaire)Un chemin qui ne passe qu’une seule fois par chacun des sommets qu’il traverse estdit élémentaire

9

Page 10: Theorie Des Graphes

4

a

b

c

d

e

2

1

3

a

b

c

d

e

2

1

3

4

Cycle Circuit

FIG. 1.6: Exemple de chemin (en trait gras) du sommet 1 au sommet 4

Corollaire immédiat : Un chemin élémentaire est nécessairement simple.

1.1 ThéorèmeTout chemin de s vers t contient un chemin élémentaire de s vers t.

La démonstration de cette propriété est laissée en exercice.

Dans la suite de ce cours, on ne s’intéressera désormais plus qu’aux chemins élé-mentaires. Aussi, à partir de maintenant, la notion de chemin devra être comprisecomme chemin élémentaire.

1.5.2 Chemin Eulérien, chemin Hamiltonien

Ces deux types particuliers de chemin et de cycle, que l’on retrouve dans les casorientés ou non orientés sont particulièrement intéressants car on les retrouve dansde nombreux problèmes appliqués.

1.12 Définition (Chemin Eulérien)On qualifie d’Eulérien un chemin qui passe une et une seule fois par chaque arc dugraphe qui lui sert de support.

En outre, si l’on impose que l’origine et la destination du chemin soit confondues,on parle de circuit Eulérien.

10

Page 11: Theorie Des Graphes

L’application industrielle la plus spectaculaire est connue sous le nom de problèmedu postier chinois et consiste à chercher le circuit Eulérien de longueur minimale surun graphe aux arcs valués.

1.13 Définition (Chemin Hamiltonien)On qualifie d’Hamiltonien un chemin qui passe une et une seule fois par chaque som-met du graphe qui lui sert de support.

En outre, si l’on impose que l’origine et la destination du chemin soit confondues,on parle de circuit Hamiltonien.

A présent, valuons chaque arc du graphe et recherchons le circuit Hamiltonien delongueur minimale sur le graphe. On obtient le problème ultra classique du Voyageurde Commerce.

1.6 Sous graphes, graphes partiels

1.6.1 Définitions générales

Soit G = (X; E) un graphe. On va désormais définir les notions importantes desous graphe et de graphe partiel. Afin d’illustrer notre propos, nous nous servirons dugraphe suivant comme base :

i

bc

e

2

3

a1h

f

5

d4

g

6

FIG. 1.7: Graphe de base pour l’illustration des graphes partiels et sous graphes

1.14 Définition (Graphe partiel)Soit Ep � E un sous ensemble des arcs E de G, Gp = (X; Ep) est un graphe partielde G.

11

Page 12: Theorie Des Graphes

i

bc

e

2

3

a1h

f

5

d4

g

6

2

3

a1h

f

5

d4

g

6

Sélection d’arcs (en gras) Graphe partiel obtenu

FIG. 1.8: Exemple d’extraction d’un graphe partiel

En résumé, on obtient un graphe partiel de G en supprimant certains arcs. Parexemple, dans la figure (1.8), et à partir du graphe de la figure (1.7), si l’on ne retientque les arcs marqués en gras sur la partie de gauche, l’on obtient le graphe partiel dela partie de droite.

Les raisons de travailler sur des graphes partiels sont légion. Par exemple, l’onpourrait vouloir se limiter aux arcs présentant certaines caractéristiques importantes.Considérons un problème de recherche d’itinéraires où chaque axe routier est repré-senté par un arc. Si l’on ne désire emprunter que des autoroutes, on peut extraire legraphe partiel associé aux autoroutes.

1.15 Définition (Sous graphe)Soit Xp � X un sous ensemble des sommets X de G. On appelle sous graphe de G

tout graphe Gs = (Xp; E \ (Xp � Xp)).

De manière plus littéraire, on obtient un sous graphe en extrayant un sous en-semble des sommets de G et en ne retenant que les arcs qui relient ces sommets, telqu’illustré sur la figure (1.8).

12

Page 13: Theorie Des Graphes

i

bc

e

2

3

a1h

f

5

d4

g

6 be

2

3

a1

Sélection de sommets (en gras) Sous graphe obtenu

FIG. 1.9: Exemple d’extraction d’un sous graphe

1.6.2 Cliques, Stables, Coloration

Deux sous graphes particuliers ont une importance toute particulière dans le mondede la théorie des graphes : les cliques et les stables. Comme nous allons le voir immé-diatement, ces deux notions sont totalement opposées.

1.16 Définition (Clique)On appelle clique sur un graphe G tout sous graphe complet.

1.17 Définition (Stable)Un stable sur un graphe G est un sous graphe sans arc.

Remarque : Un sommet isolé est à la fois une clique et un stable.

1.18 Définition (Coloration)On appelle Coloration une partition en stables d’un graphe.

Ce dernier vocabulaire est lié au problème classique de coloration d’une carte.Soit une carte géographique représentant plusieurs pays. On souhaite colorier chaquepays de manière à ce qu’il n’ait pas la même couleur que chacun de ses voisins.

Ce problème peut être résolu en cherchant une partition en stables du grapheobtenu en associant chaque pays à un sommet et chaque arc à une frontière communeentre 2 pays. Il suffit alors d’associer une couleur à chaque stable obtenu.

Remarque : on essaye le plus souvent de déterminer le nombre minimal de cou-leurs nécessaires. Il a été démontré que l’on peut toujours colorier un graphe planaireavec, au plus, 3 couleurs.

13

Page 14: Theorie Des Graphes

Chapitre 2

Arbres et parcours

2.1 Notion d’arbre

2.1.1 Définitions fondamentales

La notion d’arbre est fondamentale en recherche opérationnelle. Après avoir donnéune première définition, nous énumèrerons plusieurs propriétés équivalentes à cettedéfinition. Notons immédiatement que la notion d’arbre est non orientée : elle s’ap-plique aussi bien au cas qu’au cas non orienté.

2.1 DéfinitionUn arbre est un graphe connexe et sans cycle (propriété 0).

Les propriétés suivantes (qui s’appliquent à un graphe comptant n sommets) sontéquivalentes à la définition précédente :

1. Un arbre est un graphe connexe qui compte exactement n� 1 arcs

2. Un arbre est un graphe sans cycle qui compte exactement n � 1 arcs. On parlede graphe acyclique minimal

3. Un arbre est un graphe sans cycle tel que si l’on rajoute un arc quelconque, oncrée un cycle

4. Un arbre est un graphe connexe tel que la suppression d’un arc quelconque en-gendre la séparation en 2 composantes connexes. On parle de graphe connexemaximal

5. Dans un arbre, tout couple de sommets est relié par une et une seule chaîne.

14

Page 15: Theorie Des Graphes

2.1.2 Démonstration de l’équivalence des définitions sur lesarbres

La démonstration de l’équivalence de ces propositions nécessite un théorème in-termédiaire.

2.1 ThéorèmeSoit G = fX; Eg un graphe quelconque, alors :

– Si G est sans cycle, alors m � n� 1

– Si G est connexe, alors m � n� 1

La démonstration de ce théorème se fait de manière constructive.

En effet, considérons un graphe G = fX; Eg, jXj = n dont l’on retire tous les arcs.On ajoute alors les arcs 1 par 1.

A un instant donné, la situation peut être telle que représentée par la figure (2.1).

FIG. 2.1: Construction d’un arbre : situation de base

Lorsque l’on rajoute un arc, 2 cas peuvent se présenter :

1. L’arc réunit 2 sommets de la même composante connexe (2.2.a).

– Le nombre de composantes connexes du graphe ne change pas

– On crée un cycle dans la composante connexe

2. L’arc réunit 2 sommets appartenant à des composantes connexes différentes (2.2.b).

– Le nombre de composantes connexes diminue de 1

– On ne rajoute pas de cycle dans le graphe

15

Page 16: Theorie Des Graphes

(a)

(b)

FIG. 2.2: Construction d’un arbre : opérations élémentaires

Appliquons ce principe de construction à la démonstration du théorème précé-dent.

Si l’on désire que le graphe soit sans cycle, il nous faut procéder par la deuxièmeméthode d’ajout d’arc. Initialement, comme il n’y a pas d’arcs, il y a n compo-santes connexes. A chaque ajout d’arc, le nombre de composantes connexes di-minue de 1 unité. Après avoir ajouté n � 1 arcs par cette méthode, il ne restequ’une seule composante connexe, le graphe est donc connexe. Si maintenant,l’on construit un graphe par l’un ou l’autre principe de construction, il faut ajou-ter au moins (n-1) arcs avant d’obtenir une seule composante et donc un grapheconnexe. D’où la seconde partie du théorème. En vertu du premier principe deconstruction, tout ajout d’arc rajoutera un cycle, ce qui démontre la premièrepartie du théorème.

16

Page 17: Theorie Des Graphes

Une fois le théorème démontré, les implications suivantes sont évidentes :8>>><>>>:(0)) (1)(0)) (2)(1)) (4)(2)) (3)

Pour démontrer l’équivalence des propriétés sur les arbres, nous allons créer laboucle d’implications suivante (les implications non encore démontrées sont engras) :

8>>>>>>>><>>>>>>>>:

(0)) (2)(2)) (3)(3)) (1)(1)) (4)(4)) (5)(5)) (0)

Démonstration 3 ) 1

Supposons que H soit un arbre non connexe. Il possède donc au moins 2 compo-sants connexes. En appliquant la règle de construction numéro 2, il est possibled’ajouter un arc sans créer de cycle, ce qui entraîne une contradiction.

Moralité : un arbre est un graphe connexe et sans cycle qui possède exactementn� 1 arcs.

Démonstration 4 ) 5

Supposons qu’il existe deux chaînes distinctes permettant de joindre un couplede sommets (i; j). Alors, il existe au moins un arc (k; l) appartenant à la pre-mière chaîne mais pas à la seconde. Supprimons cet arc, il existe encore unechaîne permettant de joindre i à j. Le graphe est toujours connexe après sup-pression d’un arc ce qui contredit la proposition 4.

Démonstration 5 ) 0

Supposons qu’il existe un cycle, alors, il est possible d’obtenir 2 chaînes reliantchaque sommet du cycle à un autre.

En outre, l’existence d’une chaîne permettant de relier chaque couple du grapheest la définition même de la propriété de connexité.

17

Page 18: Theorie Des Graphes

Ainsi se termine la démonstration d’équivalence des propriétés d’un arbre !

2.1 CorollaireAjouter un arc à un arbre créée un et un seul cycle

2.2 CorollaireTout graphe connexe contient un graphe partiel qui est un arbre.

Ce second corollaire est évident à démontrer par construction. Supprimons toutesles arêtes du graphe avant de les réintroduire sans créer de cycle : nous venonsbien de créer un graphe partiel qui est un arbre !

2.1.3 Démonstrations complémentaires

2.2 Définition (Racine)Soit un graphe orienté G. Le sommet s est dit racine de G = (X; E) si et seulementsi, 8 x 2 Xnfsg il existe un chemin de s vers x.

2.3 Définition (Arborescence)Un arbre orienté admettant une racine est une arborescence

C’est un abus de langage commun que d’appeler arbre une arborescence. La figuresuivante illuste 2 arbres, l’un est une arborescence, l’autre non.

Arborescence Arbre

FIG. 2.3: Arborescence ou pas?

18

Page 19: Theorie Des Graphes

Chapitre 3

Plus courts chemins

3.1 Notations

Ce chapitre suppose que l’on travaille sur un graphe orienté G = (X;E), avecjXj = n et jEj = m. Chaque arc (i; j) est muni d’un coût cij.

Dans la suite on notera Pst un chemin depuis un sommet s (la source) vers un

sommet t (la destination).

3.1 Définition (Longueur d’un chemin)On appelle longueur d’un chemin P et on note l(P ) la quantité

l(P ) =X

(i; j)2P

cij (3.1)

Un chemin d’un sommet vers lui même sera toujours de longueur nulle.

3.2 Définition (Plus court chemin)Un plus court chemin de s vers t est un chemin de s vers t dont la longueur est mini-male parmi tous les chemins de s vers t. Dans la suite on notera Ps�

t un tel chemin.

3.3 Définition (Fonction de marquage, potentiel)On appelle fonction de marquage ou potentiel une application de X dans R.

En clair, cela revient à valuer, ou porter une valeur, sur chacun des sommets dugraphe.

3.4 Définition (Plus courtes distances)On appelle plus courte distance de s à i et l’on note ds(i) la fonction de marquage égaleà la longueur du plus court chemin de s vers i. Par abus de notation, et une fois lasource s fixée, on écrira d(i) pour ds(i).

19

Page 20: Theorie Des Graphes

3.1 Remarque (Représentation d’un chemin)Il existe deux grandes manières de représenter un chemin. La première consiste àdonner la suite des arcs qui le composent. Ainsi, un chemin Ps

t peut s’écrire :

P st = ((s = i1; i2) ; (i2; i3) ; (i3; i4) ; : : : ; (ip�1; ip = t))

Plus simplement, et comme nous ne travaillons que sur des graphes simples, onpeut noter un chemin par la succession des sommets rencontrés. Ainsi, le cheminprécédent peut désormais s’écrire :

P st = (s = i1; i2; i3 : : : ; ip�1; ip = t)

3.1 Théorème (Condition d’optimalité des distances)Soit d(:) la plus courte distance depuis la source s vers un sommet quelconque dugraphe. Alors :

8 (i; j) 2 G d(j) 6 d(i) + cij

En effet supposons qu’il existe deux sommets i et j tels que d(j) > d(i) + cij . Ceciimplique notament que l’arc (i; j) n’est pas utilisé dans le chemin Pj associé à d(j).Soit Pi le plus court chemin vers i. Par définition sa longueur est d(i). Si on lui ajoutel’arc (i; j), on obtient un chemin de longueur d(i)+ cij < d(j). D’où la contradiction card(j) est sensée être la plus courte distance pour aller en j.

3.2 Le problème

Rechercher un plus court chemin de s vers t revient à rechercher un chemin de s

vers t de longueur minimale s’il existe. Les conditions d’existence sont les suivantes :

1. Il existe au moins un chemin de s vers t

2. Aucun chemin de s vers t ne contient de circuit absorbant i.e. de circuit de lon-gueur négative.

En effet, si un tel circuit existait, l’on pourrait le parcourir indéfiniment pourabaisser la longueur du chemin.

Dans la suite de cet exposé nous supposons :

1. Il existe un chemin depuis un sommet s vers tous les autres sommets du graphe.

2. Il n’existe pas de circuit absorbant dans le graphe.

20

Page 21: Theorie Des Graphes

3.1 Propriété (Propriété de sous optimalité)Soit P s�

t = (s = i1; i2; i3; : : : ; ip�1; ip = t) un plus court chemin de s vers t. Alors,8 j 2 2::p�1, le sous chemin P s

ij= (s = i1; i2; : : : ; ij) est un plus court chemin de s vers

ij.

En effet, soit P un plus court chemin de s vers t passant par le sommet k. AppelonsP1 le sous chemin de s à k et P3 le sous chemin de k à t. On a P = P1 [P3. Supposonsque P1 ne soit pas optimal. Alors il existe un chemin P2 6= P1 entre s et k tel quel(P2) < l(P1). Dans ce cas P2 [P3 est un chemin de s vers t de longueur inférieure àcelle de P1 [P3 = P ce qui contredit l’hypothèse.

tk

P1

s P3

P2

FIG. 3.1: Démonstration de la propriété de sous optimalité

Soit P � un plus court chemin de la source s vers un sommet quelconque t.

– Par définition de la plus courte distance (3.4), d(t) = l(P �).

– Par application de la propriété précédente, d(i) = l(P s�i ) pour chacun des som-

mets i 2 P �, où P s�i est la restruction de P� entre s et i.

Conséquence : Pour chaque arc i; j 2 P , on a d(j) = d(i) + cij .

La réciproque de cette propriété fondamentale fait l’objet du théorème suivant :

3.2 ThéorèmeSoit un chemin P = Ps

t tel que pour chaque arc (i; j) 2 P l’on ait d(j) = d(i) + cij.Alors P est un plus court chemin de s vers t.

Dans cette démonstration, on utilise la notation P = (s = i1; i2; i3; : : : ; ip�1; ip = t).On part de d(t), plus courte distance de s à t que l’on décompose de manière à faireapparaître le coût des arcs composant P et le tour est joué.

d(t) = d(ip) = (d(ip) � d(ip�1))+ (d(ip�1) � d(ip�2))+ (d(ip�2) � d(ip�3))...

...+ (d(i2) � d(i1))

21

Page 22: Theorie Des Graphes

avec d(i1) = d(s) = 0 (hypothèse 2).

Or, par hypothèse, pour tout arc (i; j) 2 P , d(j) = d(i) + cij ou, pour ce qui nousconcerne ici : cij = d(j) � d(i) Ce qui nous donne :

d(t) =X

(i; j)2P

d(j) � d(i) =X

(i; j)2P

cij = l(P )

La plus courte distance au sommet t étant égale à la longueur du chemin P , celui-ciest un plus court chemin de s vers t.

3.2 PropriétéSoit G0 = (X; E0), où E0 est l’ensemble des arcs (i; j) tels que cij = d(j) � d(i). Alors,G0 contient une arborescence enracinée en s.

Démonstration : Pour chaque sommet t, il existe un plus court chemin de s à t dansG0. Réciproquement, il suffit de construire une arborescence dans G0 pour obtenirun plus court chemin depuis s vers tout autre sommet à l’aide d’un algorithme deparcours.

3.3 Les algorithmes de plus court chemin

Selon les caractéristiques du graphe que l’on étudie, il existe 3 grandes familles derecherche de plus courts chemins depuis un sommet s vers tous les autres sommetsdu graphe.

3.3.1 Graphe acyclique

3.2 Remarque (Précision importante concernant le vocabulaire)Dans le cas des graphes non orientés, le terme acyclique décrit un graphe sans cycle,alors que si l’on traite des graphes orientés, on appelle acyclique tout graphe sanscircuit.

Lorsqu’un graphe ne comporte pas de circuit, les arcs traduisent une relationd’ordre partiel sur le graphe. Ce qui veut dire que l’on peut numéroter les sommetsde G de telle manière que (i; j) 2 G ) i < j. Une telle numérotation s’appelle un tritopologique sur G. Le calcul d’un tri topologique (ou ordre topologique) sur un réseause fait par un algorithme de complexité maximale en O(m).

Dès lors qu’il existe un circuit sur le graphe, il devient impossible de créer un telordre car tout sommet membre d’un circuit est l’un de ses propres prédécesseurs.

22

Page 23: Theorie Des Graphes

L’algorithme suivant permet de déterminer un ordre topologique sur un graphe.

Algorithme de tri topologique

8 i 2 X �(i) 08 (i; j) 2 G �(j) �(j) + 1Liste fi 2 X = �(i) = 0gsuivant 0Tant Que (Liste 6= ;)

Retirer un sommet i de la listesuivant suivant + 1ordre[i] suivant8 (i; j) 2 !+(i)

�(j) �(j) � 1Si (�(j) = 0)Alors

Liste Liste [ fjgFin Si

Fin 8Fin Tant QueSi (suivant < n) Alors

Le réseau contient au moins un circuitSinon

Le tableau ordre indique l’ordre topologiqueFin Si

Le principe de cet algorithme est simple et repose sur l’élimination progressive desarcs sortant de chaque sommet. Nous utilions les variables �(i) indiquant à chaqueinstant, combien d’arcs non encore biffés du réseau entrent dans le sommet i. Initiale-ment, �(i) = j!�(i)j, 8 i 2 X et la liste contient l’ensemble des sommets qui n’ont pasde prédécesseurs et qui sont donc directement numérotables. A chaque fois que l’onexamine un sommet, on coupe les arcs qui en sortent et on place dans la liste les som-mets qui n’ont plus d’arc entrant. Ainsi, on est sûr d’examiner tous les prédécesseursd’un sommet avant de le numéroter.

Une fois cet ordre topologique connu, le calcul des plus courts chemins est trèssimple. En effet, supposons que l’on cherche à calculer d(k) et que l’on connaisse lesplus courtes distances pour tous les sommets de rang topologique inférieur à celui dek.

De par la définition de l’ordre topologique, tous les arcs arrivant en k proviennentde sommets de rang inférieur, c’est-à-dire de sommets pour lesquels on connaît déjàles plus courtes distances (de par l’hypothèse). Alors, pour connaître d(k) (et, par la

23

Page 24: Theorie Des Graphes

même occasion, un plus court chemin joignant s à k), il suffit de considérer :

j = arg min(i; k)2G

(d(i) + cik)

d(k) = d(j) + cjkpred[k] = j

où j est le sommet prédécesseur de k de distance minimale par rapport à s.

On obtient alors l’algorithme suivant initialisé en s, seul sommet sans prédéces-seur par définition.

Algorithme de Bellmann

d(s) 08 i 2 X n fsg d(i) +1Renuméroter les sommets dans l’ordre topologiquePour k variant de 1 à n

j arg mini : (i; k)2X

(d(i) + cik)

d(k) d(j) + cj kpred[k] j

Fin Pour

3.3.2 Arcs à coûts positifs, algorithme de Dijkstra

Lorsque le réseau contient des circuits, il n’est plus possible d’utiliser l’algorithmeprécédent qui s’appuie sur un tri topologique. Toutefois, il est toujours possible detirer profit de la non négativité des coûts sur les arcs.

Pour ce faire on partitionne l’ensemble des sommets en deux ensembles S et S.Les sommets de S sont dits fixés et ceux de S temporaires. On utilise une fonction demarquage d(:) que nous appellerons distance et qui à la fin de l’algorithme sera égaleà la distance minimale depuis s vers chaque sommet.

A chaque étape, la définition de d est la suivante :

d(i) est la longueur d’un plus court chemin de s vers i dont tous lessommets intermédiaires sont dans S. Initialement, d(s) = 0 et d(i) = +1,8 i 6= s.

L’algorithme repose sur le postulat suivant :

Les distances aux sommets fixés (c’est-à-dire les sommets de S) sont mi-nimales.

24

Page 25: Theorie Des Graphes

A chaque itération, le sommet temporaire de plus petite distance est transférédirectement dans S et l’on met à jour les distances de tous ses successeurs.

La complexité temporelle de l’algorithme de Dijkstra sous cette forme simple estO(n2). En effet, à chaque étape, on transfère un nœud de S vers S, ce qui nous fait nitérations. A l’intérieur de chaque itération, on recherche le sommet de S qui possèdela plus petite distance temporaire, opération en O(n) dans le pire des cas. Toutefois,des structures de données performantes (telles que les Tas de Fibonnacci) permettentde rabaisser significativement cette complexité (O(m+ n log n)).

Algorithme de Dijkstra (forme simple)

S ;S Xd(s) 0pred[s] 0d(i) +1 8 i 2 Xn fsgTant que (S 6= ;)

i arg minj2S

(d(j))

S S [ figS S n fig8 (i; j) 2 !+(i)

Si (d(j) > d(i) + cij)Alors

d(j) d(i) + cijpred[j] i

Fin SiFin 8

Fin Tant que

Démonstration de l’algorithme :

Elle se fait par récurrence sur la taille de S.

3.3.3 Le cas général, algorithme de Ford

Dans le cas général, la seule solution consiste à regarder itérativement les arcs enmodifiant les distances jusqu’à ce que la condition du théorème (3.1) soit vérifiée pourchacun d’entre eux.

25

Page 26: Theorie Des Graphes

L’algorithme général de Ford (dit Label-correcting) est le suivant :

Algorithme de Ford (forme simple)d(s) 0d(i) +1 8 i 2 X n fsgTant que 9 (i; j) 2 G avec d(j) > d(i) + cij

d(j) d(i) + cijpred[j] i

Fin tant que

Cet algorithme est très intéressant car il converge quelle que soit la méthode desélection de l’arc violant les conditions d’optimalité. Notons que cet algorithme permetde détecter la présence d’un circuit négatif lorsqu’une distance devient inférieure à�nC avec C = max

(i; j)2Gjcijj.

La preuve de cet algorithme est immédiate. En effet, à l’issue de l’algorithme, ilsuffit de remonter la chaîne des prédécesseurs stockée dans le tableau pred pourobtenir des chemins de s vers tous les autres sommets du graphe uniquement consti-tués d’arcs vérifiant la condition (3.1). Le théorème (3.2) nous garantissant que de telschemins sont bien des plus courts chemins de s vers les autres sommets.

Sous cette forme directe, l’algorithme de Ford est informatiquement inexploitable.C’est pourquoi l’on a recours à l’algorithme modifié qui repose sur l’utilisation d’uneliste de sommets. Cette dernière contient les sommets dont les distances ont été mo-difiées et qui sont donc susceptibles de créer des arcs violant la condition (3.1).

Algorithme de Ford modifiéd(s) 0d(i) +1 8 i 2 X n fsgLISTE fsgTant que LISTE 6= ;

Retirer un sommet i de la liste8 (i; j) 2 !+(i)

Si (d(j) > d(i) + cij )Alors

d(j) d(i) + cijpred[j] iSi j 62 LISTE

LISTE LISTE [ fjgFin si

Fin siFin 8

Fin tant que

26

Page 27: Theorie Des Graphes

La même remarque s’impose : la convergence est assurée quelle que soit la poli-tique de gestion de la liste. Les performances de cet algorithme sont très intéressantesdans deux cas particuliers :

Gestion File : C’est la forme la plus répandue car elle permet, moyennant des as-tuces algorithmiques non négligeables que nous ne détaillerons pas ici, de dé-tecter les circuits de coût négatif. Les sommets sont retirés dans l’ordre où ilssont introduits dans la liste. En pratique, on insère les sommets en fin de listepour les retirer en tête de liste. Sa complexité est O(nm).

Gestion Dequeue : C’est l’algorithme (en pratique !) le plus performant pour ré-soudre les problèmes de plus court chemin dans le cas général. Si l’on retiretoujours les sommets en tête de liste, ils sont insérés en fin de liste lors de leurpremière insertion et en tête de liste s’ils doivent être examinés une nouvellefois.

Il existe une autre variante qui utilise deux listes couplées l’une à l’autre. Trèsperformantes, ces deux implémentations peuvent néammoins avoir un compor-tement non polynômial sur des réseaux pathologiques.

27

Page 28: Theorie Des Graphes

Chapitre 4

Le problème de l’ordonnancement

4.1 Introduction

Soit un projet complexe composé d’un ensemble de tâches que l’on souhaite fixerdans le temps de manière à ce que le projet se termine au plus vite.

4.2 Le problème

On suppose le projet composé de n tâches numérotées de 1 à n chacune dotée d’unedurée di supposée connue (la terminologie Anglo-Saxonne est processing time, laquelleest souvent notée pi).

Le problème de l’ordonnancement consiste à affecter à chaque tâche i une date dedébut ti. On suppose que le projet commence à t0 = 0.

Divers types de contraintes peuvent se greffer sur le noyau dur du problème :

Les contraintes temporelles portent sur les dates de début et de fin des tâches

Les contraintes d’allocation de ressources spécifient qu’une ressource critique(e.g., la grue dans un chantier de BTP) ne peut être utilisée par plus d’un certainnombre de tâches à la fois

L’objectif est de minimiser la durée totale du projet (makespan en Anglais), c’est-à-dire, calculer la date de fin au plus tôt du projet.

4.1 Définition (Date de fin au plus tôt)On appelle date de fin au plus tôt et l’on note L la durée minimale d’exécution duprojet permettant de respecter les contraintes.

28

Page 29: Theorie Des Graphes

4.2.1 Les contraintes temporelles (ou contraintes de potentiel)

Elles sont essentiellement de 3 types :

1. La tâche i ne peut commencer avant la date t0i dite date de disponibilité :

ti > t0i

2. La tâche i ne peut terminer après la date t�i dite date d’échéance :

ti + di 6 t�i

3. Contraintes de précédence, la tâche j ne peut commencer avant la fin de la tâchei :

ti + di 6 tj

On peut généraliser ces dernières contraintes à une contrainte plus générale depotentiel entre les tâches i et j en introduisant la quantité aij 2 R et telle que :

ti + aij 6 tj

Notons que les notations et termes Anglais sont les suivants :(t0i ri release timet�i di deadline

4.2.2 Les contraintes cumulatives

Elles permettent de traiter certaines contraintes d’allocation de ressources. Soitune ressource Rk dont la quantité totale disponible pour le projet à l’instant t est�k(t).

On note ki (�i; t) la quantité de Rk nécessaire à l’accomplissement de la tâche i àl’instant t sachant que la ti = �i.

La contrainte cumulative relative à la ressource k et à l’instant t s’écrit :Xi=1::n

ki (�i; t) 6 �k(t)

Ce genre de contraintes est pénible à traiter car il nécessite de connaître la datede début de chacune des tâches ... ce qui est le but final du problème.

Choisir �k et ki constants au cours du temps ne simplifie pas énormément le pro-blème car il est toujours nécessaire de connaître les dates de départ pour traiter lacontrainte.

29

Page 30: Theorie Des Graphes

4.2.3 Contraintes disjonctives

Ces contraintes permettent de spécifier que 2 tâches ne peuvent pas avoir lieu enmême temps (par exemple, les entrepreneurs qui en sont chargés ne s’entendent pas).

La première méthode pour modéliser cette contrainte consiste à utiliser un oulogique sur les deux contraintes de potentiel suivantes :

ti + di 6 tj

tj + dj 6 ti

Aussi élégante soit elle, cette méthode n’est guère recevable car elle entraîne desdifficultés algorithmiques non négligeables. En particulier, le nombre de cas à traiterséparément explose lorsque l’on augment le nombre de disjonctions.

L’autre méthode consiste à introduire une contrainte d’allocation de ressourceentre ces deux tâches.

De toute manière, le traitement de ces contraintes est malaisé dans le cas général.

Dans la suite de cet exposé, nous ne considérerons que des contraintes de potentielsimples.

4.3 Un exemple simple : le chantier

Soit un chantier constitué des tâches suivantes :

N0 Description Durée1 Terrassement 10 jours2 Installation de la grue 2 jours3 Coulage des Fondations 5 jours4 Branchement électrique 3 jours5 Gros œuvre de maçonnerie 6 jours

Les contraintes de précédence sont les suivantes :

– 1, 2, et 4 précèdent 3

– 2 précède 5

4.2 Définition (Date au plus tôt)On appelle Date au plus tôt et on note �i la date minimum à laquelle on peut démarrerla tâche i. Il est clair que ti > �i et que tn+1 = L.

On pose �0 = 0.

30

Page 31: Theorie Des Graphes

4.3 Définition (Date au plus tard)On appelle Date au plus tard et on note �i la date maximale à laquelle on peut dé-marrer la tâche i sans retarder l’exécution du projet ou violer une contrainte. Il estclair que ti 6 �i avec tn+1 = L.

4.4 Définition (Marge)La marge d’une tâche i (notée mi) est la différence entre les dates au plus tard et auplus tôt, soit :

mi = �i � �i

4.5 Définition (Ordonnancement au plus tôt (tard))On appelle Ordonnancement au plus tôt (tard) l’ordonnancement du projet correspon-dant aux dates au plus tôt (tard).

4.4 Représentation du problème d’ordonnancement

Il existe trois grands modèles pour représenter les ordonnancements.

4.4.1 Diagramme de Gantt

C’est le modèle le plus ancien où l’on représente une tâche par un rectangle dontla longueur représente la durée. L’axe horizontal représente le temps. Ce graphe n’estd’aucune utilité pour optimiser le projet car il ne permet pas de faire apparaître lescontraintes. En revanche, il est intéressant pour suivre le projet une fois l’optimi-sation réalisée. Il est à noter que, bien que ce diagramme soit en 2 dimensions, ladimension verticale ne sert qu’à séparer les tâches car elle n’est associée à aucunegrandeur du problème.

4.4.2 Le modèle PERT (Program Evaluation and Review Tech-nique)

C’est un graphe où les tâches et les contraintes de précédence sont représentéespar des arcs. Les sommets correspondent à des instants privilégiés du déroulementdu processus : les dates de début et de fin de chaque tâche.

Les arcs représentant les tâches ont pour coût di alors que les arcs de précédenceont un coût nul. On rajoute deux sommets fictifs représentant respectivement lesdates de début et de fin du projet.

31

Page 32: Theorie Des Graphes

T â c h e 2

T â c h e 1 T â c h e 5

T â c h e 3T â c h e 4

FIG. 4.1: Diagramme de Gantt associé au problème du chantier

Le «réseau» PERT est très proche du diagramme de Gantt mais permet de modéli-ser les contraintes. Il a été mis au point aux Etats-Unis pour résoudre les problèmesliés à la construction de sous-marins nucléaires.

Tâche 2

Tâche 5

Tâche 3

Tâche 1

Tâche 4

Début Fin

Transitions

FIG. 4.2: Réseau PERT associé au problème du chantier

4.4.3 Le modèle Potentiel-tâches

Ici les tâches sont représentées par des sommets et les arcs trahissent les contraintesde précédence. Ainsi la contrainte i précède j est elle symbolisée par un arc entre lessommets i et j et de longueur di.

Le graphe Potentiel-tâches est sans doute plus lourd que le réseau PERT mais ilpermet de modéliser plus de contraintes et de prendre en compte des cas « tordus »

32

Page 33: Theorie Des Graphes

FD

1

4

2

3

5

0

0

02

3

10

2

5

6

FIG. 4.3: Réseau Potentiel-Tâches associé au problème du chantier

4.5 Résolution

Que ce soit en utilisant le modèle PERT ou le modèle Potentiel-Tâches, la solutiondu problème d’ordonnancement est donnée par la résolution d’un problème de pluslong chemin (donné par l’algorithme de Bellmann) entre le début et la fin du projet.

En effet, si l’on recherche le plus long chemin, celui-ci va utiliser le plus grandnombre de tâches possibles en suivant les arcs les plus longs.

Le graphe ne contient pas de circuit car les contraintes de précédence fournissentun ordre partiel sur les tâches. On utilisera donc une forme adaptée de l’algorithmede Bellmann pour calculer les plus longs chemins.

4.6 Définition (Chemin critique)On appelle chemin critique tout plus long chemin entre le début et la fin du projet.

4.1 Théorème (Résultats sur le graphe Potentiel-tâches)Soit un graphe potentiel-tâches modélisant l’ordonnancement des tâches d’un projetcomplexe.

Soit :

a) L la longueur du plus long chemin entre le début et la fin du projet.

b) pi la longueur du plus long chemin entre le début du projet et la tâche i.

c) qi la longueur du plus long chemin entre la tâche i et la fin du projet

Alors :

1. La durée minimale du projet est L

33

Page 34: Theorie Des Graphes

2. �i = pi

3. �i = L� qi

Conséquence

Voici le modus operandi pour calculer les différentes grandeurs associées à unprojet d’ordonnancement :

– On calcule L et l’ordonnancement au plus tôt en résolvant un problème de pluslong chemin sur le graphe potentiel-tâches à partir du sommet correspondantau début du projet.

– On calcule l’ordonnancement au plus tard en résolvant un problème de plus longchemin sur le graphe potentiel-tâches dont l’on a préalablement inversé les arcset à partir du sommet correspondant à la fin du projet.

34

Page 35: Theorie Des Graphes

Chapitre 5

Introduction aux problèmes de flot

5.1 Notion de réseau

On appelle réseau un graphe sur lequel on va faire transiter un flot.

Soit G = (X;E) un graphe orienté avec jXj = n et jEj = m. Chaque arc est dotéde deux grandeurs positives ou nulles, l et u, respectivement dénommées capacitéminimale et capacité maximale et telles que :

8(i; j) 2 G 0 6 lij 6 uij

Chaque nœud est doté d’une contribution au flot b(i). On appelle source tout som-met i créant du flot, c’est à dire, tel que b(i) > 0 et puits tout sommet i; b(i) < 0 où leflot est « consommé ».

Un flot sur le réseau G est un vecteur x 2 Rm, indicé sur les arcs, tel que :

lij 6 xij 6 uij (5.1)Xk:(j;k)2G

xjk �X

i:(i; j)2G

xij = b(j) 8 j 2 X (5.2)

1. La condition (5.1) spécifie que le flot est borné inférieurement et supérieurementpar les capacités des arcs.

2. L’équation (5.2), qui n’est pas sans rappeler la première loi de Kirchoff (ou loides nœuds) en électricité, traduit la conservation du flot en chaque sommet duréseau. En effet, de façon plus littéraire, on peut la traduire par la phrase sui-vante :

La quantité de flot sortant d’un sommet moins la quantité de flotentrant dans le même sommet est égale à la contribution de ce sommet.

35

Page 36: Theorie Des Graphes

Bien entendu, pour que le problème ait une solution, la somme des contributionsdoit être égale à 0, soit : X

i2X

b(i) = 0

Exprimé ainsi, on voit immédiatement que les problèmes de flot permettent de mo-déliser directement les problèmes réels d’écoulement d’un liquide dans un ensemblede canalisations (le flot est alors le débit de liquide dans chaque tuyau) ou de circula-tion du courant électrique dans un réseau, le flot étant ici égal à l’intensité de courantpassant dans un fil.

La figure suivante illustre un réseau et un flot réalisable sur celui-ci. Les tripletsfigurant au dessus des arcs sont de la forme (l; u; x).

-4

(1,2,2)

(2,3,2)

(0,2,1)

(0,4,3)

(2,2,2)

(0,2,2)

(2,3,2)

(0,1,1)(1,4,3)+4

FIG. 5.1: Exemple de réseau portant un flot

5.2 Les simplifications du problème

Plusieurs aménagements d’un réseau de flot quelconque permettent de simplifierle traitement algorithmique du problème. Nous allons en considérer quelques unes.De plus amples informations sont disponibles dans [2], [4], [3] ou [1].

36

Page 37: Theorie Des Graphes

5.2.1 Travailler avec une seule source et un seul puits

Il est possible de ne travailler qu’avec une seule source et un seul puits. Ainsi, ilest inutile de garder en mémoire la liste des contributions des sommets en dehors decelles de la source et du puits.

On crée un sommet noté s et appelé super source ou tout simplement source. En-suite, pour chaque sommet i tel que b(i) > 0, on ajoute un arc (s; i) de capacité maxi-male b(i) et le tour est joué. Finalement, on pose b(s) =

Pi2X b(i)>0

b(i).

Réciproquement, on crée un sommet t (le puits) et une collection d’arcs (i; t) pourchaque sommet de contribution négative et l’on pose b(s) =

Pi2X b(i)>0

b(i).

La figure suivante montre comment appliquer ce principe sur un exemple simple.

+3

+2

-1

-4

(2)

(2)

(2)

(2)

(1)

(3)

(2)

-5

(2)

(2)

(2)

(2)

(1)

(3)

(2)

(1)

(4)

(3)

(2)

+5

FIG. 5.2: Exemple de suppression de sources et puits multiples

5.2.2 Eliminer les arcs avec des capacités minimales non nulles

L’utilisation de capacités minimales entraîne des lourdeurs algorithmiques nonnégligeables. Aussi, il peut être judicieux de les éliminer avant le traitement du pro-blème. Insistons néanmoins sur le fait que le procédé que nous allons expliciter peutconduire à un graphe si grand qu’il n’en justifie plus l’intérêt. Aussi, on pourra sereporter à [1] pour les techniques permettant de traiter directement les réseaux àcapacités minimales non nulles.

On peut considérer un arc (i; j) de capacité inférieure lij > 0 comme un arc decapacité supérieure uij � lij reliant un puits de contribution b(i) = �lij à une sourcede contribution b(j) = lij.

37

Page 38: Theorie Des Graphes

En effet, on remplace la contrainte de passage d’un minimum de flot sur cet arcpar la disparition de la même quantité de flot en entrée et sa restitution en bout d’arc.

La deuxième partie de l’opération consiste à éliminer le nouveau puits et la nou-velle source ainsi crées par l’opération précédente. Cette technique est illustrée sur lafigure suivante :

(2)

(3) (2)

(4)

(1, 2)+2 -2

(2)

(3) (2)

(4)

+2 -2

-1

+1

Etape 2 : suppression de la source et du puits excédentaires

(1)

(2)

(3) (2)

(4)

(2) (2)

(1)

(1)

-3+3 (1)

Etape 1 :

Ajout d’une

source

et d’un puits

FIG. 5.3: Exemple de suppression des arcs de capacité inférieure non nulle

5.2.3 Cas des capacités sur les sommets

Dans certains modèles de situations réelles, il est possible d’avoir des capacités surles sommets. Par exemple, dans un nœud de répartition EDF, les équipements de rec-tification de la tension ne peuvent absorber plus d’une certaine quantité d’électricité.Ceci peut se modéliser par la contrainte suivante :

Xi:(i; j) 2G

xij 6 �(j) 8 j 2 X

où �(j) est la capacité maximale du sommet j.

Afin de ne pas rajouter cette contrainte dans le système, on la remplace par unecontrainte de capacité sur un arc en dédoublant le sommet j en j0 et j" et en ajoutantl’arc (j0; j") de capacité �(j).

38

Page 39: Theorie Des Graphes

5.3 Quelques problèmes de flot classiques

5.3.1 Le problème de flot maximal

De tous les problèmes de flot dans les réseaux, le problème du flot maximal (ou flotmax pour les intimes) est assurément le plus simple.

Il consiste à tenter de faire circuler sur le réseau la plus grande quantité de flotpossible. Pour ceci, on fixe arbitrairement la contribution de la source à +1. Unealternative consiste à supprimer les contributions des sommets s et t et à rajouter unarc (t; s) de capacité infinie et appelé arc de retour.

On appelle valeur du flot et l’on note habituellement v la somme du flot sortant dela source (ou entrant au puits). Soit donc :

v =X

i:(s; i)2Gxsi =X

j:(j; t)2Gxjt

5.3.2 Le problème du flot de coût minimum

Ici, chaque arc est muni d’un coût cij dit coût unitaire par unité de flot et le pro-blème consiste à trouver un flot x sur le réseau tel que le coût du flot :

X(i; j)2G

xij � cij

soit minimal.

Le plus souvent, nous serons à la recherche d’un flot maximal à coût minimal.Les algorithmes les plus performants travaillent alors en deux temps. D’une part,la recherche du flot maximal permet de fixer sa valeur. Il est alors possible, soit derechercher ex nihilo un nouveau flot de coût minimal, soit de modifier le flot obtenuprécédemment afin de le rendre minimal.

Ce problème est d’une importance cruciale en recherche opérationnelle. En effet,comme nous le verrons plus tard, il sert à modéliser de nombreux cas concrets. Long-temps considéré comme un problème difficile, la démonstration de sa polynomialitépar Edmonds et Karp ouvrit en son temps de nouveaux horizons en recherche opéra-tionnelle.

39

Page 40: Theorie Des Graphes

5.4 Quelques techniques utilisées sur les réseaux

5.4.1 Le graphe d’écart

Lorsque l’on travaille sur les flots, il est souvent intéressant d’utiliser un graphespécial, dérivé du graphe initial, nommé graphe d’écart et noté G(x) = (X;E(x)).

Soit (i; j) un arc de G de capacités minimale et maximale respectives lij et uij etportant le flot xij. Il est alors possible soit :

– d’ajouter encore jusqu’à uij � xij unités de flot depuis i vers j.

– de retirer jusqu’à xij � lij unités de flot depuis i vers j, ce qui peut ête vu commel’ajout d’autant d’unités de flot depuis j vers i.

Le graphe d’écart G(x) va donc proposer deux arcs mettant en avant ces deuxpossibilités :

(i; j) de capacité résiduelle rij = uij � xij arc direct de (i; j)(j; i) de capacité résiduelle rji = xij arc opposé de (i; j)

En outre, seuls les arcs de capacité résiduelle non nulle sont présents dans legraphe d’écart.

Notez le cas intéressant où lij = uij. Nécessairement, tout flot compatible est telque xij = lij = uij. Alors, le graphe d’écart ne contient ni l’arc (i; j), ni l’arc (j; i) carils ont tous deux une capacité résiduelle nulle.

5.4.2 La notion de coupe

On appelle coupe la partition de l’ensemble des nœuds d’un réseau en deux en-sembles notés S et S. Une telle coupe est notée [S; S] et devient une st-coupe si s 2 S

et t 2 S. Deux ensembles d’arcs sont à étudier en particulier :8<: (S; S) =

n(i; j) 2 G = i 2 S et j 2 S

o= !+(S)

(S; S) =n(i; j) 2 G = i 2 S et j 2 S

o= !�(S)

On définit la capacité de la st-coupe [S; S], et l’on note u([S; S]), la quantité :

u([S; S]) =X

(i; j)2(S;S)

uij

5.1 Définition (Coupe minimum)On appelle coupe minimum, la st-coupe de capacité minimale.

40

Page 41: Theorie Des Graphes

5.1 Théorème (Théorème flot-max / coupe-min)La valeur maximale du flot pouvant circuler sur un réseau est égale à la capacité dela coupe minimum.

Cette notion sera étudiée plus en détails lors de la présentation de l’algorithme deFord et Fulkerson pour la recherche du flot max.

5.5 Quelques exemples de problèmes modélisablespar les flots

Tous les problèmes qui mettent en jeu un flux physique de matière, d’électricitéou d’information se modélisent naturellement par les flots. Toutefois, il est d’autrescatégories de problèmes qui les mettent en jeu de manière moins triviale.

5.5.1 Problèmes faisant intervenir le flot maximal

Le problème des représentants

Soit une entreprise comptant n employés E1, E2, : : : , En. Ceux-ci sont répartisdans m corps de métiers et r catégories socio-professionnelles ; un employé pouvantappartenir à plusieurs corps de métiers mais à une et une seule catégorie socio-professionnelle.

Lors des élections des représentants du personnel (modèle grand-breton), chaquecorps de métier doit désigner 1 représentant pour le bureau sachant que chaque ca-tégorie socio-professionnelle j ne peut avoir plus de uj membres siégeant.

La question que l’on va résoudre en utilisant un flot maximal est la suivante :

Existe-t-il un bureau compatible avec ces contraintes?

Pour répondre à cette (légitime) interrogation, on va utiliser le graphe suivant. Onassocie à chaque corps de métier Ci un sommet ci et un arc (s; ci) de capacité maximale1 représentant le fait que chaque corps de métier désigne 1 représentant.

A l’autre bout du graphe, chaque catégorie socio-professionnelle Pj se voit repré-sentée par un sommet pj auquel on associe immédiatement l’arc (pj ; t) de capacitémaximale uj, nombre maximal de membres de la catégorie professionnelle autorisésà siéger au bureau.

41

Page 42: Theorie Des Graphes

Finalement chaque employé Ek est modélisé par le sommet correspondant ek. L’ap-partenance d’un employé à ses corps de métier est représentée par des arcs du type(ci; ek) de capacité maximale 1, alors que son appartenance à une catégorie socio-professionnelle est trahie par un arc unique du type (ek; pj).

Le bureau est réalisable s’il existe un flot de valeur m compatible avec le réseauainsi constitué, ce qui implique que

Puj > m. Un tel flot, s’il existe, pourra être

obtenu en résolvant un problème de flot maximum sur le réseau, car n est une bornemax pour la valeur du flot.

La figure suivante illustre un réseau modélisant ce problème de représentation.

s t

c

c

c

2

1

2

3

e1

e2

e3

e4

e5

p1

p2

1

1

1

1

1

1

1

1

1

1

1

1

1

1

u1

u

FIG. 5.4: Modélisation du problème des représentants dans un réseau

Le problème de l’arrondi cohérent

Soit D une n�m matrice de nombres réels. On note respectivement �i; i 2 1::n

et �j; j 2 1::m les sommes des éléments sur les lignes et les colonnes.

Le but de ce problème est d’arrondir chacun des nombres stocké dans la matrice demanière à ce que, pour chaque ligne et pour chaque colonne, la somme des nombresarrondis soit l’arrondi de la somme. En d’autres termes, et si l’on note �� l’arrondi du

42

Page 43: Theorie Des Graphes

nombre �, on doit avoir : 8>><>>:8 i 2 1::n

mPj=1

d�ij=��i

8 j 2 1::mnPi=1

d�ij=��j

Contrairement à de nombreuses applications où l’arrondi est imposé à l’entier leplus proche, ici �� est choisi librement parmi b�c et d�e.

Il est possible de modéliser ce problème très facilement à l’aide d’un réseau.

Il suffit de considérer, en plus des sommets s et t, deux ensembles de sommets L

et C modélisant respectivement les lignes et les colonnes de la matrice.

Chaque sommet li 2 L est ainsi associé à la ième ligne de la matrice. Les arcs (s; li)

ont pour capacités le couple (b�ic; d�ie). Réciproquement, chaque sommet cj 2 C étantassocié à la jème colonne de D, les arcs (cj; t) ont pour capacités (b�jc; d�je).

Reste à modéliser chacun des éléments de la matrice par un arc reliant sa ligne etsa colonne. Ainsi, l’élément dij est représenté par l’arc (li; cj) de capacités (b�c; d�e).

D’ordinaire, il existe plusieurs solutions à ce problème, chacune étant associée à unflot compatible sur ce réseau. Toutefois, le flot max est associé à la solution utilisantle plus de valeurs supérieures alors que le flot min est associé à la solution utilisantle plus de valeurs inférieures.

La figure suivante illustre ce modèle sur un exemple simple.

Données de la matrice :

3; 1 6; 8 7; 39; 6 2; 4 0; 73; 6 1; 2 6; 5

Sommes des lignes :

17; 2 12; 7 11; 3

Sommes des colonnes :

16; 3 10; 4 14; 5

FIG. 5.5: Modélisation du problème de l’arrondi cohérent d’une matrice par un réseau

43

Page 44: Theorie Des Graphes

5.5.2 Application du problème de flot de coût minimal

Problème de transport simple

Soit n sites de fabrication Fi de m produits Pk devant être acheminés vers q sites deconsommation Cj . Chaque couple (Fi; Pk) est caractérisé par la capacité de productionfik. Réciproquement, chaque couple (Cj; Pk) est muni de la demande djk en produit Pksur le site Cj . Finalement, chaque couple Fi; Cj est défini par le coût d’acheminementckij d’un produit depuis son site de fabrication vers le lieu de consommation ainsi quepar lkij et ukij, quantités respectives minimales et maximales et par produit devant êtredélivrées d’un site à l’autre. Ces quantités modélisent des contraintes qui peuventêtre du type contractuel (pour les limites inférieures) ou bien refléter la saturationdes lignes de transport.

Ce problème ultra classique se modélise aisément comme un problème de flot decoût minimum par le réseau suivant.

1. Tout d’abord, chaque site de fabrication Fi est représenté par une source decontribution :

8 i 2 1::n b(Fi) =mXk=1

fik

2. A l’autre bout du réseau, chaque site de consommation est représenté par unpuits de contribution :

8 j 2 1::q b(Cj) = �mXk=1

djk

3. Les produits sont, quand-à-eux, représentés par deux ensembles de sommets :

– Le premier modélise les associations fabricant/produit. Chaque sommet Fiest relié au sommet fpik si et seulement si il fabrique le produit Pk. Lacapacité de ces arcs est fixée à fik, capacité maximale de fabrication duproduit k par i.

– Le second modélise les associations consommateur/produit. Chaque som-met Cj est relié aux sommets cpjk associés aux produits qu’il consomme pardes arcs de capacité djk.

Finalement les arcs de transport relient les sommets fpik aux sommets cpjk demême produit Pk. Leurs capacités sont lkij et ukij alors que leur coût est fixé à ckij.

44

Page 45: Theorie Des Graphes

La recherche du flot maximal à coût minimal sur ce réseau garantit l’optimalitéde la solution. Il suffit alors de suivre les chaînes de flot pour retracer le trajet desmarchandises.

La figure suivante montre un cas à trois fabricants, deux produits et deux consom-mateurs. Il est à noter que la taille du graphe peut devenir très importante avec lenombre d’acteurs mis en jeu.

f1

f2

f 3

c1

c2

fp

fp

fp

)

fp

fp

fp

11

12

21

22

31

32

11

cp12

cp21

cp22

cp d

d12

11

d21

d22

f11

f12

f21

f22

f31

f32

l2

32u2

32c2

32, ,(

FIG. 5.6: Modélisation du problème de transport simple par un réseau

5.6 L’algorithme de Ford & Fulkerson

L’algorithme de Ford & Fulkerson est le premier à avoir été spécialement conçupour la résolution du problème de flot maximal. De nombreuses variantes destinéesà accroître ses performances ont depuis vu le jour. Bien que les algorithmes de typePreflow Push dûs à Karzanov lui soient très supérieurs en performances, l’algorithmede Ford & Fulkerson est une base théorique indiscutable.

45

Page 46: Theorie Des Graphes

5.6.1 Capacité résiduelle dans le cas général

Dans le cas simple où l’on exclue le fait que les arcs (i; j) et (j; i) soient présentssimultanément, la capacité résiduelle de l’arc (i; j) s’écrit :

rij = uij � xij

Dans le cas général, on peut étendre cette définition en prenant en compte la valeurdu flot passant sur l’arc opposé, soit :

rij = uij � xij + xji

En effet, il est toujours possible de «gagner» du flot dans le sens i! j en retirantle flot présent sur l’arc (j; i).

5.6.2 Démonstration du théorème Flot max / Coupe min

La capacité résiduelle r[S; �S] d’une st-coupe [S; �S] s’écrit :

r[S; �S] =X

(i; j) 2 (S; �S)

rij

Soit v la valeur du flot. Mettant à profit la notion de coupe, nous pouvons l’écrireainsi :

v =X

j (s; j) 2E

xsj =Xi 2 S

24 Xj:(i; j) 2G

xij �X

j:(j; i) 2G

xji

35

Soient maintenant 2 sommets p et q appartenant tous deux à S. Il est possible desimplifier l’expression précédente en remarquant que xpq et xqp vont apparaître desdeux côtés du signe �, une fois lors de la somme portant sur p et une fois lors de lasomme portant sur q.

Aussi, l’on peut réécrire v :

v =X

(i; j) 2 (S; �S)

xij �X

(i; j) 2 ( �S; S)

xij

où l’on notera :

8>>><>>>:

X(i; j) in (S; �S)

xij Flot avant de la coupe [S; �S]

X(i; j) in ( �S; S)

xij Flot arrière de la coupe [S; �S]

46

Page 47: Theorie Des Graphes

La valeur du flot v est donc égale au flot net de la coupe [S; �S].

On a :

X(i; j)2(S; �S)

xij 6X

(i; j) 2(S; �S)

uij

et comme :

X(i; j) 2( �S; S)

xij > 0

alors :

v 6X

(i; j) 2(S; �S)

uij = u[S; �S]

On obtient donc que la valeur du flot est inférieure ou égale à la capacité de toutest-coupe du réseau. Par extension, si l’on découvre un flot de valeur égale à la capacitéd’une coupe, alors :

1. Le flot est maximal

2. La coupe est de capacité minimale

5.6.3 Augmentation maximale du flot

Connaissant une valeur de flot v et considérant une st-coupe quelconque [S; �S], dequelle valeur �v peut-on encore espérer augmenter v?

Supposons donc qu’il existe un flot x0 de valeur v + �v. Par la relation précédente,l’on a :

v + �v 6X

(i; j) 2(S; �S)

uij

pour toute st-coupe [S; �S].

Or, nous avons vu dans la démonstration précédente que v est égal au flot net dansla coupe, soit :

47

Page 48: Theorie Des Graphes

v =X

(i; j) 2 (S; �S)

xij �X

(i; j) 2 ( �S; S)

xij

qui est aussi égal à :

v =X

(i; j) 2 (S; �S)

xij �X

(i; j) 2 ( �S; S)

xji

d’où :

v + �v � v 6X

(i; j) 2(S; �S)

uij �X

(i; j) 2 (S; �S)

xij +X

(i; j) 2 ( �S; S)

xij

soit :

�v 6X

(i; j) 2(S; �S)

(uij � xij) +X

(i; j) 2 ( �S; S)

xij

où encore :

�v 6X

(i; j) 2(S; �S)

(uij � xij) +X

(i; j) 2 ( �S; S)

xij

Soit finalement :

�v 6X

(i; j)2(S; �S)

rij +X

(i; j)2 ( �S; S)

xij

Or, comme un flot est une quantité positive, l’on en déduit donc que l’augmentationmaximale est bornée par la capacité résiduelle de la coupe.

48

Page 49: Theorie Des Graphes

5.6.4 Forme naïve de l’algorithme de Ford & Fulkerson

Cette forme est intéressante car elle est facile à appliquer manuellement.

Algorithme de Ford & Fulkerson sous forme manuelle

Faire xij 0 sur tous les arcs du réseau GCalculer le réseau résiduel G(x)Tant qu’il existe un chemin C depuis s vers t sur G(x)

Calculer r min(i; j) 2 C

rij

Pour chaque arc (i; j) de G(x) :rij rij � r xij xij + r sur l’arc directrji rji + r xij xij + r sur l’arc opposéSupprimer (i; j) si rij = 0

Fin PourFin Tant que

5.6.5 Une implémentation possible de l’algorithme de Ford &Fulkerson

Voici l’algorithme tel qu’on le programme habituellement :

Algorithme de Ford & Fulkerson sous forme programmable

Marquer tFaire xij 0 sur tous les arcs du réseau GCalculer le réseau résiduel G(x)Tant que t est marqué :

Supprimer les marques de tous les sommetspred[i] ; 8 i 2 Xmarquer s et faire Liste fsgTant que Liste 6= ; et t non marqué

Retirer un sommet i de la liste8 (i; j) 2 !+(i) tel que j non marqué

marquer jpred[j] iListe Liste [fjg

Fin 8Fin Tant QueSi t est marqué

Augmenter le flot sur le chemin de s à t contenu dans predMettre à jour G(x)

Fin SiFin Tant que

49

Page 50: Theorie Des Graphes

L’algorithme se termine lorsque l’on ne peut pas marquer le sommet t. Soit donc Sl’ensemble des nœuds marqués. On pose tout naturellement : �S = X nS.

Par construction :(s2St 2 �S

donc, [S; �S] est une st-coupe. Si l’on n’a pas pu marquer t cela signifie que l’algo-rithme ne peut plus marquer de sommets de �S depuis S. On en déduit donc que :

rij = 0 8 (i; j) tel que i 2 S et j 2 �S

or, par définition du graphe d’écart :

rij = (uij � xij) + xji

En outre, par définition d’un flot :(xij 6 uij donc (uij � xij)> 0

xji > 0

rij est donc une somme nulle de termes positifs ou nuls, ce qui signifie immédiate-ment que les deux termes sont nuls ! Donc :

xij =uij 8 (i; j) 2 (S; �S)xij =0 8 (i; j) 2 ( �S; S)

or :v =

X(i; j) 2 (S; �S)

xij �X

(i; j) 2 ( �S;S)

xij

en appliquant xij = 0 8 (i; j) 2 ( �S; S) :

v =X

(i; j)2 (S; �S)

xij

et comme xij = uij 8 (i; j) 2 (S; �S), on obtient finalement :

v =X

(i; j)2 (S; �S)

uij

On est donc dans une situation où le flot est égal à la capacité de la coupe. Ce quiveut dire que nous sommes dans le cas flot max/coupe min. On a donc réussi !

Ce qui nous conduit au théorème suivant :

5.2 Théorème (Condition d’optimalité d’un flot maximal)Le flot x est maximal sur le réseau G si et seulement si le réseau résiduel G(x) necontient pas de chemin depuis s vers t.

50

Page 51: Theorie Des Graphes

En effet, s’il existait un tel chemin, ce serait un chemin augmentant sur lequel onpourrait pousser du flot.

Réciproquement, supposons que G(x) ne contienne pas de chemin. L’ensemble S

des sommés marqués par l’algorithme de Ford & Fulkerson forme une st-coupe dontla capacité est égale au flot, d’où l’optimalité.

5.6.6 Une amélioration possible

Il est possible d’ameliorer significativement les performances de l’algorithme deFord & Fulkerson en mettant à profit une idée de Edmonds & Karp :

Plutôt que de choisir un chemin augmentant au hasard, il faut systématiquementconsidérer le plus court chemin de s vers t au sens du nombre d’arcs dans le chemin.

Cette modification garantit la terminaison de l’algorithme sur tout réseau nondégénéré !

51

Page 52: Theorie Des Graphes

Chapitre 6

Le problème des arbres couvrantsde poids minimal

6.1 Définitions

6.1 Définition (Arbre Couvrant)Soit G un graphe non orienté muni d’une fonction c de valuation sur les arcs. Onappelle Arbre Couvrant tout sous graphe connexe et sans cycle qui recouvre tous lessommets.

Le coût d’un tel arbre est :C(T ) =

X(i; j)2T

cij

Par définition des arbres, un Arbre Couvrant est composé de n� 1 arcs.

6.2 Définition (Arbre Couvrant de Poids Minimal)On appelle Arbre Couvrant de Poids Minimal (souvent abrégé ACM) l’arbre couvrantqui minimise la somme des coûts des arcs qui le constituent.

Par exemple, l’arbre des plus courts chemins depuis un sommet s vers tous lesautres sommets constitue un arbre couvrant sur un graphe orienté.

Il est néanmoins important de bien différencier les deux problèmes. Les élémentssuivants peuvent vous y aider :

1. Le problème de plus courts chemins est le plus souvent traité sur un grapheorienté alors que la notion d’arbre de recouvrements est fondamentalement nonorientée. Vous retiendrez qie rechercher les plus courts chemins est une opéra-tion plus compliquée et plus coûteuse que la mise en évidence d’un ACM.

52

Page 53: Theorie Des Graphes

2. Les deux problèmes travaillent avec des fonctions objectif différentes. Dans lecas des plus courts chemins. On recherche un chemin de longueur minimalepour chaque couple (s; i) 8 i 2 G. Alors que dans le cadre de l’ACM on minimisele coût total de l’arbre (en tant que somme des longueurs de ses arêtes) ce quin’est absolument pas la même chose !

6.2 Applications des ACM

6.2.1 Les problèmes de conception d’architectures

C’est une vaste famille de problèmes mettant en jeu des interactions entre diverscomposants d’un système où l’on désire proposer un service ou assurer des communi-cations au moindre coût. Il est important de voir que l’on se place ici du point de vuedu concepteur et non point de celui de l’utilisateur.

Le plus souvent cette famille revient à connecter physiquement les composants ensupprimant les redondances pour avoir un système le plus simple possible : un arbre.

1. Construction d’autoroutes pour relier des grandes villes avec le plus faible ki-lométrage total. Ici, la dualité entre le point de vue du constructeur et celui del’utilisateur est la plus forte.

En effet, ce qui intéresse l’utilisateur c’est de pouvoir se rendre depuis son pointd’entrée sur le réseau vers chacune de ses destinations et ce, le plus rapidementpossible. Le sous graphe qui l’intéresse est donc l’arborescence enracinée sur sonpoint d’entrée.

A l’autre bout de la chaîne, le concepteur du réseau veut minimiser ses fraisd’installation et donc construire le réseau qui permet d’assurer le service (c’està ) dire l’interconnexion entre toutes les villes) mais dont la longueur totale soitminimale. Il choisit donc l’ACM.

2. La construction d’un réseau de télécommunication entre les divers établisse-ments d’une entreprise ; chaque site étant équipé de son propre sous réseau, ilsuffit ici de créer un arbre reliant l’ensemble des sites.

3. Créer un réseau d’ordinateurs avec des lignes à haute capacité genre LiaisonSpécialisée à Haut Débit.

53

Page 54: Theorie Des Graphes

4. L’ACM se révèle le meilleur compromis pour construire les circuits électriques àhaute fréquence :

(a) Il est important de réduire la longueur totale du circuit afin d’éviter leseffets d’induction de ligne à retard et de parasitage

(b) Tous les composant doivent néanmoins être connectés.

6.2.2 Le problème des agents secrets

Soit un groupe d’agents secrets infiltrés dans un pays à surveiller. On construitun graphe où les agents secrets sont les nœuds et les arcs représentent un coupled’agents secrets qui se connaissent et peuvent donc se transmettre un message.

Le but est d’établir un moyen de passer un message entre tous les agents secrets enminimisant le risque de voir celui-ci passer à l’ennemi. Pour On note pij la probabilitéde voir passer le message à l’ennemi lors de la transmission entre l’agent i et l’agentj.

On cherche donc à minimiser :

1 �Y

(i; j)2T

(1� pij)

Cette formule n’étant pas directement utilisable, on doit transformer ce produit ensomme. Pour ceci, nous passons au logarithme. Ainsi :

maxY

(i; j)2T

(1� pij)

devient :

max log

0@ Y

(i; j)2T

(1 � pij)

1A

soit encore :max

X(i; j)2T

log(1 � pij)

Le problème se résume donc à rechercher un arbre de recouvrement de poids maxi-mal après passage au log des poids sur les arcs.

Regrouper des données en amas

Il s’agit ici de résoudre un problème de classification de données très courant enanalyse de données. L’un des secteurs d’activité le plus friand de ce type de problèmeest assurément celui de la médecine.

54

Page 55: Theorie Des Graphes

En effet, considérons un ensemble de patients présentant tous la même maladie(pour le moment inconnue) mais avec des examents cliniques différents.

Le but est de regrouper les patients en paquets afin de rattacher leur syndrôme àquelque chose de «connu».

La méthodologie retenue consiste à créer un graphe complet où les patients sontles sommets et les arcs sont valués conformément à une distance qui peut être, parexemple, le nombre de critères différents ou bien encore des fonctions de pondérationsur chacun des critères cliniques retenus.

On peut définir des amas en créant un ACM puis en coupant les arcs de plus fortcoût. Le plus compliqué est de savoir à partir de quelle limite de coût on ne doit plusretenir d’arcs. Nous verrons que l’algorithme de Kruskal est le mieux adapté pour cetexemple.

6.3 Les conditions d’optimalité d’un ACM

Il y a deux conditions d’optimalité parfaitement duales et amenant chacune unalgorithme de résolution du problème. La première porte sur les coupes, la secondesur les chemins.

6.3.1 La condition d’optimalité de coupes

En préliminaire, il est important de préciser que l’on entend ici par coupe associéeà un sous graphe H de G un couple (S; S) sans arête entre S et S.

6.1 Théorème (Condition d’optimalité de coupes d’un ACM)Soit T � un arbre de couverture du graphe G. T� est un ACM si et seulement si :

8 (i; j) 2 T � cij 6 ckl 8 (k; l) 2 [S; S] formée en retirant (i; j) de T�.

La condition est nécessaire

Supposons qu’il existe un arc (k; l) 2 [S; S] tel que ckl < cij.

Formons alors l’arbre T = T �nf(i; j)g [ f(k; l)g. Si nous appelons C(T ) le coût d’unarbre T , nous avons :

C(T ) = C(T �)� cij + ckl

55

Page 56: Theorie Des Graphes

i

k

j

l

T*

SS

FIG. 6.1: Illustration de la coupe pour l’ACM

or comme ckl < cij, il en suit que C(T ) < C(T �) ce qui contredit l’hypothèse selonlaquelle T � était optimal.

La condition est également suffisante

En effet, soit T � un arbre satisfaisant la condition précédente et T0 un ACM telque T � 6= T 0. Soit alors (i; j) un arc de T � 6 2 T 0.

Si l’on supprime (i; j) de T �, on crée une coupe [S; S] telle que i 2 S et j 2 S.Ajoutons maintenant cet arc (i; j) dans T0. Il va alors y avoir création d’un cycle quicontient nécessairement un arc (k; l) avec k 2 S et l 2 S.

Or :(T � Vérifie la condition d’optimalité, d’où : cij 6 cklT 0 Est optimal, d’où : ckl 6 cij

56

Page 57: Theorie Des Graphes

on en déduit immédiatement que cij = ckl. On peut donc remplacer (i; j) par (k; l)

dans T � sans altérer la propriété. En outre, T� et T 0 ont un arc commun de plus. Itérerce processus jusqu’à ce que T� = T 0 conclut la démonstration.

6.3.2 La condition d’optimalité de chemin

6.2 Théorème (Condition d’optimalité de chemins d’un ACM)Un arbre de recouvrement T� est un ACM de G si et seulement si :

8 (k; l) 2 G nT � cij 6 ckl pour tout arc (i; j) du chemin qui connecte k à l dans T�.

La condition est nécessaire

En effet, si ckl < cij, alors le remplacement de (i; j) par (k; l) permet d’obtenir unmeilleur arbre ce qui contredit l’hypothèse d’optimalité.

La condition est suffisante

La preuve de suffisance de cette condition utilise la condition sur les coupes, ce quipermet de mettre en évidence la connection forte entre ces deux notions.

Soit T � un arbre satisfaisant la condition et (i; j) un arc quelconque de cet arbre.Supprimons le, on crée alors une coupe [S; S] avec i 2 S et j 2 S].

Soit l’arc (k; l) appartenant à [S; S] mais n’appartenant pas à T�. Comme T � estun arbre :

1. Il existe une chemin unique dans T� permettant de joindre k à l

2. (i; j) était le sul arc joignant S à S et appartenant à T .

On en déduit que (i; j) appartient au chemin joignant k à l dans T�. et comme T �

vérifie la condition on en déduit que cij 6 ckl.

Comme nous n’avons posé aucune condition particulière sur le choix de l’arc (k; l),ce raisonnement s’applique à chaque arc de [S; S]. On en déduit donc que T� vérifie lacondition de coupe : il est donc optimal !

57

Page 58: Theorie Des Graphes

6.4 Les algorithmes de recherche d’un ACM

6.4.1 L’algorithme de Kruskal

Cet algorithme construit l’arbre en ajoutant à chaque itération l’arbre de plus petitcoût n’ajoutant pas de cycle. Comme il n’ajoute pas nécessairement des arcs sur dessommets contigüs, cet algorithme peut être vu comme le regroupement progressifd’une forêt (donc chaque arbre ne contient initialement qu’un seul sommet) en unseul arbre en ajoutant les arcs de plus faible coût.

6.4.2 L’algorithme de Prim

Très différente de l’algorithme de Kruskal, la méthode de Prim construit une coupeet rajoute l’arc de poids minimal sortant de la coupe rajoutant ainsi dans la coupe lesommet issu de cet arc.

6.4.3 Illustration par l’exemple

Nous allons successivement dérouler le fonctionnement des algorithmes de Krus-kal et de Prim sur le graphe de la figure (6.2);

35

10

15

40

25 30201

2

3 5

4

FIG. 6.2: Graphe d’exemple pour l’illustration des algorithmes de Kruskal et Prim

Les figures (6.3) et (6.4) illustrent respectivement les algorithmes de Kruskal et dePrim. A chaque étape, l’arc ajouté est désigné par une flèche. Les arcs déja présentsdans l’arbre sont signalés par un trait en pointillés.

58

Page 59: Theorie Des Graphes

35

10

15

40

25 30201

2

3 5

4

35

10

15

40

25 30201

2

3 5

4

35

10

15

40

25 30201

2

3 5

4

35

10

15

40

25 30201

2

3 5

4

35

10

15

40

25 30201

2

3 5

4

Ici, on ne peut sélectionner ni(2,3) ni (4, 5) car ils créeraient uncycle. On se rabat donc sur (1, 2)

et l'algorithme est terminé !

FIG. 6.3: Fonctionnement de l’algorithme de Kruskal sur le graphe (6.2)

59

Page 60: Theorie Des Graphes

35

10

15

40

25 30201

2

3 5

4

35

10

15

40

25 30201

2

3 5

4

35

10

15

40

25 30201

2

3 5

4

35

10

15

40

25 30201

2

3 5

4

35

10

15

40

25 30201

2

3 5

4A chaque étape, les sommets

de S sont ceints d'un traitépais. Remarquez que l'on ne

part du sommet 1 que parpure convénience. A chaqueétape on marque en gras lesarcs avants de la coupe qui

n'induisent pas de cycle

FIG. 6.4: Fonctionnement de l’algorithme de Prim sur le graphe (6.2)

60

Page 61: Theorie Des Graphes

Bibliographie

[1] R.K. Ahuja, T.L. Magnanti, and J.B. Orlin. Network Flows : Theory, Algorithms,and Applications. Prentice Hall, New York, 1993.

[2] M. Gondran and M. Minoux. Graphes et Algorithmes. Eyrolles, Paris, 1979.

[3] M. Minoux and G. Bartnik. Graphes, Algorithmes et Logiciels. Eyrolles, Paris,1986.

[4] M. Sakarovitch. Optimisation Combinatoire, Tome 1 : Graphes et ProgrammationLinéaire ; Tome 2 : Optimisation Combinatoire. Hermann, Paris, 1984.

61