JACQUES CARLIER
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
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
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
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...
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
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
Remarque
L'UV RO03 est consacre aux mthodes traitant les problmes combinatoires discrets.
p 1 x1 p 2 x 2
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.
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.
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.
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.
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.
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).
* * *
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 :
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 !
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
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
-
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.
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.
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.
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
17
COURS
Exemple
sur la figure 1.12 est rapport un graphe partiel du graphe de la figure 1.10.
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}.
18
COURS
Exemple
Figure 1-14 Sur la figure 1.14 on a dessin le graphe rduit de la figure 1.13.
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.
Figure 1-16 : G = ( X , U ) et G = ( X, U)
19
COURS
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 ).
Figure 1-19
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.
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.
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.
Exemple
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).
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.
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.
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.
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.
24
COURS
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).
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.
25
COURS
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.
27
COURS
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.
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.
Dfinition : Transversal :
Un transversal T d'un graphe est un sous-ensemble de sommets rencontrant au moins une fois chaque arte du graphe.
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)
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
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;
31
COURS
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
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
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.
36
COURS
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).
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.
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.
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.
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.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.
46
COURS
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.
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
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).
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.
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
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
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 .
. 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
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
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
Thorme 2 :
L'algorithme de Ford calcule les valeurs des chemins minimaux issus de x0 quand le graphe est sans circuit absorbant.
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
Exemple
55
COURS
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
56
COURS
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 :
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
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.
Exemple
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
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
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
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.
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.
61
COURS
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).
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
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
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
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 : 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
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) ).
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.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.
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.
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
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
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 .
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.
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.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
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
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).
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.
72
COURS
73
COURS
74
COURS
di j f i j
75
COURS
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.
76
COURS
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.
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.
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
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).
79
COURS
80
COURS
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.
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
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.
82
COURS
83
COURS
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
On
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.
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