Vous êtes sur la page 1sur 85

RECHERCHE OPRATIONNELLE : Optimisation Combinatoire

JACQUES CARLIER

Table des matires

I - COURS
A. INTRODUCTION................................................................................5
1. 2. 3. 4. La Recherche Oprationnelle.................................................................5 Quelques problmes de recherche oprationnelle:....................................6 Rsumons :......................................................................................10 Les problmes combinatoires...............................................................10

B. LES GRAPHES.................................................................................12
1. Pourquoi les graphes ? :.....................................................................12 2. Vocabulaire de la thorie des graphes :................................................14 3. Graphes particuliers :.........................................................................23

C. ALGORITHMES POLYNOMIAUX DE BASE POUR LES GRAPHES................27


1. 2. 3. 4. 5. Dfinition de la polynomialit :............................................................27 Codage des graphes :.........................................................................29 Algorithme de bonne numrotation d'un graphe :...................................32 Recherche d'un couplage maximal :.....................................................36 Autres algorithmes de graphe :............................................................45

D. COMPLEXIT DES PROBLMES COMBINATOIRES.................................45


1. 2. 3. 4. 5. 6. 7. Qu'est-ce-que l'optimisation combinatoire ? :........................................45 Diffrents types de problmes :...........................................................45 Quand un problme est-il rsolu ? :.....................................................49 Les problmes NP-difficiles :................................................................51 Mthodes arborescentes :...................................................................51 Rcapitulation :.................................................................................64 Mthodes heuristiques :......................................................................65

E. PROBLMES DE CHEMINEMENT.........................................................66
1. 2. 3. 4. 5. 6. Proprit des chemins minimaux :.......................................................66 Algorithme de FORD :.........................................................................68 Algorithme de DIJKSTRA :...................................................................72 Algorithme de BELLMAN :...................................................................76 Mthode matricielle :..........................................................................77 Autres problmes de cheminement :....................................................79

F. PROBLMES D'ORDONNANCEMENT....................................................79
1. Graphes conjonctifs, ensemble de potentiels.........................................79 2. La mthode potentiel-tches...............................................................84 3. La mthode PERT...............................................................................90

G. LE PROBLME DU FLOT MAXIMAL......................................................93


1. 2. 3. 4. 5. Rseau de transport...........................................................................93 Lemme.............................................................................................95 Flot complet......................................................................................95 Algorithme de FORD-FULKERSON :......................................................96 Flot maximal cot minimal :...........................................................102

H. LES PROBLMES DE FLOTS CANALISES A COT MINIMAL..................110


1. Flot canalis et graphe d'cart :.........................................................110 2. Flot canalis cot minimal :............................................................113

Bibliographie

119

I -

COURS
INTRODUCTION LES GRAPHES

I
5 12 27 COMPLEXIT DES PROBLMES COMBINATOIRES PROBLMES DE CHEMINEMENT PROBLMES D'ORDONNANCEMENT LE PROBLME DU FLOT MAXIMAL 45 66 79 93

ALGORITHMES POLYNOMIAUX DE BASE POUR LES GRAPHES

LES PROBLMES DE FLOTS CANALISES A COT MINIMAL 110

A. INTRODUCTION

La Recherche Oprationnelle est souvent rduite par les personnes extrieures cette discipline ses aspects mathmatiques. Pourtant, et ds l'origine, elle vise essentiellement la rsolution de problmes pratiques qui sont des dfis au sens commun. C'est pourquoi il m'a paru ncessaire, dans cette introduction, de dfinir la Recherche Oprationnelle. Je m'appuie pour cela sur les crits de Robert FAURE. Les problmes combinatoires sont des dfis au sens commun. Ils sont donc tudis mais ils restent mconnus y compris par de nombreux informaticiens. En effet, certains croient en la puissance absolue de l'ordinateur et ne s'inquitent pas des problmes de taille de donnes ni de complexit des algorithmes. D'autres se font une montagne des problmes dits NP-difficiles. Or, ma dj longue lutte contre les problmes combinatoires m'a appris que la situation relle est beaucoup plus complexe, en particulier si on se place d'un point de vue pratique. Certains d'entre eux sont effectivement simples et relvent d'une heuristique, type recuit simul, mthode tabou ou gntique. D'autres, au contraire, demandent des tudes fines et des programmes spcifiques. Mais, dans tous les cas, l'intervention humaine est cruciale. Il faut savoir exploiter les spcificits d'un problme et c'est une erreur de croire l'automaticit de sa rsolution.

1. La Recherche Oprationnelle

COURS

Commenons par citer Robert FAURE qui a t un des principaux initiateurs de la R.O. en France...

a) Le caractre pratique de la Recherche Oprationnelle : Dfinition


"La recherche oprationnelle a t, reste et demeurera l'art d'intervenir rapidement au profit d'une entit conomique dtermine (agent ou collectivit) dans une situation difficile afin de tenter d'en amliorer l'issue".

b) Heuristique et traitement interactif : Dfinition


"Depuis toujours, la recherche oprationnelle a institu des mthodes heuristiques incapables de fournir l'optimum formel mais susceptibles d'aboutir de bonnes solutions".

c) Dontologie de la R.O. : Dfinition


"L'quipe de R.O., en particulier le coordonnateur, doit absolument se garder de considrer qu'il lui revient de conclure son tude par une dcision". ... pour arriver Bernard ROY, une de ses personnalits actuelles les plus marquantes, qui propose le terme "AIDE A LA DECISION".

2. Quelques problmes de recherche oprationnelle:


a) Les problmes combinatoires discrets :
Nous illustrons par deux exemples : le problme du voyageur de commerce et le problme de l'arbre minimal.

Exemple
Dans un problme de voyageur de commerce, un VRP doit visiter un certain nombre de villes en minimisant la distance parcourue. Sur la figure ci-dessous le voyageur doit visiter 18 villes en partant de Paris. Ce problme est modlis par un graphe valu dont les sommets sont les villes et les artes les liaisons entre ces villes. Ces artes sont values par les distances kilomtriques. On doit chercher dans ce graphe un cycle Hamiltonien de valeur minimale. Ici il y a 17! circuits possibles. Plus gnralement, s'il y a N villes, il y a N-1! circuits. Il est en gnral impossible d'numrer. C'est pourquoi ce problme est un dfi au sens commun. On verra dans le cours que le problme du voyageur de commerce est probablement de complexit exponentielle (il est NP-difficile). Toutefois, il y a des mthodes qui permettent de rsoudre pratiquement des problmes de grande taille.

COURS

Figure 0.1 Carte des villes d'un problme de voyageur de commerce

Exemple
Dans le problme de l'arbre minimal on doit relier N sites pour un cot global minimal de faon ce que tout site puisse communiquer avec tous les autres. On verra qu'il faut chercher un arbre recouvrant de cot minimal et que ce problme est facile car pouvant tre rsolu par un algorithme polynomial. Un exemple de graphe est rapport sur la figure 0.2 ainsi que son arbre minimal sur la figure 0.3. Il a t obtenu en retenant successivement les artes de plus petits cots, sous rserve qu'elles soient "utiles".

COURS

Figure 0.2 : graphe

Figure 0.3 : arbre minimal

Remarque
L'UV RO03 est consacre aux mthodes traitant les problmes combinatoires discrets.

b) Les problmes combinatoires continus :


Un pays veut acheter des armes et s'adresse un marchand d'armes international qui possde des stocks vols ou achets. Celui-ci propose 2 types de lots. Le premier type de lot contient 100 mitraillettes, 200 gilets pare-balles, 5 automitrailleuses lgres et 50 bazookas. Le deuxime type de lot contient 50 mitraillettes, 100 gilets pare-balles, 10 auto-mitrailleuses lgres et 100 bazookas. Un lot de type 1 cote p1 francs et un lot de type 2, p2 francs. Le pays dsire acheter au minimum 1000 mitraillettes, 2500 gilets pare-balles, 30 automitrailleuses lgres et 250 bazookas. Si on note x1 le nombre de lots 1 et x2 le nombre de lots 2 qu'il achte alors il doit rsoudre le programme linaire suivant : Minimiser

p 1 x1 p 2 x 2

sous les contraintes :

1 0 0 x 15 0 x 21 0 0 0 2 0 0 x110 0 x 22 5 0 0 5 x 11 0 x 23 0 5 0 x 11 0 0 x 225 0 x 10 e t x 20 et x1 et x2 entiers


On parle de programme linaire car les contraintes et la fonction conomique sont linaires. Ce programme est discret car les variables sont supposes entires. Cette intgrit des variables rend la rsolution difficile. C'est pourquoi, on relche la contrainte d'intgrit et on suppose les variables relles, ce qui rend le problme

COURS

facile. Il est donc facile (polynomial) dans le cas continu et difficile (NP-difficile) dans le cas discret. Pour obtenir une solution entire, on pourra, par exemple, retenir les parties entires de la solution continue. Mais on n'aura pas la solution optimale. Dans le cas gnral de fonctionnelle optimiser sous contraintes, on parle de programmation mathmatique. Un exemple est fourni par le problme qu'a eu rsoudre la reine DIDON lors de la fondation de Carthage savoir : quelle est la figure gomtrique de primtre donn ayant la plus grande surface? La rponse est le cercle. Remarquons toutefois que la plupart des problmes de programmation mathmatique sont difficiles. Ces problmes sont tudis dans l'UV RO04 o on prsente en particulier la mthode du simplexe qui permet de traiter de grands programmes linaires en continu.

c) Les problmes alatoires : Exemple


Un phnomne alatoire se prsente aux caisses d'un supermarch. Un observateur a pu mesurer la frquence du nombre de clients qui arrive par minute pendant 30 minutes.
Nombre de clients par minute Frquence dobservation 0 4 1 8 2 8 3 6 4 3 5 1 6 0

Tableau 1 : t1 Il a galement observ la rpartition des temps de services :


Temps de service effectif des clients Moins de 1 mn 24 1 2 mn 14 2 3 mn 8 3 4 mn 5 4 5 mn 3 5 6 mn 2 6 7 mn 1 7 8 mn 1 8 9 mn 1

Tableau 2 : table 2 Ces statistiques permettent d'estimer les lois d'arrives et des services. Ici par exemple on a des arrives poissonnines et des services exponentiels. Il faut alors trouver un compromis entre le temps d'attente des clients et le nombre de caisses ouvertes.

Remarque
D'autres problmes alatoires concernent les stocks, le renouvellement d'quipements et la fiabilit. Ces problmes sont tudis dans l'UV RO05 o on prsente en particulier les chanes de Markov et les files d'attente.

d) Schma du travail d'une quipe de recherche oprationnelle :

COURS

Mthode
On a trois tapes. La premire tape a pour objet de modliser le problme et de dterminer le (ou les) critre(s). La seconde tape est la rsolution, c'est--dire la dtermination d'une solution qui parat bonne (on dira abusivement optimale). La troisime tape est une discussion avec le dcideur et, si ncessaire, un retour la premire tape.

Figure 0.4 : schma de fonctionnement d'une quipe

3. Rsumons :
a) Rsumons : Rappel
La recherche oprationnelle :

traite un problme pratique a un objectif limit (cette application) ncessite une bote outils (algorithmes et structures des donnes, optimisation combinatoire, graphes, complexit, programmations linaire et mathmatique, processus stochastiques, probabilits et statistiques, mthodes multicritres....); est pluridisciplinaire (Mathmatique, Informatique, Economie); est banalise (Programmation linaire, PERT, ...); aide la dcision.

4. Les problmes combinatoires

Parmi les dfis au sens commun, il y a donc les problmes combinatoires pour lesquels il est, a priori, impossible d'numrer. On distingue toutefois les problmes faciles des problmes difficiles.

a) Problmes faciles :
Il en est ainsi pour les problmes de toute petite taille (il faut numrer !), pour les problmes fortement contraints (il suffit d'numrer !), pour les problmes faiblement contraints (une heuristique type recuit simul ou mthode tabou sera parfaite surtout dans un contexte industriel) et enfin pour les problmes rsolus polynomialement, encore faut-il le savoir !

10

COURS

b) Problmes difficiles :
Mon exprience pratique me permet d'affirmer qu'ils sont frquents et que pour les rsoudre il faut utiliser de multiples outils (mthodes srielles, recuit simul, mthodes arborescentes, programmation dynamique, algorithme A*....). Il faut ajouter que pour certains d'entre eux la mthode actuelle la plus efficace est de reproduire l'expertise humaine.

c) Les mthodes automatiques :


(a n'existe pas encore !) Il y a 40 ans, GOMORY dcouvrait ses fameuses coupes pour la Programmation Linaire en Nombres Entiers (PLNE). Or, de trs nombreux problmes combinatoires peuvent se modliser par un PLNE. A l'poque, on a cru pouvoir rsoudre les problmes combinatoires. L'espoir a t du ! 40 ans aprs, on ne sait pas rsoudre automatiquement les problmes combinatoires. Mais il n'est pas exclu thoriquement que cela soit possible dans l'avenir. Cela revient dire que les problmes NP-difficiles pourraient tre rsolus "pratiquement" de faon polynomiale. Il faudrait une grande avance algorithmique

d) Les mthodes semi-automatiques :


Modliser un problme combinatoire ne sert rien (1), si on ne dcrit pas, en plus, son algorithme de rsolution et plus particulirement de bonnes valuations, certains disent de bonnes contraintes. D'o l'ide de faire des langages de programmation adapts au combinatoire et incluant des parcours arborescents avec des choix automatiques. L'avantage est de pouvoir, au moins pour le spcialiste d'un tel langage, programmer trs vite. A mon avis, un tel outil reste ambitieux car on a des surcots lis la rigidit d'un tel systme et la faiblesse de leurs structures de donnes. (1) En fait, tout modle est une simplification de la ralit et, quand on modlise, il faut chercher obtenir le modle le plus reprsentatif que l'on puisse esprer rsoudre de faon satisfaisante !

e) Les programmes spcifiques :


Je citerai les mthodes arborescentes, les mthodes polydrales et la programmation dynamique, mais aussi les heuristiques. L'exprience de rsolution des problmes combinatoires montre l'importance cruciale pour construire une mthode efficace des points suivants :

une modlisation adapte; La complexit des algorithmes et des structures de donnes; La proximit de la machine (langage procdural, par exemple); la proximit du problme (si on n'a pas d'excellentes valuations, celles-ci sont inutiles).

* * *

Ce serait une galjade de prtendre enseigner toute l'optimisation combinatoire en

11

COURS

une soixantaine d'heures (cours et exercices inclus). Nous ne le prtendrons pas. Nous insisterons sur les ides principales et la prsentation des algorithmes les plus fondamentaux. En effet ces algorithmes sont les outils de bases pour des mthodes plus labores. Nos objectifs sont de faire prendre conscience de la complexit des problmes, du danger du combinatoire et de l'utilit des graphes pour modliser. Esprons que cela vous vitera sur le terrain de concevoir de belles maquettes parfaites pour des exemples d'coles de petites tailles mais inutilisables sur des problmes rels.

B. LES GRAPHES
1. Pourquoi les graphes ? :
a) Pourquoi les graphes ? : Dfinition
Les graphes sont des outils irremplaables pour modliser et rsoudre de nombreux problmes concrets. En effet, ils permettent, d'une part de guider l'intuition lors d'un raisonnement, d'autre part de se rattacher aux rsultats connus de la thorie des graphes. Nous les dfinissons succinctement ci-dessous et illustrons leur intrt par quelques exemples.

Dfinition
Un graphe orient est un couple G = (X,U ), o X est un ensemble dont les lments sont appels sommets et U une partie de X x X dont les lments sont appels arcs.

Figure 1-1

Exemple
Un premier exemple de graphe est dessin sur la figure 1.1. Il est donn par : X = {A, B , C , D , E} et U = {(A , C) (C ,A) (C ,D) (B ,D) (D ,D) (E , E) }

Exemple
On a 3 bocaux de contenances respectives 8, 5 et 3 litres. Initialement, le plus grand bocal est plein, les autres sont vides. On veut atteindre la situation o les 2 plus grands bocaux contiennent 4 litres sous la contrainte suivante : quand on vide un bocal dans un autre, soit on remplit l'autre bocal entirement, soit on vide le premier entirement. A ce problme, on associe un graphe dont les sommets reprsentent les tats du systme. Un sommet est un triplet (i ,j ,k ) o i, j, et k sont les contenus des 3 bocaux. Les arcs correspondent aux possibilits de transition entre tats (Cf. figure 1.2).

Dfinition
Un graphe non orient est un couple G=(X,E), o X est un ensemble de sommets

12

COURS

et E un ensemble de paires de sommets appeles artes. On a un multigraphe quand on autorise l'existence simultane de plusieurs paires identiques.

Figure 1-2

Exemple : Exemple 3 :
Le pont de Knigsberg (Kaliningrad) surplombe la Pregel. Au milieu de cette rivire, on a l'le de Kneiphoff (Cf figure 1.3).

Figure 1-3 Un piton peut-il traverser une fois et une seule chaque pont ? En 1736, Euler a dmontr que cela est impossible. Pour le montrer, il a associ au problme le multigraphe de la figure 1.4.

13

COURS

Figure 1-4 A chaque portion de terre correspond un sommet, chaque pont, une arte. Le problme se formule alors ainsi : existe-t-il une chane passant une fois et une seule par chaque arte du multigraphe (on parlera de chane eulrienne) ? La rponse rsulte du thorme suivant que nous ne dmontrerons pas :

Fondamental : Thorme d'Euler


Un multigraphe simple (sans boucle) G admet une chane eulrienne si et seulement si il est connexe (d'un seul tenant) et si le nombre de sommets de degr impair est 0 ou 2. Dans le cas des ponts de Knigsberg, les 4 sommets du graphe de la figure 1.4 sont de degr impair, il n'y a donc pas de solution.

2. Vocabulaire de la thorie des graphes :

Le but de ce paragraphe est de donner les dfinitions de base de la thorie des graphes. Ces dfinitions sont nombreuses mais trs intuitives, ce qui facilite leur apprentissage !

a) Graphe orient et non orient, graphe valu : Dfinition : graphe orient


Un graphe orient est un couple G = (X,U ), o X est un ensemble dont les lments sont appels sommets et U une partie de X x X dont les lments sont appels arcs.

Dfinition : graphe non orient


Un graphe non orient est un couple G=(X,E), o X est un ensemble dont les lments sont appels sommets et E un sous-ensemble de parties de X contenant chacune au plus 2 lments et dont les lments sont appels artes.

Remarque
on notera n le nombre de sommets d'un graphe et m son nombre d'arcs (ou d'artes). (cf. 'Figure 1-5' p 15)A un graphe orient, on associe un graphe non orient en laissant tomber l'orientation. De mme un graphe non orient, on associe un graphe orient, soit en introduisant pour toute arte les deux arcs qui lui correspondent, soit en choisissant un seul des deux arcs (Cf. Figure 1.5). (cf. 'Figure 1-5' p 15)

14

COURS

Figure 1-5

Dfinition : Graphe valu :


Un graphe valu est un triplet G = (X, U, v) o (X, U) est un graphe et v une application de U dans IR (ensemble des rels).

Dfinition : Extrmit initiale et terminale (successeur et prdcesseur) :


Soit un arc (i,j); i est dit extrmit initiale de l'arc (i ,j), j, extrmit terminale. On dit aussi que j est un successeur de i, et i un prdcesseur de j. L'arc (i ,j ) est dit incident vers l'extrieur en i et vers l'intrieur en j. On note U+(i) l'ensemble des successeurs de i, U-(i) l'ensemble des prdcesseurs de i, d+(i) le demi-degr extrieur de i, c'est--dire le cardinal de U+(i), et d-(i) le demi-degr intrieur de i, c'est--dire le cardinal de U-(i) (Cf. figure 1.6).

b) Degr : Dfinition : Degr d'un sommet :


Le degr d'un sommet est le nombre d'arcs incidents en ce sommet. Quand il n'y a pas de boucle en un sommet, c'est--dire d'arc dont l'extrmit initiale se confond avec l'extrmit terminale, son degr est la somme de son demi-degr intrieur et de son demi-degr extrieur (Cf. figure 1.6).

Figure 1-6 Sur la figure 1.6 on a : U (E) = {A ,D } d-(E) = 2 d-(A) = 0 d (C) = 4 U+(E) = {C} d+(E) = 1 d+(A) = 3 d (B) = 4
-

c) Chemins, circuits Dfinition : Chemins


Un chemin est une suite de sommets [x0 , x1 , .... , xp ] telle que les arcs (x0 , x1 ) , ( x1 , x2 ) , ..... , ( xp-1 , xp ) appartiennent au graphe. La valeur d'un chemin est alors la somme des valuations des arcs de ce chemin. La longueur d'un chemin est son nombre d'arcs. Le sommet x0 est appel extrmit initiale du chemin et le sommet xp, extrmit terminale.

Exemple

15

COURS

Figure 1-7 Par exemple sur le graphe de la figure 1.7 la valeur du chemin {s, 1 ,2 ,4 ,p} est 26 et sa longueur 4.

Dfinition : Circuit :
Un circuit est un chemin dont l'extrmit initiale se confond avec l'extrmit terminale.

Dfinition : Chemin lmentaire et simple:


Un chemin est dit lmentaire (resp. simple) s'il ne passe pas deux fois par le mme sommet (resp. arc).

Exemple

Figure 1-8 Sur la figure 1.8 : Les chemins [E ,D ,C ,F] et [E ,D ,A ,B ,C , F] sont lmentaires alors que le chemin [E ,D ,A ,B ,A ,B ,C ,F] n'est pas lmentaire.

Dfinition : Chemin eulrien et hamiltonien :


Un chemin est dit eulrien (resp hamiltonien) s'il passe une fois et une seule par chaque arc (resp. sommet) du graphe.

Dfinition : Descendant, ascendant :


Un sommet j est un descendant d'un sommet i s'il existe un chemin allant de i j ou si i=j; on dit alors que i est un ascendant de j.

Dfinition : Source, puits :


Une source s est un sommet ascendant de tous les autres sommets, un puits p, un sommet descendant de tous les autres sommets. Note : Un synonyme de source (resp. puits ) est racine (resp. antiracine).

d) Chanes, cycles : Dfinition : Chane :

16

COURS

Figure 1-9 Une chane est une suite d'arcs u1, u2 , .... , up telle qu'une extrmit de l'arc ui ( 2i p1 ) est commune avec l'arc ui+1, alors que l'autre extrmit est commune avec l'arc ui-1. La longueur d'une chane est son nombre d'arcs. Sur la figure 1.9, ( A B) ( B C) (G C) (F G) (E F) (D E) est une chane. Une chane peut tre "vue" comme une suite de sommets telle que deux sommets conscutifs soient lis par un arc, certains arcs peuvent tre parcourus dans le sens de la chane (sens +), les autres arcs dans le sens oppos (sens -).

Dfinition : Cycle :
Un cycle est une chane dont l'extrmit initiale se confond avec l'extrmit terminale. On dfinira de mme une chane simple, hamiltonienne, lmentaire, eulrienne, un cycle hamiltonien, eulrien.

e) Graphe partiel, sous-graphe : Dfinition : Sous-graphe :


Soit G=(X,U) un graphe. Le sous-graphe associ au sous-ensemble A de X est par dfinition le graphe GA dfini par : GA = ( A ,U A x A ).

Exemple

Figure 1-10 Considrons l'exemple de la figure 1.10 o n = 5 et m = 8, le sous-graphe d'ensemble A = {1, 4, 5} est rapport sur la figure 1.11.

Figure 1-11

Dfinition : Graphe partiel :


Un graphe partiel G' de G est un graphe ayant mme ensemble de sommets que G et dont l'ensemble des arcs est inclus dans l'ensemble des arcs de G : G' = (X ,U'

17

COURS

) avec U' sous-ensemble de U.

Exemple
sur la figure 1.12 est rapport un graphe partiel du graphe de la figure 1.10.

Figure 1-12 Un sous-graphe partiel est un sous-graphe d'un graphe partiel.

f) Connexit : Dfinition : Connexit simple (non orient) :


La relation i C j (lire i connect j) si i = j ou s'il existe une chane allant de i j est une relation d'quivalence dont les classes sont appeles composantes connexes.

Dfinition : Connexit forte (orient)


La relation i FC j si i = j ou s'il existe un circuit passant par i et j est une relation d'quivalence dite de forte connexit. Les classes s'appellent les composantes fortement connexes.

Exemple

Figure 1-13 Dans l'exemple de la figure 1.13, on a les 4 composantes connexes : {A}, {B, C, D, E, F}, {H, I, J}, {G, K, L, M, N }. Dans l'exemple prcdent, on a les 7 composantes fortement connexes :{A}, {B, C}, {D, E, F}, {H, I, J}, {G, K}, {L}, {M, N}.

Dfinition : Graphe rduit :


Le graphe rduit GR est le graphe (X /FC ,V ) dont l'ensemble des sommets est l'ensemble des classes de forte connexit et dont tout arc relie deux classes distinctes dont deux lments sont relis dans G. Le graphe rduit est sans circuit.

18

COURS

Exemple

Figure 1-14 Sur la figure 1.14 on a dessin le graphe rduit de la figure 1.13.

g) Cocycle, cocircuit : Dfinition : Cocycle :


Un cocycle est un ensemble d'arcs reliant deux parties complmentaires du graphe. Si Y X , on note Y le cocycle associ, on a donc Y = X Y .

Dfinition : Cocircuit :
Un cocircuit est un cocycle dont tous les arcs sont dans le mme sens.

Exemple

Figure 1-15 Sur la figure 1.15, 4 = {(2,4),(3,4),(5,4)} est un cocircuit, alors que {(1,2)} = {(2,4),(2,3),(1,3),(5,1)} n'est pas un cocircuit.

h) Fermeture transitive : Dfinition : Fermeture transitive :


La fermeture transitive d'un graphe G =(X,U) est le graphe G=(X ,U) de mme ensemble de sommets que G et tel que (i ,j) U s'il existe dans G un chemin allant de i j.

Figure 1-16 : G = ( X , U ) et G = ( X, U)

19

COURS

i) Nombre chromatique et nombre de stabilit : Dfinition : Stable :


Un sous-ensemble S de X est stable s'il n'y a pas d'arc reliant deux sommets de S. Le nombre de stabilit G est le cardinal maximal d'un ensemble stable.

Dfinition : Nombre chromatique :


Un graphe G est c-chromatique s'il est possible d'en colorier les sommets avec c couleurs sans que deux sommets adjacents soient de mme couleur. Le nombre chromatique G est le plus petit c tel que G soit c-chromatique.

Exemple
On considre un graphe dont l'ensemble des sommets est l'ensemble des examens du second semestre l'U.T.C : deux sommets sont relis par un arc si un mme tudiant doit passer les deux examens correspondants. On veut dterminer un emploi du temps en un nombre minimal de priodes (une priode tant gale une demi-journe). Chaque couleur va correspondre une priode de temps durant laquelle se passera l'ensemble des examens de cette couleur.

Figure 1-17 Sur la figure 1.17 : A ,D ,E ,G sont de couleur rouge et B ,C ,F ,H ,I sont de couleur verte. Le nombre chromatique G =2 .

3. Graphes particuliers :
a) Fort Dfinition : Fort :
Une fort est un graphe sans cycle (Cf figure 1.18)

Figure 1-18

20

COURS

b) Arbre : Dfinition
Un arbre est un graphe connexe sans cycle ( avec

I X I 2 ).

Sur la figure 1.19 est dessin un arbre avec 9 sommets et 8 artes.

Figure 1-19

Proprits caractristiques (voir TD):


Il est connexe et comporte n-1 artes. Il est sans cycle et comporte n-1 artes. Il est connexe et si on enlve une arte il n'est plus connexe Il est sans cycle et on cre un cycle si on ajoute une arte. Il existe une chane lmentaire et une seule entre toute paire de sommets.

c) Arborescence : Dfinition : Arborescence :


On appelle arborescence un arbre orient tel que chaque sommet (sauf un) a exactement un prdcesseur. Le sommet sans prdcesseur est la racine de l'arborescence.

Figure 1-20 Pour tout sommet, il existe un chemin et un seul reliant la racine ce sommet. Les sommets sans successeur sont appels sommets pendants ou sommets terminaux.

d) Graphe biparti : Exemple : Bataille d'Angleterre.


En 1941, les escadrilles anglaises se composaient d'avions biplaces mais certains pilotes ne pouvaient pas faire quipe avec certains mcaniciens pour des raisons de langues ou d'habitudes. A ce problme, on associe un graphe dont l'ensemble des sommets comprend les pilotes et les mcaniciens. Un pilote tant reli un mcanicien, s'ils peuvent embarquer tous deux dans le mme avion.

21

COURS

Dans la figure 1.21, les traits gras reprsentent un couplage entre l'ensemble des pilotes et l'ensemble des mcaniciens.

Figure 1-21

Dfinition : Couplage :
Un couplage est un ensemble d'arcs tel que deux arcs de cet ensemble n'ont pas d'extrmit commune.

Exemple
{ (1 ,B ), (2 ,D) } est un couplage du graphe de la figure 1.21 alors que { (1 ,B), (2,D), (3 ,A ), (4 ,C ), (5 ,E ) } est un couplage maximal.

e) Graphes planaires : Dfinition : Graphes planaires :


Un graphe est dit planaire si on peut le reprsenter dans le plan de telle sorte que les sommets soient des points distincts et que les artes ne s'intersectent pas.

Exemple

Figure 1-22 : exemple de graphe planaire

Figure 1-23 : graphe des 3 usines (non planaire)

22

COURS

Figure 1-24 : graphe complet 5 sommets (non planaire) Sur les figure 1.23 et 1.24 sont dessins les 2 graphes non planaires minimaux. En effet, si on enlve une arte un de ces 2 graphes, le graphe devient planaire. De plus, tout graphe non-planaire contient un sous-graphe partiel qu'on peut mettre en correspondance avec un de ces deux graphes en associant une chane du graphe partiel une arte du graphe (thorme de Kuratowski).

Dfinition : Conjecture des 4 couleurs (1875 Pertersen) :


Tout graphe planaire est 4 coloriable ( les sommets sont coloriables en 4 couleurs). Cette conjecture a t dmontre l'aide d'un ordinateur (1982). A l'origine, c'est le problme du coloriage d'une carte de gographie : est-ce qu'une carte de gographie peut tre colorie en 4 couleurs ?

f) Cliques: Cliques:
Une clique est un graphe complet sans boucles (cas orient et non orient). Dans le cas orient, une clique a n(n-1) arcs et n(n-1)/2 artes dans le cas non orient. Seules les cliques de cardinalit 1,2,3 et 4 sont planaires.

C. ALGORITHMES POLYNOMIAUX DE BASE POUR LES GRAPHES

Nous allons prsenter dans ce chapitre deux algorithmes polynomiaux de graphe savoir un algorithme pour bien numroter les sommets d'un graphe, et un algorithme pour chercher un couplage de cardinal maximal dans un graphe biparti. Auparavant nous dcrirons les diffrentes structures de donnes pour reprsenter un graphe en machine, et nous dfinirons la notion d'algorithme polynomial. Cette notion est d'importance car basique pour l'efficacit des programmes. Nous verrons que la complexit d'un algorithme est fortement dpendante de la structure de donnes utilise et que certains problmes sont intrinsquement exponentiels. D'autres algorithmes de graphes seront tudis dans la suite du cours et en travaux dirigs.

1. Dfinition de la polynomialit :
a) Dfinition de la polynomialit : Dfinition
On dit qu'une fonction f(x) est en O(x p), s'il existe un polynme P(x) de degr p tel que xN , f x P x .

23

COURS

On distingue pour les algorithmes les complexits en mmoire et en temps de calcul. La premire donne une borne suprieure du nombre de mots mmoires ncessaires pour reprsenter les donnes dans une structure. La seconde donne une borne suprieure du nombre d'oprations lmentaires ncessaires pour excuter un algorithme. Dans les 2 cas x reprsente la taille de la donne du problme traiter, ou plus prcisment le nombre de digits de la donne.

Remarque
Pour les graphes on exprime la complexit en fonction du nombre n de sommets et du nombre m d'arcs.

2. Codage des graphes :

Il existe 4 structures de donnes principales pour coder un graphe : la matrice d'adjacence, la matrice d'incidence, la file des successeurs, et la file des prdcesseurs.

a) Matrice d'adjacence : Dfinition

Figure 2.1 : exemple de graphe avec sa matrice d'adjacence La matrice d'adjacence sommets-sommets est la matrice carre d'ordre n note

A= a i j t e l l e q u e : a i j=1 s i i , j U , a i j=0 s i n o n .

Remarque
Le codage par la matrice associe est en O(n2) (complexit du codage) car ce codage utilise n2 mots mmoires. Cela est donc coteux, mais c'est la faon la plus simple de coder un graphe.

b) Matrice d'incidence sommets-arcs : Dfinition


La Nij Nij Nij matrice d'incidence sommets arcs N est dfinie par Nij: = 1 si le sommet i est extrmit initiale de uj. = -1 si i est extrmit terminale de uj. = 0 sinon.

24

COURS

Figure 2.2 : graphe et sa matrice d'incidence

Remarque
La complexit du codage en fonction de n, le nombre de sommets et m, le nombre d'arcs est en O(n x m). Cette matrice est utile quand on a besoin de modliser les problmes de graphes par programmation linaire (flot par exemple).

c) File des successeurs : Dfinition


La file des successeurs est forme de 2 tableaux, ALPHA et BETA. BETA est la liste des successeurs des sommets rangs dans l'ordre de leur numrotation, et ALPHA le tableau donnant un numro de nud donn l'emplacement dans le tableau BETA du premier successeur de ce nud. Cela suppose que les sommets soient numrots dans l'intervalle [1..n] (n tant le nombre de nuds du graphe).

Remarque
Les informations relatives aux successeurs du sommet I se trouvent dans le tableau BETA entre les adresses ALPHA(I) et ALPHA(I+1)-1. La complexit du codage est en O(N + M). Cette structure est trs utilise, car elle est trs conome en place mmoire pour les graphes peu denses et efficace en temps de calcul, quand on a besoin d'un accs direct aux successeurs des sommets.

Figure 2.3 : exemple de graphe et de sa file de successeurs

d) File des prdcesseurs :


Cette file est dfinie de faon analogue. Elle permet un accs direct aux prdcesseurs.

3. Algorithme de bonne numrotation d'un graphe :


a) Algorithme de bonne numrotation d'un graphe :

25

COURS

Dfinition : Bonne numrotation :


On dit que numro(x) (application de X -> [1..n]) est une bonne numrotation si, pour tout arc (x,y) appartenant U, numro(x) est strictement plus petit que numro(y). Nous allons montrer ci-dessous que pour qu'il existe une bonne numrotation il faut et il suffit que le graphe soit sans circuit. Nous nonons galement un rsultat qui nous permet de construire un algorithme de complexit linaire pour dterminer une bonne numrotation d'un graphe sans circuit.

Proposition 1
Une condition ncessaire et suffisante pour qu'un graphe soit sans circuit est que tout sous-ensemble de sommets A non vide admette au moins un lment dont tous les prdcesseurs sont dans le complmentaire de A. C'est--dire le sousgraphe GA a au moins un sommet sans prdcesseur.

Dmonstration :
Supposons que G ait un circuit [x0, x1, ..., xr]. Posons A = {x0, x1, ..., xr} et considrons le sous-graphe GA : tout sommet de GA appartenant au circuit a au moins un prdcesseur dans A. Il existe donc un ensemble A pour lequel la proprit est fausse. Rciproquement supposons G sans circuit et la proprit fausse. Il existe donc un graphe GA dont tous les sommets ont au moins un prdcesseur dans A. Partons de xi0 dans GA , xi0 a un prdcesseur xi1...xih-1 a un prdcesseur xih. On peut donc construire un chemin [xin, xin-1, ...xi0]. Le graphe ayant n sommets distincts, deux sommets de ce chemin sont identiques. Ce graphe a donc un circuit ce qui est absurde. (Q.E.D.).

Proposition 2 :
Une condition ncessaire et suffisante pour qu'un graphe soit sans circuit est qu'il existe une bonne numrotation.

Dmonstration :
Si G a un circuit [xi0, xi1,...., xip,xi0], il ne peut pas exister de bonne numrotation car sinon on aurait : numro(xi0) < numro( xi1) < ..... < numro(xip) < numro( xi0). Si G n'a pas de circuit, il existe un sommet sans prdcesseur, d'aprs la proposition 1, en prenant A = X. On dmontre le rsultat par rcurrence. On numrote 1 ce sommet, et on raisonne sur le sous-graphe obtenu en l'enlevant. Ce sous-graphe a n-1 sommets. Donc, d'aprs l'hypothse de rcurrence, il a une bonne numrotation. On utilise cette bonne numrotation pour numroter 2, ..., n, ses sommets, ce qui permet d'obtenir une bonne numrotation globale. (Q.E.D.).

Figure 2.4 : exemple de bonne numrotation. L'algorithme NUMEROTER ci-dessous permet de bien numroter les sommets d'un

26

COURS

graphe sans circuit. Le graphe a initialement une numrotation arbitraire. Il est cod par la file des successeurs.

Syntaxe : ALGORITHME NUMEROTER :


(i) Initialisation Lire N, M, ALPHA, BETA.{ALPHA est un tableau de dimension N+1 et BETA, de dimension M} (ii) Calcul du nombre de prdcesseurs de chaque sommet Pour I = 1 N faire NOMBRE(I) = 0 Pour K = 1 M faire Dbut I = BETA(K) NOMBRE(I) = NOMBRE(I) + 1 Fin (iii) Initialisation de la pile des sommets sans prdcesseurs SOMMET = 0 Pour I = 1 N faire Dbut Si NOMBRE(I) = 0 faire Dbut SOMMET = SOMMET + 1 PILE(SOMMET) = I Fin Fin (iv) Numrotation des sommets Pour J = 1 N Dbut I = PILE(SOMMET) SOMMET = SOMMET - 1 NUMERO(I) = J Pour H = ALPHA(I) ALPHA(I+1) - 1 Dbut L = BETA(H) NOMBRE(L) = NOMBRE(L) - 1 Si NOMBRE(L) = 0 alors Dbut SOMMET = SOMMET + 1 PILE(SOMMET) = L Fin Fin Fin

27

COURS

Figure 2.5 : graphe de dpart avec initialisation de NOMBRE et PILE

Application Numrique :

Figure 2.6 volution de la pile et du tableau aprs la numrotation de 5 Lors de la numrotation de 5 on obtient : I=5 NUMERO(5) = 1 Pour H = 5 7 L=3 NOMBRE(3) = NOMBRE(3) - 1 L=4 NOMBRE(4) = 0 ( Sommet 4 --> PILE ) L=6 NOMBRE(6) = 0 ( Sommet 6 --> PILE ) etc..

Complexit de l'Algorithme :
(i) Initialisation : Lire N et M est en O(1). Lire BETA et ALPHA est en O(N + M). (ii) Calcul de Nombre : La premire boucle est en O(N) alors que la deuxime boucle est en O(M). (iii) Pile : La premire instruction est en O(1) alors que la boucle est en O(N). (iv) Numrotation : La boucle est en O(N) pour les trois premires instructions.

28

COURS

Les autres instructions sont en O(M) car la boucle correspondant H revient parcourir une fois le tableau BETA.

4. Recherche d'un couplage maximal :

Nous allons tudier dans ce paragraphe les dfinitions et les proprits des couplages, en particulier la notion de chane amliorante. On verra qu'un couplage est maximal si et seulement si le graphe ne contient pas de chane amliorante. Les algorithmes de recherche d'un couplage maximal sont fonds sur ce rsultat. Nous prsentons ci-dessous un tel algorithme pour le cas particulier des graphes biparti de complexit O(n3). Signalons l'existence d'algorithmes polynomiaux dans le cas gnral, mais ces algorithmes sont trop techniques pour tre prsents dans ce cours.

a) Couplage : Dfinition : Couplage


Un couplage C est un ensemble d'artes (resp. d'arcs) ne contenant pas deux artes (resp. arcs) adjacentes un mme sommet. Les arcs du couplage seront dits pais les autres minces.

Figure 2.7 : un couplage de cardinal 3.

Dfinition : Transversal :
Un transversal T d'un graphe est un sous-ensemble de sommets rencontrant au moins une fois chaque arte du graphe.

Dfinition : Sommet satur, insatur :


Pour un couplage C un sommet est dit satur si un arc du couplage est adjacent ce sommet sinon il est dit insatur.

Dfinition : Chane alterne, amliorante :


Une chane alterne d'un couplage C est une chane du graphe dont les arcs sont alternativement dans le couplage et hors du couplage. Une chane amliorante est une chane alterne reliant deux sommets insaturs.

29

COURS

Remarque
Une chane alterne d'un couplage C est une chane du graphe dont les arcs sont alternativement dans le couplage et hors du couplage. Une chane amliorante est une chane alterne reliant deux sommets insaturs.

Exemple
Sur la figure 2.7, C = {AC, BD, EF} est un couplage de cardinal 3. Les sommets A, B, C, D, E, F sont saturs et les sommets H et G sont insaturs.

Figure 2.8 : Chane alterne et chane amliorante Sur la figure 2.8, [A, C, E, F, G] et [H, A, C, E, F, G] sont des chanes alternes. [H, A, C, E, F, G] est amliorante car elle relie 2 sommets insaturs. Cette chane permet de passer du couplage C = {AC, BD, EF} de cardinal 3 au couplage C'={HA, CE, FG, BD} de cardinal 4. C' est un couplage de cardinal maximal car tous les sommets du graphe sont saturs (Cf figure 2.9)

Figure 2.9 : couplage maximal.

b) Thorme de BERGE : Dfinition : Thorme de BERGE :


Un couplage est de cardinal maximal si et seulement si le graphe ne contient pas de chane amliorante pour ce couplage.

Preuve :
Condition ncessaire : s'il existe une chane amliorante elle contient p arcs pais et p+1 arcs minces, on amliore donc le couplage en remplaant les arcs pais de cette chane par les arcs minces de cette chane. Condition suffisante : soit G=(X,U) un graphe, C0 un couplage de G de cardinal maximal et C1 un couplage de G sans chane amliorante.

30

COURS

D 0 =C 0C 0 C 1 e t D1=C 1C 0C 1 . On raisonne sur le graphe H=(X, D 0D 1 ). Les sommets du graphe H sont de


Posons degr 0, 1 ou 2, car en un sommet au plus 2 arcs sont incidents : un arc de D0 et un arc de D1. En consquence les composantes connexes de H sont, soit des sommets isols, soit des chanes comportant alternativement des arcs de D0 (donc de C0) et des arcs de D1 (donc de C1), c'est--dire des chanes alternes pour C0 et C1.Si une de ces chanes tait de longueur impaire, elle serait amliorante pour C0 ou pour C1, ce qui est impossible par hypothse. Ces chanes sont donc de longueurs paires et comportent autant d'lments de D0 que d'lments de D1. Les ensembles D0 et D1 sont donc de mme cardinal. En consquence les ensembles C0 et C1 sont de mme cardinal. Il en rsulte que C1 est de cardinal maximal.

c) Algorithme dans le cas d'un graphe biparti :


Le thorme de BERGE fournit une mthode pour chercher un couplage maximal. Il suffit en effet de chercher successivement des chanes amliorantes et de les utiliser pour amliorer le couplage. Le couplage sera maximal quand il n'y aura plus de chane amliorante. Nous prsentons ici un algorithme dans le cas des graphes bipartis.

Dfinition : Algorithme COUPLAGE MAX


Etape 0 : Initialisation . Un graphe biparti G=(X,Y,U) est donn ainsi qu'un couplage (ventuellement C est vide); aucun sommet n'est marqu ; Etape 1 : Recherche d'une chaine amliorante . 1.0 Marquer * tout sommet insatur x dans X ; 1.1 Si tous les sommets marqus ont t examins, aller l'tape 3 ; Sinon, soit i un sommet marqu non examin Si i = x X aller en 1.2 Sinon , i = y Y , aller en 1.3 ; 1.2 Pour chaque arte [x, y] initial C

C incidente au sommet x faire

Si y n'est pas marqu alors marquer y par x; Retourner en 1.1; 1.3 Si y est insatur, il est extrmit d'une chane amliorante, aller l'tape 2 Sinon dbut Dterminer l'unique arte [x, y] C; Marquer x par y; Retourner en 1.1 ; fin; Etape 2 : Amlioration du couplage . Amliorer le couplage C en inversant la chane amliorante obtenue en 1.3; Effacer les marques; Retourner l'tape 1; Etape 3 : Fin . Ecrire le couplage maximal C;

d) Application de l'algorithme : Exemple


Considrons le graphe biparti G = (X, Y, U) avec X = {a, b, c, d, e} et Y = {1, 2, 3,

31

COURS

4, 5) rapport sur la figure 2.10.

Figure 2.10 : exemple.

Figure 2.11 : application de l'algorithme. On part initialement du couplage form de l'ensemble vide et on modifie ce couplage l'aide de chanes amliorantes successives jusqu' obtenir un couplage sans chane amliorante qui sera maximal d'aprs le thorme de BERGE. Sur la figure 2.11 sont rapportes les tapes successives de l'algorithme en appliquant la rgle suivante : premier sommet marqu, premier examin.

32

COURS

e) Structures de donnes :
On suppose que le graphe biparti et le couplage sont cods par un tableau TAB tel que, pour Si on suppose sans perte de gnralit que Cardinal(X) = Cardinal(Y) = N/2, le tableau TAB est de dimension N2/4. Le tableau TAB permet la lecture de donnes et servira de tableau de travail pour le couplage. Enumrons les autres tableaux qui seront utiles pour cet algorithme. Un tableau SATURE (de taille N) servira noter les sommets saturs. Un tableau MARQUE de taille N sert stocker les marques des sommets. Il sera initialis -1 (aucune marque), on mettra 0 quand un sommet est marqu * par l'algorithme sinon il contiendra la marque du sommet. Un tableau FILE permettra de stocker les sommets marqus non examins (rgle : premier marqu, premier examin). FILE permet un accs direct. Un tableau CHAINE permettra de reconstituer la chane amliorante.

x X e t y Y ,T A B x , y = 0 s i[ x , y ]U o u 1 s i[ x , y ] CU o u 2 s i[ x , y ]CU

f) Complexit de l'algorithme : Complexit de l'algorithme


La complexit de l'tape 0 est O(N2) (lecture d'une matrice). Une tape 1.0 cote O(N) car il y a au plus N/2 sommets insaturs. Une tape 1.1 cote O(1) car il y a un accs direct par FILE. Une tape 1.2 cote O(N) car il faut lire la ligne x de la matrice TAB. Une tape 1.3 cote O(N) car il faut lire une colonne y de la matrice TAB. Quand on excute l'tape 1 on retourne en 1.1 chaque fois que l'on examine un nouveau sommet, donc au plus N fois. En consquence les tapes 1.2 et 1.3 sont excutes au plus N/2 fois. L'tape 1.1 est excut N fois. L'tape 1.0 est excut 1 fois. Il en rsulte que la complexit de chaque tape 1 est O(N2) = O(N)O(1) +O(1)O(N) +O(N)O(N) +O(N)O(N). Or l'tape 1 s'excute au plus N/2 fois, nombre maximal d'amliorations. Donc sur l'ensemble de l'algorithme cette tape cotera O(N3). La complexit d'une tape 2 est O(N) : on construit la chane amliorante en lisant les marques. L'tape 2 s'excute au plus N/2 fois, nombre maximal d'amliorations. Donc sur l'ensemble de l'algorithme cette tape cotera O(N2). La complexit de l'tape 3 est O(1). Donc la complexit de l'algorithme est O(N3) = O(N2) + O(N3) + O(N2) + O(1).

g) Preuve de l'algorithme :
Nous allons prouver que cet algorithme dtermine dans l'tape 1 une chane amliorante si et seulement s'il en existe. Dans l'tape 2 on amliore le couplage. Donc en partant du couplage vide et aprs au plus N/2 oprations on obtiendra un couplage sans chane amliorante qui sera optimal d'aprs le thorme de BERGE. Remarquons d'abord qu'une chane amliorante tant de longueur impaire relie un sommet de X un sommet de Y (graphe biparti). On peut donc partir de X et chercher les chanes alternes issues d'un sommet insatur de X. Une chane amliorante sera une telle chane dont le dernier sommet qui est dans Y est un sommet insatur. Faisons l'hypothse de rcurrence suivante : s i y Y r e s p . x X est un des p premiers sommets marqus il est extrmit d'une chane alterne issue d'un sommet x 1 X insatur de longueur impaire (resp. paire) dont la dernire arte est mince (resp. paisse).

33

COURS

La proprit est vraie la fin de l'tape 1.0 : seuls sont marqus les sommets de X insaturs et les chanes correspondantes sont de longueur nulle. Montrons que si la proprit est vraie l'ordre p elle reste vraie l'ordre p+1. Notons j le p+1me sommet marqu et i sa marque et examinons deux cas :

i= x X j= yY alors par hypothse de rcurrence, x est extrmit d'une chane alterne issue d'un sommet x1 X insatur de longueur paire

dont la dernire arte est paisse. En concatnant cette chane l'arte (x, y) on obtient une chane alterne issue d'un sommet x1 X insatur de longueur impaire dont la dernire arte est mince et allant j = y (l'arte (xy) est mince car y est marqu en 1.1 de l'algorithme).

dont la dernire arte est mince. En concatnant cette chane l'arte (x, y) on obtient une chane alterne issue d'un sommet x1 X insatur de longueur paire dont la dernire arte est paisse et allant j = x (l'arte (x, y) est paisse car x est marqu en 1.2 de l'algorithme). La proprit est donc vraie dans les deux cas ce qui la dmontre par rcurrence. Dfinissons M comme l'ensemble des sommets marqus quand on arrive l'tape 3 et montrons que M est alors exactement l'ensemble des sommets extrmits d'une chane alterne issue d'un sommet x_{1} X insatur. D'aprs la proprit dmontre par rcurrence tous les sommets de M ont cette proprit. Il faut montrer que rciproquement un sommet ayant cette proprit est dans M. Avant de le prouver, remarquons que, quand on arrive l'tape 3, les sommets de M appartenant Y sont saturs. Il rsultera de cette rciproque qu'il n'existe pas de chane alterne reliant un sommet insatur de X un sommet insatur de Y, ce qui prouvera le rsultat, savoir qu'il n'y a pas de chane amliorante et que le couplage est maximal. Soit donc k un sommet reli par une chane alterne un sommet x_{1} X insatur. On dfinit j comme le premier sommet de cette chane n'appartenant pas M (un tel sommet existe car par hypothse k M). De deux choses l'une, ou bien j = x X ou bien j = y Y. Montrons que dans l'un et l'autre cas on arrive une contradiction. Nous notons i l'antcdent de j sur cette chane.

i= y Y j= x X alors par hypothse de rcurrence, y est extrmit d'une chane alterne issue d'un sommet x1 X insatur de longueur impaire

Figure 2.12 : Les deux cas possibles Dans le premier cas (Cf. figure 2.12) la chane allant jusqu' y est de longueur impaire. Donc quand on examine x, on marque y (l'arte (x, y) est mince car la chane est alterne). Ceci contredit le fait que j = y n'est pas marqu. Dans le second cas (Cf. figure 2.12) la chane allant jusqu' x est de longueur paire. Donc quand on examine y, on marque x (l'arte (x, y) est paisse car la chane est alterne). Ceci contredit le fait que j =x n'est pas marqu. En consquence quand on arrive l'tape 3, on a bien marqu tous les sommets relis un sommet insatur x_{1} X par une chane alterne. On a vu par ailleurs que les sommets de M Y ayant cette proprit sont saturs. Il en rsulte qu'il n'existe pas de chane amliorante, c'est--dire de chane alterne reliant un sommet insatur x_{1} X un sommet insatur y Y . Le couplage est donc maximal. Q.E.D.

34

COURS

5. Autres algorithmes de graphe :


a) Autres algorithmes de graphe :
Autres algorithmes de graphe : Tarjan a propos des algorithmes de complexit linaire O(M) pour la recherche des composantes connexes (Cf. T.D) et pour la recherche des composantes fortement connexes. Nous discuterons dans le chapitre suivant de la complexit de la recherche d'un circuit hamiltonien, du coloriage d'un graphe, et du nombre de stabilit.

D. COMPLEXIT DES PROBLMES COMBINATOIRES


1. Qu'est-ce-que l'optimisation combinatoire ? :
a) Qu'est-ce-que l'optimisation combinatoire ? :
Jusqu'au 19e sicle, on s'intressait aux Problmes d'existence. On rpondait la question : existe-t-il un objet ayant certaines proprits ? Ensuite, on a rsolu des Problmes de dnombrement (Analyse combinatoire). On rpondait la question : combien y a-t-il d'objets ayant certaines proprits ? Enfin avec l'informatique, on traite des Problmes combinatoires. On se propose de dterminer un objet ayant certaines proprits, on cherche un algorithme calculant un objet.

2. Diffrents types de problmes :


a) Diffrents types de problmes :
Nous nonons ci-dessous une liste de problmes combinatoires. Problme du plus court chemin O(n3) : Soit G un graphe valu et x0 une racine de G; dterminer les valeurs minimales des chemins allant de x0 tout sommet du graphe. Problme du plus petit nombre O (n) : Dterminer le plus petit nombre parmi n nombres. Problme de tri O(nlogn) : Ordonner en ordre croissant n nombres a1, a2, ......, an. Problme de l'arbre minimal O(n3) : Soit G = ( X , U ) un graphe valu (non orient); dterminer un graphe connexe de cot global minimal. Problme d'affectation O(n3) ( Algorithme Hongrois ) : Etant donn une matrice W(n, n) reprsentant les cots d'affectation de n individus n travaux, il faut affecter un travail diffrent chaque individu pour un cot global minimal.
P1 P2 P3 T1 6 15 8 T2 5 20 5 T3 8 14 3

Tableau 3 : Figure 3.1 : matrice des cots.

35

COURS

Pour la matrice de la figure 3.1, l'affectation (P1, T1) (P2, T2) (P3, T3) est de cot 29. L'affectation (P1, T2) (P2, T1) (P3, T3) est optimale et a pour cot 23. Problme de partition : Etant donn n nombres a1, a2, ......,an, est-il possible de partitionner ces n nombres en deux sous-ensembles de mme poids ? Exemple : Pour l'ensemble {8, 6, 15, 37, 42 ,4}, la rponse est oui car 8 + 6 + 42 = 15 + 37 + 4 = 56. Problme du stable maximum : Soit G = (X , U) un graphe, dterminer un stable de G de cardinal maximal.

Figure 3.2 : graphe. Sur le graphe de la figure 3.2, {E, A, F} est un stable de cardinal maximal. Problme du voyageur de commerce : Soit G = ( X , U ) un graphe valu, dterminer un circuit hamiltonien de valeur minimale.

Figure 3.3 : un graphe valu. Sur la figure 3.3, [A, D, E, C, B, A] est un circuit hamiltonien de valeur minimale. Problme de satisfiabilit : Etant donn une fonction boolenne sous une forme conjonctive, existe-t-il une affectation des variables rendant vraie cette fonction ? Exemple : Pour la fonction donne par : (x1 + x2 + x3) (x2) (x3 + x1) (x3 + x2) = 1, la rponse est oui car x2 = 0, x3 = 1, x1 = 1 est solution. De plus cette solution est unique.

3. Quand un problme est-il rsolu ? :


a) Quand un problme est-il rsolu ? :
Pour chaque problme, il y a un nombre fini de solutions (1). On peut donc semblet-il numrer toutes ces solutions pour dterminer une solution optimale (ou une solution ralisable). Par exemple, pour le problme du voyageur de commerce : il y au plus (n-1)! circuits hamiltoniens, pour le problme de satisfiabilit : il y a au plus 2n affectations, pour le problme de partition : il y a 2n-1 solutions. Il est irraliste d'avoir recours une mthode d'numration dans le domaine combinatoire quand la complexit rsultante est exponentielle. Le tableau suivant rapporte les dures d'numration, si l'on dispose d'un ordinateur calculant chaque solution en une

36

COURS

microseconde (10-6 s).


10 1 0 -5 s 1 0 -4 s 1 0 -3 s 0 ,1 s 10 s 0 ,0 5 9 s 3 ,6 3 s
-3

20 2 .1 0 -5 s 4 .1 0 s 8 .1 0 -3 s 3 ,2 s 1s 58 m n 1 0 0 s i c le s
-4

40 4 .1 0 -5 s 1 6 .1 0 s 6 4 .1 0 -3 s 1 ,7 m n 1 2 ,7 jo u r s 3 8 5 5 s i c le s ...
-4

60 6 .1 0 -5 s 3 6 .1 0 -4 s 2 1 6 .1 0 -3 s 13 m n 3 6 6 s i c le s 1 ,3 .1 0
13

n n2 n3

n5
2n 3n n!

s i c le s

...

Tableau 4 : les dures d'numration, Les algorithmes efficaces sont principalement les algorithmes de complexit polynomiale (2). On dira qu'un problme est bien rsolu si on a trouv un algorithme polynomial (de faible degr) le rsolvant (3). On peut aussi tudier la variation de la taille maximum que l'on peut traiter en 1000s quand on multiplie par 10 la puissance de la machine :

37

COURS

T (n ) 100n

10n2 n3

Tableau 5 : t5 1. La finitude du nombre de solutions garantit l'existence d'algorithmes de rsolution, c'est--dire de programmes s'arrtant. Il n'en est pas toujours ainsi en informatique o certains problmes sont indcidables, c'est--dire non traitables par un programme en un temps fini. 2. On valuera dans ce cours la complexit en se plaant dans le plus mauvais cas. Toutefois, quand un algorithme tourne frquemment, il serait prfrable de faire une analyse en moyenne. Malheureusement une telle analyse est trs difficile et mme hors de porte pour des programmes moyennement complexes. 3. On peut en premire approximation ngliger les coefficients du polynme

38

2n

T a ille m a x im u m p o u r 1 0 0 0 s a v e c la p r e m i r e m a c h in e 10 10 10 10

T a ille m a x im u m p o u r 1 0 0 0 s a v e c la s e c o n d e m a c h in e 100 32 22 13

A u g m e n t a t io n x 10 x 3 ,2 x 2 ,2 x 1 ,3

COURS

dans la mesure o l'exprience montre que la plupart des algorithmes polynomiaux ont des petits coefficients. Il existe toutefois des exceptions pour lesquelles mme des algorithmes linaires sont impraticables (Cf : Thorie de ROBERTSON et SEYMOUR).

4. Les problmes NP-difficiles :


a) Les problmes NP-difficiles :
On n'a pas trouv d'algorithmes polynomiaux pour les problmes de la partition, du stable maximal, du voyageur de commerce et de la satisfiabilit. Il en est de mme pour un trs grand nombre d'autres problmes. On n'a pas montr qu'il n'existait pas d'algorithme polynomial pour un de ces problmes, mais on a le rsultat suivant: Si un seul de ces problmes est polynomial alors tous les problmes "raisonnables" rputs difficiles sont polynomiaux. Ces problmes sont dits NPdifficiles.

5. Mthodes arborescentes :

Les mthodes arborescentes permettent de rsoudre des problmes NPdifficiles. Toutefois, il ne sera pas possible d'valuer la complexit pratique de ces mthodes car cette complexit est fortement fonction de la donne du problme. Elle est d'ailleurs en gnral exponentielle pour certaines donnes, mais peut tre "praticable" pour d'autres donnes.

a) Les Dames de Gauss :

39

COURS

Figure 3.4 : arborescence des dames de Gauss. A la racine correspond l'ensemble de toutes les solutions. Au sommet S1 correspond l'ensemble de toutes les solutions telles que la dame sur la premire ligne est sur la case n1. A tout sommet correspond un ensemble de solutions. Il s'agit de placer n dames (ici n = 4) sur un chiquier n*n de faon ce que deux dames quelconques ne soient pas en prise. Pour rsoudre ce problme, on construit une arborescence dont la racine correspond l'ensemble des solutions du problme. On examine les diffrents cas possibles en construisant une arborescence (Cf. Figure 3.4), sur laquelle apparat une solution, l'autre s'obtenant par symtrie.

b) Mthode de LITTLE pour le problme du voyageur de commerce :


Un voyageur de commerce doit visiter n villes. Il faut choisir un ordre de parcours minimisant la distance totale parcourue, c'est--dire trouver un circuit hamiltonien de valeur minimale. Pour rsoudre ce problme, on va construire une arborescence dichotomique, comme on peut le voir sur la figure 3.5.

40

COURS

Figure 3.5 : arborescence dichotomique. Nous allons nous appuyer sur un exemple dont les donnes sont rapportes sur la figure 3.6 pour expliquer la mthode de Little. Remarquons d'abord qu' un circuit hamiltonien correspond exactement un lment par ligne et un lment par colonne de la matrice d'adjacence. Donc, on ne modifie pas le problme si ligne par ligne on soustrait le minimum de chaque ligne, puis colonne par colonne, le minimum de chaque colonne.
A B C D E F A 7 5 8 7 9 B 6 10 6 7 8 C 7 8 5 6 8 D 3 2 10 7 5 E 1 9 1 5 3 F 3 7 7 1 4

Tableau 6 : Figure 3.6 : matrice d'adjacence value. En soustrayant en ligne, on obtient le tableau du milieu de la figure 3.7, et en soustrayant en colonne le tableau de droite.

41

COURS

3 0 0 0 E

F 0 2 5 5 6 F F 9 8 8 5 3 12 3 3 3 2 0 0 0 8

10

10

Tableau 7 : Figure 3.7 : apparition des zros par ligne et par colonne. Le circuit Hamiltonien aura une valeur suprieure 20 car on a soustrait 12 en lignes et 8 en colonnes. 20 est une valuation par dfaut de la valeur optimale pour la matrice initiale. On va travailler sur la matrice rduite, pour laquelle les circuits hamiltoniens ont tous une valeur translate de 20. On cherche construire un

42

COURS

circuit hamiltonien de valeur zro (d'o forcment optimal car les valeurs sont positives). Donc pour construire l'arborescence d'numration, on va choisir des arcs de valuation 0. Pour slectionner un de ces arcs, on introduit la notion de regret. On choisira un 0 de regret maximal. Par exemple, si on ne prend pas l'arc AE, on prendra obligatoirement un autre lment de la ligne A et un autre lment de la colonne E. Le cot supplmentaire ici 2, s'appelle le regret. Ce regret se calcule en sommant les minima en ligne et en colonne (le 0 sur lequel on calcule le regret tant exclu). En effet, si on ne passe pas par cet arc de valeur 0, on ne pourra au mieux que passer par deux arcs de cot minimum des ligne et colonne correspondantes, il en cotera le regret.
A B C D E F A B C
2

D 0
2+2

E 02+0 01+0 02

02 00

Tableau 8 : Figure 3.8 : matrice des regrets. Les regrets des diffrents 0 sont rapports sur la figure 3.8. Il apparat que BD est le 0 de plus grand regret. On choisit de prendre l'arc BD, et on introduit deux nouveaux sommets dans l'arborescence (Cf. figure 3.9). Le sommet BD correspond l'ensemble des circuits hamiltoniens empruntant l'arc BD et le sommet BD l'ensemble des circuits hamiltoniens n'empruntant pas l'arc BD. Le sommet BD a une valuation par dfaut de 20, le sommet BD a une valuation par dfaut de 24, c'est--dire 20 plus le regret.

Figure 3.9 : arborescence courante aprs la premire sparation. Dans la matrice associe au sommet BD, on doit interdire l'arc DB en posant M D , B = , afin d'viter le circuit parasite [D, B, D], et ritrer le processus. Sur la figure 3.10, on a sur la gauche la matrice associe au sommet BD de l'arborescence, et droite les regrets obtenus en liminant la ligne D et la colonne B.
A 2 1 4 0 3 B 2 6 0 2 C 4 4 2 0 3 D 2 0 9 3 2 E 0 7 0 4 0 F 2 5 6 0 0 A C D E F 01 02 02 02

A B C D E F

E 02

01
02 00

Tableau 9 : Figure 3.10 : matrices associes au sommet BD. On choisit un 0 de plus grand regret et on introduit deux nouveaux sommets dans l'arborescence courante (Cf. figure 3.11), AE et AE.

43

COURS

Figure 3.11 : tat suivant de l'arborescence courante. La matrice associe au sommet AE aprs interdiction de EA est rapporte sur la figure 3.12. On n'a pas un zro par ligne; d'o, on va soustraire la valuation minimale sur chaque ligne et chaque colonne. On soustrait donc globalement 3. Ceci explique que la valuation du sommet AE soit gale 23, alors que celle du sommet AE est 22.
A 1 4 3 B 6 0 2 C 2 0 3 F 6 0 0

C D E F

1 0 0 2

Tableau 10 : Figure 3.12 : nouvelle matrice avec EA = Prsentons maintenant l'algorithme de LITTLE.

Syntaxe : Algorithme de LITTLE :


Initialisation : Faire apparatre des zros (au moins un par ligne et un par colonne) {L'valuation par dfaut de la racine de l'arborescence est la somme des chiffres soustraits}. Poserf0 = {f0 sera la valeur de la meilleure solution connue}. 2. Boucle principale : Tant que le sommet S de l'arborescence de plus petite valuation par dfaut f(S) est tel que f(S) < f0 faire {largeur d'abord}
1. -

valuer le regret de chacun des zros de la matrice associe S et retenir (i, j) correspondant un zro de regret maximal. Introduire les sommets (S + (i, j)) et (S + (i, j)) en interdisant le circuit parasite dans (S + (i, j)), en faisant apparatre des zros dans les deux matrices associes, et en valuant ces sommets par leur valuation par dfaut. Si le sommet (S + (i, j)) correspond un circuit hamiltonien alors crire le circuit, et calculer sa valeur f1. poser f0 = min (f0, f1) Fin tant que.

44

COURS

Figure 3.13 : arborescence globale. Suite de l'exemple : Sur la figure 3.13 est rapporte l'arborescence aprs application de l'algorithme. Nous commentons ci-dessous sa construction. Sur la figure 3.14, on a la matrice associe au sommet AE, qui est le sommet pendant de l'arborescence courante de plus petite valuation par dfaut, ainsi que ses regrets. Le plus grand regret est obtenu pour l'arc DF. On interdit l'arc FB qui crerait un circuit parasite.
A 1 4 0 3 B 0 6 0 2 C 2 2 0 3 E 0 4 0 F 0 6 0 0 A A C D E F B 00 C E 01 0
1

A C D E F

F 00 0 0
2 0

02

Tableau 11 : Figure 3.14 : matrices associes au sommet AE. Il faut interdire le circuit parasite, dcrit sur la figure 3.16, en mettant case correspondant EB.

dans la

Figure 3.16 : circuit parasite. Ayant interdit l'arc (EB), il faut faire apparatre de nouveaux zros dans la matrice associe au sommet FE (Cf figure 3.17). Pour obtenir un zro, on soustrait 1 et on rajoute donc 1 l'valuation. AB est alors le zro de regret maximal. Pour la matrice associe au sommet AB il faut interdire le circuit parasite de la figure 3.18.
A 1 0 B 0 6 C 2 A 05 00 B 07 5 C 2 02

A C E

A 1 C E

Tableau 12 : matrice

45

COURS

Figure 3.17 : sparation de FE.

Figure 3.18 : limination du circuit parasite du sommet AB. Sur la figure 3.19, le choix des arcs CA et EC est obligatoire. On obtient donc le circuit hamiltonien de la figure 3.20 de valeur 23. Ce circuit hamiltonien est optimal car tous les sommets pendants de l'arborescence globale ont une valuation suprieure ou gale 23.

Discussion :
La mthode la plus efficace actuellement pour rsoudre le problme du voyageur de commerce n'est pas l'algorithme de LITTLE qui permet de traiter optimalement des exemples 40 villes environ. On distingue en fait les cas symtrique et asymtrique. Dans le cas asymtrique, des mthodes utilisant l'affectation linaire couple de la relaxation lagrangienne (Cf. RO04) pour l'valuation par dfaut permettent de traiter des exemples 300 villes environ. Dans le cas symtrique, la programmation linaire gnralise consistant introduire des coupes d'intgrit (mthodes polydrales) permettent de traiter des exemples 400 villes environ.

Figure 3.19 : sparation de AB.

46

COURS

Figure 3.20 : circuit hamiltonien optimal.

c) Programmation linaire en variables boolennes : mthode de FAURE-MALGRANGE :


Nous allons prsenter sur un exemple la mthode de FAURE-MALGRANGE qui permet de traiter un programme linaire en variables boolennes. On veut rsoudre le programme linaire suivant :

M a x F =3 x 15 x 2 x 32 x 4
sous les contraintes :

x 1 , x 2 , x 3 , x 4{0 , 1} 3 x 14 x 22 x 3 x 45 2 x 1 x 23 x 3x 44 4 x 1 x 2 x 32 x 45
Nous introduisons x1, x2, x3, x4 dfinies par xi + xi = 1. Ceci permet de remplacer les - par des + dans les contraintes d'ingalits qui deviennent :

3 x 14 x 22 x 3x 45 2 x 1x 23 x 3x 44 4 x 1x 2x 32 x 45
En remplaant les + par des - dans la fonction conomique, on a : F = 10 - (3x1 + 5x2 + x3 + 2x4 ) On remarque que F ne peut dpasser 10. Le problme est mis sous une forme facilitant une numration implicite. Mais cette fois il s'agit d'un problme de maximisation. On va donc construire une arborescence dont les sommets seront valus par une valuation par excs. La sparation consistera choisir une variable boolenne et fixer la valeur de vrit de cette variable. La meilleure solution construite fournira une valuation par dfaut de la solution optimale. Sur la figure 3.21 est rapport l'arborescence globale dont nous commentons ci-dessous la construction.

47

COURS

Figure 3.21 : arborescence de recherche de solution. Premier choix : On choisit de sparer sur x2 car son coefficient dans la fonction conomique est le plus grand (x2 est de regret maximal). Au sommet x2 = 1 de l'arborescence correspond de nouvelles contraintes : 3

x 12 x 3x 43 2 x 13 x 3x 46 4 x 1x 32 x 47
F = 10 - (3x1 + x3 + 2x4 ) On spare ce sommet : Deuxime choix : On choisit de sparer sur x1 car son coefficient dans la fonction conomique est le plus grand (x1 est de regret maximal). Au sommet x1 = 1 de l'arborescence correspond de nouvelles contraintes :

2 x 3x 40 3 x 3x 44 x 32 x 43
F = 10 - (x3 + 2x4 ) On a alors les implications x3 = 1 et x4 = 0. On a donc trouv une solution de valeur 7. Cette solution est optimale car toutes les valuations par excs des sommets pendants de l'arborescence sont infrieurs 7. Ici apparat l'intrt d'avoir des ingalits avec des termes positifs, en effet si a i y ib avec les yi variables boolennes, les ai positifs et pour un certain i, ai > b, ncessairement yi = 0. Ici on a parcouru l'arborescence en profondeur d'abord en choisissant de sparer le dernier sommet introduit. Une telle politique est grable l'aide d'une pile, ce qui renforce son intrt.

d) Programmation linaire en variables entires :


Dans l'U.V RO04, on prsente la mthode du simplexe qui est efficace pour rsoudre un programme linaire dont les variables sont rationnelles. Quand les

48

COURS

variables sont astreintes tre entires le problme devient NP-difficile. On peut le rsoudre, soit par des mthodes de coupes (Cf. RO04), soit par des mthodes arborescentes. Considrons le programme linaire en nombres entiers suivant : Max F = 3x1 + 8x2 x1 + 4x2 20 x1 + 2x2 11 3x1 + 2x2 4x1 - x2

19

22 Avec x1, x2 N
Une premire mthode pour rsoudre ce type de problme est de borner les variables de faon se ramener des variables boolennes. La premire contrainte entrane x2 5. Une combinaison linaire des troisime et quatrime contraintes entrane x1 5. On pose alors : x1 = 4X11 + 2X12 + X13 et x2 = 4X21 + 2X22 + X23, ce qui permet de se ramener des variables boolennes et d'utiliser la mthode de FAUREMALGRANGE. Une deuxime mthode consiste utiliser directement le fait que les variables sont bornes et sparer successivement sur x1 et x2. On a rapport sur la figure 3.22 l'arborescence rsultante. Dans cette arborescence les valuations sont par excs, on a fait un parcours en profondeur d'abord et trouv 2 solutions : x2 = 5 , x1 = 0 et x2 = 4 , x1 = 3. La deuxime solution de valeur 41 est optimale car les sommets pendants de l'arborescence ont une valuation plus faibl

Figure 3.22 : arborescence globale.

6. Rcapitulation :
a) Rcapitulation :
a) Dans une mthode arborescente, on construit une arborescence dont les sommets correspondent des sous-ensembles de solutions. L'union des successeurs d'un sommet est gal ce sommet. Les sommets terminaux de cette arborescence sont les solutions du problme. On parle d'numration implicite car les valuations et les implications permettent de n'numrer qu'un nombre limit de solutions. b) A chaque sommet S de l'arborescence, est associ une valuation f(S), par dfaut pour un problme de minimisation, par excs pour un problme de maximisation.

49

COURS

c) On a galement une valuation globale f0, par excs pour un problme de minimisation et, par dfaut pour un problme de maximisation. f0 est souvent la valeur de la meilleure solution construite. d) Le choix du sommet sparer est essentiel. On distingue principalement les stratgies en profondeur d'abord et en largeur d'abord. e) En profondeur d'abord, on sparera le sommet le plus profond de l'arborescence. En consquence, on parcourra l'arborescence branche par branche. L'arborescence courante sera un chemin, donc grable l'aide d'une pile. Cette stratgie est la plus utilise pour cette raison. f) En largeur d'abord, on sparera le sommet de l'arborescence de plus petite valuation. En consquence, on parcourra l'arborescence de faon anarchique. L'ide est de sparer un sommet prometteur. g) La sparation permet d'introduire pour le sommet choisi des sommets successeurs. Pour tre efficace, il faut que l'valuation par dfaut pour un problme de minimisation (resp. par excs pour un problme de maximisation) augmente (resp. diminue) pour ces sommets introduits. h) Des implications, que l'on appelle aussi rgles de dominance, permettent de rendre la mthode plus performante.

7. Mthodes heuristiques :
a) Mthodes heuristiques :
Les mthodes arborescentes sont des mthodes efficaces pour traiter de nombreux problmes. Toutefois, au contraire des algorithmes polynomiaux, leur efficacit est fortement fonction des donnes du problme. De plus elles sont lourdes mettre en oeuvre et ne permettent souvent de rsoudre optimalement que des problmes de tailles rduites. Pour toutes ces raisons, il est souvent ncessaire d'utiliser des mthodes heuristiques qui permettent de construire des solutions d'un problme, mais ne garantissent plus l'optimalit. Expliquons une heuristique simple pour le problme du voyageur de commerce. On commence par choisir la ville de dpart. La deuxime ville choisie est alors la ville la plus voisine. Une fois choisies un certain nombre de villes, on choisit la ville non choisie la plus proche de la dernire ville introduite et on itre jusqu' ce que l'on revienne au point de dpart. Cette heuristique videmment trs nave donne des rsultats trs mauvais pratiquement. C'est pourquoi, on introduit les mthodes de voisinage. Prsentons d'abord les mthodes de descente. L'ide est de dfinir une relation de voisinage sur l'ensemble des circuits hamiltoniens de telle sorte qu'il soit facile de calculer le meilleur voisin d'un sommet. On part alors du circuit hamiltonien construit l'aide de l'heuristique nave. Puis on calcule son meilleur voisin , si celui-ci est de cot plus faible que le tour initial, on le retient. On itre , en descendant, jusqu' obtenir un tour dont tous les voisins sont moins bons que lui-mme. On a alors trouv un optimum local par rapport la relation de voisinage. Remarquons qu'il n'y a pas de raison pour que cet optimum local soit un optimum global. Toutefois ces mthodes de descente sont extrmement efficaces quand la relation de voisinage est bien choisie. Par exemple, pour un problme de voyageur de commerce symtrique, la mthode K-opt de LIN et KERNINGHAN, permet de trouver trs rapidement, mme pour des problmes de grande taille (par exemple 1000 villes) des solutions proches 2 ou 3 % de la solution optimale. Toutefois les rsultats des mthodes de voisinage sont rarement aussi bons. On a constat empiriquement que le problme du voyageur de commerce est un problme NPdifficile pour lequel il est relativement facile, le plus souvent, de construire de bonnes solutions. Ceci explique que, pour des problmes plus difficiles

50

COURS

pratiquement, on cherche chapper l'optimum local. Il y a trois techniques principales pour y parvenir: le recuit simul, le tabou et le gntique. Dans le recuit simul, quand le voisin d'un sommet est meilleur, on descend comme prcdemment. Si au contraire le voisin d'un sommet est moins bon, on le retient ventuellement la place du sommet courant et ceci avec une certaine probabilit p. On fait diminuer cette probabilit au cours du temps de faon s'autoriser au dbut de nombreuses remontes et la fin de l'algorithme trs peu de remontes. Techniquement, un paramtre T dcroissant, appel temprature permet cela. On a : [p = 1 - exp (-T)]. Les inconvnients du recuit simul sont les suivants : on n'a pas de garantie d'optimalit, du moins en un temps raisonnable; il est souvent trs coteux en temps de calcul ; enfin la temprature est dlicate rgler. Dans les mthodes tabous, si on ne peut plus descendre, on s'autorise galement les remontes afin d'chapper un minimum local. Mais il y a alors un risque de cyclage. Pour l'viter, on maintient une liste dynamique et de longueur limite, contenant une liste de modifications rcemment effectues. Cette liste est gre selon la rgle premier entr, premier sorti. Les mthodes tabous ont des inconvnients similaires ceux du recuit simul. Citons, pour terminer, les mthodes gntiques. Cette fois, chaque itration, on conserve un nombre de solutions plus grand que 1 qui forment la population. On choisit alors une sous population, souvent de cardinal 2, et on a une rgle, dite gntique, pour construire partir de cette sous-population, une nouvelle solution. On itr, aprs avoir mis dans la population cette nouvelle solution (naissance) et retir une autre solution (mort). Ces mthodes ne garantissent pas non plus l'optimalit. Les performances de ces trois mthodes dpendent des problmes et de l'habilet de leur concepteur. On ne peut donc pas dire que l'une est meilleure que les autres. Elles sont efficaces si l'on arrive dfinir une bonne relation de voisinage facile calculer.

E. PROBLMES DE CHEMINEMENT

Dans ce chapitre, nous allons tudier des algorithmes polynomiaux rsolvant des problmes de cheminement fondamentaux. G = (X,U,v) (v application de U dans R) sera un graphe valu, avec X = {x0,x1,....,xn-1}. De plus, par commodit, nous faisons l'hypothse que x0 est une racine de G (il existe donc un chemin allant de x0 tout x iX ). On considre principalement le problme fondamental suivant : Dterminer les valeurs minimales (si elles existent) des chemins issus de x0, puis calculer un chemin minimal allant de x0 xi (pour tout i). Nous allons voir que ce problme est rsolu en O(n3) dans le cas gnral (algorithme de FORD), en O(m) dans le cas particulier des graphes sans circuit (algorithme de BELLMAN) et en O(n2) dans le cas particulier des graphes dont les arcs sont valus positivement (algorithme de DIJKSTRA).

1. Proprit des chemins minimaux :


a) Proprit des chemins minimaux :
On rappelle que la valeur d'un chemin est la somme des valuations de ses arcs. Un chemin allant de x0 xi est de valeur minimale si sa valeur est plus petite que celle de tout autre chemin allant de x0 xi.

51

COURS

Lemme 1
Tout sous-chemin d'un chemin de valeur minimale est un chemin de valeur minimale.

Dmonstration
Soit un chemin allant de xi xj et soit ' un sous-chemin de allant de xk xl, alors = 1'2 o 1 = [ xi, xk] et 2 = [ xl, xj]. On suppose de valeur minimale. Si ' n'tait pas de valeur minimale, il existerait un chemin " de valeur strictement plus faible allant de xk xl et le chemin 1''2 serait de valeur strictement infrieure celle de , ce qui contredit le fait que est de valeur minimale. Q.E.D. Cette proprit extrmement simple est la base de la programmation dynamique (Cf. TD): pour ces problmes de cheminement l'optimisation globale est le rsultat d'optimisations locales.

Lemme 2
Une condition ncessaire et suffisante pour que, pour tout i, il existe un chemin de valeur minimale allant de x0 xi est que le graphe G soit sans circuit de valeur strictement ngative (ces circuits sont dit absorbants).

Dmonstration :
Supposons qu'il existe un circuit 1 = [xi ,xi] de valeur strictement ngative et que =[x0,xi] soit un chemin de valeur minimale allant de x 0 xi. Alors la valeur du chemin ' = 1 est strictement infrieure celle de , ce qui contredit sa minimalit. Rciproquement. Supposons G sans circuit absorbant. De tout chemin allant de x 0 xi, on peut extraire un chemin lmentaire de valeur plus faible (si [ x 0 , xi ] n'est pas lmentaire, on enlve successivement les diffrents circuits qu'il emprunte). On peut donc limiter la recherche des chemins minimaux celle des chemins minimaux lmentaires. Or le nombre de chemins lmentaires allant de x0 xi tant fini, il existe un chemin lmentaire de valeur minimale allant de x0 xi. Q.E.D. Les circuits absorbants pour la minimisation sont les circuits de valeur strictement ngative. Dualement, si on maximise, les circuits absorbants sont les circuits de valeur strictement positive. Il faut toujours prendre garde l'existence de tels circuits quand on recherche des chemins extrmaux.

Thorme 1 :
Soit G un graphe sans circuit de valeur strictement ngative et i des valeurs de chemins entre x0 et xi. Une condition ncessaire et suffisante pour que ces {i /0in1} soient l'ensemble des valeurs des chemins minimaux issus de x0 est que : 1. 0=0
2.

i jv i j , pour tout arc x i , x j U .

Corollaire : 3. l'ensemble des arcs pour lesquels l'ingalit de 2) est une galit est l'ensemble des arcs appartenant des chemins minimaux.

52

COURS

Figure 4.1 : chemins de x0 xj .

Dmonstration :
Les conditions sont ncessaires :

i iles valeurs minimales des chemins issus de x0. 1) 0=0 (un sommet est un chemin de valeur 0). 2) j est la valeur minimale d'un chemin allant de x0 xj et est donc infrieure i + vij qui est la valeur d'un chemin allant x0 xj empruntant l'arc
Soit (xi ,xj). Corollaire : 3) Si j i =v i j , l'arc (xi, xj) appartient un chemin de valeur minimale allant de x0 xj, obtenu en concatnant un chemin de valeur minimale allant x0 xi avec l'arc (xi, xj). Rciproquement : Si (xi, xj) appartient un chemin [x0, xk] de valeur minimale, d'aprs le lemme 1, les sous-chemins allant de x0 xj et de x0 xi sont de valeur minimale; il en rsulte que

j= iv i j , donc l'ingalit est une galit.

Les conditions sont suffisantes : On suppose que les i satisfont 1), 2) et sont des valeurs de chemins ; on va montrer que ce sont les valeurs minimales des chemins issus de x0. Considrons un chemin [x0, xi] = de valeur minimale, not aussi : = [x j0 = x0 , ... , xjp = xi ]. On a : j 0=0 , j 1 j 0v j 0 j 1 , j 2 j 1v j 1 j 2 , ...,

j p j p1v j p1 j p .

En sommant, on obtient j p =i v minimale d'un chemin allant de x0 xi.

. Il en rsulte que

i est la valeur

Cette valeur i est en effet infrieure et suprieure la valeur minimale d'un chemin entre x0 et xi. Q.E.D. Le thorme 1 est la base des algorithmes prsents ci-dessous. On partira d'un ensemble de majorants des valeurs optimales et on les ajustera jusqu' ce que la condition 2 soit satisfaite.

2. Algorithme de FORD :
a) Algorithme de FORD : Syntaxe
Il est utilisable quel que soit le graphe, mais dans des cas particuliers, moins performant que d'autres algorithmes. (i) Initialisation Poser

0=0 et i= pour i > 0.

53

COURS

(ii) Examen des arcs Pour chaque sommet xi examin, parcourir l'ensemble des arcs (xi,xj) issus de xi en remplaant j par iv i j s i i v i j j . (iii) Test d'arrt Itrer (ii) tant qu'un

j aura t modifi dans (ii).

Figure 4.2 : exemple. Le tableau ci-dessous rapporte les valeurs successives des i lors de l'application de l'algorithme de FORD l'exemple de la figure 4.2. On doit se poser les questions suivantes: 1. Cet algorithme donne-t-il toujours les valeurs minimales ? 2. Quelle est la complexit de cet algorithme ? 3. Comment dterminer les chemins minimaux ?
0 I n it ia lis a t io n P r e m i r e it r a t io n 0 0 0 0 0 0 0 0 0 0 t r o is i m e it r a t io n 0 0 0 A ucun 1 2 2 2 2 2 2 2 2 2 2 2 2 i 2 5 5 5 4 4 4 4 4 4 4 4 4 m o d if i 3 4 A r c s is s u s d e x0 x1 x2 x3 x0 x1 x2 x3 x0

D e u x i m e it r a t io n

3 3 3 3 3 3 3 3 3 3 3 ST O P

9 9 9 9 9 8 8 8 8 8 8

x1 x2 x3

Tableau 13 : tableau Le thorme 2 rpond la question 1.

Thorme 2 :
L'algorithme de Ford calcule les valeurs des chemins minimaux issus de x0 quand le graphe est sans circuit absorbant.

Dmonstration k Notons i k la valeur de i la fin de la kme itration de l'algorithme et i la


valeur d'un chemin minimal allant de x0 xi parmi les chemins empruntant au plus k arcs.

54

COURS

On dmontre le thorme par rcurrence. On suppose la proprit vraie aprs k itrations et on dmontre qu'elle reste vraie aprs k+1 itrations. A la fin de la kme itration de (ii), i = i k est la valeur d'un chemin de x0 xi et est infrieure la valeur minimale d'un chemin allant de x0 xi empruntant au plus k k arcs : i i k . Soit k+1(x0, xj) un chemin minimal allant de x0 xj parmi les chemins empruntant au plus k+1 arcs : k+1(x0, xj)=k(x0, xi) concatn (xi, xj), k1 pour xj successeur de xi; j est la valeur de ce chemin. Par hypothse de rcurrence,
k k1 On a donc : i i k . En utilisant j = i k v i j . k1 j i k v i j . et du fait de l'algorithme iv i j j k 1 . D'o le rsultat.

La proprit est donc vraie l'ordre k+1. Il en rsulte qu' la n-1 me itration, les i sont les valeurs minimales des chemins issus de x0. Q.E.D. Le thorme 3 rpond la question 2.

Thorme 3 :
La complexit de l'algorithme de Ford est : O(n x m) o n = | X | et m = | U |.

Dmonstration
Dmonstration On excute (n - 1) (ii), (ii) cote O(m); d'o la complexit globale. Q.E.D. Enfin pour rpondre la question 3, on utilise le corollaire : les arcs appartenant aux chemins minimaux sont les (xi, xj) tels que j= i v i j . Les chemins du graphe partiel form de ces arcs sont exactement les chemins minimaux.

3. Algorithme de DIJKSTRA :
a) Algorithme de DIJKSTRA :
Cet algorithme ne sera applicable que si les valuations des arcs sont positives ou nulles. Dans cet algorithme, on va de nouveau ajuster les i , mais cette fois le nombre d'ajustements sera minimal, donc gal au nombre d'arcs du graphe.

Syntaxe : Algorithme (i) Poser S ={x0}, o=0 , =v 0 i , s i x 0 , x i U , i = ,sinon. (ii) Tant que S X faire (a) Choisir x i X S - S de i minimum.
(b) Poser S = S +{ xi }. (c) Pour tout

x j X S , successeur de xi , poser: j = min( iv i j , j ).

Exemple

55

COURS

Figure 4.3: exemple


xi x0 } x2 } x3 } x1 } x5 } x7 } x6 } x9 } x4 } x8 } S { x0 } { x 0 ,x 2 } { x 0 ,x 2 ,x 3 } { x 0 ,x 1 ,x 2 ,x 3 } 0 0 0 0 0 0 0 0 0 0 0 1 4 4 4 4 4 4 4 4 4 4 2 1 1 1 1 1 1 1 1 1 1 3 3 2 2 2 2 2 2 2 2 2 4 8 8 7 7 7 7 7 7 7 5 7 4 4 4 4 4 4 4 4 6 7 8 9

S S S S S S S S S S

{ { { { { { { { { {

5 5 5 5 5 5 5 5

4 4 4 4 4 4 4 4

8 8 8 8 8 8

6 6 6 6 6

Tableau 14 : tableau14

Arborescence de chemins minimaux :


Si on dfinit pour chaque sommet xj son pre comme le sommet xi ayant permis de fixer j (donc j j =v i j ), on a une arborescence de chemins minimaux (Cf. figure 4.4).

Figure 4.4: arborescence de chemins minimaux

56

COURS

Complexit de l'algorithme de Dijkstra :


Lemme 3 L'algorithme de Dijkstra se termine en un nombre fini d'tapes et a pour complexit O(n2). Dmonstration : (i), l'initialisation, cote O(n). (ii) (a) cote O(n) et est faite n fois. (b) cote O(1) et est faite n fois. (c) cote globalement O(m) car chaque arc est examin une fois. La complexit globale est donc: O(n2). Q.E.D.

Thorme 4 Les i la fin de l'algorithme sont les valeurs minimales des chemins issus de x0. Dmonstration
Les valuations tant positives ou nulles, il n'y a pas de circuit absorbant. Il y a donc des chemins minimaux. On va noter i * la valeur minimale d'un chemin allant de x0 xi et on va montrer par rcurrence qu' la fin de chaque itration (ii), on a :

x j S , i = j * 2) si x j X S , j=mi n k v k j s u r , x k S , , et prdcesseur de xj. La proprit


1) si

est vraie la fin de l'initialisation. Supposons la proprit vraie la fin de la kme itration et montrons qu'elle reste vraie la fin de la k+1ime itration. Soit xi le sommet de X-S de i minimal au dbut de la k+1ime itration. D'aprs

i est la valeur minimale d'un chemin lmentaire allant de de x0 xi et ne passant pas par un sommet de X-S. On va montrer que i = i * en comparant la valeur d'un chemin lmentaire allant de x0 xi et passant par un sommet de X - S i et en utilisant le fait que i est la valeur minimale
l'hypothse de rcurrence, d'un chemin allant de x0 xi et ne passant que par les sommets de S.

Figure 4-5: un chemin de x0 xi Soit (x0, xi) un tel chemin. On note xh le premier sommet de X-S appartenant (x0,xi).

h . Les valuations tant positives, la valeur du chemin (x0,xi) est suprieure h donc i , d'aprs l'algorithme (Cf. (ii) a) ). Il en rsulte que i = i * (Cf. figure 4.5).
Le sous-chemin allant de x0 xh est de valeur suprieure D'aprs l'algorithme (Cf (ii) a) ) : 1) est vrifi pour les autres sommets de S par hypothse de rcurrence; 2) rsulte de l'hypothse de rcurrence et de l'ajustement dans l'tape (c) de l'algorithme. En effet, posons S' = S + xi et considrons un sommet xj n'appartenant pas S'. Montrons qu'aprs l'ajustement j=mi n k v k j p o u r , x k S et prdcesseur de xj. Avant l'ajustement, on a par hypothse de rcurrence:

57

COURS

j=mi n k v k j p o u r , x k S On pose ensuite j=mi n j , iv i j . Q.E.D

4. Algorithme de BELLMAN :
a) Algorithme de BELLMAN :
Il est applicable aux graphes sans circuit. On a vu qu'on pouvait numroter les sommets d'un graphe sans circuit en O(m) oprations. Le nombre d'ajustements est galement minimal car gal au nombre d'arcs du graphe.

Syntaxe : Algorithme de Bellman :

0=0 . (ii) Pour j = 1 n - 1 poser : j=mi n iv i j sur l'ensemble des prdcesseurs xi


(i) Numroter les sommets du graphe , poser de xj.

Exemple

Figure 4.6 : un exemple pour Bellman

0=0 . 1=6 06 . 2=8 08 . 3=8 62 . 4 =9=mi n 85 ,67 . 5=1 0=m i n 91 , 89 .


Thorme 5 :
L'algorithme de Bellman calcule les valeurs en O(m) itrations.

i des chemins minimaux issus de x0

Dmonstration :
(i) cote O(m). (ii) cote O(m) car on examine un arc exactement une fois. On * * * * suppose par rcurrence que, l'ordre j, on a : 1=1 , 2= 2 , .. . , j= j o les j sont les valeurs minimales des chemins allant de x0 xi, qui existent puisque le graphe est sans circuit, donc sans circuit absorbant. La proprit est vraie l'ordre j+1, car un chemin minimal allant de x0 xj+1 est obtenu en ajoutant l'arc (xk ,xj+1) un chemin minimal allant de x0 xk pour un prdcesseur xk de xj+1. Ceci dmontre la proprit par rcurrence. Q.E.D.

58

COURS

Figure 4.7 : preuve du thorme 5

5. Mthode matricielle :
a) Mthode matricielle :
La mthode matricielle permet de calculer la valeur des chemins minimaux entre toute paire de sommets dans un graphe sans circuit absorbant pour une complexit O(n3).

Syntaxe : Algorithme
(i) Soit V0=(v0ij) la matrice des valuations des arcs de G . ( v i j = si (xi, xj) n'appartient pas U ) (ii) Pour k = 1 n Pour i = 1 n Pour j = 1 n Faire vkij = min ( vk-1ij , vk-1ik + vk-1kj )
0

Figure 4-8: un exemple pour la mthode matricielle

59

COURS
V=
0

0 7 4

9 8 0

0 5 V=
1

6 0

0 6 0 4

9 8 9 0

0 5

6 0

6 V2= 6 0 10 0 V4= 0 0 0

0 6 0 4 0 0 0 0

8 8 8 0 0 0 0 0

0 0 0 4 0 0 0 0 V3=

6 6 0 0

0 6 0 0

8 8 8 0

0 0 0 0

Tableau 15 : Figure 4.9 : application de la mthode matricielle l'exemple

Thorme 5 :
En l'absence de circuit absorbant, la fin de la kime itration, vkij est la valeur minimale d'un chemin lmentaire allant de i j et ne passant que par les sommets 1 , 2 , ... , k.

Dmonstration :
Ce rsultat se dmontre immdiatement par rcurrence. L'absence de circuit absorbant permet de limiter la recherche des chemins minimaux aux chemins lmentaires. Un chemin lmentaire entre i et j, s'il existe, ne passant que par 1, 2, ...,k est soit un chemin passant une fois par k, soit un chemin ne passant pas par k. Ceci explique la formule de l'algorithme. Q.E.D.

Remarque
S'il y a des circuits absorbants des termes ngatifs apparaissent sur la diagonale principale d'une des matrices.

6. Autres problmes de cheminement :


a) Autres problmes de cheminement :
D'autres problmes de cheminement se rsolvent de manire similaire. Nous citons les problmes suivants ainsi que leurs mthodes de rsolution : - Chemins de valeur maximale : Ford et Bellman restent valables en remplaant MIN par MAX et en initialisant les i , e t , i 0. - Existence d'un chemin de i j : mthode matricielle ou matrice boolenne associe leve une puissance (Cf. : TD). - Dnombrement du nombre de chemins entre i et j : M matrice relle associe (nombre de chemins de longueur 1), Mk (nombre de chemins de longueur k). - Chemins de fiabilit maximale entre i et j . La fiabilit d'un chemin est le produit des valuations des arcs de ce chemin ( fiabilit : probabilit de ne pas tomber en

60

COURS

panne ). On utilise Ford ou Bellman en remplaant + par x et MIN par MAX. Les sont initialiss 0, sauf 0 qui est initialis 1.

- Chemins de capacit maximale. La capacit maximale d'un chemin est la plus petite des valuations 0 de ce chemin. On utilise galement Ford et Bellman en remplaant + par MAX et MIN par MAX. Les i sont initialiss -1, sauf 0 qui est initialis .

F. PROBLMES D'ORDONNANCEMENT

Jusqu'en 1958, on utilisait les diagrammes de Gantt (appels aussi planning barres). Cette anne l, se sont dveloppes deux mthodes fondes sur les graphes : 1. La mthode potentiel-tches, l'occasion de la construction du paquebot FRANCE; 2. La mthode PERT, lors de celle des fuses POLARIS. Ces mthodes ne prennent en compte que les contraintes potentielles (succession et localisation temporelle) et ne grent pas les contraintes de ressources. Elles sont fondes toutes les deux sur la recherche de chemins maximaux, que l'on appelle chemins critiques. Cela n'tait pas trop pnalisant dans la mesure o, si les projets correspondants comportaient de trs nombreuses tches, ils taient aussi de prestige et la fonction cot tait donc secondaire. L'important tait de terminer le projet le plus tt possible, ce que permet les mthodes de chemin critique.

1. Graphes conjonctifs, ensemble de potentiels


a) Graphes conjonctifs, ensemble de potentiels :
Graphes conjonctifs, ensemble de potentiels : Dans l'une ou l'autre mthode, on associe au problme un graphe conjonctif. Un ordonnancement sera un ensemble de potentiels sur le graphe conjonctif.

Dfinition : Graphe conjonctif :


Un graphe conjonctif est un graphe G = (X, U) valu ayant une racine 0 et une antiracine n+1 tel qu'il existe un chemin de valeur positive entre la racine et tout autre sommet et entre tout sommet diffrent de l'antiracine et l'antiracine.

Figure 5.1 : exemple de graphe conjonctif

61

COURS

Dfinition : Ensemble de potentiels :


Un ensemble de potentiels sur un graphe conjonctif G=(X, U) est une application t de X dans R telle que : 1. to = 0, 2. v i j t jt i , pour tout arc (i,j) de U. Par abus d'criture, on crira T= {ti / i

X}.

Thorme d'existence :
Une condition ncessaire et suffisante pour qu'il existe un ensemble de potentiels sur un graphe conjonctif G = (X, U) est que ce graphe n'ait pas de circuit de valeur strictement positive.

Dmonstration :
La condition est ncessaire : S'il existe un circuit [i1, i2, ... , ir , i1 ] de valeur strictement positive, c'est--dire tel que : vi1i2 + vi2i3 + . . . + viri1> 0 , on a, pour tout ensemble de potentiels T :

t i 2t i 1vi 1 i 2 , t i 3t i 2 v i 2 i 3 ,. .. , t i 1t i rv i r i 1 .
En sommant, on trouve : 0 > 0, ce qui est absurde. La condition est suffisante : S'il n'existe pas de circuit de valeur strictement positive, il existe un chemin maximal entre 0 et i. On va noter ri la valeur d'un tel chemin et montrer que R = {ri / i X} est un ensemble de potentiels. En effet, la valeur maximale rj d'un chemin de 0 j est suprieure ri + vij qui est la valeur d'un chemin de 0 j obtenu en concatnant un chemin maximal de 0 i l'arc (i,j). Il en rsulte : 1. ro = 0, 2. rj - ri

vij. Q.E.D.

Ensemble de potentiels cal gauche et cal droite: On suppose dans la suite que le graphe est sans circuit de valeur strictement positive et nous notons l(i,j) la valeur maximale d'un chemin allant de i j On a vu que R = {ri = l(0,i) / i cal gauche ou au plus tt).

X} tait un ensemble de potentiels (il sera dit

On va montrer que F = { fi = l(0,n+1) - l(i,n+1) / i X } est galement un ensemble de potentiels (il sera dit cal droite ou au plus tard). Posons t* = l(0,n+1).

Proposition 1 :
Pour tout ensemble de potentiels T= {ti / i X}, tn+1 t* = l(0,n+1). En particulier t* est la dure optimale de l'ordonnancement. De plus, pour tout i, on a: ri ti (ri : date au plus tt). Enfin, si T est un ordonnancement optimal, donc de dure t*, alors ti fi, (fi : date au plus tard).

Dmonstration :
Soit [ io=0 , ... , ir = n+1 ] un chemin de valeur maximale entre 0 et n+1, donc de valeur l(0,n+1) (un tel chemin est dit critique). ti1 - tio vioi1, ti2 - ti1 vi1i2, ..., tir tir-1 vir-1ir. En sommant, on obtient: tir - tio = l(0,n+1) et puisque ir = n+1 et io = 0, on a: tn+1 t* = l(0,n+1). On vrifie de faon analogue que R = {ri = l(0,i) / i X} est un ensemble de potentiels d'cart minimal entre to et ti, d'o ti ri. L'cart minimal entre ti et tn+1

62

COURS

est gal l(i,n+1), en consquence si F = {f i = l(0,n+1)-l(i,n+1) / i fi si tn+1 = t*. Q.E.D.

X}, on a : ti

2. La mthode potentiel-tches
a) La mthode potentiel-tches : Mthode
T ches 1 2 3 4 5 6 7 D u re 3 7 4 6 5 3 2 c o n t r a in t e s p o t e n t ie lle s

L a tch e L es tch es 1 L a tch e L es tch es 3 L a tch e

1 et 3 et 6

p r c d e la t c h e 3 2 p r c d e n t la t c h e 4 p r c d e la t c h e 5 4 p r c d e n t la t c h e 6 p r c d e la t c h e 7

Tableau 16 : Figure 5-2 : exemple

Figure 5.3 : le graphe potentiel-tches de l'exemple. On associe de faon canonique ce problme un graphe G = (X , U) o X = {0, 1, 2, ... , n+1} (0 : tche fictive dbut; n+1 : tche fictive fin), et U est associe aux contraintes potentielles, qui comprennent d'une part les contraintes initiales, d'autre part les contraintes dues aux tches 0 et n+1 : on relie tout sommet sans prdcesseur 0 par un arc de valuation 0 et on relie tout sommet i sans successeur n+1 par un arc de valuation gale la dure de la tche i.

Dfinition : Le chemin critique:


Les chemins maximaux entre 0 et n+1, dits critiques, jouent un rle central dans cette mthode. Les tches appartenant ce chemin critique sont dites critiques. Si on retarde d'un certain dlai une tche critique, l'ordonnancement sera retard du mme dlai. Cela rsulte du fait que les tches critiques ont des dates au plus tard gales aux dates au plus tt : elles sont de marge nulle.

Dfinition : Ordonnancement :
Un ordonnancement est un ensemble de potentiels sur le graphe conjonctif associ. Tout ordonnancement est de dure suprieure l(0,n+1) = t* valeur du chemin critique. On calcule le plus souvent, les ordonnancements cals gauche et droite (au plus tt et au plus tard), en rsolvant deux problmes de cheminements: r i = l(0, i) , fi = l(0,n+1) - l(i,n+1). On utilisera BELLMAN en l'absence de circuit ou FORD, s'il y a un circuit, en utilisant les formules suivantes.

63

COURS

pour les dates au plus tt : r0 = 0, rj = max (ri + vij) (avec i

U-(j)).

Figure 5.3 : le graphe potentiel-tches de l'exemple. pour les dates au plus tard : fn+1 = t*, fi = min (fj - vij ) ( avec j U+(i) ).

Figure 5.5 : dates au plus tard.

Les diffrents types de contraintes potentielles :


Nous rapportons ci-dessous les diffrents types de contraintes potentielles qui comprennent les contraintes de succession et de localisation temporelle. Contraintes de succession : i prcde j, en appelant ti (resp. tj) la date de dbut de i (resp. j) et p i la dure de i, la contrainte s'crit tj ti + pi, c'est--dire tj - ti pi: on associe un arc (i,j) valu par pi. Contraintes de localisation temporelle : La tche i est disponible la date a i, ti ai ou ti -t0 ai (t0 = 0). On associe un arc (0,i) valu par ai. La tche i doit tre acheve la date di : ti + pi di, qui s'crit: to - ti pi - di. On associe un arc (i,0) valu par pi - di (cette valuation est ngative ou nulle). Contraintes de succession au sens large : La tche j pourra dbuter aprs la tche i plus un temps de rglage rij: tj ti +pi+rij, d'o tj-ti pi+rij. La tche j pourra commencer aprs que i soit commence d'un tiers : tj ti + pi/3.

3. La mthode PERT
a) La mthode PERT : Mthode
On associe chaque tche i, un vnement Di, dbut de la tche i et un vnement

64

COURS

Fi, fin de la tche i. On introduit galement un vnement D dbut de l'ordonnancement et F fin de l'ordonnancement. Le graphe conjonctif associ a pour sommets l'ensemble des vnements et pour arcs l'ensemble des tches, plus des arcs dits fictifs permettant de reprsenter les contraintes.

Exemple

Figure 5.6 graphe PERT dvelopp

Figure 5.7 : graphe PERT simplifi On peut simplifier le graphe PERT en fusionnant des vnements dbut ou fin de tches. Mais les inconvnients du graphe simplifi sont : la non-automaticit de sa construction; le fait qu'il n'est pas unique; le fait que si on modifie une contrainte (ajout ou retrait), il faut reconstruire tout le graphe simplifi L'avantage du graphe PERT est une meilleure lisibilit pour des non-spcialistes. En effet une tche qui a une certaine dure est reprsente par une flche.

G. LE PROBLME DU FLOT MAXIMAL

Nous allons tudier dans ce chapitre le problme du flot maximal. Ce problme apparat quand il s'agit de maximiser la quantit transporte d'une ou plusieurs sources vers une ou plusieurs destinations. Il est modlis par un graphe valu, appel rseau de transport, que nous dfinissons. Les arcs reprsentent les possibilits de transport entre deux sites et sont valus par les capacits correspondantes. Le problme du flot maximal est rsolu par un algorithme efficace fondamental du FORD et FULKERSON, que nous prsentons et justifions cidessous. Pour terminer nous discutons de la polynomialit de ce problme en

65

COURS

voquant des travaux de recherche plus rcents qui ont permis la mise au point d'algorithmes plus performants.

1. Rseau de transport
a) Rseau de transport : Dfinition
On appelle rseau de transport un graphe valu positivement sans boucle, ayant une racine s, un puits p et contenant l'arc (p,s) de valuation infinie. Les valuations des arcs sont appeles capacits. Un exemple de rseau de transport est rapport sur la figure 6.1 ci-dessous.

Figure 6.1 : rseau de transport

Dfinition
On appelle flot sur un rseau de transport G = (X, U) une application f : U dans R qui vrifie : 1. Les contraintes de capacit : pour tout arc (i,j) de U : 0 f i j c i j ; 2. Les contraintes de conservation (Kirchoff) (Cf figure 6.2) pour tout sommet i de X, on a :

j U i

f i j=

k U i

f ki

Figure 6.2 : contrainte de conservation Un premier exemple de flot est le flot nul. Un deuxime exemple de flot est rapport sur la figure 6.3.

66

COURS

Figure 6.3 : un flot complet.

Exemple
En trois dpts A, B, C, on dispose respectivement de 20, 35 et 10 tonnes de marchandises. On a des demandes de 25, 20 et 20 tonnes aux destinations D, E et F. Il existe des possibilits de transport l'aide de camions. Ces possibilits sont rapportes dans le tableau suivant :
D 15 15 5 E 10 5 0 F 0 5 10

A B C

Tableau 17 : tableau17

Problme :
Dterminer un plan de transport permettant de transporter des origines aux destinations une quantit maximale. A ce problme, on associe le graphe de la figure 6.1. Plus gnralement, il faut rsoudre le problme suivant: Dterminer un flot de valeur maximale sur l'arc (p, s), donc maximiser fps.

2. Lemme
a) Lemme :
Avant d'introduire les algorithmes pour maximiser le flot, nous montrons que la proprit de conservation du flot se gnralise un sous-ensemble de sommets.

Lemme :
Si Y est un sous-ensemble de X, le flot sortant de Y est gal au flot entrant dans Y.

Dmonstration :
On somme l'galit de Kirchoff sur l'ensemble des sommets de Y. Les flux sur les arcs qui ont une extrmit dans Y et l'autre en dehors de Y apparaissent de chaque ct de l'galit. On peut donc les soustraire. Il reste alors d'un ct de l'galit la somme des flux des arcs sortants de Y et de l'autre ct de l'galit, la somme des flux des arcs entrants dans Y. On a donc le rsultat. Q.E.D.

67

COURS

Figure 6.4: preuve du lemme.

3. Flot complet
a) Introduction :
Introduction : Une premire ide pour optimiser le flot est de saturer successivement les chemins de s p. On obtiendra alors un flot dit complet qui, comme nous le verrons ci-dessous, n'est pas maximal, mais fournit une excellente solution de dpart pour appliquer l'algorithme de Ford-Fulkerson que nous prsenterons au paragaphe suivant.

Dfinition
On dit qu'un flot est complet si tout chemin du rseau de transport allant de s p contient au moins un arc satur , c'est--dire un arc (i,j) tel que fij = cij .

b) Algorithme de recherche d'un flot complet : Syntaxe


On part d'un flot f (par exemple, f = 0) et on l'amliore pas pas par une procdure de marquage: (I) Marquer s. (II) Soit i un sommet marqu non encore examin; marquer j si j est un successeur non marqu de i avec fij < cij. La marque de j est +i. (III) Si p est marqu, aller en (IV). Si tous les sommets marqus sont examins, le flot est complet FIN. Sinon aller en (II). (IV) Amliorer le flot. Effacer les marques (sauf celle de s) et aller en (I).

c) Fonctionnement sur l'exemple prcdent :


On trouve successivement les chemins amliorants suivants : sADp (15), sAEp (5), sBDp (10), sBEp (5), sBFp (5), et sCFp (10). Le flot rsultant a pour valeur 50 et est complet ( Cf figure 6.3). En effet tous les chemins passant par l'arc sA sont saturs car cet arc est satur; tous les chemins passant par l'arc sC sont saturs car cet arc est satur; tous les chemins passant par l'arc sB sont saturs car les arcs Dp,BE et BF sont saturs.

4. Algorithme de FORD-FULKERSON :

Pour construire un flot complet, on a supprim les chemins amliorants. Il n'est pas optimal car il reste une chane amliorante. Nous expliquons ci-dessous la notion de chane amliorante et nous rapportons l'algorithme de Ford-Fulkerson qui permet

68

COURS

de chercher les chanes amliorantes et qui s'arrte quand il n'y a plus de chane amliorante. Le flot est alors optimal.

a) Chane amliorante :

Figure 6.5: une chane amliorante Dans un chemin de s p, le sens des arcs est respect. Dans une chane de s p, au contraire, le sens des arcs n'est pas forcment respect. On peut alors distinguer deux types d'arcs: les arcs qui respectent l'orientation (arcs dits dans le sens +) et les arcs qui ne respectent pas l'orientation (arcs dits dans le sens-). Une chane amliorante est une chane allant de s p dont les arcs allant dans le sens + sont insaturs et les arcs dans le sens - transportent un flux strictement positif. Elle permet d'amliorer le flot, en ajoutant une quantit sur les arcs dans le sens +, et en retirant une quantit sur les arcs dans le sens -. L'algorithme de Ford - Fulkerson part d'un flot quelconque (par exemple, le flot nul ou un flot complet). Il cherche une chane amliorante. Il amliore le flot tant qu'il existe une chane amliorante et sinon il s'arrte. Le flot est alors optimal.

b) Algorithme de Ford - Fulkerson : Syntaxe


(I) Marquer l'entre s par *. (II) Soit i un sommet marqu non examin. Etudier tous les successeurs j de i : Marquer j s'il est non marqu et si fij < cij par +i. Etudier tous les prdcesseurs k de i: Marquer k s'il est non marqu et si fki > 0 par -i. (III) Si p est marqu, aller en (IV) S'il reste des sommets marqus non examins, aller en (II). Sinon le flot est optimal, FIN. (IV) Amliorer le flot l'aide de la chane amliorante ayant permis de marquer p. Effacer les marques, sauf celle de s, et aller en (I).

c) Exemple : Exemple
(I) On marque s par * et nous partons du flot complet construit prcdemment (Cf figure 6.3). (II) On examine s On marque B par +s, car seul l'arc sB est insatur. (II) On examine B BD est le seul arc insatur sortant de B; on marque donc D par +B (successeur de B).

69

COURS

B n'a pas de prdcesseur non marqu. ( II) On examine D Il n'y a pas d'arc insatur sortant de D. Par contre, l'arc AD transporte un flux non nul. Cela entrane que A est marqu -D (prdcesseur de D). (II) On examine A On marque E par +A, car il est successeur insatur de A. Le seul prdcesseur de A est dj marqu. (II) On examine E On marque p par +E, c'est--dire comme successeur de E. (IV) p tant marqu, on a trouv une chane amliorante. On utilise les marques en remontant pour reconstituer cette chane amliorante: c'est la chane sBDAEp, dont les quatre arcs dans le sens + sont insaturs, alors que l'arc dans le sens transporte un flux non nul. Cette chane permet d'amliorer le flot de 5 units. On efface les marques sauf celles de s et on recommence.

Figure 6.6 : marquage de Ford-Fulkerson

Figure 6.7 : flot optimal. (ii) Cette fois, on marque le sommet B et c'est fini car tous les arcs sortants de B sont maintenant saturs. Le flot est maximal comme nous allons le montrer cidessous dans le cas gnral.

70

COURS

d) Thorme de Ford - Fulkerson : Dfinition


Une coupe est un ensemble de sommets contenant s et ne contenant pas p. La capacit d'une coupe est la somme des capacits des arcs sortant de cette coupe.

Exemple
la fin de l'algorithme prcdent l'ensemble des sommets marqus M = {s, B} est une coupe qui a la proprit suivante : - tous les arcs sortants de M sont saturs; - les arcs entrants dans M, l'exception de (p,s), ont un flux nul.

Thorme de Ford-Fulkerson :
Thorme de Ford-Fulkerson : La capacit minimale d'une coupe est gale au flot maximal.

Dmonstration :
Il faut montrer que : Max fps = Min C(Y) (avec f, flot, Y X , s Y , pY ) 1. Montrons que Max fps Min C(Y) : Soit f un flot quelconque et Y une coupe quelconque, il suffit de montrer que : fps C(Y). Le flot sortant de Y est infrieur C(Y). Le flot entrant dans Y est suprieur fps. Comme le flot entrant dans Y est gal au flot sortant de Y, on a : fps C(Y). 2. Montrons que Max fps Min C(Y) : On va montrer qu'il existe un flot f ' et une coupe M telle que : f ' ps = C(M). L'ingalit en rsultera car Max fps f 'ps et Min C(Y) C(M). Quand on applique Ford-Fulkerson, la fin, si on dsigne par M l'ensemble des sommets marqus et par f ' le flot, on a C(M) = f 'ps.

Figure 6.8 : coupe minimale. Aprs un nombre fini d'itrations, Ford-Fulkerson s'arrte. En effet , chaque itration permet d'amliorer le flot d'au moins une unit; ce flot est born, par exemple, par C({s}). A la fin , les arcs sortants de M sont saturs et les arcs entrants dans M ont un flux nul. Le flot entrant dans M est f ps. Le flot sortant de M est C(M). D'o C(M) = fps. Q.E.D. On dmontre immdiatement les corollaires suivants : Corollaire 1 : Une C.N.S pour qu'un flot soit maximal est qu'il n'existe pas de chane amliorante. Corollaire 2 : L'algorithme de Ford-Fulkerson construit un flot maximal.

71

COURS

e) Complexit de l'algorithme de Ford-Fulkerson :


La figure 6.9 rapporte un exemple o le nombre d'itrations de Ford-Fulkerson est gal 2M si on choisit successivement les chanes amliorantes {s x y p} et {s y x p} de capacits 1. Le nombre d'amliorations peut donc tre exponentiel. L'algorithme de Ford-Fulkerson n'est pas polynomial.

Figure 6.9 : exemple. Par contre, si on applique la rgle premier marqu, premier examin l'algorithme de Ford-Fulkerson devient polynomial de complexit O(n5) : le nombre de chanes amliorantes est major par 1/4 (n3 - n ) d'aprs le thorme d'EDMONS et KARP. Cela revient chercher les chanes amliorantes les plus courtes. Remarquons pour terminer qu'il existe de meilleurs algorithmes, en particulier, l'algorithme de KARZANOV de complexit globale O(n3).

5. Flot maximal cot minimal :

Figure 6.10 : flot sur un rseau de transport Nous revenons sur l'algorithme de Ford-Fulkerson en montrant que la notion de chane amliorante sur le graphe initial est quivalente la notion de chemin amliorant sur le graphe d'cart. Sur la figure 6.10, on a un flot sur le rseau de transport. Le graphe d'cart associ est rapport sur la figure 6.11.

a) Problme du flot maximal :

72

COURS

Dfinition : Dfinition du graphe d'cart Ge() :


Au couple form d'un flot f et d'un rseau de transport G, on associe le graphe d'cart Ge()=(X,Ue()) dfini par : tout arc (i, j) de G, correspond deux arcs : un arc (i, j) de Ge() de capacit cij ij et un arc (j, i) de Ge() de capacit ij (si la capacit d'un arc est nulle dans Ge(), on ne reprsente pas l'arc, car il est inutile). Remarquons qu'ajouter (resp. retirer) un flux sur un arc du graphe initial revient ajouter ce flux sur l'arc correspondant (resp. inverse) du graphe d'cart. Les chanes amliorantes du graphe initial correspondent des chemins du graphe d'cart. L'algorithme de Ford-Fulkerson devient donc l'algorithme suivant :

Syntaxe : Algorithme du graphe d'cart :


Cet algorithme permet de construire un flot de valeur maximale sur l'arc de retour (p, s) dans G. (I) Initialiser f sur tous les arcs (par exemple, f = 0, si b(u)= 0, pour toutu). (II) Construire Ge(f) et chercher un chemin de s p dans Ge(f). Aller en (III) si un chemin a t trouv sinon FIN. (III) Amliorer le flot f le long du chemin obtenu et retourner en (II).

Figure 6.11 : premier graphe d'cart.

Application de l'algorithme l'exemple prcdent


Sur le premier graphe d'cart (figure 6.11), on a le chemin [s, 3, 4, 1, 5, p] qui permet d'amliorer le flot de 3. Sur le deuxime graphe d'cart (figure 6.12), on a le chemin [s, 2, 4, 1, 5, p] qui permet d'amliorer le flot de 1. Le troisime graphe d'cart (figure 6.13), ne contient plus de chemin de s p; le flot est donc maximal. Les flux sont gaux la capacit des arcs inverses de ce troisime graphe d'cart (Cf. fig 6.14).

73

COURS

Figure 6.12 deuxime graphe d'cart

Figure 6.13: troisime graphe d'cart

Figure 6.14 : flot maximal.

74

COURS

Figure 6.15: un problme avec des cots

b) Le problme du flot maximal cot minimal :


Le problme du flot maximal cot minimal : Nous allons maintenant modifier cet algorithme du graphe d'cart pour pouvoir tenir compte de cots unitaires de transport sur les arcs. Pour chaque arc (i ,j ) , on a en outre , un cot d ij ( 0). Il faut dterminer un flot maximal de cot global minimal, c'est--dire qui minimise :
i , j U

di j f i j

Syntaxe : Algorithme de ROY :


(I) Poser f = 0. (II) Construire Ge(f) en introduisant un cot dij sur l'arc (i , j) et un cot - dij sur l'arc (j , i). (III) Chercher un chemin de cot minimal dans Ge(f) allant de s p.S'il n'y a pas de chemin de s p, le flot est maximal de cot minimal alors FIN. (IV) Sinon amliorer le flot f et retourner en (II).

Figure 6.16 : deuxime graphe d'cart.

75

COURS

Figure 6.17 : troisime graphe d'cart.

Exemple
Le premier graphe d'cart se confond avec le graphe initial (Cf. figure 6.15). Sur ce graphe, le chemin de cot minimal allant de s p est [s, 3, 4, p] de cot 3. On fait alors passer un flux de valeur 3 travers ce chemin et on obtient un deuxime graphe d'cart (Cf. figure 6.16). Sur ce graphe, le chemin de cot minimal allant de s p est [s, 1, 4, p] de cot 7. On fait alors passer un flux de valeur 2 travers ce chemin et on obtient un troisime graphe d'cart (Cf. figure 6.17). Sur ce graphe, le chemin de cot minimal allant de s p est [s, 1, 5, p] de cot 14. On fait alors passer un flux de valeur 2 travers ce chemin et on obtient un quatrime graphe d'cart (Cf. figure 6.18). Sur ce graphe, le chemin de cot minimal allant de s p est [s, 2, 4, 1, 5, p] de cot 26. On fait alors passer un flux de valeur 2 travers ce chemin et on obtient un dernier graphe d'cart (Cf. figure 6.19). Il n'y a plus de chemin de s p. Le flot est maximal de cot minimal (Cf. figure 6.20). Le cot de ce flot est : 3*3 + 2*7 + 2*14 + 2*26 = 103.

Figure 6.18 : quatrime graphe d'cart.

76

COURS

Figure 6.19 : dernier graphe d'cart.

Figure 6.20 : flot maximal de cot minimal..

H. LES PROBLMES DE FLOTS CANALISES A COT MINIMAL

Dans ce chapitre, nous considrons des gnralisations du problme du flot maximal en traitant des problmes de flots cot minimal et des problmes de flots canaliss. Un flot canalis est un flot qui doit satisfaire outre les contraintes de KIRCHOFF et de capacits, des contraintes supplmentaires dites de bornes : chaque arc (i, j) est associ une borne bij et le flux sur l'arc (i, j) doit tre suprieur ou gal bij. Un flot sera de cot minimal si une fonction linaire des cots de transport est minimise. L'outil de base reste la chane amliorante. Nous le simplifions en introduisant la notion de graphe d'cart qui permet de se ramener la recherche de chemins amliorants. Nous expliquons comment chercher un flot canalis et un flot de cot

77

COURS

minimal.

1. Flot canalis et graphe d'cart :


a) Flot canalis et graphe d'cart :
Flot canalis et graphe d'cart : Il arrive qu'une borne infrieure b(u) entire du flux sur l'arc u ne soit pas nulle, auquel cas, le problme de la recherche d'un flot compatible (on dira canalis) se pose. On rappelle que c(u) la capacit de l'arc u est une borne suprieure entire du flux sur l'arc u.

Dfinition
Un flot canalis est une application de U dans N (ensemble des entiers) satisfaisant les contraintes de Kirchoff et les contraintes de bornes et de capacits. On cherche un flot tel que pour tout u, b u u c u . Le thorme d'Hoffman donne une condition d'existence d'un flot canalis.

Thorme d'HOFFMAN :
Une C.N.S pour qu'il existe un flot canalis dans le rseau G = (X, U, b, c) est que : pour tout Y X , la somme des bornes des arcs entrants dans Y est infrieure ou gale la somme des capacits des arcs sortants de Y, c'est--dire :

b u
u U Y
-

cu

u U Y

Dmonstration :
La condition est videmment ncessaire. En effet, le flux entrant dans Y est gal au flux sortant de Y. Le flux entrant est suprieur la somme des bornes et le flux sortant infrieur la somme des capacits on a donc l'ingalit ds qu'il existe un flot. La suffisance de la condition est assure par l'algorithme de recherche d'un flot compatible que nous introduisons et justifions ci-dessous. Q.E.D.

Syntaxe : Algorithme de recherche d'un flot compatible :


{Par la suite fu est le flux sur l'arc u} (I) Partir du flot f nul. (II) Chercher un arc u tel que fu < b(u) - si un tel arc n'existe pas alors FIN 1; - sinon poser s = extrmit terminale de u et p = extrmit initiale de u. (III) Chercher une chane de s p dont les arcs dans le sens + sont insaturs et les arcs dans le sens - ont un flux strictement suprieur la borne; si ce n'est pas possible alors FIN 2. (IV) Utiliser cette chane pour amliorer le flot en cherchant satisfaire la contrainte de borne sur l'arc u et retourner en (ii). Cet algorithme s'arrte, soit aprs avoir trouv un flot compatible (FIN1), soit parce que la condition ncessaire du thorme n'est pas vrifie (FIN2). Nous allons prouver ce rsultat aprs avoir fait fonctionner l'algorithme sur l'exemple de la figure 7.2. On trouve successivement les quatre chanes amliorantes suivantes:

pour s = x3 et p = x1, on a la chane (x3, x4, x1) de capacit 2. pour s = x3 et p = x1, on a la chane (x3, x4, x5, x1) de capacit 2. pour s = x2 et p = x1, on a la chane (x2, x5, x1) de capacit 3.

78

COURS

pour s = x3 et p = x5, on a la chane (x3, x4, x5) de capacit 1. On a alors un flot compatible.

Validit de l'algorithme :
L'algorithme s'arrte. On ne peut pas boucler indfiniment car l'ensemble des valeurs est fini et on est sr de ne jamais retrouver le mme flot entre deux tapes. En effet,
u U

m a x {bu f u , 0} est strictement dcroissant au cours de l'algorithme et

minor par 0. Puisque l'on part du flot nul et que l'on respecte toujours les contraintes de capacits, on est sr que pour tout u : u c u . Si FIN1, alors on a obtenu un flot compatible. Si FIN2, alors l'algorithme de marquage d'une chane de s p est bloqu. Notons A l'ensemble des sommets marqus la fin de cette phase. On vrifie que le flot entrant dans A est strictement infrieur la somme des bornes des arcs entrants dans A et est gal la somme des capacits des arcs sortants de A (Cf. 7.1).

Figure 7.1 : cas de non-existence d'un flot compatible (FIN2)

79

COURS

Figure 7.2 : application de l'algorithme.s

2. Flot canalis cot minimal :


a) Dcomposition d'un flot sur une base de circuits : Proposition :
Une condition ncessaire et suffisante pour qu'un flot soit positif est qu'il existe une famille de circuits 1 , 2 , . .. , p et des coefficients 1 , 2 ,. . . , p entiers

80

COURS

positifs tels que :

f = 1 1 2 2. .. p p .

Dmonstration :
La condition est suffisante car chaque circuit peut tre considr comme un flot positif. Montrons que la condition est galement ncessaire. En partant d'un arc de flux non nul, on peut trouver galement un arc suivant, galement de flux non nul, cause de la condition de Kirchoff. En itrant on va repasser par un mme sommet. On aura donc trouv un circuit 1 . Soit 1 la valeur minimale des flux sur ce circuit; f 1 1 est encore un flot positif et on peut donc lui appliquer le mme raisonnement ce qui nous permet d'obtenir successivement toutes les composantes de , car chaque fois un nouvel arc de flux nul apparat. Q.E.D.

b) Bijection d'cart : Dfinition : Dfinition du graphe d'cart Ge() (incluant les bij) :
Au couple form d'un flot f et d'un rseau de transport G, on associe le graphe d'cart Ge()=(X,Ue()) dfini par : tout arc (i, j) de G, correspond deux arcs : un arc (i, j) de Ge() de capacit cij - ij et un arc (j, i) de Ge() de capacit ij - bij (si la capacit d'un arc est nulle dans Ge(), on ne reprsente pas l'arc, car il est inutile). Soit 0 un flot compatible et Ge(0) le graphe d'cart associ. Soit un flot sur Ge(0) on dfinit un nouveau flot compatible sur G par la formule note = 0 telle que :

f u= f 0 u u + - u Le cot du flot sur G est gal au cot du flot 0 sur G plus le cot du flot sur le graphe d'cart. On cherche minimiser le cot de o est un flot compatible. La mthode que nous allons voir consiste supprimer les circuits de cot strictement ngatif dans le graphe d'cart. Elle est fonde sur le thorme d'optimalit que nous dmontrons.

c) Thorme d'optimalit : Thorme d'optimalit :


Un flot 0 compatible est de cot minimal si et seulement si Ge(0) ne contient pas de circuit de cot strictement ngatif.

Dmonstration
La condition est videmment ncessaire. En effet, s'il existe un circuit de cot strictement ngatif, ce circuit permet de construire un flot strictement meilleur, comme nous l'expliquons avec l'exemple ci-dessous. La condition est galement suffisante. Soit un flot 0 tel que Ge(0) ne contient pas de circuit de cot strictement ngatif et un autre flot compatible; on a = 0 se dcompose sur une base de circuits de Ge(0) :
i=[ 1 , p ]

i Cot( ) est positif car les cots de tous les circuits du graphe d'cart i sont positifs et les i galement. En utilisant Cot() = Cot(0) + Cot( )on a Cot() Cot(0) et donc 0 est un flot compatible de cot minimal. Q.E.D.
Exemple

= 1 1 2 2.. . p p . Alors : Cot( ) =

81

COURS

Figure 7.3 : problme de flot canalis cot minimal. Sur la figure 7.3, on a un exemple de flot compatible. Nous allons utiliser le rsultat prcdent pour trouver un flot compatible de cot minimal. Sur la figure 7.4, on a le graphe d'cart associ. Ce graphe d'cart contient un circuit de cot strictement ngatif : le circuit [x5, x4, x1]. On fait alors passer un flux de 1 travers ce circuit dans le graphe d'cart. Sur la figure 7.5, on a le graphe d'cart associ. Ce graphe d'cart contient un circuit de cot strictement ngatif : le circuit [x3, x5, x4]. On fait alors passer un flux de 1 travers ce circuit dans le graphe d'cart. On obtient alors un dernier graphe d'cart dont tous les circuits sont de cots positifs ou nuls (Cf. figure 7.6). En consquence, le flot compatible rsultant, qui est rapport sur la figure 7.7 est un flot compatible de cot minimal.

7.4 : premier graphe d'cart.s

82

COURS

7.5 : deuxime graphe d'cart.

7.6 : dernier graphe d'cart.

83

COURS

Figure 7.7 : flot canalis de cot minimal.

d) Preuve de l'algorithme de ROY :


Nous terminons ce chapitre en utilisant le thorme d'optimalit pour dmontrer la validit de l'algorithme de ROY.

Proposition
l'algorithme de ROY dtermine un flot maximal de cot minimal.

Dmonstration :
On montre par rcurrence que tous les flots k construits au cours de l'algorithme de ROY sont de cot minimal parmi les flots de valeur v k. Il en rsultera que le dernier flot sera maximal cot minimal. La proprit est vraie pour 0 = 0 qui est le flot de valeur nulle de cot minimal, supposons que k soit de cot minimal parmi les flots de valeur vk on a f k 1 = f k ou est un circuit de cot minimal passant par l'arc de retour dans le graphe d'cart Ge(k) et la valeur maximale admissible du flot. Soit un flot quelconque de mme valeur sur l'arc de retour que k+1. On sait que f = f k o est un flot sur le graphe d'cart Ge(k). Appliquons le thorme de dcomposition : = 1 1 2 2.. . p p . En utilisant le fait que k+1 et ont mmes composantes sur l'arc de retour on obtient :
i I

i= o I est l'ensemble des circuits passant par l'arc de retour.


en dduit :

On

C o t = i C o t i C o t f k i C o t i C o t f k car tous les i[ 1 , p ] i I

circuits ne passant pas par l'arc de retour sont de cot positif ou nul du fait que, par hypothse de rcurrence, k est de cot minimal parmi les flots de valeur vk. En utilisant

du cot de k+1 et le rsultat par rcurrence. D'o la validit de l'algorithme de ROY. Q.E.D.

iI et = i= on a : i I C o t f C o t C o t f k =C o t f k1 . Ce qui dmontre la minimalit


C o t i C o t
pour

84

Bibliographie

[2] R. PENROSE, L'esprit, l'ordinateur et les lois de la physique, INTEREDITIONS, 1992. [3] B. ROY, "Recherche Oprationnelle et Aide la Dcision", Discours de remerciements l'occasion de la remise du diplme de Docteur Honoris Causa de l'Universit de POZNAN, 1992. [4] M. GONDRAN; M. MINOUX Graphes et Algorithmes Eyrolles 1985. [5] ROSEAUX. Exercices corrigs de Recherche Oprationnelle 3 Tomes. MASSON. [6] M.R. GAREY, D.S JOHNSON, Computers and Intractability W. H. FREEMAN, San Francisco 1978 [1] A. ALJ, R. FAURE, Guide de la Recherche Oprationnelle, 2 tomes, MASSON, 1990.

85