Vous êtes sur la page 1sur 25

Cours de

R esum e

GRAPHES
Ce cours constitue une introduction a ` la th eorie des graphes. Le contenu est compos e de quatre chapitres. Le premier El ements de th eorie des graphes pr esente les concepts g en eraux. Le deuxi` eme Le probl` eme du plus court chemin aborde certainement lun des plus fameux sujets de la th eorie des graphes, en pr esentant les principaux algorithmes de recherche de chemins de longueur minimale dans un graphe. Le troisi` eme, Chemins, parcours hamiltoniens, arbres , propose des m ethodes g en erales concernant l enum eration et lexistence de chemins, de circuits hamiltoniens et darbres ` a co ut minimum. Le quatri` eme Flots dans les r eseaux parle plus particuli` erement des r eseaux de transport et introduit les m ethodes fondamentales de recherche dun ot maximum. ere g en erale en th eorie des graphes, il faut se m eer de Avertissement : De mani` lapparente facilit e de certaines notions, d enitions ou concepts. Dans la r ealit e, un graphe nest pas forc ement un dessin sur lequel vous pourrez d eduire empiriquement les r esultats attendus. Il peut etre donn e par une liste de milliers darcs, stock ee dans un chier. Aussi, veillez ` a appliquer les m ethodes qui vous seront propos ees pour atteindre les objectifs, m eme si cela vous semble trivial a ` lil nu...

Pierre Lopez
LAASCNRS

30 avril 2003

http://www.laas.fr/~lopez/cours/GRAPHES/graphes.html

` TABLE DES MATIERES

(P. Lopez) 2

Table des mati` eres


1 El ements de th eorie des graphes 1.1 D enition et concepts de base . . . . . . . . 1.1.1 Concepts orient es . . . . . . . . . . . 1.1.2 Concepts non orient es . . . . . . . . 1.1.3 Principales d enitions . . . . . . . . 1.1.4 Notion de complexit e des algorithmes 1.2 Repr esentations dun graphe . . . . . . . . . 1.2.1 Matrice dadjacence . . . . . . . . . . 1.2.2 Matrice dincidence sommets-arcs . . 1.2.3 Listes dadjacence . . . . . . . . . . . 1.3 Coloration des sommets dun graphe . . . . 1.4 Connexit e dans les graphes . . . . . . . . . . 1.4.1 Cha ne Cycle . . . . . . . . . . . . 1.4.2 Chemin Circuit . . . . . . . . . . . 1.4.3 Connexit e . . . . . . . . . . . . . . . 1.4.4 Forte connexit e . . . . . . . . . . . . 1.5 Graphes particuliers . . . . . . . . . . . . . 1.5.1 Graphes sans circuit . . . . . . . . . 1.5.2 Autres graphes . . . . . . . . . . . . 3 4 4 5 5 7 8 8 8 9 10 12 12 12 13 13 14 14 17 21 21 22 22 22 27 29 29 29 29 30 31 33 33 35 38 38 38 39

4.2

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

Probl` eme du ot maximum dans un r eseau de transport . . . . . . . 4.2.1 D enition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Circuit dincr ementation . . . . . . . . . . . . . . . . . . . . . 4.2.3 Coupes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.4 Algorithme de recherche dun ot maximum . . . . . . . . . . 4.3 Probl` eme du ot maximum a ` co ut minimum . . . . . . . . . . . . . . 4.3.1 Position du probl` eme . . . . . . . . . . . . . . . . . . . . . . . 4.3.2 Algorithme de construction dun ot maximum a ` co ut minimum Bibliographie

40 40 41 41 42 42 42 43 47

2 Le probl` eme du plus court chemin 2.1 D enition . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Chemins minimaux dans les graphes . . . . . . . . . 2.2.1 Principe doptimalit e . . . . . . . . . . . . . . 2.2.2 Dun sommet a ` tous les autres . . . . . . . . . 2.2.3 Entre tous les couples de sommets (algorithme 3 Chemins, parcours hamiltoniens, arbres 3.1 Chemins . . . . . . . . . . . . . . . . . . . 3.1.1 Enum eration de chemins . . . . . . 3.1.2 Existence de chemins . . . . . . . . 3.1.3 Construction de chemins . . . . . . 3.2 Parcours hamiltoniens . . . . . . . . . . . 3.3 Arbres . . . . . . . . . . . . . . . . . . . . 3.3.1 Enum eration darbres . . . . . . . . 3.3.2 Arbre couvrant de poids minimum

. . . . . . . . . . . . . . . . . . . . . . . . matriciel)

. . . . .

. . . . .

. . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

4 Flots dans les r eseaux 4.1 D enitions et propri et es . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Flot dans un r eseau . . . . . . . . . . . . . . . . . . . . . . . . 4.1.2 Graphe d ecart . . . . . . . . . . . . . . . . . . . . . . . . . . 1

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES

(P. Lopez) 4

1.1
1.1.1

D enition et concepts de base


Concepts orient es

Chapitre 1 El ements de th eorie des graphes

La th eorie des graphes est n ee en 1736 quand Euler d emontra quil etait impossible de traverser chacun des sept ponts de la ville russe de K onigsberg (aujourdhui Kaliningrad) une fois exactement et de revenir au point de d epart. Les ponts enjambent les bras de la Pregel qui coulent de part et dautre de l le de Kneiphof. Dans la gure suivante, les nuds repr esentent les rives.
1111 0000 0000 1111

Dans beaucoup dapplications, les relations entre el ements dun ensemble sont orient ees, i.e., un el ement x peut etre en relation avec un autre y sans que y soit n ecessairement en relation avec x. Un graphe G(X, U ) est d etermin e par : el ements sont appel es sommets ou un ensemble X = {x1 , x2 , . . . , xn } dont les nuds ; esien X X dont les el ements un ensemble U = {u1 , u2 , . . . , um } du produit cart sont appel es arcs. emit e initiale, xj lextr emit e nale (ou bien Pour un arc u = (xi , xj ), xi est lextr a xj . origine et destination). Larc u part de xi et arrive ` Graphiquement, larc u se repr esente de la mani` ere suivante (diagramme sagittal) :

xi

11 00 00 11

11 00 00 11
xj

Fig. 1.2: Arc u = (xi , xj )


111 000 000 111 000 111
A

0 1 1 0 0 1 0 1 0 1 0 1 000 111 000 111 1111 0000 0000 1111


D

00 11 11 00 0 1 00 11 0 1 00 11 0 1

111 000 000 111 000 111

A 000 111 000 111 111111111 000000000 000000000 111111111 0 1 000000000 111111111 000000000 111111111 0 1 000000000 111111111 000000000 111111111 0 1 000000000 111111111 000000000 111111111 0 1 000000000 111111111 000000000 111111111 0 1 0000000001 000000000 111111111 0 B000 111111111111 111 C 000 0 1 0 1 111 000 D

Un arc (xi , xi ) est appel e une boucle.

111 000
xi Fig. 1.3: Boucle Un p-graphe est un graphe dans lequel il nexiste jamais plus de p arcs de la forme (i, j ) entre deux sommets quelconques.

Fig. 1.1: Les sept ponts de K onigsberg La th eorie des graphes constitue un domaine des math ematiques qui, historiquement, sest aussi d evelopp e au sein de disciplines diverses telles que la chimie (mod elisation de structures), la biologie (g enome), les sciences sociales (mod elisation des relations) ou en vue dapplications industrielles (probl` eme du voyageur de commerce). Elle constitue lun des instruments les plus courants et les plus ecaces pour r esoudre des probl` emes discrets pos es en Recherche Op erationnelle (RO). De mani` ere g en erale, un graphe permet de repr esenter simplement la structure, les connexions, les cheminements possibles dun ensemble complexe comprenant un grand nombre de situations, en exprimant les relations, les d ependances entre ses el ements (e.g., r eseau de communication, r eseaux ferroviaire ou routier, arbre g en ealogique, diagramme de succession de t aches en gestion de projet, ...). En plus de son existence purement math ematique, le graphe est aussi une structure de donn ees puissante pour linformatique.

111 000 1111111 0000000 0000000 1111111 0000000 1111111 0000000 1111111 0000000 1111111 111 000 0000000 1111111
x1 Fig. 1.4: 3-graphe Applications multivoques

x2

11 00 11 00
x3 x1

x2

11 00

x3

11 00

Fig. 1.5: 1-graphe graphe

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES

(P. Lopez) 5

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES x1 x5

(P. Lopez) 6

xj est successeur de xi si (xi , xj ) U ; lensemble des successeurs de xi est not e ed ecesseur de xi si (xj , xi ) U ; lensemble des pr ed ecesseurs de xi (xi ). xj est pr est not e 1 (xi ). Lapplication qui, a ` tout el ement de X , fait correspondre une partie de X est appel ee une application multivoque. Pour un 1-graphe, G peut etre parfaitement d etermin e par (X, ), notation a ` la base dune repr esentation informatique tr` es utilis ee, les listes dadjacence (cf. 1.2.3). Exemple : X = {x1 , x2 , x3 , x4 , x5 }; (x1 ) = {x2 }; (x2 ) = {x1 , x3 }; (x3 ) = {x4 , x5 }; (x4 ) = {x5 }; (x5 ) = {x1 , x5 }. x1

11 00 11 00 00 11

111 000 111 000 000 111


x3

111 000
x4

x2

11 00 11 00

x5

111 000 111 000 111 000


x3 x4

Fig. 1.7: Graphe non orient e associ e au graphe orient e de la Fig. 1.6 Deux arcs sont adjacents sils ont au moins une extr emit e commune. Degr es Le demi-degr e ext erieur de xi , d+ (xi ), est le nombre darcs ayant xi comme extr emit e initiale ; d+ (xi ) = | + (xi )|. Le demi-degr e int erieur de xi , d (xi ), est le nombre darcs ayant xi comme extr emit e nale ; d (xi ) = | (xi )|. e dun sommet dun graphe Le degr e de xi est d(xi ) = d+ (xi ) + d (xi ). Le degr non orient e est le nombre dar etes qui lui sont incidentes. Remarque : dans le cas dun 1-graphe, on peut tout aussi bien d enir le degr e dun sommet ` a laide de lapplication multivoque puisque | + (xi )| = |(i)| et | (xi )| = |1 (i)|. Une boucle augmente de deux unit es le degr e du sommet concern e. Exemple : [cf. Fig. 1.6] d+ (x2 ) = 2; d (x2 ) = 1; d(x2 ) = 3. d+ (x5 ) = 2; d (x5 ) = 3; d(x5 ) = 5. Graphe compl ementaire / U et (xi , xj ) / U G = (X, U ) et G = (X, U ). (xi , xj ) U (xi , xj ) ementaire de G. (xi , xj ) U . G est le graphe compl Graphe partiel G = (X, U ) et Up U . Gp = (X, Up ) est un graphe partiel de G. (On peut ainsi obtenir des sommets isol es...) Sous-graphe u V est la G = (X, U ) et Xs X . Gs = (Xs , V ) est un sous-graphe de G, o` restriction de la fonction caract eristique de U ` a Xs . V = {(x, y )/(x, y ) U Xs Xs }. xi Xs , s (xi ) = (xi ) Xs . Sous-graphe partiel Combine les deux d enitions pr ec edentes. Exemple : R eseau routier que les autoroutes : graphe partiel que la r egion Midi-Pyr en ees : sous-graphe

x2

Fig. 1.6: Graphe d etermin e par (X, ) egalement d enir une fonction telle que + (xi ) repr esente Remarque : on peut eciproquement pour (xi ) et les arcs entrants. lensemble des arcs sortant de xi et r

1.1.2

Concepts non orient es

Lors de l etude de certaines propri et es, il arrive que lorientation des arcs ne joue aucun r ole. On sint eresse simplement ` a lexistence darc(s) entre deux sommets (sans en pr eciser lordre). Un arc sans orientation est appel e ar ete. U est constitu e non pas de couples, mais de paires de sommets non ordonn es. Pour une ar ete (xi , xj ), on dit que u est incidente aux sommets xi et xj . e, au lieu de noter G = (X, U ) et u = (xi , xj ), on Remarque : Dans le cas non-orient pr ef` ere souvent G = (X, E ) et e = [xi , xj ]. Un multigraphe G = (X, E ) est un graphe pour lequel il peut exister plusieurs ar etes entre deux sommets. Un graphe G = (X, E ) est simple : 1. sil nest pas un multigraphe ; 2. sil nexiste pas de boucles.

1.1.3

Principales d enitions

Adjacence Deux sommets sont adjacents (ou voisins) sils sont joints par un arc.

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES que les autoroutes de Midi-Pyr en ees : sous-graphe partiel

(P. Lopez) 7

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES

(P. Lopez) 8

Graphe r eexif : xi X, (xi , xi ) U . / U. Graphe irr eexif : xi X, (xi , xi ) Graphe sym etrique : xi , xj X, (xi , xj ) U (xj , xi ) U . / U (si G est asym eGraphe asym etrique : xi , xj X, (xi , xj ) U (xj , xi ) trique, G est irr eexif). Graphe antisym etrique : xi , xj X, (xi , xj ) U et (xj , xi ) U xi = xj (si G est asym etrique, G est aussi antisym etrique). Graphe transitif : xi , xj X, (xi , xj ) U, (xj , xk ) U (xi , xk ) U . Graphe complet : xi , xj X, (xi , xj ) / U (xj , xi ) U . Clique : ensemble des sommets dun sous-graphe complet. Soit C X une clique de G non orient e : (xi , xj ) C , (xi , xj ) U (2 sommets distincts de G sont toujours adjacents). Notons quun graphe complet et antisym etrique sappelle un tournoi , car il symbolise le r esultat dun tournoi o` u chaque joueur est oppos e une fois ` a chacun des autres joueurs. Exemple :

processus calculatoire, en evaluant le nombre dop erations caract eristiques de lalgorithme dans le pire des cas. Elle est not ee O (e.g., O(n2 ) pour une fonction qui augmente dans le carr e de la taille des donn ees). On rencontre aussi la notation es et par d efaut (alors que (e.g., (n2 )) qui donne une borne asymptotique par exc` O ne donne que la borne asymptotique par exc` es).

F s e

1.2

Repr esentations dun graphe

Un certain nombre de repr esentations existent pour d ecrire un graphe. En particulier, elles ne sont pas equivalentes du point de vue de lecacit e des algorithmes. On distingue principalement la repr esentation par matrice dadjacence, par matrice dincidence sommets-arcs (ou sommets-ar etes dans le cas non orient e) et par listes dadjacence.

1.2.1

Matrice dadjacence

11 00 00 11
x1

x2

On consid` ere un 1-graphe. La matrice dadjacence fait correspondre les sommets origine des arcs (plac es en ligne dans la matrice) aux sommets destination (plac es en colonne). Dans le formalisme matrice bool eenne, lexistence dun arc (xi , xj ) se traduit par la pr esence dun 1 ` a lintersection de la ligne xi et de la colonne xj ; labsence darc par la pr esence dun 0 (dans un formalisme dit matrice aux arcs les el ements repr esentent le nom de larc).

111 000 11 00 00 11
x3

111 000

Exemple :

x4

111 000 000 111


x2 u2 u1 u3 u4

Fig. 1.8: Graphe r eexif, antisym etrique, transitif et complet

111 000
x1

x3

11 00

x1 x2 x3 origine

x1 0 1 0

x2 1 0 0

x3 1 1 0

destination

1.1.4

Notion de complexit e des algorithmes

Fig. 1.9: 1-graphe Place m emoire utilis ee : n2 pour un graphe dordre |X | = n (i.e., n sommets). Remarque : pour des graphes num eris es, remplacer 1 par la valeur num erique de larc.

Les probl` emes de graphe se rattachent ` a la grande classe des probl` emes doptimisation combinatoire. Tous ces probl` emes se r epartissent en deux cat egories : ceux qui sont r esolus optimalement par des algorithmes ecaces (rapides), et ceux dont la r esolution peut prendre un temps exponentiel sur les grands cas. On parle respectivement dalgorithmes polynomiaux et exponentiels. Pour evaluer et classer les divers algorithmes disponibles pour un probl` eme de graphe, il nous faut utiliser une mesure de performance ind ependante du langage et de lordinateur utilis es. Ceci est obtenu par la notion de complexit e dun algorithme, qui consiste ` a mettre en evidence les possibilit es et les limites th eoriques du

1.2.2

Matrice dincidence sommets-arcs

ligne sommet

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES

(P. Lopez) 9

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES

(P. Lopez) 10

colonne arc Si u = (i, j ) U , on trouve dans la colonne u : aiu = 1 : aju = 1 ; tous les autres termes sont nuls. Exemple :

Pour eviter des tests pour le cas particulier i = n (le sommet i + 1 nexistant pas), on ferme par convention la derni` ere liste en posant LP (n +1) = m +1. Exemple :

111 000 000 111


x2 u2 u1 u3 u4

11 00 00 11
x2 u2 x1 x2 x3 u1 1 -1 0 u2 -1 1 0 u3 1 0 -1 u4 0 1 -1 u1 u3 u4

111 000
x1

x3

11 00

111 000
x1
i pointeur(LP(i)) 1 3 5 5

111 000
x3
extremite finale (LS(LP(i)) 2 3 1 3 arc 1 (u1) 2 (u2) 3 (u3) 4=m (u4)

Fig. 1.11: 1-graphe

Fig. 1.10: 1-graphe Place m emoire utilis ee : n m. Remarques : la somme de chaque colonne est egale a ` 0 (un arc a une origine et une destination) ; la matrice est totalement unimodulaire, i.e., toutes les sous-matrices carr ees extraites de la matrice ont pour d eterminant +1, 1 ou 0.
1 2 3 4=n+1

1.2.3

Listes dadjacence

Pour un 1-graphe, lavantage de la repr esentation par listes dadjacence (gr ace ` a lapplication multivoque ), par rapport a ` celle par matrice dadjacence, est le gain obtenu en place m emoire ; ce type de repr esentation est donc mieux adapt e pour une impl ementation. Le but est de repr esenter chaque arc par son extr emit e nale, son extr emit e initiale etant d enie implicitement. Tous les arcs emanant dun m eme sommet sont li es entre eux dans une liste. A chaque arc sont donc associ es le nud destination et le pointeur au prochain sommet dans la liste. On cr ee deux tableaux LP (t ete de listes) de dimension (n + 1) et LS (liste de successeurs) de dimension m (cas orient e) ou 2m (cas non orient e). Pour tout i, la liste des successeurs de i est dans le tableau LS ` a partir de la case num ero LP (i). 1. On construit LS par (1), (2), . . . , (n). 2. On construit LP qui donne pour tout sommet lindice dans LS o` u commencent ses successeurs. 3. Pour un sommet i 1er suivant : LS (LP (i)) ; 2` eme suivant : LS (LP (i) + 1). Lensemble des informations relatives au sommet i est contenue entre les cases LP (i) et LP (i + 1) 1 du tableau LS . 4. Si un sommet i na pas de successeur, on pose LP (i) = LP (i + 1) (liste vide coinc ee entre les successeurs de i 1 et ceux de i + 1).

1 0 0 1 1 0 00000000000000000 11111111111111111 00000000000000000 11111111111111111 1 0 00000000000000000 11111111111111111 00000000000000000 11111111111111111 00000000000000000 11111111111111111
reperage des tetes de liste

separateur des successeurs de differents sommets

Fig. 1.12: Listes dadjacence Place m emoire utilis ee : (n + 1) + m.

1.3

Coloration des sommets dun graphe

D enition 1 Soit G = (X, U ) un graphe non orient e. Un sous-ensemble S X est un ensemble stable sil ne comprend que des sommets non adjacents deux a ` deux : i, j S (i, j ) / U. Comme tout sous-ensemble dun ensemble stable est un ensemble stable, il est naturel de chercher le cardinal maximum dun ensemble stable. Ce nombre, not e (G), est le nombre de stabilit e.

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES

(P. Lopez) 11

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES

(P. Lopez) 12

D enition 2 La coloration des sommets dun graphe consiste en une aectation de couleurs a ` tous les sommets du graphe de telle sorte que deux sommets adjacents ne soient pas porteurs de la m eme couleur. Exemple :

1.4
1.4.1

Connexit e dans les graphes


Cha ne Cycle

00 11 00 11 00 11 00 11 11111111 00000000 1111111111111111 0000000000000000 0 1 00000000 11111111 0 1 00000000 11111111 0 1 00 11 000 111 00000000 11111111 0 1 00 11 000 111 00000000 11111111 00000000 11111111 0 1 00000000 11111111 00000000 11111111 0 1 00000000 11111111 00000000 11111111 000 1 11 11111111111111111 00000000000000000 00000000 11111111
Fig. 1.13: Coloration en 3 couleurs

Une cha ne est une s equence darcs telle que chaque arc ait une extr emit e commune avec le suivant. Un cycle est une cha ne qui contient au moins une ar ete, telle que toutes les ar etes de la s equence sont di erentes et dont les extr emit es co ncident. Exemple :

111 000
u1 u2

x1

u3

111 000
u6

x5

u4

Le nombre chromatique (G) est d eni comme le nombre minimum de couleurs distinctes n ecessaires ` a la coloration des sommets de G. Un graphe G tel que (G) k qui est coloriable en k couleurs est dit k-chromatique. Une k-coloration des sommets est une partition (S1 , S2 , . . . , Sk ) de lensemble des sommets en k ensembles stables. Borne inf erieure du nombre chromatique : n(G) (G). (G) n(G) (G) (G) n(G) etant le nombre de sommets du graphe. Une borne sup erieure est donn ee par deg +1 avec deg plus grand degr e dun sommet, do` u: n(G) (G) deg + 1 (G) Applications (voir [Prins] p.321) : 1. probl` emes demploi du temps ; 2. coloriage dune carte g eographique (10 sommets et 17 arcs). 7 (G) 10 =3 4

111 000 000 111


x2

u5

111 000 000 111


x3

11 00 00 11
x4 u7

Fig. 1.14: < u2 , u5 , u6 , u4 > est une cha ne de x1 ` a x4 . < u4 , u7 , u6 > est un cycle.

1.4.2

Chemin Circuit

Ce sont les m emes d enitions que les pr ec edentes mais en consid erant des concepts orient es. Exemple : [cf. Fig. 1.14] a x3 . < u1 , u3 , u4 , u7 > est un chemin de x2 ` < u1 , u3 , u6 , u5 > est un circuit. Le sous-ensemble de sommets atteignables a ` partir dun sommet donn e, gr ace ` a des chemins, est appel e fermeture transitive de ce sommet. Le terme de parcours regroupe les chemins, les cha nes, les circuits et les cycles. Un parcours est : el ementaire : si tous les sommets qui le composent sont tous distincts ; simple : si tous les arcs qui le composent sont tous distincts ; hamiltonien : passe une fois et une seule par chaque sommet du graphe ; eul erien : passe une fois et une seule par chaque arc du graphe1 ; pr ehamiltonien : passe au moins une fois par chaque sommet du graphe ; pr eeul erien ou chinois : passe au moins une fois par chaque arc du graphe. eme du voyageur de commerce est voisin du probl` eme hamiltoRemarque : le probl` nien. Il consiste ` a trouver un circuit hamiltonien de co ut minimal dans un graphe valu e.
Fin 2` eme s eance
1 Th eor` eme dEuler : un graphe connexe est eul erien si et seulement si tous ses sommets sont de degr e pair

On peut egalement se pencher sur le probl` eme de la coloration des ar etes dun graphe G = (X, E ). On a alors la d enition de lindice chromatique, duale de celle du nombre chromatique pour le cas de la coloration des sommets dun graphe. Lindice chromatique q (G) est d eni comme le nombre minimum de couleurs distinctes n ecessaires ` a la coloration des ar etes de G.

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES

(P. Lopez) 13

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES + - x1

(P. Lopez) 14

1.4.3

Connexit e

Un graphe G = (X, U ) est connexe si i, j X , il existe une cha ne entre i et j . On appelle composante connexe le sous-ensemble de sommets tels quil existe une cha ne entre deux sommets quelconques. Un graphe est connexe sil comporte une composante connexe et une seule. Chaque composante connexe est un graphe connexe. Exemple :

11 00 00 11
x1

x5

11 00 00 11 111 000
x7 x8

x3

11 00 00 11
x6

x2

+ - -

111 000
x2

111 000

x4

11 00

11 00

11 00 000 111 00 11 000000000000000 11 000 111 00 11 1111111111111 11111111111111 00000000000000 0 1 00000000000000 11111111111111 0 1 00000000000000 11111111111111 0 1 00000000000000 11111111111111 0 1 00000000000000 11111111111111 0 1 00000000000000 11111111111111 0 1 110000000000000 00 111 11 0000000000000000 11111111111111 1111111111111000 00 11 00 11
x3 x4 x7 + - x8 + + - -

+ - -

+ - x5 x6

111 000
+ + + -

+ + + -

Fig. 1.15: Graphe ayant trois composantes connexes Application : v erication de la connexit e aux r eseaux t el ephoniques ou electriques.

Fig. 1.16: Trois cfcm : {x1 , x2 , x3 , x4 , x5 }; {x8 }; {x6 , x7 } Algorithme 2 A partir de la matrice des fermetures transitives (cf. Chap.3 3.1.2). Remarque : Il existe des algorithmes pour trouver lensemble des cfc (algorithme de Tarjan en O(m) par exemple). Dans lexemple de la gure 1.16, un tel algorithme trouverait quatre cfc associ ees ` a la cfcm {x1 , x2 , x3 , x4 , x5 } : {x1 , x2 , x3 , x4 } ; {x1 , x2 } ; {x3 , x5 } ; {x3 , x4 , x5 }.

1.4.4

Forte connexit e

Un graphe G = (X, U ) est fortement connexe si i, j X , il existe un chemin entre i et j . Une composante fortement connexe (cfc) est un sous-ensemble de sommets tel quil existe un chemin entre deux sommets quelconques. Une cfc maximale (cfcm) est un ensemble maximal de cfc. Les di erentes cfcm d enissent une partition de X . Un graphe est fortement connexe sil comporte une seule cfcm. Recherche de cfcm

1.5
1.5.1
Algorithme 1 R ep eter 1. Partir dun sommet quelconque nappartenant pas a ` une cfcm ; le marquer . 2. Sur lensemble des sommets non marqu es et tant quon peut marquer un sommet faire : (a) Marquer + tout sommet suivant dun sommet marqu e +. (b) Marquer tout sommet pr ec edent dun sommet marqu e . Tout sommet marqu e appartient a ` une cfcm. Jusqu` a ce que tout sommet appartienne a ` une cfcm. Complexit e : O(nm). Exemple :

Graphes particuliers
Graphes sans circuit

On les rencontre lors de la repr esentation dune relation dordre sur des el ements : a ` partir de certains sommets, on ne peut atteindre quun sous-ensemble de sommets ; aucun des sommets de ce sous-ensemble ne peut atteindre les sommets de d epart. Les di erents sous-ensembles constituent des niveaux ordonn es par un rang (rang = distance maximale dun nud a ` la racine). Il nexiste pas de chemin allant dun sommet a ` un autre situ e` a un m eme niveau ou dans un niveau de rang inf erieur. Algorithme 1 A chaque it eration, on recherche tous les sommets qui nont pas de pr ec edent. Ils constituent un niveau. On eace ces sommets avant de rechercher le niveau suivant. Ajouter et Prelever signient respectivement ins erer un el ement en queue de

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES

(P. Lopez) 15

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES

(P. Lopez) 16

le et supprimer un el ement en t ete de le, la le etant d enie par un acc` es FIFO (First In First Out). D ecomposition-En-Niveaux-GSC 1 M,S : files de sommets 2 k 0; M 3 pour i=1 a ` n 4 si d (xi ) = 0 5 ajouter(xi ,M) 6 tant que M = 7 S M; M 8 tant que S = 9 prelever(x,S) 10 pour tout y dans (x) 11 d (y) d (y)-1 12 si d (y)=0 13 ajouter(y,M) 14 rang(x) k 15 k k+1 Initialement, M contient les sommets sans pr ed ecesseur. Puis, on la bascule dans S et on remplit de nouveau M . etre utilis e pour d edtecter si un graphe poss` ede Remarque : Cet algorithme peut un circuit. En eet, si cest le cas, on arrive a ` une etape de lalgorithme o` u aucun sommet sans pr ed ecesseur ne peut etre trouv e alors que lensemble des sommets nest pas totalement parcouru. Exemple : rang 0 rang 1 rang 2 rang 3

Complexit e : O(m) (tout sommet est mis dans M , puis enlev e de M et tous ses successeurs sont balay es. Ceci revient donc a ` examiner tous les arcs). Algorithme 2 A partir de la matrice dadjacence, on supprime, a ` chaque it eration, tous les sommets qui correspondent a ` une colonne nulle, donc qui nont pas de pr ec edents. Exemple : x1 x2 x3 x4 x5 x1 0 0 0 0 0 x2 0 0 0 0 0 x3 1 1 0 0 0 x4 0 0 1 0 0 x5 1 0 1 1 0

niveaux= {x1 , x2 }, {x3 }, {x4 }, {x5 }

F s e

Application : recherche de chemin critique en ordonnancement de projet (e.g., construction dun b atiment). Cette recherche passe par l elaboration dun diagramme PERT. En gestion de projet, on est en pr esence dune suite dactivit es (ou t aches) concurrentes ou ordonn ees dans le temps. Lobjectif est de d eterminer les dates de d ebut au plus t ot des di erentes t aches et la dur ee minimale du projet. t ache 1 (d ebut) 2 3 4 5 6 7 8 9 10 (n) dur ee 0 4 10 6 2 11 22 3 17 0 pr ec edents 1 1 2 2 2 4, 5 5 3, 6, 8 7, 9 rang 0 1 1 2 2 2 3 3 4 5

x1

11 00 111 000 000 111


x3

111 000 000 111

x4

111 000 000 111


x5

Repr esentation par graphe potentiels-t aches : date de d ebut au plus t ot de i = longueur du plus long chemin du d ebut ` ai: (j + aji ) i = max 1
j (i)

x2

11 00 00 11
Fig. 1.17: D ecomposition en niveaux

date de d ebut au plus tard de i = longueur du plus long chemin de la destination ` ai: i = min (j aij )
j (i)

dur ee minimale du projet = longueur du plus long chemin du d ebut ` a la n (longueur du chemin critique). Elle correspond a ` la borne inf erieure du temps total n ecessaire ` a lex ecution de toutes les activit es du projet.

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES


4 4 4 0 0 1 0 0 3 0 2 4 4 4 5 4 6 10 2 6 2 6 8 11 3 9 15 22 10 7

(P. Lopez) 17

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES

(P. Lopez) 18

Un couplage C dun graphe simple G = (X, E ) est un sous-ensemble dar etes deux ` a deux sans extr emit e commune. Un sommet x X est dit satur e dans un couplage C si x est lextr emit e dune des ar etes de C . Un couplage est parfait si ses ar etes contiennent tous les sommets du graphe (en dautres termes, un couplage sature tous les sommets de X ). Un couplage parfait a un cardinal maximal. Un probl` eme daectation d esigne la recherche dun couplage maximal dans un graphe biparti.
17 10 32

Fig. 1.18: R eseau PERT

1.5.2

Autres graphes

Exemple : [A. Sache] A loral du Bac, un ensemble d el` eves E doivent se pr esenter chacun devant certains des professeurs constituant un ensemble P , pour une epreuve orale dune demi-heure. Le probl` eme est dorganiser lexamen pour terminer le plus t ot possible. On forme le graphe biparti ayant E et P pour ensembles de sommets, lar ete (e, p) signiant que l el` eve e doit passer une epreuve avec le professeur p. Les colorations des ar etes de G et lattribution ` a chaque epreuve dune demi-heure de la journ ee se correspondent a ` une permutation pr` es des demi-heures : on cherche donc lindice chromatique (G). La proposition pr ec edente nous indique que la dur ee totale de lexamen est egale au maximum de la somme des dur ees des epreuves concernant un el` eve ou un professeur. Graphe planaire Cest un graphe qui peut etre repr esent e sur un plan (ou une sph` ere) tel que deux arcs (ou ar etes) ne se coupent pas. Tous les graphes de moins de 5 sommets sont planaires (K5 ) ainsi que tous les graphes bipartis de moins de 6 sommets t des algorithmes pour d eterminer si un graphe (K3,3 ). Pour les autres, on conna est planaire. On trouve par exemple des applications en conception de circuits electriques. Th eor` eme de coloration (Appel & Haken, 1977) : Tout graphe planaire est 4chromatique. ecessitant plusieurs heures de D emonstration : par un programme dexploration n calcul sur ordinateur. Hypergraphe Cest un graphe non orient e o` u chaque hyperar ete, au lieu de relier deux sommets, relie un sous-ensemble arbitraire de sommets de cardinal non impos e. Arbre Cest un graphe non orient e, connexe, acyclique.

Graphe biparti X = X1 X2 et si u = (i, j ), i X1 j X2 , i X2 j X1 . Un graphe biparti complet est not e Kr,s (pour le topologiste polonais Kuratowski) avec r = card(X1 ) et s = card(X2 ). Exemple :

111 000 000 111 111 000

111 000 000 111 111 000 111 000

Fig. 1.19: Graphe biparti complet K2,3 Propri et es Un graphe biparti est 2-coloriable. Un graphe biparti ne poss` ede aucun cycle impair (i.e., ` a nombre impair dar etes). egal au maximum des Proposition Lindice chromatique dun graphe biparti est degr es des sommets. ` la notion de couplage dans un graphe biparti. D emonstration : elle fait appel a

111 000 000 111 0000000000 1111111111 0000000000 1111111111 00 11 0000000000 1111111111 00 11 000 111 0000000000000 1111111111111 0000000000 1111111111 000 111 0000000000000 1111111111111 00 11 0000000000 1111111111 00 11 0000000000000 1111111111111 0000000000 1111111111 0000000000 1111111111 000 111 0000000000 1111111111 000 111

00 11 00 11 111111111111 000000000000 000000000000 111111111111 000000000000 111111111111 000 111 000000000000 111111111111 000 111 000000000000 111111111111 000000000000 111111111111 000000000000 111111111111 000000000000 111111111111 11 00

Fig. 1.20: Arbre

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES

(P. Lopez) 19

CHAP. 1 - ELEMENTS DE THEORIE DES GRAPHES

(P. Lopez) 20

Un arbre comprend n 1 ar etes. Laddition a ` un arbre dune ar ete entre deux sommets cr ee un cycle et un seul. For et Cest un graphe non orient e acyclique (pas forc ement connexe). Chaque composante connexe dune for et est un arbre. Arborescence Cest un graphe orient e o` u chaque sommet poss` ede un seul pr ec edent sauf un qui nen a pas : la racine. x X, un chemin unique de la racine ` a x. On consid` ere un nud x dune arborescence T , de racine r. Un nud y quelconque sur le chemin unique de r ` a x est appel e anc etre de x ; x est un descendant de y . Si le dernier arc sur le chemin de r vers x est (y, x), alors y est le p` ere de x, x est un ls de y . Si deux nuds ont le m eme p` ere, ils sont fr` eres. Un nud sans ls est une feuille. La longueur du chemin entre r et x est la profondeur de x dans T . La plus grande profondeur de T est la hauteur de T . Si chaque nud a au maximum deux ls, on parle darborescence binaire. Exemple : Arborescence de 12 nuds, de hauteur 4 (profondeur du sommet 9), avec la racine 7. Dans cette arborescence, 3 et 12 sont des anc etres de 1 ; 12 est le p` ere de 1 ; 5 est un ls de 8 ; 6 et 5 sont fr` eres ; 6, 9, 1, 10, 11 et 2 sont des feuilles.
7

Fig. 1.22: Cactus Corde et graphe dintervalles Une corde est une ar ete entre deux sommets non cons ecutifs dans un cycle. Un cycle de longueur 3 nadmet pas de corde, alors quun cycle de longueur 4 peut avoir 0, 1 ou 2 cordes. eSoit a = (A1 , A2 , . . . , An ) une famille dintervalles sur une droite. Le graphe repr e` a un intervalle Ai et (ai , aj ) sentatif de a est tel que chaque sommet ai est associ est un arc ssi Ai Aj = .

10

12

11

e , cest-` a-dire que tout cycle Th eor` eme : Un graphe dintervalles est triangul de longueur sup erieure ` a 3 admet au moins une corde. Son compl ementaire est un graphe de comparabilit e . Une propri et e importante des graphes triangul es est que le nombre de cliques 2 maximales est toujours born e par le nombre de sommets du graphe. Sinon, on trouve des algorithmes de recherche des cliques maximales en O(n + m + deg ) o` u deg repr esente le degr e maximal dun sommet (Tarjan, 84).

Fig. 1.21: Arborescence Point darticulation et isthme Un point darticulation (resp. isthme) est un sommet (resp. une ar ete) dont la suppression augmente le nombre de composantes connexes du graphe. Exemple : Le graphe de la gure 1.22 a 10 points darticulation et 8 isthmes.
2

clique = ensemble des sommets dun sous-graphe complet

` CHAP. 2 - LE PROBLEME DU PLUS COURT CHEMIN

(P. Lopez) 22

2.2
2.2.1

Chemins minimaux dans les graphes


Principe doptimalit e

Chapitre 2 Le probl` eme du plus court chemin

Le principe doptimalit e enonce le fait que les sous-chemins des plus courts chemins sont des plus courts chemins (la programmation dynamique repose sur ce principe fondamental). Lemme : Soient un graphe G(X, U ) et une fonction de pond eration l : X X R, a Xk et (i, j ) tel que soit C =< X1 , X2 , . . . , Xk > un plus court chemin de X1 ` a 1 i j k , soit Cij =< Xi , Xi+1 , . . . , Xj > un sous-chemin de C allant de Xi ` a Xj . Xj . Alors Cij est un plus court chemin de Xi ` ecompose C en < X1 , Xi , Xj , Xk > alors l(C ) = l(C1i ) + D emonstration : Si lon d l(Cij ) + l(Cjk ). Supposons quil existe Cij avec l(Cij ) < l(Cij ). Dans ce cas < X1 , Xi , Xj , Xk > a pour poids l(C1i ) + l(Cij ) + l(Cjk ) < l(C ), en contradiction avec la pr emisse qui veut que C soit un plus court chemin entre X1 et Xk . 2 Principe des algorithmes de recherche de chemins minimaux : une distance dist(i) est associ ee ` a xi ; en n dalgorithme, cette distance repr esente la longueur dun plus court chemin de lorigine au sommet consid er e.

Les probl` emes de cheminement dans les graphes (en particulier la recherche dun plus court chemin) comptent parmi les probl` emes les plus anciens de la th eorie des graphes et les plus importants par leurs applications.

F s e

2.1

D enition

Soit G = (X, U ) un graphe valu e ; on associe a ` chaque arc u = (i, j ) une longueur eme du plus court chemin entre i et j est de trouver un chemin l(u) ou lij . Le probl` (i, j ) de i ` a j tel que : l() =
u

2.2.2

Dun sommet ` a tous les autres

l(u) soit minimale.

Interpr etation de l() : co ut de transport, d epense de construction, temps n ecessaire de parcours, ... Remarque : la recherche du plus court chemin est analogue a ` la recherche du plus long chemin. Les algorithmes seront di erents suivant les propri et es des graphes : l(u) 0, u U l(u) egales l(u) = 1, u U (probl` eme du plus court chemin en nombre darcs) G sans circuit G et l(u) quelconques et suivant le probl` eme consid er e: recherche du plus court chemin dun sommet ` a tous les autres, recherche du plus court chemin entre tous les couples de sommets.

Ce probl` eme est aussi appel e le probl` eme de recherche du plus court chemin a ` origine unique. Beaucoup dautres probl` emes peuvent etre r esolus par lalgorithme avec origine unique : plus court chemin a ` destination unique (inversion du sens de chaque arc du graphe) ; plus court chemin pour un couple de sommets donn e; plus court chemin pour tout couple de sommets (algorithme a ` origine unique a ` partir de chaque sommet). egative, la recherche Remarque : si dans le graphe il existe un circuit de longueur n dun plus court chemin de lorigine au sommet consid er e est sans objet. On peut utiliser le circuit une innit e de fois (pr esence dun circuit absorbant qui entra ne une diminution perp etuelle de la longueur du chemin [cf. Fig. 2.1]).

i 11 00 00 11

k 11 00 00 11 longueur < 0
Fig. 2.1: Circuit absorbant

j 11 00 00 11

21

` CHAP. 2 - LE PROBLEME DU PLUS COURT CHEMIN

(P. Lopez) 23

` CHAP. 2 - LE PROBLEME DU PLUS COURT CHEMIN 7 8 9 10 11 12 pour chaque successeur i de recent si marq(i)=0 Relacher(recent,i,l) soit y tel que dist(y)=minxX dist(x) marq(y) 1 recent y

(P. Lopez) 24

Les algorithmes pr esent es utilisent une proc edure dinitialisation que nous appellerons Source-Unique-Initialisation(G, s) et une proc edure dite de rel achement, appel ee Relacher(i, j, l). Le rel achement dun arc u = (i, j ) consiste a ` d eterminer sil est possible, en passant par u, dam eliorer le plus court chemin jusqu` a j et, si oui, de mettre ` a jour dist(j ) et pred(j ). Source-Unique-Initialisation(G,s) 1 pour i=1 a ` 2 dist(i) 3 pred(i) 4 dist(s) n 0 0

eressante si le graphe Complexit e : O(n2 ) ou O(m log n) avec une structure de tas, int est peu dense (i.e., m n2 ). Lalgorithme de Dijkstra-Moore utilise une strat egie gloutonne lorsquil choisit le sommet le moins co uteux ` a chaque etape. On d emontre que dans le cas de cet algorithme, cette strat egie conduit a ` un r esultat global optimal. Exemple :

Relacher(i,j,l) 1 si dist(j) > dist(i) + l(i,j) 2 alors dist(j) dist(i) + l(i,j) 3 pred(j) i Dans lalgorithme de Dijkstra-Moore, chaque arc est rel ach e exactement une fois. Dans celui de Bellman-Ford, chaque arc est rel ach e plusieurs fois. Algorithme de Dijkstra-Moore (1959) Souvent les longueurs des arcs sont non-n egatives (l(u) 0), e.g., carte routi` ere, et on utilise alors cet algorithme glouton. A chaque sommet p, on associe trois el ements [marq (p), pred(p), dist(p)]. s est le sommet origine et t le sommet destination. marq (p) = marquage bool een pred(p) = sommet pr ec edant p sur le plus court chemin de lorigine a ` p (sur le sous-graphe des sommets marqu es) dist(p) = plus courte distance de lorigine a ` p (sur le sous-graphe des sommets marqu es). Principe de lalgorithme : 1. Etat initial : origine [1, 0, 0] ; autres sommets [0, 0, ]. 2. X = ensemble des sommets non marqu es ; marquer le sommet k tel que dist(k ) = minxX dist(x). Si k = t FIN. 3. Consid erer chaque sommet y non marqu e suivant de k . Relacher(k, y, l) ; aller en 2. Dijkstra-Moore(G,l,s) 1 2 3 4 5 6 Source-Unique-Initialisation(G,s) pour i=1 a ` n marq(i) 0 marq(s) 1 recent s % sommet qui vient d^ etre marqu e tant que marq(t)=0 faire

2 1111111111 00 00 11 00000000 11111111 0000000000000000000000000 1111111111111111111111111 00000000 3 0000000000000000 1111111111111111 5 5 00000000 11111111 0000000000000000000000000 1111111111111111111111111 00000000 11111111 0000000000000000 1111111111111111 t s 00000000 11111111 0000000000000000000000000 1111111111111111111111111 00000000 11111111 1 0 0 0 0 1 0000000000000000 1111111111111111 1 00000000 11111111 0000000000000000000000000 00000000 11111111 2 1111111111111111111111111111 111 000 0000000000000000 1111111111111111 3 0 000 0 B C D D 1 1111111111111111111111111 0000000000000000000000000 15 0000000000000000 1111111111111111 0 16 9 8 8 0000000000000000000000000 1111111111111111111111111 0000000000000000 1111111111111111 1 2 0000000000000000000000000 1111111111111111111111111 00 11 00 11 0000000000000000 1111111111111111 0000000000000000000000000 1111111111111111111111111 00 11 00 11 6 1111111111111111 B 0000000000000000 D 0 0 1 0 s s 1 1 0 0 0 1 0 B C C 7 6 6

0 0 0 1 0 s B B 3 2 2 A

0 0 0 1 0 s A A 5 4 4 C

Fig. 2.2: de s ` a t : B, A, C, D de longueur 8

Algorithme de Bellman-Ford (1958-1962) La pr esence de longueurs de signes di erents (l(u) quelconques) permet par exemple de mod eliser des co uts et des prots. Lalgorithme de Dijkstra-Moore ne permet pas de consid erer les arcs n egatifs, car une fois quun sommet est marqu e on ne peut changer ce marquage lors des it erations suivantes. Lalgorithme de Dijkstra-Moore est ainsi dit ` a xation d etiquettes. On consid` ere donc ici un algorithme qui permet un marquage qui nest pas d enitif tant que le programme nest pas d etermin e (le marquage est modi e it erativement). Ce type dalgorithme est appel e` a correction

` CHAP. 2 - LE PROBLEME DU PLUS COURT CHEMIN d etiquettes. Principe de lalgorithme : Source-Unique-Initialisation(G,s) R ep eter Relacher(i,j,l) Jusqu` a ce quaucun arc ne permette plus de diminuer dist(i).

(P. Lopez) 25

` CHAP. 2 - LE PROBLEME DU PLUS COURT CHEMIN

(P. Lopez) 26

0 s 4 A 4 0 0

11 00

0 A 7 C

erations Th eor` eme : Les valeurs nales des distances sont obtenues en au plus n 1 it principales (consistant a ` consulter les pr ed ecesseurs de tous les sommets). a tout D emonstration : En labsence de circuit absorbant, un plus court chemin de s ` autre sommet est un chemin el ementaire, cest-` a-dire un chemin dau plus n 1 arcs. erations, les valeurs dist(i) continuent a ` etre modiCons equence : si au bout de n it ees, cest que le graphe poss` ede un circuit de longueur strictement n egative. Bellman-Ford(G,l,s)

111 000
6

-4

0011111111 11 4 00000000 00000000 11111111 t 00000000 11111111 00000000 11111111 111 0 000 1 11 00 D
2

C D D 11 10 9

11 00 B
0 s C 6 3

0 B C B 10 8 7

Fig. 2.3: de s ` a t : A, C, B, D de longueur 9 1 Source-Unique-Initialisation(G,s) 2 k 0 3 r ep eter 4 stable VRAI 5 pour tout j = s 6 pour tout i 1 (j) 7 si dist(j) > dist(i) + l(i,j) alors 8 dist(j) dist(i) + l(i,j) 9 pred(j) i 10 stable FAUX 11 k k+1 12 jusqu` a stable = VRAI ou k > n-1 13 si k > n-1 alors pr esence dun circuit de poids n egatif Complexit e : O(nm), soit O(n3 ) pour des graphes denses, i.e., des graphes tels que m n2 . Exemple : Graphes sans circuit Lorsque le graphe est sans circuit il peut etre d ecompos e en niveaux. La longueur du chemin de la racine ` a tous les autres sommets est obtenue en consid erant les sommets dans lordre des rangs croissants et en calculant (dist(j ) + l(j, i)) dist(i) = min 1
j (i)

Plus-Courts-Chemins-GSC(G,l,s) 1 trier les sommets par rangs croissants 2 Source-Unique-Initialisation(G,s) 3 pour i=1 a ` n 4 pour chaque successeur j de i 5 Relacher(i,j,l) eme O(m) puisque cela revient a ` balayer les successeurs Complexit e : (n + m) (ou m de chaque sommet). Exemple :

0
Fin 5` eme s eance

111 000 000 111


s

11 00 00 11 s
A 2

11 00 00 s6 11
B 4

-1

C 11 00 00A B -2 11 6 5

t 11 00 00 A C 11 4 3

Fig. 2.4: de s ` a C : B de longueur 5 ; de s ` a t : B, C de longueur 3 etermination dun chemin critique dans un diagramme PERT : Application : d soit en prenant loppos e des poids darcs et en ex ecutant Plus-Courts-CheminsGSC ; soit en ex ecutant Plus-Courts-Chemins-GSC en rempla cant par dans Source-Unique-Initialisation et > par < dans Relacher.

avec dist(s) = 0. On applique en fait une version simpli ee de lalgorithme de Bellman-Ford.

` CHAP. 2 - LE PROBLEME DU PLUS COURT CHEMIN

(P. Lopez) 27

` CHAP. 2 - LE PROBLEME DU PLUS COURT CHEMIN


3 2

(P. Lopez) 28

2.2.3

Entre tous les couples de sommets (algorithme matriciel)

On va ainsi calculer un distancier n n. Si tous les arcs sont tous de longueur positive ou nulle (l(u) 0), on peut appliquer n fois lalgorithme de Dijkstra-Moore pour chaque sommet i. Si le graphe comporte des arcs de longueur strictement n egative, on peut appliquer n fois lalgorithme de Bellman-Ford. Lalgorithme de Floyd constitue une autre approche qui peut etre avantageuse principalement par rapport ` a la seconde solution, qui n ecessite un temps dex ecution en O(n4 ) pour des graphes denses. Contrairement aux algorithmes a ` origine unique qui supposent que le graphe est repr esent e par une liste dadjacence, lalgorithme de Floyd-Warshall (algorithme de programmation dynamique) utilise une repr esentation par matrice dadjacence. Soient les matrices : L = [lij ] ; P = [pij ] lij = l(i, j ) si (i, j ) U = sinon lii = 0 pij = 0 si lij = = i sinon En n dalgorithme : lij = longueur du plus court chemin entre i et j ed ecesseur de j sur le plus court chemin de i ` aj pij = pr Lalgorithme utilis e est celui de Floyd (dans une application de recherche de la fermeture transitive dun graphe, cet algorithme a et e d evelopp e par Warshall la m eme ann ee 1962 ; do` u souvent lappellation dalgorithme de Floyd-Warshall). Il consiste en trois boucles imbriqu ees sur i, j, k de 1 ` a n et on calcule : lij min(lij , lik + lkj ) Floyd-Warshall(L,P) 1 pour k=1 a ` n 2 pour i=1 a ` n sauf k % pr esence dun circuit n egatif 3 si lik + lki < 0 FIN 4 si lik = alors 5 pour j=1 a ` n sauf i % pour e viter le calcul dadresse de la variable 6 = lik indic ee a ` chaque it eration de j 7 si + lkj < lij 8 lij + lkj 9 pij pkj Complexit e : O(n3 ). Exemple : L(3) L(1)

11 00
-2 2

00 2 11
2 4

11 00
3

1 4

11 4 00

Fig. 2.5: Proc edure de Floyd-Warshall 0 3 3 2 0 2 2 = 2 0 1 4 4 0 0 2 = 2 0 2 = 2 6 0 0 = 2 2 0 0 = 2 2 3 3 0 2 2 1 0 1 4 4 0 3 0 1 4 3 0 1 4 3 0 1 4 5 2 0 4 5 2 0 4 5 2 0 4 3 2 1 0 3 2 1 0 3 2 =L 1 0 1 1 2 2 = 3 0 0 4 1 2 = 3 0 1 2 1 4 0 2 3 4 0 2 3 4 2 2 3 4 2 2 3 4 2 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 =P 3 4

L(0)

P (0)

P (1)

L(2)

P (2)

1 1 2 2 = 3 1 2 4 1 3 = 3 3 1 2 1 4

P (3)

L(4)

P (4)

1 1 3 2 = 3 1 3 4

CHAP. 3 - CHEMINS, PARCOURS HAMILTONIENS, ARBRES

(P. Lopez) 30

on a mat erialis e tous les chemins du graphe ; on obtient ainsi la matrice des fermetures transitives.

Chapitre 3 Chemins, parcours hamiltoniens, arbres

Remarques : ede on cherche l egalit e Ap = A2p pour converger plus vite. Ainsi, si un graphe poss` des chemins de longueur 8, on arr ete la proc edure apr` es avoir calcul e A2 , A4 , A8 au lieu de calculer A2 , A3 , A4 , A5 , A6 , A7 , A8 ; comme cela a et e annonc e pr ec edemment, le calcul de Ap donne les chemins de longueur inf erieure ` a p (1, 2, . . . , p). Pour trouver les chemins de longueur p uniquement, on ne peut saranchir de calculer Ap . Exemple :

Nous etudions dans ce chapitre l enum eration de chemins, darbres et de circuits hamiltoniens dans un graphe.

3.1
3.1.1

Chemins
Enum eration de chemins

111 000 000 111 000 111 000 111 1111111111111 0000000000000 0 1 0 1 0 1 0 1 000 111 000 111 0 1 000 111 000 111
x1 x3 x2 x4

0 0 1 0 A= 0 1 0 0

1 1 0 0

0 0 1 0

La recherche de chemins seectue ` a partir de la matrice bool eenne A associ ee au graphe. Pour rechercher les chemins de longueur p, on utilise le produit matriciel tel quil est d eni en alg` ebre lin eaire et on calcule Ap ; en eet : A = {aij }; aij = 1 un arc entre i et j 2 a2 ij = ai1 .a1j + ai2 .a2j + . . . + ain .anj ; aij = 1 au moins un chemin dexactement 2 arcs reliant i ` aj Remarques : les op erations sont logiques ; . arcs bout a ` bout (et logique) + chemins en parall` ele (ou logique) ecrit alors Ap ) mat erialise si le graphe est r eexif (aii = 1), lexistence de Ap (quon lexistence de chemins de 1, 2, . . . , p arcs. Exemple : a2 24 = a21 a14 + a22 a24 + a23 a34 + a24 a44 , i.e., chemins de 1 ou 2 arcs, sans les boucles ; si le graphe nest pas r eexif a2 24 = a21 a14 + a23 a34 , i.e., chemins de 2 arcs exactement.

Fig. 3.1: Existence de chemins 1 1 1 0 1 0 1 1 1 0 2 1 1 A= 0 1 1 1 A = 1 1 0 0 0 0 0 1 1 1 1 1

1 1 1 0

1 1 = A4 1 1

Remarque : recherche de cfc ` a partir de la matrice des fermetures transitives. 1 1 A2 = 1 0 1 1 1 0 1 1 1 0 {x1 , x2 , x3 } {x4 }

cf cm1 cf cm2

Pour trouver les cfc, il faut isoler des matrices carr ees maximales ne contenant que des 1 . Exercice : retrouver ces cfc par lalgorithme du marquage.

3.1.3 3.1.2 Existence de chemins


Pour avoir plus rapidement lexistence de tous les chemins dans un graphe, on rend le graphe r eexif (A = I + A), puis on calcule A2 , A4 , . . . , Ap , A2p . Lorsque Ap = A2p ,

Construction de chemins

On remplace la matrice bool eenne par une matrice comportant le nom des arcs (matrice aux arcs). Exemple :

29

CHAP. 3 - CHEMINS, PARCOURS HAMILTONIENS, ARBRES


a

(P. Lopez) 31

CHAP. 3 - CHEMINS, PARCOURS HAMILTONIENS, ARBRES

(P. Lopez) 32

111 000 000 111 111 000


c

11 00 00 11

aa ab ac A = ba bb bc 0 0 cc

Fig. 3.2: Enum eration de chemins A2 = ba.ac + bb.bc + bc.cc Fig. 3.3: 3 chemins en parall` ele de b ` ac
g

1 0 0 1

1 0
1 g

b c f

1 0
3

e d

1 0 0 1

1 0 0 1 1 0 0 1
3

1,4 b

3.2

Parcours hamiltoniens
b

f d

1 0
b

1 0 0 1
g

1 0 0 1
1

b c e d

On traite maintenant du probl` eme de l enum eration de parcours hamiltoniens (par exemple les circuits CH) dans un graphe. On choisit un arc a du graphe initial. On distingue deux types de circuits : cat.1 : ceux qui contiennent larc a ; cat.2 : ceux qui ne le contiennent pas. Remarque (simplication du graphe) : Si (x, y ) CH , les arcs sortant de x et les arcs entrant dans y nappartiennent pas ` a CH . Il advient une suppression de ces arcs-l` a. Exemple :

1 0 0 1
3

11 00 00 11

1 0 1 0
3

1,4,2 g

11 00 11 00
3

1,4

. . .

f d

11 00

{e,c,f,g} 2

11 00 00 11

11 00 00 11

{a,b,d,g}

11 00 00 11 11 00 00 11

1,4

non connexe

Fig. 3.4: Proc edure de simplication G1 est le graphe obtenu par contraction de a et simplication. G2 est le graphe obtenu par suppression de a. Les circuits de cat.1 contiennent a et forment un circuit sur G1. Les circuits de cat.2 forment un circuit sur G2. Exemple : [cf. Fig. 3.5] Remarques :

3,2

pas de CH

Fig. 3.5: Enum eration de circuits hamiltoniens

CHAP. 3 - CHEMINS, PARCOURS HAMILTONIENS, ARBRES

(P. Lopez) 33

CHAP. 3 - CHEMINS, PARCOURS HAMILTONIENS, ARBRES

(P. Lopez) 34

1. Une autre technique pour la d etermination de CH passe lapplication de la m ethode de composition latine. Celle-ci consiste ` a construire la matrice aux arcs dans laquelle la diagonale ne comprend que des z eros (M1 ). On supprime ensuite chaque lettre initiale (c-` a-d quon enl` eve le sommet origine de la d eniere ` a la multiplication tion de larc ou du chemin) : on obtient M1 . Puis on op` (latine) des matrices : M1 M1 = M2 , o` u lon ne retient que les s equences ne contenant pas de r ep etition de lettre. L el evation en puissance est eectu ee etermination jusqu` a obtenir des chemins de longueur n 1 (Mn1 ). Pour la d des circuits hamiltoniens, on calcule Mn = Mn1 M1 en conservant les s equences ayant des r ep etitions de lettre, a ` condition quelles se trouvent sur la diagonale. 2. Lorsque le graphe comporte un CH, il constitue un graphe fortement connexe (la matrice A ne comporte que des 1). En revanche, le fait que A ne comporte que des 1 nimplique pas lexistence dun CH dans le graphe. 3. Dautre part, il existe plusieurs th eor` emes renseignant sur lexistence et/ou le nombre de parcours hamiltoniens dans un graphe, par exemple : Th eor` emes : Si un graphe admet 2 cycles hamiltoniens sans ar etes communes, il admet au moins 3 cycles hamiltoniens. Un 1-graphe complet fortement connexe admet un circuit hamiltonien. Dans un 1-graphe complet antisym etrique et transitif, il existe un chemin hamiltonien et un seul. Dans un 1-graphe complet et antisym etrique, le nombre de ses chemins hamiltonien est impair. et dautres encore, tr` es souvent li es aux degr es ou aux demi-degr es des sommets...
b

0 0 1 11 00 1 00 11 0 1 1 0
a b c d e

11 00 0 1 00 0 11 0 1 1 0 1
b c d e

d e c

1 0 1 0

1 0
e d

0 1 0 1 0 1 0 0 1 0 1 1 0 1
d b c d e b {b,c,e} {b,d,e} {b,c,d}

1 0

1 0

11 00
b NON

{a,b,d}

1 0

1 0 0 1
c

{a,b,e}

3.3

Arbres

11 00 00 1 0 11 00 11
c d e c

Ce paragraphe concerne l enum eration des arbres dans un graphe, ainsi que la recherche dun arbre couvrant de poids minimum.

3.3.1

Enum eration darbres


d

On choisit une ar ete a sur le graphe initial G. On trouve deux cat egories darbres : cat.1 : ceux qui contiennent lar ete a ; cat.2 : ceux qui ne la contiennent pas. G1 est le graphe obtenu par contraction de a. G2 est le graphe obtenu par suppression de a. Chaque arbre de cat.1 est compos e de a et dun arbre sur G1. Chaque arbre de cat.2 est constitu e dun arbre sur G2. La cat.2 est vide si a est un pont, i.e., si sa suppression rend G2 non connexe.

11 00 1 0

1 0
e d d

{a,c,d}

1 0

11 00

{a,c,e}

1 0

1 00 0 11 00 11 00 11 00 11 00 11
d e

NON

{a,d,e}

Fig. 3.6: Enum eration darbres

CHAP. 3 - CHEMINS, PARCOURS HAMILTONIENS, ARBRES Exemple : [cf. Fig. 3.6] Applications :

(P. Lopez) 35

CHAP. 3 - CHEMINS, PARCOURS HAMILTONIENS, ARBRES

(P. Lopez) 36

3.3.2

Arbre couvrant de poids minimum

On parle ainsi dun arbre qui couvre le graphe G (il connecte tous ses sommets) et dont le co ut de connexion est minimal. Applications : optimisation de r eseaux (lignes ` a haute tension, ol eoducs, ...), c ablage de circuits electroniques, etc. Algorithme de Kruskal (1956) En reprenant lalgorithme d enum eration des arbres, on descend larborescence a ` gauche (contraction de lar ete) en choisissant lar ete de longueur minimale a ` chaque etape. On sarr ete lorsque tous les sommets du graphe sont connect es ou, ce qui revient au m eme, lorsque le nombre dar etes retenues egale n 1). Cest un algorithme glouton, i.e., il fait un choix optimal localement dans lespoir que ce choix m` enera ` a la solution optimale globalement. Ici, il rajoute a ` chaque etape lar ete de poids minimal a ` la for et quil construit. Larbre obtenu est unique si toutes les ar etes sont initialement de valeurs di erentes. Complexit e : O(m log m). Exemple : [cf. Fig. 3.7] Algorithme de Prim (1957) Principe : on part dun arbre initial A r eduit ` a un seul sommet s (e.g., s = 1) ; ensuite, ` a chaque it eration, on augmente larbre A en le connectant au plus proche sommet libre au sens des poids. Complexit e : O(m log n). Exemple : [cf. Fig. 3.8] Remarque : Sur cet exemple, on retrouve larbre a ` co ut minimum calcul e par lalgorithme de Kruskal. Dans le cas g en eral, on peut trouver un arbre di erent, mais de m eme poids.
10 x2 111 000 0000000 1111111 0 1 000000000 111111111 000 111 111 000 0000000 1111111 000000000 111111111 0 1 9 2 0000000 1111111 3 000000000 111111111 0 1 0000000 1111111 000000000 111111111 0 1 8 6 0000000 000000000 111111111 0 1 00 5 1111111 11 111x6 000 x1 0 1 11 000000000 111111111 7 12 0 1 000 111 000000000 111111111 0 1 000 111 x4 000000000 111111111 11 00 4 x5 x3 1 x1, x2, x3 x2, x3

11 00 00000000 11111111 9 00 11 00000000 11111111 2 00000000 11111111 00000000 11111111 8 00 11 00 11 00000000 11111111 00000000 11111111 6 11111111 00000000 00 11 00x6 11 00000000 11111111 00000000 11111111 x1 5 11 00000000 11111111 00000000 11111111 00000000 11111111 7 12 00000000 11111111 00000000 11111111 00000000 11111111 000 111 000000000000000 111111111111111 11 00 00000000 11111111 00000000 11111111 00000000 11111111 000 111 4 000000000000000 x4111111111111111 x5

0 1 00 11 8 0 1 0 1 0 1 5 0000000 1111111 61 0 111x6 000 0000000 1111111 0 1 0000000 1111111 7 0 1 00 11 0000000 1111111 000000000000000 111111111111111 00000000000000 11111111111111 0 1 00 11 0000000 1111111 111 000 4 000000000000000 111111111111111 00000000000000 11111111111111 x4 x5 111 000 000 111 0 1 0 1 0 1 71 0 0 1 0 1 0x6 1 111 000

x1, x2, x3

Fin 7` eme s eance

000 111 8 0 1 0 1 0 1 000000000000000000000 5 111111111111111111111 0 1 11x6 00 000000000000000000000 111111111111111111111 0 1 000000000000000000000 111111111111111111111 7 0 1 000 111 000000000000000000000 111111111111111111111 0 1 000 111 000000000000000000000 111111111111111111111 x4, x5

x1, x2, x3, x4, x5

Fig. 3.7: Recherche dun arbre a ` co ut minimum par Kruskal

CHAP. 3 - CHEMINS, PARCOURS HAMILTONIENS, ARBRES

(P. Lopez) 37

10

x3 1 x2 00 11 11 00 000 111 000000 111111 0 1 00000000 11111111 9 2 000000 111111 3 0 1 00000000 11111111 000000 111111 0 1 00000000 11111111 8 000 111 11 00 6 11111111 000000 111111 0 1 00000000 000 111 00x6 11 x1 0 1 5 11 00000000 11111111 7 0 1 00000000 11111111 000 111 0 4 111 1 111 000 x4 00000000 11111111 000 x5
12 Arbre de depart

111 000 x1
Arbre initial

2 x1

x2 111 000 000 111

Chapitre 4 Flots dans les r eseaux

11 00
1ere arete

x3 x3

11 00

x1

11 00 00 11

x2 111 000 000 111

11 00

11 00 00 11 x1

x2 111 000 000 111

Le probl` eme des ots dans les r eseaux concerne la circulation de mati` ere sur les arcs dun graphe. Parmi les nombreuses applications qui rel` event de ce probl` eme, on trouve les r eseaux de transport de marchandises (urbains, ferroviaires ou a eriens) de di erents points distributeurs a ` di erents points consommateurs ; l ecoulement de liquides ` a lint erieur de tuyaux ; le courant dans les r eseaux electriques ; linformatique ` a travers les r eseaux de communication ; le co ut de r ealisation dun projet en ordonnancement ; etc.

5 x5

11 00

4.1

D enitions et propri et es

2eme arete 3eme arete

On consid` ere des r eseaux, i.e., des graphes connexes, sans boucle et asym etriques, poss edant une entr ee et une sortie. Soit S = {sij }, la matrice dincidence sommetsarcs de G(X, U ), u = 1, 2, . . . , m.

x3

11 00 11 00

111 000 000 111 x1


4

x2 11 00 00 11

111 000 111 000

x3

x4

111 000 000 111 x5

111 000 000 111 x1


4

x2 11 00 00 11

4.1.1
4.1.1.1

Flot dans un r eseau


D enition

x4

111 000 000 111 x5

11 00 00x6 11
7

Un ot sur un graphe G(X, U ) est un vecteur ligne = [1 , 2 , . . . , m ] Rm ` am composantes et tel que : j 0 j 1, . . . , m 0 en tout sommet i X , la 1` ere loi de Kirchho est v eri ee (loi de conservation aux nuds) : j = j
j + (i) j (i)

4\eme ar\^ete

5eme arete

j est la quantit e de ot ou ux sur larc j . La 2` eme condition peut egalement s ecrire (pour i = 1 a ` n) :
m j =1

Fig. 3.8: Recherche dun arbre a ` co ut minimum par Prim (s = 1)

sij j = 0 S.t = 0

38

CHAP. 4 - FLOTS DANS LES RESEAUX 4.1.1.2 Op erations sur les ots

(P. Lopez) 39

CHAP. 4 - FLOTS DANS LES RESEAUX

(P. Lopez) 40

Soient , 1 , 2 des ots sur G, k 0. Lemme : k. est un ot sur G. 1 + 2 est un ot sur G. 1 2 est un ot sur G si 1 2 . D emonstration (partie) : k. 0 et S.(k.)t = k.S.t = 0. 2 4.1.1.3 Flot el ementaire

1 5

11 00 00 11
1 1

5 1

111 000 000 111


2 4

111 000 000 111


2 2

111 000 000 111


1 1 1

111 000
1 1 1

11 00 11 00
1

11 00
1

111 000

3 4

Soit un circuit el ementaire sur G (i.e., il passe au plus une fois par un sommet). e par les el ements vi tels que : On appelle v le vecteur constitu vi = 1 si ui , i = 1..m vi = 0 sinon el ementaire sur G. v est un ot cyclique Th eor` eme : tout ot se d ecompose en une somme de ots cycliques el ementaires lin eairement ind ependants : = 1 .v 1 + 2 .v 2 + . . . + k .v k , i 0 Exemple :

11 00 00 11
1

11 00 00 11
1 1

11 00 00 11
4

11 00 00 11
1

5 2

111 000 000 111


1 4

111 000 000 111


1 1

2 5

111 000 111 000


1 4

111 000 111 000 000 111


3

111 000

111 000

11 00

111 000

111 000 000 111

Fig. 4.2: Flots cycliques el ementaires

1 5

111 000
1 3 1 1

111 000
2 4

11 00
2

eme sens et de capacit e r esiduelle c+ j + de m j = c j j 0 ; e et de capacit e r esiduelle c j de sens oppos j = j 0. La capacit e r esiduelle correspond a ` la quantit e de ot net suppl ementaire quil est possible dajouter sur larc j sans d epasser la capacit e cj . Exemple : Par convention, les arcs de capacit e nulle ne sont pas repr esent es sur le graphe. Le graphe d ecart repr esente la modication que lon peut faire subir au ot tout en lui conservant la propri et e de ot admissible. e = [+ | ] c+ = c c = 0 + c 0 S.(+ )t = 0

11 00 00 11

11 00 00 11

Fig. 4.1: Flot initial Dans cet exemple, il existe deux possibilit es de d ecomposition en ots cycliques el ementaires : 4.1.1.4 Capacit e des arcs

Un r eseau de transport est un r eseau o` u` a chaque arc j U est associ e une capacit e eventuellement un co ut dj ) (exemple de capacit e : tonnage ou d ebit cj 0 (et maximum). Cest la limite sup erieure du ux admissible sur j . Un ot est admissible ssi j cj j = 1, . . . , m c.

4.2
4.2.1

Probl` eme du ot maximum dans un r eseau de transport


D enition

4.1.2

Graphe d ecart
e

Soit un ot admissible sur G. Le graphe d ecart associ e` a est le graphe G () = u U e () est tel que pour tout j U , on associe deux arcs de Ge () : [X, U e ()] o`

Soient deux sommets ctifs source (s) et puits (t) permettant de mod eliser des entr ees et des sorties de mati` eres ` a di erents sommets du graphe. G0 (X, U 0 ) est

CHAP. 4 - FLOTS DANS LES RESEAUX

(P. Lopez) 41

CHAP. 4 - FLOTS DANS LES RESEAUX

(P. Lopez) 42

111 000

3 1

111 000 000 111


2 2 3 0

3 3

ci i

11 00 00 11
1 3 1 2

ci 3

Th eor` eme de Ford-Fulkerson (max-ow min-cut) : la valeur dun ot maximum est egale a ` la plus petite capacit e des coupes s eparant s et t.

11 00
3 2 2 1

111 000

11 00

Ceci entra ne notamment que la valeur dune coupe quelconque est une borne sup erieure pour la valeur du ot.

111 000
G()

11 00

4.2.4
1

Algorithme de recherche dun ot maximum

M ethode de Ford-Fulkerson (1956) Etape 1 Constitution dun ot initial admissible (nul ou complet, i.e., un ot tel que tout chemin de s ` a t poss` ede au moins un arc satur e i = Ci ). k 0. Etape 2 Construire Ge (k ). Chercher un circuit dincr ementation . Sil nexiste pas, FIN, le ot est maximum. Etape 3 Soit la plus petite capacit e de . Pour j + de , augmenter j de . Pour j de , diminuer j de . k k + 1. Aller en Etape 2. ementation (e.g., algorithme de Edmonds-Karp), Complexit e : par une bonne impl on arrive a ` un temps dex ecution en O(nm2 ). Exemple : Il nexiste pas de chemin de s ` a t 1 est un ot maximum : 0 = 1 0 = 60

Ge () Fig. 4.3: Graphe et son graphe d ecart

d eduit de G en rajoutant larc (t, s) appel e arc de retour du ot, not e u0 : j =


j + ( s ) j (t)

j = 0

o` u 0 = valeur du ot. Le probl` eme du ot maximum de s ` a t dans G consiste ` a d eterminer un ot dans eriant les contraintes de capacit e et maximisant 0 . G0 v

4.2.2

Circuit dincr ementation

On appelle circuit dincr ementation sur Ge () un circuit traversant u+ 0 et pas u0 dont tous les arcs ont une capacit e di erente de 0.

Th eor` eme : est maximum ssi Ge () ne contient pas de circuit dincr ementation.

4.3
4.3.1

Probl` eme du ot maximum ` a co ut minimum


Position du probl` eme
m

4.2.3

Coupes

Soit {X , X } une partition de X , i.e., X X = X et X X = . Lensemble emit e nale dans X forme des arcs ayant leur extr emit e initiale dans X et leur extr une coupe. La capacit e de la coupe est : C (X , X ) =
j coupe(X ,X )

On associe un co ut unitaire de transport dj ` a chaque arc uj du r eseau. co ut total = d t = dj .j


j =1

cj

Th eor` eme : 0 capacit e de toute coupe s eparant s et t.

On cherche un ot maximum de co ut minimum sur Ge () : ut dj ; pour un arc j + , on associe un co ut dj . pour un arc j , on associe un co

CHAP. 4 - FLOTS DANS LES RESEAUX A 20 10

(P. Lopez) 43

CHAP. 4 - FLOTS DANS LES RESEAUX

(P. Lopez) 44

11 00 00 11

0 1 0 1 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1
5

15 5 10 5 10 15

00 11 00 11 00 11
E

25 20

ci

1 0 0 1
t 20

Ge (0 )

35 C

10

11 00 00 11
F D

1 0 0 1
10

20 10

B 25

11 00 00 11 00 11 00 11
A

15 5 5 5 5 5

11 00 00 11 00 11 00 11
10

D 25

ci

E 10 10 20

1 0 0 1

t =5

A 0 20 s

15 5 5

11 00 00 11 00 11 00 11 00 11
E F 10

25

11 00
1

5 15

11 00
F

11 00

10

5 5 15

1 0
0 0 = 55

25 C

20 s

1 0 0 1

20

10 30

11 00 00 11 00 11 00 11
A

10 5

10

B 5 5 15 10

11 00 00 11 00 11 00 11 11 00
F

D 25

15 E 20

1 0 0 1

Fig. 4.4: Proc edure de Ford-Fulkerson ` a partir dun ot complet

4.3.2

Algorithme de construction dun ot maximum ` a co ut minimum


Ge (1 )

11 00
C

1 0 = 60

On pr esente ici une m ethode par augmentation de ot, a ` partir dun ot initial nul. Une autre approche consiste a ` appliquer une m ethode par diminution du co ut, a ` partir dun ot initial complet (Ford-Fulkerson 1962). ` co ut minimum de G, un circuit dincr ementation a ` co ut minimum est un ot a e. sur Ge () et sa plus petite capacit Comme dans lalgorithme de Ford-Fulkerson, on introduit un vecteur d eni par = + si j + ; si j ; / . si j + , j ` co ut minimum sur G de valeur plus grande de , que celle de . est un ot a Lalgorithme est identique a ` celui de Ford-Fulkerson pour la recherche dun ot maximum aux di erences suivantes pr` es :

1 0 0 1

11 00 00 11 00 11 00 11 11 00

11 00 00 11 00 11 00 11 11 00
F

1 0 0 1

Fig. 4.5: Flot maximum

CHAP. 4 - FLOTS DANS LES RESEAUX Algorithme de Busacker-Gowen (1961) ` co^ ut minimum (ot nul). Etape 1. Construction dun ot initial a ementation a ` co^ ut minimum z . Etape 2. Chercher un circuit dincr ut total est incr ement ee par z . Etape 3. La valeur du co

(P. Lopez) 45

CHAP. 4 - FLOTS DANS LES RESEAUX

(P. Lopez) 46

Complexit e : suivant les impl ementations O(n4 ), O(n3 ) (Edmonds & Karp), O(n2,5 ) (Hopcroft & Karp). Exemple :

1 0 0 1
0 = 0

10(4)

11 00 00 11 1 0 0 1
5(3) 10(3)

2 7(1) 2(6)

11 00
5 0

7 0

8(1)

11 00 00 11

1 0 0 1
4(2)

ci (di )

1 0
5

11 00 00 11
2

11 00 00 11
7 0

1 0
0 7

G ( )

11 00 00 11
3(1)

8(4) 2(-4)

1 0
10(3)

7(-1) 2(6) =

5(-1) 5(-3)

11 00 00 11

1 0 0 1
2(6)

11 00 00 11

4(2)

11 00
5 3

0 1

11 00 00 11
5

Ge (0 ) = = 5 5 0

1 0
5

1 0
0 5

Ge (1 )

11 00 00 11
3(1)

10(4) 5(-3) 5(-1)

1 0
10(3)

2(1)

1 0
8

1 0
3 10

G ( )

11 00 00 11

8(4) 2(-4)

1 0 11 00 00 11

7(-1)

5(-1) 2(6)

1 0

11 00

11 00 00 11

1 0 0 1

1 0 0 1

11 00
3

11 00
7 0

8(-1)

5(-3) 1(2) 3(-3) 3(-2) 7(3)

1 0 0 1

11 00 00 11

=2

4(2) 4

11 00 00 11
4 4

1 0 0 1 1 0
4 11 Ge (4 )

7(-1)

Fig. 4.6: Proc edure de Busacker-Gowen Remarque : Sur cet exemple, on peut obtenir la solution optimale en 2 it erations (au lieu de 4), en s electionnant, en cas de choix multiples, la cha ne am eliorante (circuit dincr ementation) de co ut minimum ET de capacit e minimale la plus grande (an dam eliorer plus rapidement la valeur du ot).

1 0

11 00
8(-1)

11 00

11 00

11 00 00 11

1 0 0 1

11 00
4(-2)

Fig. 4.7: Flot maximum a ` co ut minimum (ot max = 11 ; co ut total = 5 5 + 2 5 + 3 6 + 1 6 = 59)

Bibliographie

(P. Lopez) 48

Bibliographie
Claude Berge Th eorie des graphes et ses applications Dunod, Paris, 1958. Claude Berge Graphes Gauthiers-Villars, Paris, 1983. Bernard Carre Graphs and Networks Clarendon Press, Oxford, 1979. Thomas Cormen, Charles Leiserson et Ronald Rivest Introduction a ` lalgorithmique Dunod, Paris, 1994. G erard Desbazeille Exercices et probl` emes de recherche op erationnelle Dunod, Paris, 1976. Stuart E. Dreyfus An appraisal of some shortest-path algorithms Operations Research, 1969, 17, pp.395412. Salah E. Elmaghraby Activity Networks John Wiley & Sons, New-York, 1977. Robert Faure Pr ecis de recherche op erationnelle Dunod, Paris, 1979. G erard Fontan Combinatoire et Ordonnancement Notes de Cours, DEA Automatique et Informatique Industrielle, Universit e Paul Sabatier, Toulouse, 1987. Michel Gondran et Michel Minoux Graphes et algorithmes Eyrolles, Paris, 1984.

Christian Prins Algorithmes de graphes (avec programmes en Pascal) Eyrolles, Paris, 1994. Bernard Roy Alg` ebre moderne et th eorie des graphes Tome II, Dunod, Paris, 1984. Aim e Sache La th eorie des graphes Que sais-je ?, No 1554, Presses Universitaires de France, Paris, 1974. M.M. Syslo, N. Deo and J.S. Kowalik Discrete Optimization Algorithms (with Pascal programs) Prentice Hall, 1983.

47