Vous êtes sur la page 1sur 118

Ecole Mohammadia dIngnieurs

Polycopi
de Recherche Oprationnelle














N. SBIHI
www.almohandiss.com
2
Plan du cours:
Introduction gnrale la recherche oprationnelle.

Programmation linaire.
Algorithme du simplexe.
Dualit.
Post-optimisation.
Problme de transport.
Problme daffectation.

Optimisation dans les rseaux.
Notions lmentaires de la thorie des graphes.
Problme de larbre de poids minimal.
Problmes de cheminements optimaux dans un rseau.
Problme central dordonnancement. (MPM, PERT, CPM)
Problmes de flot.

Modlisation en recherche oprationnelle.


Bibliographie :
C. BERGE, "Graphes et hypergraphes", Dunod
V. CHVATAL, "Linear programming ", 1983, Freeman.
M. GONDRAN et M. MINOUX, "Graphes et algorithmes", Eyrolles
F.S. HILLIER et G.J. LIEBERMAN, "Introduction to operations research", 2001,
McGraw-Hill.
M. MINOUX, Programmation mathmatique, Tome 1, 1983, Dunod.
M. SAKAROVITCH, Optimisation combinatoire, graphes et programmation
linaire, 1984, Hermann.
www.almohandiss.com
3
Chapitre 1
Introduction gnrale la recherche oprationnelle

I Prsentation gnrale
La recherche oprationnelle (RO) est ne de la ncessit d'adopter une approche
scientifique dans la gestion des organisations, cette gestion devenant de plus en
complexe.
Le nom de la discipline est une traduction de l'anglais "operations research". Ainsi, la
RO traite de problmes qui visent conduire et coordonner des oprations (i.e des
activits) dans une organisation. Pourquoi le terme "recherche"?
La RO est apparue en Grande-Bretagne durant la Seconde Guerre mondiale,
lorsqu'on dcida de faire appel des chercheurs pour dvelopper des mthodes
scientifiques pour l'tude de divers aspects des oprations militaires.
la suite des succs obtenus dans le domaine militaire durant la Seconde Guerre
mondiale, la RO a t applique des problmes de nature oprationnelle que ce soit
dans l'industrie ou dans le secteur public. Le champ d'application de la RO s'est
ensuite largi des domaines comme l'conomie, la finance, le marketing et la
planification d'entreprise et ce, grce au dveloppement des moyens de calcul
informatiques et bien entendu des mthodes de solution (algorithmes de rsolution).
Son principal atout est qu'elle permet d'apprhender de faon systmatique la
complexit toujours grandissante des problmes de gestion auxquels sont
confrontes les organisations de nos jours, de quelque secteur qu'elles soient et ce,
dans le but d'laborer de bonnes dcisions sinon les meilleures dcisions.
Elle peut s'appliquer dans un contexte dterministe, alatoire ou concurrentiel.
Le tableau suivant tir du livre d'Hillier et Lieberman donne quelques exemples
d'conomies trs importantes ralises grce l'utilisation d'outils de RO:
www.almohandiss.com
4




www.almohandiss.com
5
II Quelques exemples
Dans un contexte dterministe, on peut citer les problmes ci-dessous:
Le problme du plus court chemin d'une ville A une ville B qui consiste
dterminer, parmi tous les chemins reliant A B, un chemin de longueur
minimum (notons ici que l'on parle d'un chemin de longueur minimum et
non du chemin de longueur minimum pour la simple raison qu'il peut en
exister plusieurs).
Le problme d'allocation de ressources: plusieurs ressources disponibles en
quantit limite peuvent tre utilises pour la production de plusieurs types
de produits diffrents dans leur consommation en ressources et dans leur
profit unitaire. Il s'agit de dterminer un plan de production optimal dans le
sens o le profit global gnr par les produits effectivement fabriqus soit
maximum.
Le problme du voyageur de commerce: Etant donnes n villes et les
distances intervilles, trouver une tourne qui passe une et une seule fois par
chaque ville et qui minimise la distance totale parcourue.
Dans le contexte alatoire, on peut citer
Le problme de gestion des barrages
Le problme de la dtermination du nombre de guichets ouvrir dans une
banque pour qu'un client ait moins de 10% de chances de devoir attendre au
moins 10 mn avant d'tre servi.
Comme exemples de problmes concurrentiels, on peut citer le problme de la
dtermination d'une politique de prix de vente.

III Modlisation

Un aspect trs important concerne la modlisation. Les problmes que lon traite
manent de situations concrtes. Il sagit alors de dfinir la situation en termes
mathmatiques et dans un souci defficacit de schmatiser (modliser) le problme.
www.almohandiss.com
6
Voici comment on procde en gnral lorsquon est confront un problme dont on
pense quil peut tre rsolu laide de mthodes de programmation mathmatique :
1. relever les facteurs les plus importants et tablir les lois qui les rgissent.
2. Dterminer une fonction conomique.
3. Rsoudre le modle.
4. Confronter les rsultats du 3. avec la ralit. Si la solution obtenue est accepte
alors adopter le modle sinon modifier le modle en consquence et aller en 3.


www.almohandiss.com
7
Chapitre II
Gnralits sur la programmation linaire
La programmation linaire est une sous-classe de la programmation mathmatique
I Problmatique de la programmation mathmatique
Contexte : Problmes dextrema
Typiquement, il sagit de problmes qui sexpriment typiquement comme suit :

Optimiser (i.e. maximiser ou minimiser) une fonction f sur un domaine D.

Ces problmes interviennent dans des problmes de dcision. On peut citer titre
dexemples :
- Les problmes de gestion et de planning industriels
- Ltablissement de projets moyen et/ou long terme
- La coordination de chanes logistiques.

Lobjectif est de fournir des mthodes analytiques ou des algorithmes de rsolution
ou dfaut des procdures efficaces de calcul dune solution approche (on peut
parler alors dheuristiques).
Dfinition 1 :
- Un programme mathmatique (P) est dfini par la donne dun domaine D_R
n

et dune fonction f : DR et consiste dterminer x*eD (sous rserve
dexistence) tel que :
f(x*) s f(x) xeD (si (P) est un problme de minimisation) et
f(x*) f(x) xeD (si (P) est un problme de maximisation)
- si x e D alors x est appel solution ralisable
- x* est appel solution optimale
- f(x*) est appel optimum de f sur D (minimum ou maximum)
- Lensemble D sappelle domaine des solutions ralisables
www.almohandiss.com
8
- La fonction f sappelle fonction objective ou fonction objectif ou
fonction conomique ou encore critre.

Remarque :
Pourquoi dit-on dans la dfinition 1 sous rserve dexistence ?
La raison est que tout simplement x* nexiste pas toujours. En fait, il y a 4 cas
possibles (on parle aussi de diagnostics) :
1. D=C ; exemple : max{x/x0 et xs-1}
Le diagnostic ici est Problme non ralisable
2. DC et (P) admet une solution optimale ; exemple : max{x /xs0}
Le diagnostic ici est Optimum fini
3. DC et (P) nadmet pas de solution optimale ; exemple : max{x /x0}
Le diagnostic ici est Problme non born

II Classification de la programmation mathmatique
Dans la programmation mathmatique, on distingue essentiellement deux
branches :
- La programmation mathmatique dterministe traite de problmes o
toutes les donnes ncessaires sont connues avec certitude.
- La programmation mathmatique stochastique traite, quant elle, de
problmes o linformation ncessaire comporte des lments alatoires
dfinis par des caractristiques probabilistes connues.
Dans le cas dterministe, on peut rpertorier entre autres :
- La programmation linaire : f est linaire et D est dfini par des contraintes
linaires. Exemples : problmes de transport et daffectation.
- La programmation convexe : f et D sont tous deux convexes.
- La programmation en nombres entiers.

III Exemples de programmes linaires
www.almohandiss.com
9
A- Un problme de production
Une firme fabrique deux produits 1 et 2 laide de trois matires premires I, II et III
selon le mode dcrit dans le tableau ci-dessous :
www.almohandiss.com
10

1 2
Quantits
disponibles
I 2 1 8
II 1 2 7
III 0 1 3
Profit
unitaire
4 5 6

Lobjectif est de dterminer un plan de production qui maximise le profit global.

Dfinition des variables :
xj = nombre dunits du produit j fabriques (j=1,2)
Contraintes :
xj 0
2x1 + x2 s 8
x1 + 2 x2 s 8
x2 s 3
Fonction objective maximiser :
z(x) = 4x1 + 5x2

On peut rsoudre ce problme graphiquement : pour cela, on procde de la manire
suivante :
1. On reprsente le domaine des solutions ralisables.
2. On trace la courbe de niveau 0 de la fonction objective (i.e. z(x)=0).
3. On dplace cette droite le plus loin possible dans le domaine ralisable et ce
dans le sens croissant des niveaux. La solution optimale se trouve
lintersection du domaine des solutions ralisables avec la courbe de niveau de
z de plus haut niveau.
www.almohandiss.com
11

B- Un problme de transport
Une entreprise de fabrication dappareils lectromnagers possde trois usines
situes Casablanca, Fs et Rabat. Un certain matriel ncessaire la fabrication des
appareils est disponible aux ports de Casablanca et Tanger. Les quantits (en tonnes)
hebdomadaires de mtal requises par les trois usines sont de 400, 300 et 200
respectivement. Les quantits (en tonnes) hebdomadaires de mtal disponibles
Casablanca et Tanger sont de 550 et 350 respectivement. Les cots unitaires (par
tonne) de transport sont :
Casa Fs Rabat
Casa 1 5 3
Tanger 5 7 4

Lobjectif est de dterminer un plan de transport optimal, i.e. quelles quantits
acheminer de chaque port chaque usine de manire satisfaire la demande des
usines, respecter les contraintes de disponibilit dans les ports et ce en minimisant le
cot global de transport.

x*=(3,2) z*=22
www.almohandiss.com
12
Dfinition des variables :
xij = quantit achemine du port i lusine j avec i=C,T et j=C,F,R
Contraintes :
xij0
xCC + xCF + xCR s 550
xTC + xTF + xTRs 350
xCC + xTC 400
xCF + xTF 300
xCR + xTR 200
Fonction objective minimiser :
z(x) = xCC + 5xCF +3xCR +5xTC +7xTF +4xTR
Dans ce cas, une rsolution graphique est exclue.
IV Logiciels pour la programmation linaire
Il y a plusieurs logiciels pour rsoudre un programme mathmatique et non
seulement linaire (la spcification de la linarit du programme au logiciel lui
permet d'utiliser un outil spcifique la PL et d'aller par consquent plus vite).
Les plus connus sont:
Le solveur de Microsoft Excel qui permet de rsoudre un programme de
petite taille
Le logiciel LINDO et son modeleur LINGO (des versions tudiants sont
disponibles sur le web)
Le logiciel CPLEX et son modeleur MPL capables de rsoudre de gros
problmes.
Il







www.almohandiss.com
13

Chapitre 3

Mthode du simplexe

Rappelons quun programme linaire (P) est un programme mathmatique ayant
une fonction objective linaire et un domaine dfini par des contraintes linaires (i.e.
des quations et/ou des inquations linaires).
( )

=
=
=
>
s

=
=
z( m ax)
j
x
n
1 j
j
c
1 . . . m i ,
i
b
j
x
n
1 j
i j
a
(P)

Il existe plusieurs algorithmes de rsolution dun programme linaire. Le plus utilis
est lalgorithme du simplexe d entre autres G. Dantzig.

I Comment marche le simplexe ?

Dans un premier temps, on sintressera des programmes linaires sous la forme :

=
> = s

=
=
z( m ax)
j
x
n
1 j
j
c
j 0
j
x 1 . . . m ; i ,
i
b
j
x
n
1 j
i j
a
(P)

Cette forme est appele forme canonique .
Remarque :
Cette forme nest pas restrictive : on peut ramener tout programme linaire un
programme linaire quivalent sous forme canonique. En effet :
- si xjs0 alors on introduit une nouvelle variable xj=- xj ;
- si xj est non astreinte en signe (on dit aussi libre), alors on pose si xj= xj- x j avec
www.almohandiss.com
14
- xj 0 et x j0 ;
- si
i
b
j
x
n
j
ij
a >

=1
, alors on multiplie les deux membres de linquation par -1 ;
- si
i
b
j
x
n
j
ij
a =

=1
, alors on remplace cette quation par deux inquations ;
- si la fonction objective est minimiser, on peut en la multipliant par -1 se ramener
un problme de maximisation
Exercice :
Ecrire sous forme canonique le programme linaire ci-dessous :

= +
s >
= +
s +
> +
z(mi n)
2
x
1
3x
0
2
x 0;
1
x
36
2
7x
1
x
8
3
x
1
2x
4
2
4x
1
x


Prenons un exemple :

= + +
>
s + +
s + +
s + +
z(max)
3
3x
2
4x
1
5x
0 x
8
3
2x
2
4x
1
3x
11
3
2x
2
x
1
4x
5
3
x
2
3x
1
2x


On commence par introduire des variables dcart, lesquelles mesurent en fait lcart
entre le second membre et le premier membre au niveau de chaque contrainte et qui
de ce fait doivent tre non ngatives pour les solutions ralisables. On obtient ceci :

www.almohandiss.com
15

+ + =
>
=
=
=
3
3x
2
4x
1
5x z
0 x
3
2x
2
4x
1
3x 8
6
x
3
2x
2
x
1
4x 11
5
x
3
x
2
3x
1
2x 5
4
x


Les variables x1,x2 et x3 sont les variables de dcision et les variables x4,x5 et x6 sont les
variables dcart. Ce format sappelle format dictionnaire (les variables se trouvant
gauche sexpriment (sexpliquent) uniquement en fonction des variables se trouvant
droite. Le format tableau quant lui se prsente comme suit :
x1 x2 x3 x4 x5 x6 b
2 3 1 1 0 0 5
4 1 2 0 1 0 11
3 4 2 0 0 1 8
5 4 3 0 0 0 z

Remarque :
Lorsquon fixe les variables de dcision 0, on obtient une solution ralisable savoir
x=(0,0,0,5,11,8). Notons que z(x)=0.
Hypothse: On supposera dans la suite, sans perte de gnralit, que lon a un problme de
maximisation.
Principe de lalgorithme :
Lalgorithme du simplexe consiste partir dune solution ralisable et tenter de
lamliorer itrativement. Ceci veut dire quune itration typique de lalgorithme part
dune solution ralisable non optimale x et dtermine une autre solution ralisable,
disons x telle que z(x) s z(x). Le but est darriver aprs un certain nombre
ditrations une solution optimale.
www.almohandiss.com
16
Comment trouver cet x ? Ici, si on maintient x2=x3=0 et si on fait crotre x1, on a z=5x1.
Ceci est donc prometteur. Ce quil faut alors dterminer cest la plus grande valeur
que peut prendre x1 sans pour autant quune autre variable devienne strictement
ngative. On a :
x40 5-2x1 0 x1 s 5/2
x50 11-4x1 0 x1 s 11/4
x60 8-3x1 0 x1 s 8/3
Lorsque x1 prend la plus grande valeur admissible savoir 5/2, on obtient une
solution ralisable x= (5/2,0,0,0,1,1/2) laquelle donne la valeur 25/2 la fonction
objective. Lobjectif annonc est atteint.
Il sagit maintenant dassocier cette nouvelle solution x un dictionnaire de manire
ce que la direction damlioration soit aussi simple que lors de la premire itration.
Pour cela, il faut exprimer les composantes non nulles de x et z uniquement en
fonction des composantes nulles de x. Il suffit alors dutiliser la contrainte la plus
astreignante savoir
3 2
3
1
2 5
4
x x x x =
pour exprimer x1 en fonction des
composantes nulles de x et ensuite substituer cette expression x1 partout ailleurs.
On obtient :

+ =
>
+ + =
+ + =
=
4
5/2x
3
1/2x
2
7/2x 25/2 z
0 x
4
3/2x
3
1/2x
2
1/2x 1/2
6
x
4
2x
2
5x 1
5
x
4
1/2x
3
1/2x
2
3/2x 5/2
1
x

Lorsquon observe la fonction objective, on constate que la seule composante de x
qui peut amliorer la valeur de la fonction objective est x3. Cest la seule dont le
coefficient dans la fonction objective est strictement positif. Notons que si toute
variable a un coefficient ngatif ou nul dans la fonction objective, alors on peut
conclure que la solution courante est optimale.
www.almohandiss.com
17
Revenons notre exemple. Lorsque la variable x3 prend la plus grande valeur
admissible savoir la valeur 1, x6 sannule et on obtient la solution ralisable
(2,0,1,0,1,0). Ci-dessous est reprsent le dictionnaire correspondant cette solution :

=
>
+ + =
+ =
+ + =
6
x
4
x
2
3x 13 z
0 x
4
2x
2
5x 1
5
x
6
x
4
2x
2
2x 2
1
x
6
2x
3
3x
2
x 1
3
x

Les coefficients des variables dans la fonction objective tant tous non positifs, la
solution courante x*=(2,0,1,0,1,0) est optimale et loptimum du programme linaire
est z*=13.
Terminologie :
Dans le format dictionnaire, les variables du 1
er
membre sont appeles variables de
base ; celles du second membre sont dites hors base.

Remarques :
- A chaque itration, on cherche une variable hors base entrante et la variable de
base entrante. Lalgorithme sarrte quand il ny a plus de variable hors base
candidate entrer dans la base (i.e. dont le coefficient dans la fonction
objective est positif (resp. ngatif) pour un problme de maximisation (resp.
minimisation).
- Dans le format tableau, la sous-matrice de la matrice des contraintes
correspondant aux variables de base est une permutation prs des colonnes
la matrice identit et les coefficients des variables de base dans la fonction
objective sont tous nuls.
- La solution x* obtenue dans notre exemple ci-dessus est une solution
optimale unique car pour passer une autre solution, il est ncessaire de faire
crotre au moins une variable hors base, ce qui aurait pour effet, compte tenu
www.almohandiss.com
18
du fait que toutes les variables hors base ont un coefficient strictement ngatif
dans la fonction objective, de faire dcrotre la valeur de la fonction objective.
- Il existe des programmes linaires avec solutions optimales multiples.
Considrons lexemple ci-dessous :

=
>
+ + =
+ =
+ + =
3
x 8 z
0 x
3
x
5
2x
2
9x 4
6
x
3
8x
5
6x
2
5x 1
1
x
3
7x
5
2x
2
x 3
4
x

Ce dictionnaire est optimal. Toute solution doit satisfaire x3=0 mais pas forcment
x2=x5=0 ; en fait, pour quune solution x soit optimale il faut et il suffit que :

=
>
> + + =
> + =
+ =
0
3
x
0 x
0
5
2x
2
9x 4
6
x
0
5
6x
2
5x 1
1
x
5
2x
2
x 3
4
x


Exercices :
1. Confirmer ou infirmer ceci :
La solution de base correspondant un dictionnaire est optimale ssi les coefficients
des variables hors base dans la fonction objective sont ngatifs ou nuls
2. Donner une CNS pour quun programme linaire ayant un optimum fini
admette une solution optimale unique.
3. Dterminer lensemble des solutions optimales de

= + + +
>
s + + +
s + + +
z(max) 4x 5x 3x 2x
0 x
3 3x 2x x x
5 x 3x 2x x
4 3 2 1
4 3 2 1
4 3 2 1


www.almohandiss.com
19
II Quels sont les obstacles et comment les viter ?

Il y a trois types dobstacles.
A- Que faire sil y a ambiguit dans un choix et quelles en sont les
consquences ?
B- Finitude : Le simplexe peut-il construire une infinit de dictionnaires ou
tableaux sans jamais atteindre loptimum ?
C- Comment initialiser ? En dautres termes que faire si lun des seconds
membres bi dans lcriture sous forme canonique de dpart est ngatif ?
A Au cours de lalgorithme, on est amen choisir la variable hors base que lon va
faire entrer en base ou encore la variable de base qui va quitter la base.
a- Choix de la variable entrante
Rappelons quune variable hors base est candidate entrer dans la base ds que son
coefficient dans z est positif. Trois cas de figure peuvent se prsenter : 0, 1 ou
plusieurs candidats.
Sil y a 0 candidat, alors on arrte car loptimum est atteint.
Sil y a un seul candidat, on le prend.
Sil y a plusieurs candidats, alors on adopte une rgle de choix comme par
exemple celle de la variable hors base ayant le plus grand coefficient dans z.
b- Choix de la variable sortante
Rappelons quune variable de base est candidate quitter la base si elle sannule
lorsque la variable entrante atteint son seuil maximum, i.e la valeur admissible
maximum.
Sil y a 0 candidat, alors le problme est non born. La croissance de la variable
entrante ne gne en aucun cas la non-ngativit des variables de base ce qui
implique quelle peut augmenter indfiniment de mme que la valeur de la
fonction objective. Voici un exemple :
www.almohandiss.com
20

+ =
=
+ =
1 4 3
1 4 5
1 4 3 2
x x x 5 z
4x 3x 7 x
3x x 2x 5 x

x3 est candidate entrer dans la base et peut augmenter indfiniment. La fonction
objective est non majore sur lensemble {(0,5+2t,t,0,7),t0} (qui est en fait un sous-
ensemble du domaine ralisable).
Sil y a un seul candidat, on le prend.
Sil y a plusieurs candidats, alors on a ce que lon appelle un phnomne de
dgnrescence. Voici un exemple :
3 2 1
3 2 1 6
3 2 1 5
3 4
8x x 2x z
4x 3x x 2 x
6x 4x 2x 3 x
2x 1 x
+ =
+ =
+ =
=

Choisissons x 3 comme variable entrante. On a donc :
x40 x 3 s 1/2
x50 x 3 s 1/2
x60 x 3 s 1/2
Ceci veut dire que toutes les variables de base sont candidates entrer dans la base.
Choisissons x4. On obtient aprs itration le dictionnaire ci-dessous :
4 2 1
4 2 1 6
4 2 1 5
4 3
4x x 2x 4 z
2x 3x x x
3x 4x 2x x
1/2x 1/2 x
+ =
+ + =
+ + =
=

On a ici un fait nouveau : certaines variables de base sont nulles, savoir x5 et x6. On
dit que la base et la solution de base sont dgnres. Ce phnomne peut tre source de
problmes. Poursuivons la rsolution de notre exemple :
La variable hors base x1 entre en base au niveau 0 :
www.almohandiss.com
21
5 4 2
5 4 2 6
4 3
5 4 2 1
x x 3x 4 z
1/2x 7/2x x x
1/2x 1/2 x
1/2x 3/2x 2x x
+ =
+ =
=
+ =

Remarquons que la valeur de z, i.e le terme constant dans z, na pas boug ce qui va
lencontre de notre objectif initial qui tait damliorer la valeur de z de manire
significative. Une telle itration (o la valeur de z reste inchange) est dite dgnre. On
peut vrifie que litration suivante est aussi dgnre mais que la prochaine ne lest
pas.
Il faut noter ici que la dgnrescence est trs frquente dans les programmes
linaires que lon rencontre dans la pratique : il y a un certain nombre ditrations
dgnres aprs quoi on fait une perce, cest dire un saut dans z. Cependant, il
existe des cas o il y a cyclage ce qui est mauvais. Voici un exemple :
4 3 2 1
1 7
4 3 2 1 6
4 3 2 1 5
24x 9x 57x 10x z
x 1 x
x 0.5x 1.5x 0.5x x
9x 2.5x 5.5x 0.5x x
=
=
+ + =
+ + =

Ici, on cycle aprs 6 itrations. Ce cycle peut donc tre parcouru un nombre infini de
fois. Ceci prouve que lalgorithme du simplexe peut conduire un nombre infini
ditrations. Dailleurs cette situation ne peut tre rencontre quen cas de
dgnrescence.
B Finitude
Rgles de Bland : Choisir la variable candidate ayant le plus faible indice aussi bien pour la
variable entrante que pour la variable sortante.
Thorme : Moyennant les rgles de Bland, lalgorithme du simplexe est fini.
C Comment initialiser ?
On considre un programme linaire (P) crit sous forme canonique pour lequel
lorigine nest pas ralisable ce qui quivaut dire quau moins un second membre bi
est ngatif.
www.almohandiss.com
22

=
> = s

=
=
z(max)
j
x
n
1 j
j
c
j 0
j
x 1...m; i ,
i
b
j
x
n
1 j
i j
a
(P)

On passe alors par ce que lon appelle la phase I du simplexe. Lappellation phase II
du simplexe se rapporte lalgorithme du simplexe que lon a tudi et qui ncessite
une solution de base ralisable pour dmarrer.
Lobjectif de la phase I est donc de dterminer une solution de base ralisable sil en
existe. Ceci se fait par lintermdiaire de la rsolution dun programme linaire
annexe dit programme auxiliaire (PA).

=
> = s

=
=
(min)
0
x
j 0
j
x 1...m; i ,
i
b
0
x
j
x
n
1 j
ij
a

) (PA

Notons que (PA) est ralisable : il suffit de prendre xj=0 pour j=1,<n et x0
suffisamment grand par exemple x0=,min bi,. La fonction objective de (PA) est
majore par 0. Donc (PA) admet un optimum fini. De plus on a
(P) est ralisable optimum de (PA)=0. Considrons lexemple ci-dessous :

= +
>
s +
s +
s +
z(max)
3
x
2
x
1
x
0 x
1
3
2x
2
x
1
x
5
3
x
2
3x
1
2x
4
3
2x
2
x
1
2x
(P)

=
>
s +
s +
s +
(max)
0
x
0 x
1
0
x
3
2x
2
x
1
x
5
0
x
3
x
2
3x
1
2x
4
0
x
3
2x
2
x
1
2x
(PA)

On a donc pour commencer la rsolution de (PA) le dictionnaire ci-dessous :
www.almohandiss.com
23
0
x
0 x
0
x
3
2x
2
x
1
x 1
6
x
0
x
3
x
2
3x
1
2x 5
5
x
0
x
3
2x
2
x
1
2x 4
4
x
=
>
+ + + =
+ + =
+ + =

Notons que ce dictionnaire nest pas ralisable. Il devient ralisable si on lui applique
litration atypique qui consiste faire entrer la variable x0 dans la base et faire sortir
une variable de base dont la valeur est minimum (qui est ici x5).

5
x
3
x
2
3x
1
2x 5
0 x
5
x
3
3x
2
4x
1
3x 4
6
x
5
x
3
x
2
3x
1
2x 5
0
x
5
x
3
x
2
2x 9
4
x
+ =
>
+ + + =
+ + + =
+ =

Maintenant, on peut appliquer lalgorithme du simplexe. La variable entrante est x2
et la variable sortante est x6.
6
0.75x
5
0.25x
3
1.25x
1
0.25x 2
0 x
6
0.25x
5
0.25x
3
0.75x
1
0.75x 1
2
x
6
0.75x
5
0.25x
3
1.25x
1
0.25x 2
0
x
6
0.5x
5
0.5x
3
2.5x
1
1.5x 7
4
x
+ + =
>
+ + + =
+ + =
+ + =

Cette fois-ci, variable entrante ve= x3 et variable sortante vs=x0.
0
x
0 x
0
0.x
6
0.2x
5
0.4x
1
0.6x 2.2
2
x
0
0.8x
6
0.6x
5
0.2x
1
0.2x 1.6
3
x
0
2x
6
x
1
x 3
4
x
=
>
+ + + =
+ + =
+ =

Ce dictionnaire est optimal pour (PA) et on peut en dduire un dictionnaire
ralisable pour (P) -puisque loptimum de (PA)- est nul pour pouvoir amorcer
www.almohandiss.com
24
lalgorithme du simplexe sur (P). Pour cela, on omet la colonne correspondant x0 et
la fonction objective de (PA) et on remplace dans la fonction objective de (P) toutes
les variables de base par leur expression dans le dernier dictionnaire. On obtient ceci :
6
0.4x
5
0.2x
1
0.2x 0.6 z
0 x
6
0.2x
5
0.4x
1
0.6x 2.2
2
x
6
0.6x
5
0.2x
1
0.2x 1.6
3
x
6
x
1
x 3
4
x
+ + =
>
+ + + =
+ + =
=


Remarques :
Dans lapplication du simplexe (PA), il parat naturel, dans le cas o x0 est
candidat quitter la base, de le faire sortir de la base car prendra la valeur 0
litration suivante et loptimum de (PA) sera par consquent atteint. Ceci
implique que si cette rgle est respecte, alors si loptimum de (PA) vaut 0
alors x0 est ncessairement hors base.
A lissue de lapplication du simplexe (PA) deux cas peuvent se prsenter :
1. Loptimum de (PA) nest pas nul
Dans ce cas, on peut affirmer et certifier que (P) nest pas ralisable
2. Loptimum de (PA) est nul.
Le dictionnaire optimal trouv pour (PA) permet dobtenir un dictionnaire
ralisable pour (P) avec lequel on dmarre lalgorithme du simplexe sur (P).
Les phases I et II du simplexe constituent ce que lon appelle la mthode du
simplexe.
Thorme fondamental de la programmation linaire :
Tout programme linaire sous forme canonique possde les trois proprits
suivantes :
1. Si (P) na pas de solution optimale, alors il est soit non ralisable soit non
born.
www.almohandiss.com
25
2. Si (P) est ralisable, alors il possde une solution ralisable de base.
3. Si (P) admet un optimum fini, alors il possde une solution optimale de base.
Dmonstration :
A lissue de la phase I du simplexe, soit loptimum de (PA) est non nul et alors on
peut conclure que (P) est non ralisable, soit loptimum de (PA) est nul et alors on
obtient une solution ralisable de (P) et en appliquant la phase II du simplexe, soit on
aboutit une solution optimale de base soit on met en vidence un certificat de non-
finitude de loptimum de (P).
Exercice :
Rsoudre les programmes linaires ci-dessous :

= +
>
s
s
s
= +
>
s +
s
s
= +
>
s +
s
s
z(max)
2
x
1
3x
0 x
2
2
x
1
2x
3
2
x
1
x
1
2
x
1
x
z(max)
2
x
1
3x
0 x
2
2
x
1
2x
3
2
x
1
x
1
2
x
1
x
z(max)
2
x
1
3x
0 x
4
2
x
1
2x
3
2
x
1
x
1
2
x
1
x


www.almohandiss.com
26
III Efficacit de la mthode du simplexe

Rappelons que nous rservons l'appellation mthode du simplexe l'ensemble des
deux phases, la phase I qui est une phase d'initialisation (pour dterminer (s'il en
existe) une base ralisable pour amorcer l'algorithme du simplexe et la phase II qui
est une phase d'optimisation.

G.B. Dantzig (auteur du simplexe) rapporte que le nombre d'itrations pour un
programme linaire sous forme canonique n variables et m contraintes crot
proportionnellement m (la constante de proportionnalit se situant entre 1.5 et 3) et
trs lentement en fonction de n.
L'algorithme aboutit en quelques secondes pour un problme avec 100 contraintes et
variables. Ceci est vrai galement pour des milliers de variables et contraintes,
auquel cas l'algorithme doit tre implment de manire judicieuse (en particulier le
format dictionnaire doit tre abandonn). Il faut retenir que ces rsultats sont
empiriques. En effet, il existe des cas "pathologiques" ds Klee et Minty en ce sens
qu'ils requirent un nombre exponentiel d'itrations.
Le programme linaire ci-dessous requiert 2
n
-1 itrations

=
= >
= s +

z(max) x 10
1,...n j 0 x
2,.....m i 100 x x 10 2
j
n
1 j
j i
j
2 i
i j
1 i
1 j
j i


Cependant, les rsultats rpertoris par Dantzig prouvent que dans les problmes
rencontrs dans la pratique, ces cas sont trs rares pour ne pas dire qu'ils n'existent
pas.

V Thorme de la dualit
www.almohandiss.com
27

Tout programme linaire possde un programme linaire dual.
Une des motivations cette notion de "dual" a t de situer l'optimum d'un
programme linaire (trouver un majorant de la fonction objective pour un problme
de maximisation et un minorant pour un problme de minimisation).
Reprenons notre exemple du problme de production:

= +
>
s
s +
s +
z(max) 5x 4x
0 x
3 x
7 2x x
8 x 2x
(P)
2 1
2
2 1
2 1

Supposons que le prix de la matire premire i soit yi. On sera tent de ne pas
produire du produit 1 si 4 y 2y
2 1
> + .
De manire analogue, on sera tent de ne pas produire du produit 2 si
5 2y y
2 1
> + .
On a naturellement O y O y
2 1
> > et .
La personne intresse par l'achat des matires premires a pour objectif bien
videmment de minimiser le cot de cette transaction, i.e.
2 1
y 8y 7 + . Ceci
nous amne considrer un nouveau programme linaire appel dual de (P) (not
(D)).

= +
> >
> +
> +
(min) 7
) (
w
D
2 1
2 1
2 1
2 1
y 8y
O y O y
5 2y y
4 y 2y
et


Dfinition:
Le dual du programme linaire (P)
www.almohandiss.com
28

=
> = s

=
=
z(max)
j
x
n
1 j
j
c
j 0
j
x 1...m; i ,
i
b
j
x
n
1 j
i j
a
(P)

est le programme linaire:

=
> = >

=
=
w(min)
i
y
m
1 i
i
b
i 0
i
y 1...n; j ,
j
c
i
y
m
1 i
i j
a
(D)

(P) s'appelle problme primal.

Remarques:
Le dual d'un problme de maximisation est un problme de minimisation.
Il y a autant de variables dans l'un qu'il y a de contraintes dans l'autre.
Les coefficients dans la fonction objective de l'un sont les seconds membres
des contraintes de l'autre.
Si x est une solution ralisable de (P) et si y est une solution ralisable de (D)
alors on a la relation suivante au niveau des valeurs des fonctions objectives:
(*) w(y) y b x c z(x)
i
m i
1 i
i
n j
1 j
j j
= s =

=
=
=
=

En effet:
i
m i
1 i
i i j
m i
1 i
n j
1 j
ij j i
n j
1 j
m i
1 i
ij j
n j
1 j
j
y b )y x a ( )x y a ( x c

=
=
=
=
=
=
=
=
=
=
=
=
s = s

Consquence:
Si on arrive trouver une solution ralisable de (P) et une solution ralisable de (D)
telle que la relation (*) soit une galit, alors ces deux solutions seront ncessairement
optimales (pour leurs programmes linaires respectifs).

Thorme de la dualit:
www.almohandiss.com
29
Si le primal

=
>
s
(max)
0 ) (
z cx
x
b Ax
P admet une solution optimale x* alors son dual

=
>
>
(min)
0 ) (
w yb
y
c yA
D admet une solution optimale y* et de plus on a la relation cx*=y*b.

Dmonstration
On commence par rsoudre le primal aprs avoir introduit des variables d'cart,
disons xn+i=bi-

=
=
n j
j
j ij
x a
1
(et ce, pour i=1,<.m).
A la dernire itration du simplexe, la fonction objective s'crit: z=z*+
k
m k
k
k
x c

=
=1
, avec
z*=cx*, k c
k
s , 0 et 0 =
k
c si xk est dans la base.
Posons y*i=-
i n
c
+
(i=1,<m). Notons que y*i0.
Il reste vrifier que la solution y* ainsi construite est ralisable pour le dual et que
z(x *)=w(y*). On a:
j i
m i
i
ij
n j
j
j i
m i
i
i
j
n j
j
ij i
m i
i
i j
n j
j
j
n j
j
j
n j
j
j j j
x y a c b y z
x a b y x c x c x c z
*) ( ) * * (
) ( * *
1 1 1
1 1 1 1 1


=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
+ + =
+ = =

L'galit de deux polynmes implique l'galit des coefficients pour chaque monme,
ce qui implique:
i
m i
i
i
b y z * *
1

=
=
= et c
j
= *
1
i
m i
i
ij j
y a c

=
=
+ ; or 0 s
j
c donc *
1
i
m i
i
ij j
y a c

=
=
s .

www.almohandiss.com
30
VI Relations entre le primal et le dual

Remarque:
Le dual du dual d'un programme linaire (P) n'est rien d'autre que (P) lui-mme.
Le dual de

=
>
s
(max)
0 ) (
z cx
x
b Ax
P est

=
>
>
(min)
0 ) (
w yb
y
c yA
D qui s'crit aussi

=
>
s
(max) '
0 ) (
w yb
y
c yA
D ou
encore

=
>
s
(max) '
0 ) (
w y b
y
c y A
D
t
t t
.
Par consquent, le dual de (D) est

=
>
>
(max) ) (
0
) ( ) (
z c c
x
b x A
t t
t t t t
, ce qui n'est rien d'autre que (P).
De ce fait, on a maintenant l'quivalence suivante:
(P) a une solution optimale si et seulement si (D) a une solution optimale.
Par ailleurs, on a galement les implications suivantes:
Si (P) est non born alors (D) est non ralisable;
Si (D) est non born alors (P) est non ralisable.
Cependant les deux programmes linaires (P) et (D) peuvent tre tous deux non
ralisables. Voici un exemple:

=
>
s +
s
z(max) x 2x
0 x
2 x x
1 x x
(P)
2 1
2 1
2 1


Remarque:
Pour rsoudre un programme linaire, le passage par la rsolution de son dual
plutt que par sa rsolution directe peut s'avrer plus payant en termes de
rapidit d'excution.
Considrons un programme linaire avec m=99 et n=9.
Un dictionnaire du primal a 100 lignes alors qu'un dictionnaire du dual a 10
lignes. Etant donn ce qui a t dit plus haut sur l'efficacit de l'algorithme du
simplexe, savoir que le nombre d'itrations est proportionnel au nombre de
lignes et quasi-insensible au nombre de variable, il serait plus intressant de
passer par la rsolution du dual et d'en dduire une solution optimale du
primal partir d'un tableau optimal du dual. Il suffit alors d'y considrer les
coefficients dans la fonction objective des variables d'cart (en valeur absolue).
Un autre intrt de la dualit rside dans la certification d'optimalit d'une
solution qu'elle soit de base ou non.

VIII Thorme des carts complmentaires

On considre un programme linaire (P) et son dual (D).
www.almohandiss.com
31

=
>
s
(max)
0 ) (
z cx
x
b Ax
P

=
>
>
(min)
0 ) (
w yb
y
c yA
D

Thorme des carts complmentaires:
Une condition ncessaire et suffisante pour qu'une solution ralisable x* de (P) et
qu'une solution ralisable y* de (D) soient toutes deux optimales est que :

=
=

=
=
=
=
i j
n j
1 j
ij i
j
m i
1 i
ij i j
b * x a 0 * y
c a * y 0 * x
|
|


Dmonstration:

exercice. d' titre laiss est suffisant aspect L'
thorme. du conditions des
ncessaire aspect l' dmontre Ceci thorme. du conditions aux quivaut qui ce
* y b * *)y x a contrainte chaque et )x a * y ( x c contrainte chaque dans
galit a y il qu' suit en s' il , b y* cx* puisque alors optimales sont y* et x* Si
* y b * *)y x a ( * )x a * y ( * x c donc a On
1,...m i * y b * *)y x a ( b * x a ralisable est x*
1,...n j )x a * y ( x c a * y c ralisable est y*
i i i j
n j
1 j
ij j
m i
1 i
ij i j j
m i
1 i
i i i j
n j
1 j
ij
n i
1 i
j
n j
1 j
m i
1 i
ij i
n j
1 j
j j
i i i j
n j
1 j
ij
0) (* y par multiplie on
i j
n j
1 j
ij
j
m i
1 i
ij i j j
0) (* x par multiplie on
m i
1 i
ij i j
ij
j
s s
=
s = s
= s s
= s s




=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
>
=
=
=
=
>
=
=


Corollaire:
Une solution ralisable x* de (P) est optimale si et seulement s'il existe y*=(y1*, y2*,. ym*)
tel que:

=
=
>
= >

=
=
=
=
=
=
i j
n j
1 j
ij i
j
m i
1 i
ij i j
b * x a 0 * y
c a * y 0 * x
|
|
0 *
,... 1 *
1
i
j i
m i
i
ij
y
n j c y a


La dmonstration est une consquence immdiate du thorme prcdent.

Dfinition:
Une contrainte d'ingalit est dite serre lorsqu'elle est satisfaite avec galit; elle est
dite lche dans le cas contraire.
www.almohandiss.com
32

Application du thorme des carts complmentaires:
Exemple 1:
La solution x*=(2,4,0,0,7,0) est-elle optimale pour le programme linaire suivant?

= + + +
>
s + +
s + + +
s + +
s + + +
s + + + +
z(max) 8x 5x 12x 7x 18x
0 x
5 x 2x 6x 3x 2x 5x
1 3x x 7x 8x 4x
4 2x 2x 5x 3x 8x
2 2x x 3x 4x x 3x
1 8x 3x 7x 2x 6x 2x
6 4 3 2 1
6 5 4 3 2 1
6 5 4 3 1
6 4 3 2 1
6 5 4 3 2 1
6 5 4 3 2 1


On procde en trois tapes:
1. On vrifie la ralisabilit de x* et ce faisant on identifie les contraintes lches en
x* pour en dduire certaines composantes nulles de la solution y*.
2. On utilise les conditions du thorme des carts complmentaires qui disent que
la contrainte du dual correspondant une variable non nulle est serre en y*.
Cela permet de construire y*.
3. On vrifie si y* est une solution ralisable de (D). Il suffit alors de vrifier si y*
satisfait les contraintes de (D) correspondant uniquement aux composantes
nulles de x*.

1. Vrifions si x* est ralisable:
Contrainte 1: 21s21 OK
Contrainte 2: -3s-2 OK et y2*=0
Contrainte 3: 4s4 OK
Contrainte 4: 1s1 OK
Contrainte 5: 4s5 OK et y5*=0
x*0. En conclusion de cette tape, on peut dire que x* est ralisable.

2. Utilisons les conditions du TEC:
x1*>02y1*+8 y3*+4 y4*=18
x2*>0-6y1*-3 y3*=-7
x5*>03y1*- y4*=0
La rsolution de ce systme d'quations donne y*=(1/3,0,5/3,1,0). Notons que y*0.

3. Vrifions si y* est une solution ralisable de (D).
Pour cela, on considre uniquement les contraintes du dual correspondant des
composantes nulles de x* (puisque les autres sont satisfaites par construction de y*).
Contrainte correspondant x3*: 2y1+5y3+8y412. (1712: OK)
Contrainte correspondant x4*: 7y1-2y3+7y45. (20/35:OK)
www.almohandiss.com
33
Contrainte correspondant x6*:8y1+2y3+3y48. (98:OK)

Conclusion: x* et une solution optimale du programme linaire donn et y* est une
solution de son dual.

Exemple 2:
La solution x*=(0,2,0,7,0) est-elle optimale pour le programme linaire suivant?

= + + +
>
s + + +
s + + +
s + + +
z(max) 11x 4x 12x 9x 8x
0 x
22 3x 2x 6x 4x 5x
1 x 2x 3x 7x x
1 3x x 4x 3x 2x
5 4 3 2 1
5 4 3 2 1
5 4 3 2 1
5 4 3 2 1


1. Vrifions si x* est ralisable:
Contrainte 1: 1s1 OK
Contrainte 2: 0s1 OK et y2*=0
Contrainte 3: 22s22 OK
x*0. En conclusion de cette tape, on peut dire que x* est ralisable.

2. Utilisons les conditions du TEC:
x2*>0-3y1*+4 y3 *=-9
x4*>0y1*+2 y3*=4
La rsolution de ce systme d'quations donne y*=(3.4,0,0.3). Notons que y*0.

3. Vrifions si y* est une solution ralisable de (D).
Pour cela, on considre uniquement les contraintes du dual correspondant des
composantes nulles de x* (puisque les autres sont satisfaites par construction de y*).
Contrainte correspondant x1*: 2y1+5y38. (8.312: OK)
Contrainte correspondant x3*: 4y1-6y312. (11.812:NOK)

Conclusion: y* n'tant pas ralisable et tant unique, on en dduit que x* n'est pas
optimale. Cette dduction n'est possible que si le systme d'quations utilis pour
dterminer y* admet une solution unique (ceci est le cas si x* est une solution de base
dgnre).

IX Interprtation des variables duales

L'interprtation des variables duales sera illustre sur le problme de dtermination
d'un plan de production optimal suivant:
www.almohandiss.com
34

=
> = s

=
=
z(max)
j
x
n
1 j
j
c
j 0
j
x 1...m; i ,
i
b
j
x
n
1 j
i j
a
(P)

o:
- xj= niveau de production du produit j (i.e. le nombre d'units du produit j fabriques).
- aij= consommation de la ressource i par unit de produit j (i.e. le nombre d'units de
la ressource i ncessaires la fabrication d'une unit de produit j).
- cj=profit unitaire du produit j (en DH/unit de produit j).

Commenons par dterminer l'unit des variables duales. Pour cela considrons les
contraintes du dual hormis les contraintes de non-ngativit des variables:

j i
m i
i
ij
c y a >

=
=1
pour j=1,<n
La variable yi s'exprime en DH/ unit de la ressource i; c'est en quelque sorte la valeur
unitaire de la ressource i.

Thorme:
Si (P) a au moins une solution optimale de base non dgnre alors:
-c>0 tel que si |ti|<c i alors le problme

=
> = + s

=
z(max)
j
x
n
1 j
j
c
j 0
j
x 1...m; i ,
i
t
i
b
j
x
n
1 j
i j
a


admet une solution optimale et son optimum, i.e. la valeur l'optimum de sa fonction
objective, est gal
i
m i
i
i
t y z * *
1

=
=
+ , o z* reprsente l'optimum de (P) et y* la solution optimale
du dual de (P).

Remarque:
La variable yi* peut donc tre interprte comme le profit marginal de la ressource i ou
encore comme la valeur marginale de la ressource i.

Exemple:
Un forestier possde 100 ha de bois dur. Il a deux options:
1. Couper le bois dur et laisser rgnrer, ce qui cote 10$/ha et gnre des recettes de
50$/ha.
2. Couper le bois et planter des pins, ce qui cote 50$/ha et gnre des recettes de
120$/ha.
www.almohandiss.com
35
Le budget dont dispose le forestier est de 4000$. Il s'agit donc pour le forestier de prendre
une dcision optimale, i.e. de dterminer la superficie sur laquelle il va appliquer l'option
1 et celle sur laquelle il va appliquer l'option 2 de manire maximiser son profit espr.
Si on appelle xi la superficie sur laquelle l'option i est applique (i=1,2), alors le problme
revient rsoudre le programme linaire ci-dessous:

= +
= >
s +
s +
z(max) 70x 40x
1,2 i 0 x
4000 50x 10x
100 x x
(P)
2 1
i
2 1
2 1
dont la solution optimale est x*=(25,75) et l'optimum est z*=6250$.
Le forestier se pose la question suivante: devrait-il emprunter de l'argent ou investir son
capital ailleurs?
La solution optimale du dual est y*=(32.5,0.75).
En vertu du thorme prcdent, le forestier aura intrt accrotre son capital (en
empruntant) si le taux d'intrt est infrieur ou gal 75% et investir ailleurs si le profit
est suprieur ou gal 75%.

Formule de passage au dual pour un programme linaire crit sous forme quelconque

Primal maximiser Dual minimiser

i
me
contrainte
s
i
me
variable
0
s
= libre

j
me
variable
0
j
me
contrainte

s s
libre =

Exercice:
La solution x*=(3,-1,0,2) est-elle solution optimale du programme linaire ci-dessous:

= +
> >
= + +
s +
s + + +
z(max) x x x 6x
0 0,x x
1 x x x
8 x x 3x
5 x x 2x x
4 3 2 1
4 3
4 3 2
3 2 1
4 3 2 1


X Utilisation du Solveur d'Excel pour rsoudre un programme linaire

Il existe des codes pour rsoudre un programme linaire par exemple, LINDO,
LINGO, CPLEX, le solveur d'Excel.
Il y a d'autres possibilits:
- MATLAB possde un solveur de programmes linaires auquel on peut
accder laide de la commande linprog (taper help linprog pour obtenir de
laide)
www.almohandiss.com
36
- Utiliser le site http://www-neos.mcs.anl.gov/neos/ pour accder au
Network Enable Optimization Server. Vous pouvez alors soumettre votre
problme en utilisant leur outil de soumission en Java et vous obtenez la
solution par e-mail
- Utiliser CLP qui est un open source disponible sur le site http://www.coin-or.org/

Revenons au Solveur dExcel. Il utilise des feuilles de calcul standard avec une
interface pour dfinir les variables, la fonction objective et les contraintes.


Traitons lexemple du problme de production vu au dbut du chapitre:
Une firme fabrique deux produits 1 et 2 laide de trois matires premires I, II et III
selon le mode dcrit dans le tableau ci-dessous :
1 2
Quantits
disponibles
I 2 1 8
II 1 2 7
III 0 1 3
Profit
unitaire
4 5 6

Lobjectif est de dterminer un plan de production qui maximise le profit global.

Dfinition des variables :
xj = nombre dunits du produit j fabriques (j=1,2)
Contraintes :
xj 0
2x1 + x2 s 8
x1 + 2 x2 s 7
x2 s 3
Fonction objective maximiser :
z(x) = 4x1 + 5x2

Procdure de rsolution avec EXCEL

Il y a trois principales parties fournir au solveur dExcel.
1. La cellule maximiser/minimiser
2. La plage de variables de dcision (x1, x2)
3. Les contraintes.

www.almohandiss.com
37
Il y a plusieurs faons de fournir au solveur ces informations. Nous
utiliserons dans cet exemple une faon qui se rapproche de la modlisation
dun problme linaire. Toutefois, il est parfois plus facile de reprsenter
linformation dune autre faon.


A B C D E F G
1 Exemple: Problme de production vu en
cours
2 Variables

x1

x2

Quantits
disponibles
3
Sens
4 Coefficients
des variables
dans
Contrainte 1


2 1 0 s 8
5

Contrainte 2

1 2 0 s 7
6

Contrainte 3

0 1 0 s 3
7 Coefficients
des variables
dans
Fonction objective


4 5 0


Exemple :

1. Les cellules C3 et D3 seront les variables du problme (x1 et x2).
2. Chacun des coefficients relis aux variables pour chaque contrainte et pour
la fonction objective est inscrit de C4 :D7.
3. La quantit des matires premires est indique et galement le sens de la
contrainte. Ce dernier lment est facultatif, il aide seulement comme aide-
mmoire au problme.
4. Premire contrainte : 2x1 + x2 s 8 . Pour calculer lexpression de la partie
gauche de la contrainte avant dactiver le solveur, la formule
=SOMMEPROD($E$3:$F$3;E4:F4) est inscrite dans la cellule E4.
5. Copiez cette formule pour les autres contraintes et pour la fonction
objective.



6. Menu: Outils/Solveur.
www.almohandiss.com
38
7. Entrez les paramtres du solveur
8. Cellule cible dfinir: Ceci correspond ladressse de la fonction
optimiser, i.e E7.
9. gale : Cochez le type doptimisation voulu. Le Max est coch car dans
cet exemple nous voulons maximiser le profit total ($).
10. Cellules variables: Slectionnez lendroit dans le tableur o les variables se
trouvent. Il ne doit pas avoir de cellules vides entre les variables. Les
cellules C3:D3 reprsentent les variables de notre problme, cest--dire
celles quon dsire dterminer.
11. Contraintes: Vous devez spcifier chacune des contraintes de votre
problme.
Cliquez sur "Ajouter".
Exemple : pour la premire contrainte : 2x1 + x2 s 8

(i) Entrez ladresse de la cellule contenant la formule : 2x1 + x2 .
On doit donc entrer E4.
(ii) Le sens de lquation <=.
(iii) Le nombre de ressource 8 ou son adresse G4.
La premire contrainte correspond E4 <= G4.
Cliquez sur "OK" lorsque vous avez termin dentrer toutes vos contraintes.

tant donn que nous voulons rsoudre un programme linaire, il est possible
de le spcifier au solveur afin quil utilise la mthode adquate pour rsoudre
le problme. Cliquez sur "options" cochez "Modle suppos linaire" et
"suppos non-ngatif" et cliquez sur "OK".
Cliquez sur Rsoudre.
12. Le solveur a trouv la solution optimale selon les contraintes.
Production de 3 units du produit 1 et de 2 units du produit 2
et un profit total de 22. Le solveur vous demande si vous voulez garder
cette solution lcran ou revenir celle de dpart. Il vous demande
galement si vous voulez un rapport des rponses ou un rapport de
sensibilit ou encore un rapport des limites.


www.almohandiss.com
39
Rapport des rponses:

Microsoft Excel 10.0 Rapport des rponses
Feuille: [Classeur1]Feuil1
Date du rapport: 14/05/2007 22:17:34


Cellule cible (Max)
Cellule Nom Valeur initiale Valeur finale
$E$7 Fonction objective 0 22


Cellules variables
Cellule Nom Valeur initiale Valeur finale
$C$3 x1 0 3
$D$3 x2 0 2


Contraintes
Cellule Nom Valeur Formule tat Marge
$E$4 Contrainte 1 8 $E$4<=$G$4
Li ou
serre 0
$E$5 Contrainte 2 7 $E$5<=$G$5 Li o 0
$E$6 Contrainte 3 2 $E$6<=$G$6
Non
li ou
lche 1

Rapport de sensibilit:

Microsoft Excel 10.0 Rapport de la sensibilit
Feuille: [Classeur1]Feuil1
Date du rapport: 14/05/2007 22:20:50


Cellules variables
Finale Rduit Objectif Admissible Admissible
Cellule Nom Valeur Cot Coefficient Augmentation Rduction
$C$3 x1 3 0 4 6 1,5
$D$3 x2 2 0 5 3 3

Contraintes
Finale Ombre Contrainte Admissible Admissible
Cellule Nom Valeur Cot droite Augmentation Rduction
$E$4 Contrainte 1 8 1 8 6 3
$E$5 Contrainte 2 7 2 7 1,5 3
$E$6 Contrainte 3 2 0 3 1E+30 1

Le rapport de sensibilit donne les informations de l'analyse de sensibilit propos
de la solution optimale. Cette analyse indique quel point la solution optimale est
www.almohandiss.com
40
sensible aux modifications des coefficients de la fonction objectif et des seconds
membres des contraintes.
Pour chaque cellule variable, le rapport donne: sa valeur finale, sa valeur marginale
associe (ici appele cot rduit), le coefficient de la fonction objectif pour cette
variable, la variation admissible de ce coefficient.
Pour chaque cellule contrainte, le rapport indique: sa valeur finale, sa valeur
marginale associe (ici appele cot dual) ou prix d'opportunit, la valeur du second
membre de l'quation de la contrainte, la variation admissible de ce coefficient. Le
cot dual mesure l'volution de la fonctin objectif lorsque la limite de la contrainte
est augmente d'une unit. Naturellement ce cot dual n'est valable que sur un
certain intervalle.


www.almohandiss.com
41
Chapitre 3

Algorithme rvis du simplexe

I Introduction

Dans l'algorithme du simplexe, on remplace chaque itration une solution de base
par une autre. Seulement une faible partie du dictionnaire ou du tableau est utilise
cette fin. On peut en fait dterminer cette partie uniquement partir des donnes de
dpart et sans rfrence aucune aux dictionnaires ou tableaux intermdiaires.
Cette faon de faire porte le nom de mthode rvise du simplexe (MRS) alors que
celle que l'on a apprise jusqu' prsent porte le nom de mthode standard du
simplexe (MSS). Elle consiste rsoudre chaque itration deus systmes
d'quations linaires (et ce, en tirant profit des itrations prcdentes). Une itration
de la MRS peut prendre beaucoup plus de temps qu'une itration de la MSS.
La MRS est plus rapide que la MSS pour les grands problmes creux, i.e. dont la
matrice sous-jacente a peu d'lments non nuls. Les codes commerciaux utilisent
toujours une forme de la MRS. Par ailleurs, certains problmes pratiques engendrent
des programmes linaires tellement grands qu'on ne peut les expliciter entirement.
Ils sont alors considrs de manire implicite ce qui rend impossible leur rsolution
l'aide de la MSS (exemples: problme de dcoupe, problme d'affectation de
rotations aux quipages dans les compagnies ariennes).

II Description des dictionnaires et des tableaux du simplexes l'aide de matrices

Le dictionnaire ci-dessous provient du programme linaire (P) aprs deux itrations
de l'algorithme du simplexe.

6 5 4 2
6 5 4 2 7
6 5 4 2 3
6 5 4 2 1
8.5x 3.5x 1.5x 2.5x 1782 z
2.5x 0.5x 0.5x 0.5x 15 x
1.5x 0.5x 0.5x 0.5x 63 x
0.5x 0.5x 0.5x 0.5x 54 x
+ =
+ + + =
+ =
+ =

= + + +
>
s + + +
s + + +
s + + +
z(max) 17x 12x 13x 19x
0 x
420 4x 3x 3x 4x
117 x x x x
225 2x x 2x 3x
(P)
4 3 2 1
4 3 2 1
4 3 2 1
4 3 2 1


Question: Comment relier les coefficients du dictionnaire aux donnes de dpart?

www.almohandiss.com
42
Le programme linaire (P) peut s'crire sous forme matricielle aprs introduction des
variables d'cart x5, x6 et x7 de la manire suivante:
| | 0 0 0 17 12 13 19 c et
420
117
225
b ,
1 0 0 4 3 3 4
0 1 0 1 1 1 1
0 0 1 2 1 2 3
A avec
z(max) cx
0 x
b Ax
(P) =
(
(
(

=
(
(
(

=
>
=


Donc le dictionnaire est obtenu en rsolvant le systme Ax=b par rapport x1, x3 et x7.
On peut crire:
N N B B
6
5
4
2
N N
7
3
1
B B N N B B
x A b x A o d'
x
x
x
x
x et
0 0 4 3
1 0 1 1
0 1 2 2
A ,
x
x
x
x ,
1 3 4
0 1 1
0 1 3
A avec x A x A Ax
=
(
(
(
(

=
(
(
(

=
(
(
(

=
(
(
(

= + =


Comme AB est rgulire, on a
N N
-1
B
-1
B B
x A A b A x = . Pour ce qui est de la
fonction objective, on a :
| | | |
N N
1 -
B B N
1 -
B B N N N N
1 -
B
1 -
B B
N B N N B B
)x A A c - (c b A c x c ) x A A b (A c z o d'
0 0 17 13 c et 0 12 19 c avec x c x c cx z
+ = + =
= = + = =


Forme matricielle d'un dictionnaire:

+ =
>
=
N N
1 -
B B N
1 -
B B
N N
-1
B
-1
B B
)x A A c - (c b A c z
0 x
x A A b A x


Forme matricielle d'un tableau:

= =
>
= +
B B N N N
-1
B N N
-1
B B
c A avec b - z )x A - (c
0 x
b A x A A x


Terminologie:
La matrice AB s'appelle matrice de base. L'entte de la base est un vecteur ligne qui a
autant de composantes que le nombre de variables de base et dont la Jaime composante
est l'indice de la Jaime variable de base. Ici l'entte est (1,3,7).

A chaque itration intermdiaire de la MSS, on choisit la variable entrante et la variable
sortante aprs quoi, on procde la mise jour de la solution de base courante. On a:
(
(
(

=
(
(
(

=
(
(
(

=
1 3 4
0 1 1
0 1 3
A et
15
63
54
x
x
x
x
B
*
7
*
3
*
1
*
B

www.almohandiss.com
43
La variable entrante est n'importe quelle variable dont le coefficient dans la fonction
objective (i.e dans la dernire ligne du dictionnaire ou du tableau) est positif (pour un
problme de maximisation). Le vecteur de ces coefficients n'est rien d'autre que
N
-1
B B N
A A c - c . Dans la MSS, ces coefficients sont disponibles. Dans la MRS, ceci se fait en
deux tapes:
1. On dtermine
B B
c A de solution = . Ici, t=(3.5,8.5,0)
2. On calcule
N N
A - c . Ici, on obtient (-2.5,1.5,-3.5,-8.5)
La variable entrante est donc x4 car son coefficient dans la fonction objective est
strictement positif.
Pour dterminer la variable sortante, on cherche la valeur non ngative maximum (disons
t) que peut prendre la variable entrante en maintenant les autres variables hors-base au
niveau 0 et en ajustant les variables de base de faon maintenir Ax=b et xB0. On a:

N N
-1
B B
x A A x x =
*
B
. Lorsque t augmente, xB passe de
*
B
x (t=0)
*
B
x -td o d est tout
simplement la colonne de la matrice
N
-1
B
A A correspondant la variable entrante. Soit a la
colonne de A correspondant la variable entrante (ici a est la 4me colonne de A). On
dtermine d en rsolvant le systme ABd=a.
Ici, on trouve d=
|
|
|
.
|

\
|
5 . 0
5 . 0
5 . 0
et par consquent 0 30 0
max
*
= = >
(
(
(

=
7
x cas auquel t td
-0.5t 15
-0.5t 63
-0.5t 54
x
B

La variable sortante est donc x7. La nouvelle entte est (1,3,4) et le nouveau
*
B
x vaut
(
(
(

=
30
48
39
x td
*
B


On observe que pour effectuer une itration de la MRS, il a fallu rsoudre deux systmes
d'quations

=
=
a d A
c A
B
B B
sortante variable la dterminer pour
et entrante variable la dterminer pour


Mthode rvise du simplexe

(0) AB est une matrice de base ralisable donne par son entte et
*
B
x est la
solution de ABxB=b;
(1) Rsoudre
B B
c A =
(2) Choisir une colonne entrante a=A
j
, i.e une colonne de la matrice A telle que
c
j
-t- A
j
>0. S'il n'en existe pas alors STOP: "L'optimum est atteint".
(3) Rsoudre le systme ABd=a;
(4) Dterminer la valeur maximum tmax que peut prendre t de telle manire que
td
*
B
x 0. Si tmax est infini alors STOP: "Le problme est non born" sinon au
moins une composante de d t
max
*

B
x est nulle. Choisir une telle composante
et faire sortir de la base la variable correspondante;
(5) Mettre jour
*
B
x et l'entte de la matrice de base et aller en (1).

www.almohandiss.com
44
2
me
itration pour notre exemple:
e=(1,3,4);
(
(
(

=
30
48
39
x
*
B
;
| | atteint. est optimum L' = = =
(
(
(

= = ) 3 , 1 , 2 , 1 ( ) 3 , 1 , 2 , 4 ( ) 0 , 0 , 0 , 13 ( 3 1 2
17
12
19
N N
A c t t
B B
c A
x*=(39,0,48,30,0,0,0) est une solution optimale et z* vaut 1827.
www.almohandiss.com
45
Chapitre 4

Algorithme dual du simplexe

I Algorithme dual sous forme standard

Exemple:
On considre le programme linaire (P) ci-dessous:

=
>
> +
> +
z(max) x x
0 x
5 4x x
4 x 3x
(P)
2 1
2 1
2 1


(P) s'crit sous forme tableau de la manire suivante:
z(max) 0 0 1 1
5 1 0 4 1
4 0 1 1 3
b x x x x
4 3 2 1



, la base tant
constitue des variables d'cart x3 et x4.
Notons que les coefficients dans la fonction objective sont tous non positifs (
N N
A - c s0).
On dit dans ce cas que la base est "dual-ralisable".
Notons galement que le second membre ( b A
-1
B
) n'est pas positif ou nul. On dit que la
base n'est pas primal-ralisable.

L'objectif de l'algorithme dual du simplexe est d'exploiter cette situation sans passer par
la phase I de la mthode du simplexe pour trouver (sous rserve d'existence) une solution
de base ralisable pour amorcer l'algorithme du simplexe (connu aussi sous le nom
d'algorithme primal du simplexe).
De manire plus prcise, l'objectif est de viser la primal-ralisabilit (i.e rendre le second
membre non ngatif) tout en maintenant la dual-ralisabilit (i.e garder la non- positivit
des coefficients au niveau de la fonction objective).
Pour cela, lorsque l'optimum n'est pas atteint, on procde de la manire suivante:
1. On choisit r tel que 0 b) (A
r
-1
B
t .
Si 0 ) A (A
r N
-1
B
> , alors STOP:"Le problme n'admet pas de solution ralisable
Sinon soit L={j/ 0 ) A (A
j
r N
-1
B
t }; le pivot porte sur l'indice seL tel que le quotient
"coefficient dans la fonction objective" sur "coefficient dans la contrainte r soit
minimum sur L.
On procde au pivotage autour de l'lment (r,s).
Si le second membre est non ngatif alors STOP: "La solution de base courante est
optimale"sinon aller en (1).
Application l'exemple:
1
re
itration:
r=2, L={1,2}. D'o s=2
www.almohandiss.com
46
2
me
itration:
r=1, L={1,4}. D'o s=1.
Le test d'optimalit est satisfait. La solution optimale est x*=(1,1,0,0) et l'optimum z* est
gal -2.

2 z 2/11 3/11 0 0
1 3/11 1/11 1 0
1 1/11 4/11 0 1
5/4 z 1/4 0 0 3/4
5/4 1/4 0 1 1/4
* 11/4 1/4 1 0
z(max) 0 0 1 1
5* 1 0 1
4 0 1 1 3
b x x x x
11/4
4
4 3 2 1
+




II Algorithme dual sous forme rvise

On considre un programme linaire (P) sous la forme

=
>
=
z(max) cx
0 x
b Ax
(P)
(0) Soit AB une base duale-ralisable de (P) (i.e telle que
N N
N A - c c = s0 avec
B B
c A = )
dfinie par son entte. Soit
*
B
x la solution de ABxB=b;
(1) Si
*
B
x 0 alors STOP: "l'optimum est atteint";
Choisir une variable de base sortante, i.e une variable de base dont la valeur,
disons
r
)
*
B
(x , dans la solution de base courante est strictement ngative. (Notons
qu'elle correspond la variable de base dont l'indice est la r
me
composante de
l'entte).
Rsoudre le systme vAB=er (o er est le r
me
vecteur de la base canonique);
Calculer w=vAN;
Soit L={j/ w
j
<0};
Si L=C alors STOP: " Le problme (P) est non ralisable"
Trouver s eL tel que
(
(

e
j
j
j
L j
s
s
s
w
A c
min
w
A c

Rsoudre ABd=A
s

Poser
s r
w / )
*
B
(x t= ; t
s
= :
*
x et td =
* *
:
B B
x x ;
Remplacer la r
me
composante de l'entte par s;
Poser
s
s
w
c
c
r
e
= et ajouter
r
e
c tout
j
c pour j=r
Aller en (1).

Exemple:
www.almohandiss.com
47
On considre le programme linaire (P)

=
>
=
z(max) cx
0 x
b Ax
(P) avec
| | 0 0 0 6 - 3 - 3 - 5 - c et
14
25 -
14
b =
(
(
(

=
(
(
(

= ;
1 0 0 2 0 1 2
0 1 0 5 1 2 3
0 0 1 4 2 1 6
A

1
re
itration:
e=(5,6,7); | | 6 3 3 5 c ;
14
25
14
x N
*
B
=
(
(
(

=
r=2; er=6, d'o vs=x6.
vAB=(0,1,0) v=(0,1,0) w=vAN=(3,-2,-1,-5)
d'o L={2,3,4}. Le minimum de {3/2,3,6/5} est 6/5, ce qui correspond x4. Donc ve=x4.
L'entte devient e=(5,4,7)
ABd=
2
5 -
4
(
(
(

d=
2
5 -
4
(
(
(

t=-25/-5=5 ;
4
5
6
5 2 x
5 t x
4 5 x
x
x
x
x
*
7
*
4
*
5
*
7
*
4
*
5
*
B
(
(
(

(
(
(


= =

=
(
(
(

=

1.2) 1.8, 0.6, 8.6, ( 6/5) 6/5, 3 12/5, 3 18/5, 5 ( ) c c , c c , c 2 c , c 3 c ( ) c , c , c , c ( c et
5
6
c
6 6 6 3 6 2 6 1 6
6 3 2 1 N
= + + = + = = =

2
me
itration :
e=(5,4,7); ;
4
5
6
x
*
B
(
(
(

= 1.2) 1.8, 0.6, 8.6, ( cN =


r=1; er=5, d'o vs=x5.
vAB=(1,0,0) v=(1,0.8,0) w=vAN=(-3.6,-0.6,1.2,0.8)
d'o L={1,2 }. Le minimum de {8.6/3.6, 0.6/0.6} est 1, ce qui correspond x2. Donc ve=x2.
L'entte devient e=(2,4,7)
ABd=
1
2 -
1
(
(
(

d=
0.2
0.4
0.6 -
(
(
(

t=-6/-0.6=10 ;
2
1
10
2 10 4
4 10 5
10
x
x
x
x
*
7
*
4
*
2
*
B
(
(
(

(
(
(


=
(
(
(

=

-2) (-5,-3,-1, c et 1
0.6 -
-0.6
c N 5 = = =

3
me
itration:
Puisque
*
B
x est non ngatif, l'algorithme s'arrte et la solution optimale est
x*=(0,10,0,1,0,0,7).
www.almohandiss.com
48
Chapitre 5

Problme du transport


I Introduction:

Le scnario classique de prsentation du problme de transport d'un produit est le
suivant:
Donnes:
Il y a p entrepts et q magasins.
La quantit disponible l'entrept k est ak.
La demande du magasin l est bl.
Le cot unitaire de transport de l'entrept au magasin l est ckl.
Objectif:
Dterminer un plan de transport optimal, i.e dterminer les quantits acheminer de
chaque entrept chaque magasin de manire :
(1) Satisfaire la demande des magasins
(2) Satisfaire les contraintes de disponibilit dans les entrepts
(3) Minimiser le cot global de transport sous les conditions (1) et (2).

Modlisation:
On pose: tkl= quantit achemine de l'entrept k au magasin l.

=
>
= >
= s

=
=
=
=
=
=
=
=
z(min) t c
0 t
1,2,....q l pour b t
1,2,....p k pour a t
(T)
p k
1 k
q l
1 l
kl kl
kl
l
p k
1 k
kl
k
q l
1 l
kl


Remarque:
Une condition ncessaire de ralisabilit est que l'offre soit au moins gale la demande
(

=
=
=
=
>
q l
l
l
p k
k
k
b a
1 1
). Si cette ingalit n'est pas satisfaite avec galit, alors on introduit un
magasin fictif (disons d'indice 0) dont la demande est b0=

=
=
=
=

q l
l
l
p k
k
k
b a
1 1


Dfinition:
On appelle problme de transport le programme linaire ci-dessous:
www.almohandiss.com
49
(3) b a et l k, 0 b 0, a avec
z(min) t c
0 t
(2) 1,2,....q l pour b t
(1) 1,2,....p k pour a t
(T)
q l
1 l
l
p k
1 k
k l k
p k
1 k
q l
1 l
kl kl
kl
l
p k
1 k
kl
k
q l
1 l
kl

=
=
=
=
=
=
=
=
=
=
=
=
=

=
>
= >
= s
| |

Le dual de (T) s'crit:

= +
s +

w(max) v b u a
c v u
l
l
l
k
k k
kl l k


Thorme
Une condition ncessaire et suffisante pour que t soit solution optimale de (T) est qu'on
puisse trouver u1, u2,<. up et v1,v2,<.vq tels que

= +
s +
(5) 0 t c v u
(4) l k, c v u
kl kl l k
kl l k
t


Dmonstration:
C'est une consquence directe du thorme des carts complmentaires.

II Algorithme

L'algorithme prsent consiste en une mise en uvre de l'algorithme rvis du simplexe
qui exploite la structure particulire du problme de transport. L'objectif est de
dterminer t, u et v tels que les conditions (1), (2), (4) et (5) soient satisfaites.
On utilise une prsentation sous la forme d'un tableau particulier dans lequel on
regroupe l'information relative (T) et au dual.
Exemple:
On a un problme de transport avec 3 entrepts et 4 magasins

avec
(
(
(

=
(
(
(
(

=
(
(
(

=
9 15 8 5
2 6 0 1
7 11 3 2
c et
2
3
6
1
b ,
4
2
6
a




www.almohandiss.com
50





Algorithme d'initialisation:
*T reprsente le tableau initial*
J:=C;
Tantque T=C faire
Choisir (k,l) tel que
rs
T s) (r,
kl
c min c
e
=
J:=J{(k,l)}; tkl:=min(ak,bl)
Si aksbl alors supprimer la ligne k de T et poser bl:=bl-ak
sinon supprimer la colonne l de T et poser ak:= ak -bl
fintantque
STOP

Consquence:
Le programme (T) admet toujours une solution.
Question: A quoi ressemblent les bases de (T)?
Associons (T) un rseau G p+q sommets avec d'un ct les sommets "entrepts" et de
l'autre les sommets "magasins" et tous les arcs (k,l) munis d'un cot ckl.
Remarquons que chaque variable tkl apparat exactement deux fois dans les contraintes,
une fois dans les contraintes (1) et une fois dans les contraintes (2) et chaque fois avec un
coefficient gal 1.

Remarque:
Lorsqu'on dispose d'une base, on peut lui associer des uk et des vl qui satisfont la
condition (5) en fixant une variable duale 0 (disons u1) et en calculant les autres de
proche en proche. Cela revient rsoudre le systme
B B
c A = qui est un systme
triangulaire. Ceci est possible car les contraintes de (T) ne sont pas linairement
6
a
k
b
l
Il ne faut pas oublier de
vrifier si

=
=
=
=
=
q l
1 l
l
p k
1 k
k
b a
2 3 11 7
6
2
1 0 6 2
5 8 15
1 6
9
4
2 3
c
kl
www.almohandiss.com
51
indpendantes. En fait, le rang de la matrice sous-jacente est gal au nombre total de
contraintes moins un.


Exemple












Remarque:
Si la condition (4) est satisfaite, alors l'algorithme s'arrte car la solution courante est
optimale en vertu du thorme prcdent sinon soit (k*,l*) tel que uk*+vl*>ck*l*. On peut
dterminer un cycle dans le tableau T partant de (k*,l*) o les dplacements se font
alternativement en ligne et en colonne. De plus, les changements de direction se font
ncessairement dans une case correspondant une variable de base.
On ajoute et on retranche u alternativement aux tkl du cycle en partant de tk*l* (ceci est
possible car le cycle a un nombre pair de sommets). Il s'agit de dterminer la plus grande
valeur que peut prendre u sans qu'aucune variable de base ne devienne ngative. Notons
que ceci n'est rien d'autre que le simplexe sauf que dans le cas du problme de transport
cela se fait de manire combinatoire. Ici, on peut prendre (k*,l*)=(2,3)











Ici umax=1. Lorsque u vaut 1, la variable de base t41 s'annule. Elle quitte la base et on ritre
avec la nouvelle base.
Algorithme de rsolution du problme de transport
(0) Initialisation: utiliser l'algorithme d'initialisation dcrit plus haut;
2 3 11 7
6
2
1 0 6 2
5 8 15
1 6
9
4
2 3
c
kl
v
l
u
k
t
kl
b
l
a
k
2

3

13

7


2

0

u
k

u
k

u
k

1

3
2

u
k

u
k

u
k

1

u
k

u
k

u
k

4

u
k

u
k

u
k

1

u
k

u
k

u
k

-3

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

3

13

7


2

0

u
k

u
k

u
k

3-u
2-u

1-u

4+u

u
k

u
k

u
k

1

u
k

u
k

u
k

-3

u

u
k

u
k

u
k

1+u

www.almohandiss.com
52
(1) Calculer les uk et les vl en fixant u1 0 et en imposant la condition (5);
(2) Si l k, c v u
kl l k
s + alors STOP: "L'optimum est atteint" sinon soit (k*,l*) tel que
uk*+vl*>ck*l*. Calculer le umax correspondant ce qui dfinit alors une variable sortante.
Faire alors le changement de base et aller en (1).

Application l'exemple










(k*,l*)=(3,1); umax=1. Il y a deux variables candidates quitter la base, savoir t11 et t22. On
choisit t11.










(k*,l*)=(3,2); umax=0. Nous avons ici une itration dgnre. La base change alors que la
solution de base reste inchange.











La condition l k, c v u
kl l k
s + est satisfaite: la solution courante est optimale: il s'agit d'acheminer:
6 units de l'entrept 1 vers le magasin 2
2 3 11 7
6
2
1 0 6 2
5 8 15
1 6
9
4
2 3
2

3

9

3


6

0

u
k

u
k

u
k

2-u
1-u

5+u

1-u

-3

1+u

2

u
2 3 11 7
6
2
1 0 6 2
5 8 15
1 6
9
4
2 3
-1

3

9

3


6

0

u
k

u
k

u
k

1-u
0-u


6

-3

2+u

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

3

10

4


5

0

u
k

u
k

u
k

1

6

-4

2

2
1
u
0

www.almohandiss.com
53
2 units de l'entrept 2 vers le magasin 3
1 unit de l'entrept 3 vers le magasin 1
1 unit de l'entrept 3 vers le magasin 3
2 units de l'entrept 3 vers le magasin 4



www.almohandiss.com
54
Chapitre 6

Problme daffectation


I Prsentation du problme
Le scnario classique de prsentation du problme daffectation est le suivant :
Il y a n personnes et n tches. On connat pour chaque personne k son cot de
formation (resp. utilit) pour la tche l, soit dkl.
Le problme consiste affecter chaque personne une et une seule tche de manire
minimiser le cot global de formation (resp. maximiser lutilit globale).
Dans la suite, nous faisons lhypothse que nous avons un problme de minimisation.
Formulation du problme

{ }
) (
sinon 0
l la tche affecte est k personne la si 1

=
e
=
=

z(min) t d
l k 0,1 t
(2) l 1 t
(1) k 1 t
t
l k,
kl kl
kl
k
kl
l
kl
kl
A


Les contraintes (1) traduisent le fait que chaque personne est affecte exactement
une seule tche et les contraintes (2) traduisent, quant elles, le fait que chaque tche
est affecte exactement une seule personne.
Le problme (A) nest pas un programme linaire cause de la contrainte
{ } l k 1 , 0 e
kl
t . Soit (A) le programme linaire obtenu partir de (A) en remplaant
la contrainte { } l k 1 , 0 e
kl
t par l k 0 >
kl
t .
Notons que (A) est un problme de transport dans lequel les seconds membres sont
tous entiers (en fait, ils valent tous 1). Cela implique que (A) admet toujours une
solution optimale entire et que pour rsoudre notre problme de dpart (A), il suffit
de trouver une solution optimale entire de (A).
Les bases de (A) ont (2n-1) lments. Dans une solution de base entire de (A), le
nombre de variables de base non nulles est gal n ce qui implique donc que (n-1)
variables de base sont ncessairement nulles. Il ya donc une forte dgnrescence.
Pour viter les problmes de dgnrescence, savoir de grands paliers ditrations
dgnres), un algorithme spcifique a t conu.
www.almohandiss.com
55
II Algorithme de rsolution du problme daffectation

Le dual de (A) scrit :

= +
s +

w(max) v u
l k, d v u
l
l
k
k
kl l k
) ' ( A Dual

Remarque : Soit (tkl) une solution ralisable de (A). Cette solution est optimale sil
existe une solution duale (u,v) telle que :

=
= =
s +
l k kl kl
kl kl
kl l k
v u d d
(4) 0 d 1 t
(3) l k, d v u


La condition (3) quivaut la ralisabilit de (u,v) et la condition (4) nest rien dautre
que les conditions du thorme des carts complmentaires (on parle pour cette
condition de condition dorthogonalit).
Principe de lalgorithme :
On part dune solution ralisable entire de (A) et dune solution (u,v) du dual telle
que la condition (4) soit satisfaite et on vise la dual ralisabilit de (u,v) ce qui
quivaut satisfaire la condition (3).

Initialisation :
On pose

=
=
c =
l d v
k 0 u
l k, t
ll l
k
kl kl

Les conditions (1),(2) et (4) sont satisfaites.
Compte tenu du fait que lon cherche satisfaire la condition (3) ( savoir 0 >
kl
d ), on
choisit de reprsenter la matrice des 0 >
kl
d et on place un dans les cases (k,l) telles
que 1 =
kl
t .
Exemple :

(
(
(
(

=
7 3 4 3
10 6 2 7
9 8 3 6
10 10 8 9
) (
kl
d

www.almohandiss.com
56


3 1 6 0
3 1 2 0
2 2 3 0
3 4 5 0
7 6 3 9 v u
*
l k


A ce niveau, on ne peut conclure de loptimalit car certains
kl
d sont ngatifs. On
cherche en augmenter un, disons
41
d , en veillant ce que les
kl
d qui sont positifs ou
nuls le restent. On peut tenter cela en retranchant c de
1
v et en ajoutant c
i
u , i tant
tel que 1 =
il
t de manire continuer satisfaire la condition (4). La valeur maximum
de c est 3 ( car au-del,
14
d deviendrait strictement ngatif.




+

3 1 6 0
3 1 2 0
2 2 3 0
3 4 5 0
7 6 3 9
*
l k
v u

=3

3 1 3 0
3 1 1 0
2 2 0 0
0 1 2 3
7 6 3 6
*
l k
v u


+

+

3 1 3 0
3 1 1 0
2 2 0 0
0 1 2 3
7 6 3 6
*
l k
v u


Le bilan pour la case de dpart savoir (4,1) est nul. Dans pareil cas, on change la
fois la solution primale et la solution duale.
Voici comment : on retranche 3 (=|
41
d |) de
1
v ce qui a pour effet dannuler
41
d . Par
consquent
41
t peut prendre alors la valeur 1, auquel cas la fois
11
t et
44
t devront
sannuler. ; or
14
d est nul et par consquent
14
t peut prendre la valeur 1.

0 3 1 0
3 1 4 0
2 2 3 0
1 2 3 3
7 6 3 3


l k
v u

0 * 3 1 0
3 1 4 0
2 2 3 0
1 2 3 3
7 6 3 3

+

l k
v u

=3
0 0 1 0
0 * 4 1 3
2 5 3 0
4 2 3 3
7 3 - 3 3


+

l k
v u


www.almohandiss.com
57

=2
0 0 3 0
0 * 2 1 3
0 3 1 2
4 4 3 3
- 7 3 - 1 3


+
+
l k
v u

=1
1 0 4 0
1 * 1 1 3
0 2 0 3
3 4 2 4
- 6 - 3 - 0 - 3
+
+
+
+
l k
v u


Ici le bilan pour la case de dpart savoir (3,2) est nul. Comme dans la deuxime
itration, il y a un cycle que lon peut retrouver laide de la procdure de marquage
des lignes et des colonnes dcrite ci-dessous (et qui va nous permettre de changer la
fois la solution primale et la solution duale) :

Procdure de marquage des lignes et des colonnes :
(0) On note (k,l) la case de dpart ;
(1.0) Donner la marque k la colonne l ;
(1.1) Si la colonne j est marque, alors donner la marque j la ligne i telle que 1 = tj ;
(1.2) Si la ligne i est marque, alors donner la marque i toute colonne j telle que
ij
d =0
(et 0 = tj ).

Voici les marquages quon obtient dans notre cas litration courante.

{ }
{ }
{ }
{ }
{ } { } { } { } 2 4 3 2
1 1 0 4 0
3 1 * 1 1 3
2 0 2 0 3
4 3 4 2 4
- 6 - 3 - 0 - 3
+
+
+
+
l k
v u


On note que la ligne de la case de dpart est marque. On revient en arrire en
utilisant les marquages pour mettre en vidence le cycle suivant lequel on va
switcher) variables nulles et variables gales un.
La ligne 3 est marque partir de la colonne 3. Donc on se place en (3,3).
La colonne 3 est marque partir de la ligne 4. Donc on se place en (4,3).
La ligne 4 est marque partir de la colonne 1. Donc on se place en (4,1)
La colonne 1 est marque partir de la ligne 2. Donc on se place en (2,1).
La ligne 2 est marque partir de la colonne 2. Donc on place en (2,2).
La colonne 2 est marque partir de la ligne 3. Donc on se place en (3,2).
La ligne 3 est marque partir de la colonne 3. Donc on se place en (3,3).
Ainsi le cycle est dtermin.
Comme dans litration 2, on retranche la valeur 1 (=|
32
d |) de
2
v . Cela permet
dannuler
32
d . Cest le seul changement que lon opre sur la solution duale.
www.almohandiss.com
58
1 5 0 0
1 0 1 3
0 2 1 3
3 5 2 4
6 3 1 - 3


l k
v u

La solution courante est optimale en vertu de la remarque prcdente

Algorithme de rsolution du problme daffectation de poids minimum

(0) *Initialisation*
Dterminer une solution ralisable entire de (A) et une solution (u,v) du dual telle
que la condition (4) soit satisfaite.
(1) *Test doptimalit*
Si l k d
kl
, 0 > , alors STOP : " Loptimum est atteint " sinon soit (k,l) tel que 0 t
kl
d .
Rpter les pas (1.0), (1.1) et (1.2) jusqu' ce que l'on aboutisse l'une des deux
situations suivantes:
1) La ligne k est marque auquel cas on change la solution primale le long du
cycle alors mis en vidence et la solution duale en posant + =
l l
v v :
kl
d . Aller
en (1).
2) On ne peut plus faire de marquages auquel cas on change la solution duale
comme suit:
Soit E={
ij
d / 0 >
ij
d avec la ligne i marque et la colonne j non marque}.
Si E=C alors poser c=|
kl
d | sinon poser c= min E.
Poser

=
+ =
marque est j colonne la si
marque est i ligne la si
c
c
j j
i i
v v
u u
:
:

Aller en (1)

Exercices:
1) Ecrire un algorithme pour rsoudre le problme d'affectation de poids
maximum et l'appliquer l'exemple de ce cours.
2) Ecrire un algorithme de rsolution du problme de l'affectation min
max et l'appliquer l'exemple de ce cours.


www.almohandiss.com
59
Ecole Mohammadia dIngnieurs
Gnie Industriel et Gnie Informatique









OPTIMISATION DANS LES RESEAUX

Polycopi du cours

















N. Sbihi 2007-2008
www.almohandiss.com
60
Cours dOPTIMISATION DANS LES RESEAUX



Plan :
I Gnralits sur les graphes
II Problme de larbre de poids optimal
III Problmes de cheminement dans un graphe et dordonnancement de
projets
IV Cycles eulriens et problme du postier chinois
V Problme du flot maximum
VI Problme du flot de cot minimum et applications


Bibliographie :
C. BERGE, Graphes et hypergraphes, Dunod
M. GONDRAN et M. MINOUX, Graphes et algorithmes, Eyrolles
M. SAKAROVITCH, Programmation linaire et graphes, Hermann & Enseignement des
sciences
M. SAKAROVITCH, Programmation discrte, Hermann & Enseignement des sciences
www.almohandiss.com
61


Gnralits sur les graphes

I Introduction
Loptimisation dans les rseaux traite de problmes qui peuvent sexprimer, se modliser
laide de structures de graphes.
Un graphe consiste en :
- des sommets (appels aussi nuds) qui sont des points et en
- des arcs qui sont des liens entre les sommets. Ces liens peuvent tre
orients ou non (dans ce dernier cas, on parle plutt dartes).
Exemple de graphe :


Autre exemple de graphe familier : le web. Les sommets sont les documents et les arcs
sont les liens hypertexte.
Exemples de problmes :
Problme du plus court chemin, de conception de rseaux.
Problme de gestion des stocks, dordonnancement de tches dun projet, de tournes de
vhicules, de voyageur de commerce<
u
2

u
3

u
1

1
2
3 5
4

u
5

u
4

u
7

u
8

u
6

Figure 0-1
Figure 1-1
www.almohandiss.com
62
Remarque : Le concept de graphe peut paratre redondant par rapport celui de relation
binaire. Cependant, le fait de pouvoir faire des petits dessins stimule limagination et
peut faciliter la dtermination de solutions certains problmes.

II Concepts de base
Dfinition 1 : Dans le cas orient, un graphe G est dfini par la donne dun ensemble
X de sommets et dun ensemble U darcs dont les lments sont des paires ordonnes
de sommets appels extrmits.
Exemple : pour u1 = (1,2), le sommet 1 est lextrmit initiale et le sommet 2 est
lextrmit terminale.
Dfinitions 2 :
- Un arc est une boucle si ses extrmits sont confondues, ex : u6.
- Un graphe est dit possder des arcs multiples si contient des arcs ayant mmes
extrmits initiale et terminale, ex : u7 et u8.
- Deux arcs sont dits opposs ou encore symtriques sils ont les mmes extrmits
mais pas la mme orientation, ex : u3 et u4.
- Deux arcs sont dits adjacents ou encore incidents sils ont une extrmit commune.
- Les extrmits dun arc sont dites incidentes cet arc.
- Soit x e X. On appelle demi-degr extrieur (resp. intrieur) de x not (resp. dG
-
(x)) le nombre darcs dont x est extrmit initiale (resp. terminale). Le degr de x,
not dG(x) est la somme de son demi-degr extrieur et de son demi-degr
intrieur.
Thorme 1 :

e e
+
= =
X x X x
G
G
U x d x d ) ( ) (
Corollaire : ) 2 mod( 0 ) (

eX x
G
x d
Consquence : Le nombre de sommets de degr impair dans un graphe est pair.
www.almohandiss.com
63
Dfinitions 3 :Soient G = (X,U) un graphe, X un sous-ensemble de X et U un sous-
ensemble de U. Soit UX lensemble des arcs de G ayant leurs deux extrmits dans X.
Le graphe GX = (X, UX) est appel sous-graphe de G engendr par X ou construit sur
X.
Le graphe (X,U) est appel graphe partiel de G construit sur U.
Le graphe (X, UUX) est appel sous graphe partiel de G construit sur X et U.
III Notion de connexit
Dfinitions 4 :
- Une chane est une squence de q arcs (u1,u2,<uq) telle que tout arc
intermdiaire ur (2srsq-1) ait une extrmit commune avec u r-1 et lautre
extrmit commune avec ur+1.
- Une chane est dite simple si elle ne contient pas deux fois le mme arc. Elle
est dite lmentaire si tout sommet est de degr au plus 2 ou, de manire plus
prcise, si tout sommet est adjacent au plus deux arcs de la chane.
- Lextrmit de u1 non adjacente u2 et lextrmit de uq non adjacente uq-1
sont appeles extrmits de la chane.
- Une chane dont les extrmits sont confondues est appele un cycle.

Remarque : La notion de chane ne fait pas intervenir lorientation des arcs. Elle est
donc valable aussi bien pour les graphes orients que pour les graphes non orients.
Il en est de mme pour les cycles.
Dfinition 5 : On dfinit la relation de connexit sur X par :
x est en relation de connexit avec y si et seulement si x et y sont confondus ou
encore sil existe une chane joignant x et y.
Remarque : Cette relation est une relation dquivalence dont les classes dquivalence
sont appeles composantes connexes du graphe G. Un graphe est dit connexe sil
possde une seule composante connexe. Pour dterminer la composante connexe
contenant un sommet particulier (disons a), on peut appliquer lalgorithme dcrit ci-
www.almohandiss.com
64
dessous. Pour vrifier si un graphe est connexe, il suffit de vrifier si la composante
connexe contenant un sommet quelconque du graphe renferme tous les sommets du
graphe.

Algorithme de dtermination de la composante connexe X contenant un sommet particulier
(disons a) :
X := {a}
Pour tout x e X faire
var(x) := faux
fin pour tout
tant que - x e X tel que var(x)=faux faire
var(x)=vrai
pour tout y e X adjacent x faire
X := X{y}
fin pour tout
fin tant que
STOP
III Notion de connexit forte
Dfinitions 6 :
- Un chemin de longueur q est une squence darcs (u1,u2,<uq) telle que :
u1 = (i0,i1)
u2 = (i1,i2)
.
.
uq = (iq-1,iq)
i0 est lorigine du chemin et iq est son extrmit.
www.almohandiss.com
65
- Un chemin est dit simple sil ne contient pas deux fois le mme arc. Il est dit
lmentaire si tout sommet est de degr au plus 2 ou, de manire plus prcise,
si tout sommet est adjacent au plus deux arcs du chemin.
- Un chemin dont les extrmits sont confondues est appele un circuit.

Remarque : La notion de chemin fait intervenir lorientation des arcs. Elle nest donc
valable que pour les graphes orients. Il en est de mme pour les circuits
Dfinition 7 : On dfinit la relation de forte connexit sur X par :
x est en relation de forte connexit avec y si et seulement si x et y sont confondus ou
encore sil existe la fois un chemin de x y et un chemin de y x.
Remarque : Cette relation est une relation dquivalence dont les classes dquivalence
sont appeles composantes fortement connexes du graphe G. Un graphe est dit
fortement connexe sil possde une seule composante fortement connexe. Pour
dterminer la composante fortement connexe contenant un sommet particulier
( disons a), on peut appliquer lalgorithme dcrit ci-dessous. Pour vrifier si un
graphe est fortement connexe, il suffit de vrifier si la composante fortement connexe
contenant un sommet quelconque du graphe renferme tous les sommets du graphe.

Algorithme de dtermination de la composante fortement connexe X contenant un
sommet particulier (disons a) :
X
+
:= {a} ; X
-
:= {a}
Pour tout x e X faire
var(x) := faux
fin pour tout
tant que - x e X
+
tel que var(x)=faux faire
var(x)=vrai
pour tout y e X
+
tel que (x,y) eU faire
X
+
:= X
+
{y}
www.almohandiss.com
66
fin pour tout
fin tant que
Pour tout x e X faire
var(x) := faux
fin pour tout
tant que - x e X
-
tel que var(x)=faux faire
var(x)=vrai
pour tout y e X
-
tel que (x,y) eU faire
X
-
:= X
-
{y}
fin pour tout
fin tant que
X := X
+
X
-
STOP
Dfinition 8: On appelle graphe rduit de G=(X,U), le graphe G* = (X*, U*) dont les
sommets sont en bijection avec les composantes fortement connexes de G et dans
lequel larc (x*,y*) existe si et seulement sil existe dans le graphe de dpart, savoir
G, un arc (x,y) o x est un sommet de composante fortement connexe correspondant
x* et y un sommet de la composante fortement connexe correspondant y*.
Exemple : Le graphe rduit de G est reprsent ci-dessous









Figure I-2
{1,2,3}
{4}
{5}

www.almohandiss.com
67
Chapitre II
Problme de larbre de poids optimal

I Proprits des arbres
Le modle de larbre de poids optimal intervient dans des problmes concrets o,
typiquement, on cherche concevoir un rseau qui permette de faire communiquer
tout le monde avec tout le monde (donc un rseau connexe) et ce en optimisant un
certain critre qui peut tre, par exemple, le cot minimiser.
Dfinition 9 : Un isthme dans un graphe est un arc dont la suppression augmente le
nombre de composantes connexes du graphe.
Remarque :
Lorsquon ajoute un arc un graphe,
- ou bien le nombre de composantes connexes diminue, auquel cas cet arc
nappartient aucun cycle du nouveau graphe ;
- ou bien le nombre de composantes connexes reste inchang, auquel cas cet arc
appartient ncessairement au moins un cycle du nouveau graphe.
Consquence : Un isthme nappartient donc aucun cycle.
Thorme 2 : Soit G = (X,U) un graphe sur (X(= n sommets.
1/ si G set connexe alors (U( > n-1,
2/ si G est sans cycle alors (U( s n-1.
Dmonstration : On construit G partir de (X,C) en ajoutant les arcs un un. Notons
que admet n composantes connexes
Si G est connexe, cette construction fait passer dun graphe ayant n composantes
connexes un graphe ayant une seule composante connexe. En vertu de la remarque
prcdente, au moins n-1 tapes (et donc au moins n-1 arcs) sont ncessaires dans
cette construction.
www.almohandiss.com
68
Si G est sans cycle, chaque adjonction darc a pour effet, en vertu de la remarque
prcdente, de diminuer le nombre de composantes connexes. Do le rsultat
recherch.
Remarque : La recherche dun rseau connexe minimal nous oriente naturellement
vers les rseaux connexes sans cycle.
Dfinition 10 : Un arbre est un graphe connexe sans cycle.
Thorme 3 : Soit G =(X ,U) un graphe sur n>2 sommets. Les proprits suivantes sont
quivalentes et caractrisent un arbre :
(i) G est sans cycle et connexe,
(ii) G est sans cycle et (U( = n-1,
(iii) G est sans cycle et il est maximal pour cette proprit ( cest dire que
ladjonction dun arc quelconque cre un cycle),
(iv) G est connexe et (U( = n-1,
(v) G est connexe et il est minimal pour cette proprit ( cest dire que la
suppression dun arc quelconque fait apparatre deux composantes
connexes diffrentes),
(vi) Dans G, il existe une et une seule chane joignant tout couple de sommets.
Dfinition 11 : Une fort est un graphe dont toute composante connexe est un
arbre.
Thorme 4 : Un arbre sur n>2 sommets admet au moins deux sommets pendants
(i.e de degr 1).
II Problme de larbre de poids optimal
Position du problme :
On considre un graphe G=(X,U) et une fonction appele poids c : U(R. Le
problme consiste dterminer un graphe partiel (X,T) de G tel que :
1/ (X,T) soit un arbre
2/

eT u
u c ) ( soit optimum ( i.e maximum ou minimum selon le contexte).

www.almohandiss.com
69
Applications : Design de rseaux lectriques, tlphoniques, informatiques,<
Exemple : Dans le graphe de la figure 3, les sommets 1, 2, 3 et 4 sont des puits dans un
gisement off shore de ptrole et le sommet 5 est un terminal on shore. Le top-
management doit dcider linstallation de pipelines pour relier les puits au terminal 5.
Dans ce but, il a fait faire une tude pour avoir une estimation du cot dinstallation
de chaque pipeline potentiel (le cot estim en millions de dollars est port en regard
des artes).











Remarque : Soient G=(X,U) un graphe connexe sans boucle et T_U tel que (X,T) soit
un arbre. Soit u e U\T. On note Cu
T
lunique chane joignant les extrmits de u dans
(X,T).
Soit veT. On note Ov
T
lensemble des arcs de G dont les extrmits nappartiennent
pas la mme composante connexe de (X,T\{v}).
Remarque : Sans perte de gnralit et pour fixer les ides, on suppose que (X,T) est
un arbre de poids minimum.
Soit u e U\T. Remplacer nimporte quel arc de Cu
T
par larc u permet dobtenir
nouveau un arbre ( le poids de ce nouvel arbre doit tre suprieur ou gal celui de
(X,T)).
On doit donc avoir la relation
c(u) > max{c(v) ; ve Cu
T
}.
10
6
3
1
2
3
4
5
3 8
7
5

3
2
4
Figure II-1
www.almohandiss.com
70
Soit v e T. Remplacer dans (X,T) larc v par nimporte quel arc appartenant Ov
T
permet dobtenir nouveau un arbre ( le poids de ce nouvel arbre doit tre suprieur
ou gal celui de (X,T)). On doit donc avoir la relation
c(v) s min{c(u) ; ue Ov
T
}.
Le thorme 5 permet dtablir que ces deux relations sont galement suffisantes. De
plus, chacune delle pourra tre exploite pour conduire un algorithme de
dtermination dun arbre de poids optimal.
Thorme 5 : Soient G=(X,U) un graphe connexe sans boucle et T_U tel que (X,T) soit
un arbre. Les deux conditions suivantes sont quivalentes et caractrisent un arbre de
poids minimum (resp.maximum) :
(i) c(u) > max{c(v) ; ve Cu
T
} (resp. c(u) s min{c(v) ; ve Cu
T
}) ueT
(ii) c(v) s min{c(u) ; ue Ov
T
} (resp. c(v) > max {c(u) ; ue Ov
T
} veT.
La dmonstration de ce thorme est laisse titre dexercice.
III Algorithme de KRUSKAL
Hypothse : On suppose quon un graphe G=(X,U) connexe sans boucle ayant n
sommets et m arcs. On numrote les arcs par ordre croissant (resp.dcroissant de
leurs poids).
Algorithme de Kruskal :
T := C ;
Pour j=1 jusqu m faire
si T{uj} ne contient pas de cycle alors
T := T{uj} ;
si |T|=n-1 alors
(X,T) est un arbre de poids minimum (resp.maximum lgende
STOP
fin si
fin si
www.almohandiss.com
71
fin pour
(X,T) est un arbre de poids minimum (resp.maximum)
STOP
Validit de lalgorithme : Le graphe (X,T) que lalgorithme permet dobtenir en fin
dapplication est un arbre car il est sans cycle maximal. De plus, il satisfait la
condition (i) du thorme 5.
Remarque : Il existe une variante de lalgorithme de Kruskal qui tire profit de la
condition (ii) du thorme 5.
Variante de lalgorithme de KRUSKAL
Hypothse : On suppose quon a un graphe G=(X,U) connexe sans boucle ayant n
sommets et m arcs. On numrote les arcs par ordre dcroissant (resp.croissant de
leurs poids).
T := U ;
Pour j=1 jusqu m faire
si T\{uj} ne contient pas de cycle alors
T := T\{uj} ;
si |T|=n-1 alors
(X,T) est un arbre de poids minimum (resp.maximum lgende
STOP
fin si
fin si
fin pour
(X,T) est un arbre de poids minimum (resp.maximum)
STOP.
Exercice : Rsoudre le problme des pipelines en utilisant les deux variantes de
Kruskal.



www.almohandiss.com
72
www.almohandiss.com
73
Chapitre III
Problme de cheminement dans un graphe et problme
dordonnancement de projets

I Prliminaires
Position du problme du plus court chemin :
Soient G=(X,U) un graphe orient et une fonction appele longueur d : U(R. La
longueur dun chemin C est gale :
l(C) =

eC u
u d ) (
Le problme du plus court chemin dun sommet x un sommet y consiste
dterminer un chemin de x y de longueur minimum.
En fait, trois cas de figure peuvent se prsenter :
1/ Il nexiste aucun chemin de x y : on dit alors que le problme est non
ralisable .
Exemple :

2/ Il existe un plus court chemin de x y : on dit alors quon a un optimum fini .
Exemple :


3/ Il existe un chemin de x y mais il nen existe pas de plus court.
Exemple




-6
1
1
1
1
x


y
x


y
x y
z
3
www.almohandiss.com
74

Dfinitions:
- On appelle circuit absorbant un circuit dont la somme des longueurs des arcs
est ngative.
- Un sommet s est dit racine sil existe un chemin de s tout autre sommet du
graphe.
- Une arborescence de racine s est un arbre admettant s comme racine.
Notre objectif ici est de rsoudre le problme qui consiste dterminer les plus
courts chemins dune racine s tout autre sommet et non un seul plus court chemin
entre deux sommets particuliers.
Thorme 6 : Une condition ncessaire et suffisante pour que le problme des plus
courts chemins issus de s ait une solution est que :
1/ s soit racine,
2/ le graphe ne contienne pas de circuit absorbant.
Dmonstration :
a- la condition 1/ est videmment ncessaire
b- montrons que la condition 2 est ncessaire.
Raisonnons par labsurde : supposons quil existe un circuit absorbant I. Soit C un
chemin de s un sommet x appartenant I. Pour tout oe(R, il existe un entier k tel
que l(C(kfoisI))<o. Le problme serait donc non born une contradiction-
c- Montrons que si les conditions 1/ et 2/ sont satisfaites alors le problme
des plus courts chemins issus de s a une solution.
Raisonnons par labsurde : supposons quil existe un sommet x tel quil nexiste pas
de plus court chemin de s x.
Puisque s est racine, il existe un chemin de s x. Soit donc C un plus court chemin
lmentaire de s x . C nest pas un plus court chemin de s x. Soit C un chemin de
s x de longueur strictement infrieure l(C). On choisit Cde telle manire quil ait
le minimum darcs (ceci implique que la longueur de tout chemin de s x ayant
moins darcs que C est au moins gale l(C) ). Ncessairement C nest pas
www.almohandiss.com
75
lmentaire. Il contient donc un circuit (disons I) . Posons C =C\I. C est aussi un
chemin de s x et il a moins darcs que C. On a donc : l(C)< l(C)s l(C)= l(C)-l(I), ce
qui implique que l(I) < 0 . I serait donc un circuit absorbant- une contradiction-
Dfinition 13 : On appelle plus courte distance de x y la longueur d'un plus court
chemin de x y (sous rserve dexistence).
Remarque : La connaissance des plus courtes distances de s aux autres sommets
permet de trouver des plus courts chemins issus de s.
Thorme 7 : Une condition ncessaire et suffisante pour que des nombres associs
aux sommets (disons t(x)) soient les plus courtes distances de s x est que :
(i) t(s)=0
(ii) t(y)- t(x) s d(x,y)
(iii) s est racine dans le graphe partiel (X,U)construit sur les arcs satisfaisant la
condition (ii) avec galit.
Dmonstration :
Dmontrons le caractre ncessaire des trois conditions.
On suppose que le problme des plus courts chemins issus de s a une solution. Cela
implique, daprs le thorme 6, quil ny pas de circuit absorbant et donc que t(s)=0.
Par ailleurs, soient (x,y) un arc et C un plus court chemin de s x. On a
l(C{(x,y)})>t(y), ce qui implique que la condition (ii) est satisfaite.
A prsent, dmontrons le caractre suffisant des trois conditions.
Soit C un chemin quelconque de s x. On a : l(C) =

eC u
u d ) ( >t(x)-t(s)=t(x) (daprs(i) et
(ii)).
Tout chemin de s x dans (X,U) est de longueur t(x), cqfd.
II Algorithmes du plus court chemin
Les plus courts chemins issus de s (sous rserve dexistence) quon construit seront
prsents laide dune arborescence de racine s : un plus court chemin de s un
sommet x sera en fait lunique chemin (et mme chane) joignant s et x.
www.almohandiss.com
76
On peut dmontrer que dans une arborescence tout sommet diffrent de la racine a
un demi-degr intrieur gal 1. Larborescence rsultat sera dcrite laide dune
application A dfinie sur X et valeurs dans U qui tout sommet diffrent de s
associe lunique arc de larborescence qui lui est incident intrieurement.
Les algorithmes prsents dans ce cours supposent tous une hypothse gnrale,
savoir que s est racine.
1/ Algorithme de Bellman
Hypothse particulire : G ne contient pas de circuit.
Remarque : Lhypothse gnrale et lhypothse particulire garantissent, en vertu
du thorme 6 lexistence de solution pour le problme des plus courts chemins issus
de s.
Lalgorithme de Bellman est bas sur une approche type programmation dynamique.

Algorithme de Bellman :
* S reprsente lensemble des sommets pour lesquels la plus courte distance partir
de s a dj t calcule.*
S :={s} ; t(s) :=0 ;
tantque - yeS dont tous les prdcesseurs sont dans S faire
t(y) :=min{t(x)+d(x,y) ; (x,y) eU}
Soit = (x,y) tel que t(y)=t(x)+d(x,y) ;
A(y) := ; S :=S{y}
Fintantque
STOP
Validit de lalgorithme :
Lorsque lalgorithme sarrte, S contient tous les sommets. En effet, dans le cas
contraire il existerait un sommet en dehors de S qui aurait un prdcesseur en dehors
de S, lequel prdcesseur aurait lui mme un prdcesseur en dehors de S et ainsi on
www.almohandiss.com
77
mettrait en vidence lexistence dun circuit ce qui contredirait lhypothse
particulire. De plus, les valeurs t(x) satisfont les conditions du thorme 7.
Exercice : Appliquer lalgorithme de Bellman pour dterminer larborescence des plus
courts chemins issus du sommet s dans le graphe de la figure III-4 :





2/ Algorithme de DIJKSTRA
Hypothse particulire dapplication : d(u)>0 ueU.
Ici, les t(x) sont calculs de proche en proche par ajustements successifs. Lensemble
S contient les sommets x pour lesquels t(x) ne change plus (car c'est alors la plus
courte distance issue de s).

Algorithme de DIJKSTRA :
*Initialisation*
S :={s} ; k :=1 ; xk :=s ; t(s) :=0 ; t(x) :=+ x=s ;
tantque k<n faire
*Mise jour des potentiels des successeurs de xk*
Pour tout successeur x de xk non dans S faire
si t(x) > t(xk) + d(xk,x) alors
t(x) := t(xk) + d(xk,x) ;
A(x) := (xk,x) ;
finsi
finpourtout
2
1 2
5 -1
3
-2
2
3
1
s
2
4
3
5
6
Figure III-4
www.almohandiss.com
78
* Extension de S*
choisir xeS telque t(x)=min{t(y) ; yeS} ; k :=k+1 ; xk :=x ; S :=S{x}
fintantque
STOP
Validit de lalgorithme :
On dmontre que t(x) reprsente litration k (et de manire plus prcise aprs
mise jour des potentiels des successeurs de xk) la longueur du plus court chemin de
s x dont tous les sommets intermdiaires sont dans S.
Comment justifier lextension ? En dautres termes, pourquoi le sommet xeS telque
t(x)=min{t(y) ; yeS} a un potentiel optimal (i.e t(x)reprsente la plus courte distance
de s x)?
Raisonnons par labsurde : supposons lexistence dun chemin C de s x tel que l(C)<
t(x).
Soit y le premier sommet non dans S que C emprunte en allant de s vers x. On a :
- l(C)= t(y)+l(Cyx) (Cyx reprsente la portion du chemin C allant de y x).
- l(C)< t(x).
- t(x)s t(y) (daprs la procdure de choix de x dans la phase dextension de S).
Ceci impliquerait que l(Cyx) <0. Ceci est en contradiction avec lhypothse de travail
savoir d(u)>0 ueU.
Exercice : Appliquer lalgorithme de Dijkstra pour dterminer larborescence des plus
courts chemins issus du sommet 1 dans le graphe de la figure III-5 :







1
1
2
3
1
4
1
1
5
8
2
2
5
3
4
6
Figure III-5


www.almohandiss.com
79

3/ Algorithme gnral (d entre autres Dantzig, Ford, Fulkerson,..)
Cet algorithme ne requiert pas dhypothse particulire (autre que l'hypothse
gnrale). Lobjectif ici est de dtecter lexistence dun circuit absorbant ou bien de
construire une arborescence des plus courts chemins issus de s.
Algorithme :
(0) Soit (X,U) une arborescence de racine s dfinie par lapplication A qui associe
chaque sommet diffrent de s larc de larborescence qui lui est incident
intrieurement. Calculer les potentiels correspondants en posant t(s)=0 et en
imposant pour tout arc u=(x,y) dans U la condition ddp(u)(=t(y)-t(x))=d(u).
(1) tantque - u=(x,y) (eU) tel que d(u)<ddp(u) faire
si (X,U{u}) contient un circuit (disons I) alors
Le problme na pas de solution car I est un circuit absorbant
STOP
sinon
U :=U{u}\A(y) ;
A(y) :=u ;
Mettre jour les potentiels des sommets de la sous-arborescence de
racine y ;
finsi
fintanque
Larborescence courante est une arborescence des plus courts chemins issus de s .
STOP

Application de cet algorithme au rseau de la figure III-6 :



1
1
2
3
1
4
1
1
-5
8
2
2
5
3
4
6
Figure III-6

www.almohandiss.com
80

Il est clair ici quon ne peut appliquer ni lalgorithme de Bellman ({2,3,6} est un
circuit) ni celui de Dijkstra (d(2,5)<0). Cependant on peut appliquer lalgorithme de
Djikstra pour dterminer une arborescence de racine s pour initialiser lalgorithme
gnral (les arcs de larborescence sont reprsents laide de flches doubles).








Larc u=(2,5) satisfait la condition du tantque : en effet ddp(u)= 5-2=3>-5=d(u).
Ladjonction de u larborescence ne cre pas de circuit. On retient u et on fait sortir
de larborescence lunique arc de larborescence incident intrieurement y, savoir
larc (3,5).








Maintenant, larc u=(6,2) satisfait la condition du tantque : en effet
ddp(u)=2-(-2)=4>3=d(u). Ladjonction de u larborescence courante cre le
circuit {(2,5),(5,6),(6,2)}.
0
2
5
6
3
4
1
1
2
3
1
4
1
1
-5
8
2
2
5
3
4
6
Figure III-7
-3
-2
0

2 3
4
1
1
2
3
1
4
1
1
-5
8
2
2
5
3
4
6
Figure III-8
www.almohandiss.com
81
Ce circuit est absorbant. On arrte lalgorithme en affirmant que le problme na pas de
solution ou encore quil est non born en mettant en vidence le circuit absorbant
dtect.
Justification de lalgorithme gnral :
Il sagit de justifier les deux STOP et de vrifier que lalgorithme sarrte au bout
dun nombre fini ditrations.
- Quand au cours de lapplication de lalgorithme, on rencontre le premier STOP,
on a :
l(I) =

I e u
u d ) ( <

I e u
u ddp ) ( =0,
I est par consquent un circuit absorbant.
- Quand au cours de lapplication de lalgorithme, on rencontre le 2
me
STOP,
les potentiels t(x) satisfont toutes les conditions du thorme 7 et reprsentent
donc les plus courtes distances partir de s.
- A chaque itration, le terme
eX x
x) ( t dcrot strictement. Le nombre
darborescences tant fini (au plus Cm
n-1
arborescences diffrentes),
lalgorithme est donc fini.
III Problme dordonnancement simple
Position du problme dordonnancement en gnral : La ralisation de projets complexes
comme par exemple la construction dun barrage, linstallation dune nouvelle chane
de production, linstallation dun nouveau systme dinformation, <, requiert une
planification au pralable et un contrle au cours de lexcution. Les problmes lis ces
objectifs sont des problmes dordonnancement. On cherche un ordre dexcution des
diffrentes tches de manire optimiser un certain critre (par exemple minimiser la
dure dexcution du projet) tout en satisfaisant certaines contraintes (par exemple
antriorit de certaines tches par rapport dautres, non simultanit de certaines
tches, disponibilits de certains moyens,..) et donner un calendrier dexcution.
www.almohandiss.com
82
Dfinition 14 : On dit quon a un problme dordonnancement simple quand on doit
trouver un calendrier pour la ralisation de tches dont les dures sont connues avec
certitude, indpendantes des dates de dbut et des moyens disponibles, sous
contraintes dantriorit.
Les mthodes les plus connues sont :
- la mthode PERT (Program Evaluation and Review Technique)
- la mthode CPM ( Critical Path Method) ;
Un exemple : problme dordonnancement des travaux de construction dune maison.
Intitul Code Dure Tche(s) antrieure(s)
Gros-uvre A 30 -
Installation sanitaire et lectrique B 5 A
Travaux de plafonnage C 12 A
Faade D 17 A
Carrelage E 4 B,C
Menuiserie F 3 C
Peinture G 14 E,F
Amnagement du jardin H 8 D
On modlise le problme qui consiste minimiser la dure de ralisation de la
maison laide dun rseau.
1/ Rseau potentiels-tches ( B. Roy, 1960)
- A chaque tche i est associ un sommet du rseau.
- On dfinit un arc (i,j) de longueur la dure de la tche i si celle-ci doit prcder
la tche j. Notons que le rseau G ainsi construit est sans circuit ( moins quil
ny ait un bug dans lnonc ; ceci implique lexistence dau moins un sommet
sans prdcesseur et dau moins un sommet sans successeur).
- On ajoute ensuite deux sommets fictifs dbut et fin .
www.almohandiss.com
83
- On dfinit un arc ( dbut ,j) de longueur nulle pour tout sommet j sans
prdcesseur et un arc (i, fin ) de longueur gale la dure de i pour tout
sommet i sans successeur.
www.almohandiss.com
84
On obtient pour notre exemple le rseau de la figure III-9 :








Notre objectif : le travail tant suppos commencer t=0, on cherche un
ordonnancement des diffrentes tches qui minimise la dure totale du projet et donc
la date de fin du projet. Notons que pour quune tche puisse commencer, il est
ncessaire que toutes celles qui lui sont antrieures soient termines. Si on dsigne
par ti la date au plus tt laquelle la tche i peut commencer, alors on a :
ti = max{tj+dj ; j prdcesseur de i} o dj reprsente la dure de j.
Consquence : ti est la longueur dun plus long chemin de dbut i.
La dure minimum du projet est donc la date au plus tt de fin tfin.
Connaissant la dure minimum du projet, un facteur important matriser dans le
pilotage du projet est la marge dont on dispose pour chaque tche sans pour autant
augmenter la dure du projet.
Dfinitions : On appelle date au plus tard de i note Ti la date maximum
laquelle i peut commencer de manire terminer le projet la date tfin. On a donc :
Tfin=tfin
Ti = min{Tj-di ; j successeur de i}
Ti = Tfin-max{di+( Tfin-Tj) ; j successeur de i}.
Si on pose q(j)= Tfin-Tj alors on aura :
Ti = Tfin-max{di+q(j); j successeur de i}avec q(Tfin)=0. Do :
Ti = Tfin- longueur dun plus long chemin de i fin .
4 5
0
17
dbut
12
12
3 14 30
30
30
B
C
D
H
F
E
G
fin
A
8
Figure III- 9
www.almohandiss.com
85
Dfinitions 15 : La marge totale note mi dune tche est le retard que lon peut
prendre dans la ralisation de cette tche sans retarder lensemble du projet. Elle est
gale la diffrence entre sa date au plus tard et sa date au plus tt :
Marge totale de i = Ti-ti (elle est note mi)
La marge libre dune tche est le retard que lon peut prendre dans la
ralisation de cette tche sans retarder la date au plus tt de toute tche qui la suit :
Marge libre de i = min{tj-ti-di ; j successeur de i}.
Une tche i est dite critique lorsque sa marge totale est nulle.
Un chemin critique est un plus long chemin de dbut fin . Il est
constitu uniquement de tches critiques.
Remarque : Si un retard est pris sur une tche critique, la dure minimum du projet
sera augmente dautant. Par ailleurs, si lon veut diminuer la dure minimum dun
projet, il est ncessaire de diminuer la dure dau moins une tche critique. Il faut
noter que si la dure dune tche critique est diminue, la dure minimum du projet
nest pas forcment diminue dautant.
Calendrier dexcution :
a b c d e f g h
0 tbe[30,37] 30 tde[30,35] 42 tfe[42,43] 46 te[td+17,52]

2/ Rseau potentiels-tapes - appel aussi rseau PERT-(d Roseboom, Clark et
Fazar (1959)
Dfinitions 16 :
*A un problme dordonnancement simple, on associe un rseau PERT R=(X,U,d)
o les sommets correspondent des tapes du problme - dont une tape dbut et
une tape fin - et o les arcs correspondent :
- soit des tches relles en fait, chaque tche correspond exactement un arc
et la longueur de cet arc est gale la dure de la tche qui lui correspond-
- soit des tches fictives de dure nulle qui permettent dexprimer des
contraintes dantriorit.
www.almohandiss.com
86
* Une tape y est dite atteinte si toute tche correspondant un arc incident
intrieurement y (i.e de la forme (x,y) est termine).
Remarques :
- Une tche (x,y) ne peut commencer que si x est atteinte.
- Il existe plusieurs manires de dfinir un rseau PERT. Une fois que le
rseau est arrt, le problme dordonnancement peut se formuler sans
ambiguit : il sagit dassocier aux diffrentes tapes des potentiels nots t(.)
tels que :
t(y)- t(x) > d(x,y) (x,y)eU
t(fin) soit minimum
- Voici une manire canonique dassocier un rseau PERT un problme
dordonnancement.
1- On associe chaque tche u un arc (I(u), T(u)) de longueur d(u).
2- Si la tche u est antrieure la tche v , on ajoute un arc (T(u),I(v)) de
longueur O.
3- On introduit deux sommets fictifs dbut et fin .
4- On ajoute un arc ( dbut , y) de longueur 0 pour tout sommet y sans
prdcesseurs.
5- On ajoute un arc (x, fin ) de longueur 0 pour tout sommet x sans
successeurs.

Pour notre exemple, on obtient le rseau de la figure III-10 :







A /30
H/8


G/14

F/3

E/4

D/17

C/12

B/5

0
0
0
0
0
0
0
0
0
0 0
dbut
fin
0
Figure III- 10
www.almohandiss.com
87
6- On cherche alors simplifier le rseau ainsi obtenu : cette fin, on peut
appliquer par exemple les deux oprations suivantes :
6.1 Si le chemin {(x,y),(y,z)} est tel que (x,y) correspond une tche relle
(disons u de dure d), (y,z) correspond une tche fictive et y est un sommet
de degr 2 alors le remplacer par le seul arc plein (x,z) correspondant la
tche u de dure d.



6.2 Si le chemin {(x,y),(y,z)} est tel que (x,y) correspond une tche fictive, (y,z)
correspond une tche relle (disons u de dure d) et y est un sommet de
degr 2 alors le remplacer par le seul arc plein (x,z) correspondant la tche u
de dure d.


Le rseau obtenu partir du rseau de la figure III-10 en appliquant ces deux
oprations est reprsent la figure III-11 :












Remarquons ici quon na pas pu supprimer toutes les tches fictives.
u/d
x y z
u/d
x y
u/d
x y z
u/d
x y
A /30
H/8


G/14

F/3

E/4

D/17

C/12

B/5

0

dbut
fin

Figure III- 11
www.almohandiss.com
88
Dfinitions 17 :
* Une tche est dite critique si tout retard pris sur lexcution de cette tche se
rpercute sur la dure minimum du projet.
* La date au plus tt de x, note t(x), est la date minimum laquelle x peut
tre atteinte.
* La date au plus tard de x, note q(x), est la date maximum laquelle x peut
tre atteinte sans retarder lensemble du projet.
* La marge dune tche correspondant larc u=(x,y), note o(u), est
laccroissement maximum que peut tolrer la dure de u sans affecter la dure
minimum du projet. Si o(u)=0, la tche est dite critique. Un chemin de
dbut fin constitu uniquement de tches critiques est dit critique.
Remarques :
- t(x)est gale la longueur dun plus long chemin de dbut x.
- q(x) est gale t( fin ) moins la longueur dun plus long chemin de x
fin .
- o(u) est gale q(y)- t(x)-d(u)
Question : A quoi correspondent les sommets dans le rseau de la figure III-11 ?
IV Quelques problmes dordonnancement non simples
Dans ce paragraphe, nous allons nous limiter deux mthodes qui peuvent tre
utilises dans le contexte de problmes dordonnancement non simples.
1/ Mthode PERT
Ici, les dures ne sont pas connues avec certitude. Les donnes dont on dispose pour
toute tche u sont :
- sa dure la plus probable, note m(u),
- sa dure la plus courte possible, note a(u),
- sa dure la plus longue possible, note b(u).
On fait les hypothses suivantes :
www.almohandiss.com
89
- la dure dune tche quelconque u est une variable alatoire suivant une loi |.
Lesprance et lcart-type sont donc donns par :
d(u)=1/6(4m(u)+a(u)+b(u))
o(u)=1/6(b(u)-a(u)).
- Si un chemin est critique lorsque les dures des tches considres sont les
esprances des dures alors ce chemin reste critique quelles que soient les
dures des tches considres.
- Les dures des tches sont des variables alatoires indpendantes.
- La dure dexcution du projet suit une loi normale.

Moyennant ces hypothses, on peut dterminer la probabilit pour que la dure du
projet soit infrieure ou gale un nombre t donn :
a- On reprsente le rseau PERT en prenant comme dures des tches les
esprances de leurs dures.
b- On dtermine un chemin critique C. Soient L sa longueur et o
2
=

eC u
u iance ) ( var
c- P( dure du projet s t) = u((t-L)/o)

2/ Mthode CPM (Critical Path Method)
Contexte : On cherche acclrer lexcution dun projet moyennant des ressources
supplmentaires.
Donnes : Pour chaque tche u, on connat :
- sa dure normale d(u)
- sa dure minimale d(u)
- le cot unitaire c(u) de diminution de la dure de u (i.e pour rduire la dure
de u de n units de temps, il faut payer n*c(u)).
Problme : Comment rpartir au mieux le budget disponible b de manire
minimiser la dure globale du projet ?
Notons que le problme du plus long chemin peut se formuler comme suit :
www.almohandiss.com
90
t(T(u))-t(I(u))>dure de u
t( fin )= z(min)
Notre problme peut donc se ramener au programme linaire mixte ci-dessous o les
variables t(.) sont des rels et les variables x(u) des entiers :
t(T(u))-t(I(u))> d(u)-x(u) pour toute tche u
d(u)-x(u) > d(u) pour toute tche u

eU u
u c u x ) ( ) ( sb
t( fin )=z(min)
Exercice : Dans un problme dordonnancement, on dispose des donnes regroupes
dans le tableau ci-dessous :
Tche dure tches antrieures m(u) a(u) b(u)
(1,2) 4 - 4 2 6
(2,4) 7 (1,2) 7 4 10
(2,3) 8 (1,2) 7 6 14
(2,5) 6 (1,2) 6 3 9
(4,6) 15 (2,4),(2,3) 14 12 22
(3,5) 9 (2,3) 10 2 12
(5,6) 12 (2,5),(3,5) 9 6 12
(6,7) 8 (4,6),(5,6) 7 5 15

1/ Dessiner un rseau PERT en considrant les dures donnes dans la 2
me
colonne
du tableau ci-dessus.
2/ Trouver les dates au plus tt et les dates au plus tard. Donner un calendrier
dexcution des diffrentes tches.
3/ On prend en considration les donnes sur les dures prsentes dans les 3
dernires colonnes du tableau. Calculer la probabilit pour que le projet puisse se
terminer en moins de 45 units de temps.

www.almohandiss.com
91
Chapitre IV
Problme du postier chinois

I Cycles eulriens
Dfinition 18 : Un cycle dans un graphe est dit eulrien sil contient tous les arcs du
graphe. Un graphe est dit eulrien sil contient un cycle eulrien.
Remarque :
Dans ces deux notions, lorientation des arcs na pas dimportance. Le graphe
peut donc tre orient ou non.
Un cycle est un graphe connexe dont tous les sommets sont de degr pair.
Thorme 8 : Une condition ncessaire et suffisante pour quun graphe soit eulrien
est quil soit connexe et que tous ses sommets soient de degr pair.
Dmonstration :
1/ La condition ncessaire est tout simplement une consquence de la remarque
prcdente.
2/ Preuve de la condition suffisante :
Raisonnement par labsurde :
On suppose lexistence dun graphe G=(X,U) non eulrien satisfaisant les conditions
du thorme. On choisit G tel quil ait un nombre minimum darcs (cela implique que
tout graphe ayant moins darcs que G et satisfaisant les conditions du thorme est
ncessairement eulrien).
Notons que G contient forcment un cycle (car sinon ce serait un arbre et contiendrait
par consquent au moins deux sommets pendants, donc au moins deux sommets de
degr impair).
Soit I un cycle de G ayant un nombre maximum darcs (cela implique que tout
graphe partiel de G ayant plus darcs que I nest pas un cycle). Notons que U\Iest
non vide (car G est non eulrien). Considrons une composante connexe G de
www.almohandiss.com
92
(X,U\I). G est connexe et tous ses sommets sont de degr pair. Il est donc eulrien
puisque G est suppos tre le plus petit contrexemple en termes du nombre darcs. G
admet donc un cycle eulrien (disons I). Les cycles I et I ont au moins un sommet
commun (car G est connexe). I I est un cycle contenu dans G une contradiction-
II Problme du postier chinois
Position du problme : Soient G=(X,U) un graphe non orient et l : U(R. Il sagit de
dterminer une tourne de longueur totale minimum pour un prpos aux P.T.T. qui
doit parcourir chaque arte au moins une fois.
Ce problme a t formul (entre autres) par un chinois du nom de Mei Ko Kwan. Il a
de nombreuses applications : problmes de collecte, problme de tourne dquipe
de maintenance,<
Remarque : Si G est eulrien, la solution consiste en un cycle eulrien I de G. Daprs
le thorme 8, vrifier si un graphe est eulrien est facile puisque cela revient
vrifier sil est connexe et si tous ses sommets sont de degr pair. Lalgorithme
suivant d Fleury permet de construire un cycle eulrien dans un graphe eulrien.
Algorithme de Fleury (de dtermination dun cycle eulrien dans un graphe
eulrien) :
(0) Partir dun sommet quelconque x et poser k=1 ;
(1) Choisir comme k
ime
arte de I une arte adjacente x dont la suppression ne
dconnecte pas le graphe (sauf si x est un sommet pendant auquel cas la k
ime

arte de I est lunique arte de G adjacente x). Retirer cette arte de G et
baptiser G le graphe ainsi obtenu. Soit x lautre extrmit de cette arte. Poser
k :=k+1 et aller en (1).
Remarque : Lorsque le graphe est eulrien, la tourne optimale passe une et une seule
fois par chaque arte. Par contre lorsque le graphe nest pas eulrien, on est oblig
demprunter certaines artes plus dune fois. La tourne recherche est un cycle
eulrien dans un graphe obtenu partir de G en dupliquant certaines artes. Le
problme revient donc la dtermination des artes dupliquer de manire obtenir
www.almohandiss.com
93
partir de G un graphe eulrien de sorte que la somme des longueurs des artes
dupliques soit minimum.
Exemple :








Dans ce rseau, il y a deux sommets de degr impair, savoir les sommets 1 et 6. On
doit absolument dupliquer au moins une arte adjacente tout sommet de degr
impair dans le graphe de dpart. Prenons le sommet 1 : si on duplique larte (1,2)
alors pour que 2 reste de degr pair, il faut dupliquer une autre arte adjacente 2. Si
on duplique larte (2,3) alors pour que 3 reste de degr pair, il faut dupliquer une
autre arte adjacente 3 et ainsi de suite. Ce processus ne peut sarrter que si on
atteint un sommet de degr impair, cest dire le sommet 6 dans notre cas. Comme
on veut minimiser la somme des longueurs des artes dupliques, il nous faut donc
dupliquer les artes dune plus courte chane de 1 6 dans le graphe de dpart, i.e les
artes (1,2), (2,7), (7,5) et (5,6). De manire gnrale, il va falloir coupler les sommets
de degr impair deux deux (ceci est possible puisque dans un graphe quelconque,
le nombre de sommets de degr impair est pair) et dupliquer pour chaque couple de
sommets ainsi form les artes dune plus courte chane reliant les sommets du
couple. On obtient le graphe ci-dessous :





3
1 2 2 2 1
2
1 2 3 4 5 6
7
7
1 1
1 1
1
1
5
2
5 4
3
1 2 2 2 1
2
1 2 3 4 5 6
7
7
1 1
1 1
1
1
5
2
5 4
www.almohandiss.com
94
Lorsquon applique lalgorithme de Fleury, on peut obtenir la tourne optimale :
{(1,2),(2,7),(7,2),(2,3),(3,7),(7,5),(5,7),(7,6),(6,5),(5,4),(4,7),(7,1),(1,2),(2,8),(8,3),(3,4),(4,8),
(8,5),(5,6),(6,8),(8,1)}.
Dfinition 19 : Un couplage est un ensemble dartes non adjacentes deux deux.
Un couplage est dit parfait si tout sommet du graphe est incident une arte du
couplage.
Un couplage parfait est dit de poids minimum si cest un couplage parfait dont la
somme des longueurs des artes est minimum.
Remarque : Un graphe complet sur un nombre pair de sommets admet un couplage
parfait. Il existe des algorithmes efficaces pour dterminer dans un graphe un
couplage parfait de poids minimum. Nous ne les tudierons pas ici.
On considre le graphe annexe G complet ( i.e. tous les sommets y sont relis deux
deux) dont lensemble des sommets est en bijection avec les sommets de degr
impair de G. Dans G, la longueur dune arte (i,j) est la plus courte distance de i j
dans G.
Algorithme de rsolution du problme du postier chinois
(1) Construire le graphe annexe G.
(2) Dterminer dans G un couplage parfait de poids minimum.
(3) Pour toute arte (i,j) de ce couplage, dupliquer dans G les artes appartenant
une plus courte chane reliant i et j.
(4) Appliquer un algorithme de dtermination dun cycle eulrien dans un
graphe eulrien (par exemple, celui de Fleury).
III Cycles hamiltoniens
Dfinition 20 : Un cycle dans un graphe G=(X,U) est dit hamiltonien sil passe une et
une seule fois par chaque sommet. Un graphe est dit hamiltonien sil possde un
cycle hamiltonien.
www.almohandiss.com
95
Remarque : Le nom de cycle hamiltonien a pour origine un jeu mathmatique
propos par un dnomm Hamilton sur le graphe reprsentatif du dodcadre
reprsent ci-dessous.










Remarque : Reconnatre si un graphe est hamiltonien est un problme trs difficile. Sa
complexit na rien voir avec celle du problme de la reconnaissance dun graphe
eulrien.
On ne connat pas de condition ncessaire et suffisante pour quun graphe soit
hamiltonien. On connat cependant quelques conditions ncessaires comme par
exemple :
Si G=(X,U) est hamiltonien alors pour tout sous-ensemble S de X, le nombre de
composantes connexes du sous-graphe de G construit sur X\S est infrieur ou gal
la cardinalit de S. Cette condition nest pas suffisante. Le graphe de Petersen
reprsent ci-dessous est un contrexemple.




www.almohandiss.com
96
IV Problme du voyageur de commerce
Position du problme : Etant donnes n villes et les distances intervilles, trouver une
tourne qui passe une et une seule fois par chaque ville et qui minimise la distance
totale parcourue.
Applications : Ordonnancement de n tches sur une machine (ici, la distance interville
reprsente le temps de set-up). Problmes de tournes de vhicules (les sommets
correspondent aux clients).
Les approches utilises en gnral reposent sur la programmation linaire en
nombres entiers, sur la relaxation lagrangienne, les heuristiques tels que le recuit
simul, la mthode tabou,<
www.almohandiss.com
97
Chapitre V
Problmes de flot

I Prliminaires
Soit G=(X,U) un graphe orient n sommets et m arcs u1, u2, <, um. Soit I un cycle
dans G. On fixe un sens de parcours sur I. Soit I
+
(resp. I
-
) lensemble des arcs de I
orients dans le sens (resp. contraire au sens) de parcours de I.
Au cycle I, on associe dans (R
m
son vecteur reprsentatif = (i)i=1,2,<m dfini par
+1 si ui e I
+
i= -1 si ui e I
-
0 si ui e I

Exemple :






Le vecteur reprsentatif de I={u1,u3,u5,u4}est
1
1
1
0
1

+


Dfinition 21: On appelle espace des flots F le sous-espace de (R
m
engendr par les
vecteurs reprsentatifs de cycles de G.
Remarque : Soit p le nombre de composantes connexes de G. On a alors :
dim(F) > m (n-p).
Dfinition 22: Soit Y_X. Soit alors O
+
(Y) (resp. O
-
(Y)) lensemble darcs de G ayant leur
extrmit initiale (resp.terminale) dans Y et leur extrmit terminale (resp. initiale)
u
4
u
3
u
5
u
2
1
4
2
5
3
u
1
www.almohandiss.com
98
hors de Y. Le cocycle relatif Y, not O(Y), est gal O
+
(Y) O
-
(Y). A O= O(Y), on
associe dans (R
m
son vecteur reprsentatif e= (ei)i=1,2,<m dfini par
+1 si ui e O
+
(Y)

ei= -1 si ui e O
-
(Y)

0 si ui e O
Exemple :
Le vecteur reprsentatif de O(Y) o Y={4,5}est
0
1
1
0
0

+
Dfinition 23: On appelle espace des flots T le sous-espace de (R
m
engendr par les
vecteurs reprsentatifs de cocycles de G.
Remarque : Soit p le nombre de composantes connexes de G. On a alors :
dim(T) > n-p.
Thorme 9: Les espaces F et T sont orthogonaux.
Consquence : dim(F) = m-n+p et dim(T) = n-p.
Dfinition 24 : Soit G=(X,U) un graphe n sommets x1, x2, <, xm et m arcs u1, u2, <, um.
La matrice dincidence aux arcs de G est la matrice nxm E=(Eij)dfinie par :
1 si xi=I(uj)
Eij = -1 si xi=T(uj)
0 si xi nest pas incident uj.
Exemple :
u1 u2 u3 u4 u5
1 0 +1 0 0 0
2 +1 -1 0 +1 0
3 -1 0 -1 0 0
4 0 0 0 -1 +1
5 0 0 +1 0 -1

Remarque:
www.almohandiss.com
99
Soit f un vecteur de (R
m
. f est un flot Ef=0
Remarque : Hormis leur intrt thorique, les problmes de flot ont un intrt
pratique car ils fournissent un cadre et un modle gnral pour un grand nombre de
problmes concrets. Citons quelques exemples :
- problmes de transport (routier, arien, ferroviaire),
- structuration et dimensionnement optimaux de rseaux de communication,
etc
On trouve essentiellement trois problmes :
- le problme du flot maximum,
- le problme du flot canalis maximum,
- le problme du flot de cot minimum.
II Problme du flot maximum
1- Position du problme :
On considre un rseau (X,U,c) o c est une application de U dans (R
+
qui associe
un arc u sa capacit , i.e la limite suprieure de la quantit de flux qui peut passer
sur u.
Le problme consiste alors envoyer la plus grande quantit de flux dun sommet
source s un sommet puits p sachant que ce flux doit tre conservatif en tout sommet
intermdiaire x, i.e la somme des flux sur les arcs entrant en x est gale la somme
des flux sur les arcs sortant de x.
Dfinition 25 : Soit G=(X,U) un graphe orient. Soit ur=(p,s) un arc spcial dit arc de
retour . Soit c : U (R
+
{+}.
Le problme du flot maximum de s p dans R=(X,U,c) consiste chercher f e (R
(
U
(
tel
que :
1/ f soit un flot sur (X,U),
2/ 0sf(u)sc(u) ueU ici, f(u) est la composante de f correspondant u-
3/ f(ur) soit maximum sous les conditions 1/ et 2/.
www.almohandiss.com
100
Remarque : ce problme peut se formuler comme un programme linaire de la
manire suivante :
Ef = 0
f s c (cette notation signifie : f(u)sc(u) ueU)
f > 0
Exemple de modlisation comme un problme de flot maximum:
Affectation de p tches q machines :
On connat pour chaque machine les tches quelle peut raliser. Lobjectif est de
dterminer le nombre maximum de tches pouvant tre excutes simultanment.
www.almohandiss.com
101


















Plusieurs extensions sont possibles :
- Cas de plusieurs sources et de plusieurs puits
- Cas de capacits aux nuds ( lorsque le flux transitant en un sommet est
limit comme par exemple un registre tampon).

2- Algorithme de Ford et Fulkerson pour dterminer un flot maximum.
Principe de lalgorithme : Lalgorithme procde par amliorations successives : partant
dun flot satisfaisant les conditions 1/ et 2/ (par exemple f identiquement nul), il
cherche augmenter f(ur) (si possible)- il faut noter que lalgorithme sarrte ds que
f(ur) vaut c(ur)-
Dfinition 26 :
Un flot est dit ralisable sil satisfait la condition 2/.
Un arc u est dit satur par un flot ralisable f si f(u)=c(u).
Comment peut-on chercher amliorer f(ur) ?
Une premire ide : Trouver un chemin C de s p dont aucun arc nest satur par f.
Lorsquon adjoint ur C, on obtient un circuit I. Soit le vecteur reprsentatif de I


t
i


m
j
Tches Machines
s p
Tous ces arcs existent
Cet arc existe seulement si
m
j
peut raliser t
j
Tous ces arcs existent
www.almohandiss.com
102
lorsquon prend comme sens de parcours le sens de ur. Soit c = min {c(u)-f(u)( ueI}; c
est strictement positif.
f+c est encore un flot ralisable qui permet damliorer f(ur).
Considrons lexemple ci-dessous :
www.almohandiss.com
103









Commenant avec un flot identiquement nul, si on applique cette ide avec les
chemins {(s,1),(1,2),(2,p)} et ensuite{(s,2),(2,p)}on obtient alors :








Cette fois-ci, cette ide nest plus applicable. Par contre larc (s,2) peut voir son flux
augmenter auquel cas il faudrait diminuer le flux sur larc (1,2). Mais alors il faudrait
augmenter le flux sur un arc sortant de 1 ou diminuer le flux sur un arc entrant en 1.
Do la deuxime ide (qui en fait englobe la premire)et qui peut se formuler
comme suit :
Trouver une chane lmentaire C joignant s et p telle que lorsquon prend le sens de
ur comme sens de parcours sur I=Cur, on ait :
c1 = min {c(u)-f(u)( ueI
+
}>0
c2 = min {f(u)( ueI
-
}>0
Poser c=min(c1,c2);
5 1
1
s
2
p
2
4
3

1
5 1
1
s
2
p
2
4
3

1
0
2
3
3
www.almohandiss.com
104
f(u)+c si ueI
+

f(u):= f(u)-c si u eI


f(u) si u eI
Dans lexemple, C:={(s,2),(1,2),(1,p)}, I
+
={(s,2),(1,p),ur} et c1 =2, I
-
={(1,2)}et c2 =1, do
c=1.








Algorithme de Ford et Fulkerson
Donnes: R=(X,U,c) un rseau; c : U (R
+
{+} ; ur=(p,s) un arc retour.
Notations : A(x) reprsente le dernier arc de la chane joignant s x et o(x)
reprsente la valeur courante de c au niveau de x .
(0) Soit f un flot ralisable sur R (on peut prendre f identiquement nul)
(1) Y :={s}; o(s) :=c(ur)-f(ur) ;o(s)=0 alors STOP sinon A(x) :=C xeX
(2) Si peY alors aller en (3) sinon essayer dtendre Y par lun des deux
processus suivants
a/ processus direct
si - u=(x,y) tel que xeY, yeY et f(u)<c(u) alors faire
Y :=Y{y} ; A(y) :=u ; o(y) :=min(o(x),c(u)-f(u)) ;aller en (2)
sinon b/processus inverse
si - u=(x,y)=ur tel que yeY, xeY et f(u)>0 alors faire
Y :=Y{x} ; A(x) :=u ; o(x) :=min(o(y),f(u)) ;aller en (2)
sinon STOP : on est loptimum
finsi
0
5 1
1
s
2
p
2
4
3

1
1
3
3
4
www.almohandiss.com
105
finsi
(3) Poser x=p ; I
+
:={ur} ; I
-
:=C
(i) si x=s alors aller en (4)
sinon soit u=A(x) ;
si x=T(u) alors
I
+
:= I
+
{u} ; X :=I(u) ; aller en (i)
sinon I
-
:= I
-
{u} ; X :=T(u) ; aller en (i)
(4) Poser o=o(p). Poser f(u) :=f(u)+c si ueI
+

f(u)-c si u eI


f(u) si u eI
+
I
-
aller en (1)

La justification de cet algorithme repose sur la remarque suivante. Au pralable,
nous avons besoin de la dfinition ci-dessous :
Dfinition 27: Soit O_U ; O est une coupe sparant s de p sil existe YcX tel que seY ,
peY et O=O
+
(Y). La capacit de O est note c(O) et elle vaut

O e u
u c ) (
Remarque : Soient f un flot ralisable et O une coupe sparant s de p. On a :
f(ur)sc(O) (*)
Ceci a pour consquence quon peut conclure de loptimalit de f lorsque cette
ingalit est une galit ( f(ps) est alors maximum et O est une coupe de capacit
minimum).
Pourquoi a-t-on la relation (*) ?
f est orthogonal au vecteur reprsentatif du cocycle O(Y)


+ O e ) (
) (
Y u
u f -

O e ) (
) (
Y u
u f = 0
f(O
+
(Y)) f(O
-
(Y)-{ur})=f(ur)
f(ur)sc(O).
Justification de la validit de lalgorithme de Ford et Fulkerson
1/ Le flot obtenu est ralisable par construction.
www.almohandiss.com
106
2/ Le premier critre darrt est vident.
3/ En ce qui concerne le deuxime critre darrt, il suffit de noter qu la dernire
itration, on a :
- pour tout u e O
+
(Y), on a f(u)=c(u),
-
pour tout u e O
-
(Y)-{ur}, on a f(u)=0.

Par consquent, f(ur)=c(O). En vertu de la remarque prcdente, f est un flot optimal.
Thorme 10 : Thorme de la coupe minimum :
La valeur maximum de f(ur) pour un flot ralisable f sur R=(X,U,c) est gale au
minimum de c(ur) et de la capacit minimum dune coupe sparant s de p.
Remarque : Lorsquon cherche augmenter la valeur maximum de f(ur), il est
ncessaire daugmenter la capacit dau moins un arc de toute coupe de capacit
minimum.
www.almohandiss.com
107
III Problme du flot canalis maximum
Dfinition 28 : Soient R=(X,U,b,c) un rseau et ur=(p,s) un arc spcial de retour o
b : U (R{-}.
c : U (R{+}.
b(u)sc(u)ueU
Le problme du flot canalis maximum de s p dans consiste dterminer f e (R
(
U
(

tel que :
1/ f soit un flot sur (X,U),
2/ b(u)sf(u)sc(u) ueU
3/ f(ur) soit maximum sous les conditions 1/ et 2/.
Remarque : Ce problme peut se formuler comme un programme linaire de la
manire suivante :
Ef = 0
bsf s c (cette notation signifie :b(u)sf(u)sc(u) ueU)
f(ur)=z(max)
Notons que ce problme nest pas ncessairement ralisable. Ceci dit, si on dispose
dun flot ralisable, alors on peut utiliser lalgorithme de Ford et Fulkerson pour
maximiser f(ur) en le modifiant lgrement :
Le processus inverse devient :
si - u=(x,y)=ur tel que yeY, xeY et f(u)>b(u) alors faire
Y :=Y{x} ; A(x) :=u ; o(x) :=min(o(y),f(u)-b(u)) ;aller en (2)
sinon STOP : on est loptimum
finsi
Afin de gnraliser le thorme de la coupe minimum, on introduit la dfinition
suivante :
Dfinition 29 : On appelle cocycle sparant s de p un ensemble darcs O tel que O=O(Y)
o seY et peY. La capacit de O est note c(O) et elle vaut :
c(O
+
(Y)) b(O
-
(Y)-{ur}).
www.almohandiss.com
108
Thorme 10
La valeur maximum de f(ur) (lorsque le problme est ralisable) est gale au
minimum de c(ur) et de la capacit minimum dun cocycle sparant s de p.
Dmonstration : Si f est ralisable alors f(ur)sc(O) pour tout cocycle O sparant s de p
(ureO
-
(Y)). En effet :
fO(Y) f(ur)= f(O
+
(Y)) f(O
-
(Y)-{ur})
f(ur)sc(O).
On suppose donc que le problme est ralisable. On peut appliquer lalgorithme de
Ford et Fulkerson modifi. Lorsque lalgorithme sarrte, il y a deux possibilits :
1/ f(ur)= c(ur)
2/ f(ur)< c(ur). Soit Y lensemble obtenu en fin dapplication de lalgorithme. On a :
fO(Y) f(ur)= f(O
+
(Y)) f(O
-
(Y)-{ur})
f(ur)=c(O(Y)).
Question : Comment initialiser ?









Rponse : Elle se trouve dans la dmonstration du thorme dHoffman ci-dessous.

Thorme11 : Thorme dHoffman
Une condition ncessaire et suffisante dexistence dun flot canalis est que :
Y_X,

O e ) (
) (
Y u
u b s

+ O e ) (
) (
Y u
u c (*)

(0,3) (-1,3)
1
s
(0,1)
(0,2)
(0,2)
(0,)



2
p
www.almohandiss.com
109
Dmonstration :
- Condition ncessaire : Soient f un flot canalis et Y_X.
f est orthogonal au vecteur reprsentatif du cocycle O(Y)


+ O e ) (
) (
Y u
u f =

O e ) (
) (
Y u
u f (*) (puisque f est canalis).
- Condition suffisante : La dmonstration est algorithmique. Elle se base sur un
algorithme qui permet de construire soit un flot canalis soit un ensemble Y
qui viole la condition dHoffman (*).
Algorithme :
(0) Soit un flot quelconque (on peut prendre f identiquement nul) ; si f est
ralisable alors STOP.
(1) A (R,f), on associe un rseau auxiliaire R=(X,U,b,c) o:
b(u)=min(f(u),b(u)) u
c(u)=min(f(u),c(u)) u
(Notons que f est ralisable dans R)
si - u
*
=(x,y) tel que f(u
*
)<b(u
*
) alors ajouter un arc ur=(x,y) avec :
b(ur)=0
c(ur)=b(u
*
)-f(u
*
)
f(ur)=0
appliquer lalgorithme de Ford et Fulkerson modifi pour maximiser le
flot sur larc ur
dans Raugment de ur. Soit f le flot obtenu.
Si f(ur)=c(ur) alors effacer ur et poser :
f(u) :=f(u) si u est diffrent de u*;
f(u*) :=f(u*)+f(ur) (=(b(u*)) aller en(2).
sinon STOP:Lensemble Y construit par lalgorithme de Ford et
Fulkerson modifi viole la condition (*) du thorme dHoffman et par
consquent le problme est non ralisable
Soit u
*
=(x,y) tel que f(u
*
)>c(u
*
). Ajouter un arc ur=(y,x) avec :
www.almohandiss.com
110
b(ur)=0
c(ur)= f(u
*
)-c(u*)
f(ur)=0
appliquer lalgorithme de Ford et Fulkerson modifi pour maximiser le
flot sur larc ur dans Raugment de ur. Soit f le flot obtenu.
Si f(ur)=c(ur) alors effacer ur et poser :
f(u) :=f(u) si u est diffrent de u*;
f(u*) :=f(u*)-f(ur) (=(c(u*)) aller en(2).
sinon STOP:Lensemble Y construit par lalgorithme de Ford et
Fulkerson modifi viole la condition (*) du thorme dHoffman et par
consquent le problme est non ralisable.
(2) si f est ralisable alors STOP sinon aller en (1).
Fin de lalgorithme.
Justification de lalgorithme :
Les premier et dernier STOPs sont vidents. Pour ce qui est du deuxime STOP, on
a :
yeY, xeY et f(u*)<b(u*)
ueO
+
(Y)f(u)=c(u)>c(u)

O e ) (
) (
Y u
u b >

+ O e ) (
) (
Y u
u c
ueO
-
(Y)-{u*}f(u)=b(u)sb(u)
Le troisime STOP se justifie de manire similaire: en effet, on a:
xeY, yeY et f(u*)>c(u*)
ueO
+
(Y) )-{u*}f(u)=c(u)>c(u)

O e ) (
) (
Y u
u b >

+ O e ) (
) (
Y u
u c
ueO
-
(Y)f(u)=b(u)sb(u)
Exemples:




0
(0,1)
(0,2)
2
(2,4)
2 2
(0,2)
1

1

1

1

3
2
(3,4)
2 2
2
(0,2)
Y 2
o 1
A -
0
(0,1)
(0,2)
2
(0,2
0 0
(0,2)
1

1

1

1

3
2
(1,2)
0 0
0
(0,2)
u*=(1,2)

R R
www.almohandiss.com
111
u*=(1,2)





O
+
(Y)={2,3}
O
-
(Y)={1,2}
c(O
+
(Y))=2
b(O
-
(Y))=3
Y viole (*).





















Y={1}
c(O
+
(Y))=1
b(O
-
(Y))=2
Y viole (*)
(0,2)
(0,2)
1

1

1

1

3
2
(0,1)
1 1
1
2
0
(0,1)
(2,3)
(2,3)
1

1

1

1

3
2
(0,2)
2 2
2
(2,3)
1

1

1

1

3
2
(0,1)
2 2
2
(2,3)
Y 1
o
A


0
(0,1)
(0,2)
(0,2)
1

1

1

1

3
2
(0,2)
2
2
(0,2)
1

1

1

1

3
2
(0,1)
2 2
2
(0,2)
u*=(1,2)

R R
u*=(1,2)

Y s=1 3 p=2
o 1 1 1
A - (3,1) (2,3)
2
1 1
www.almohandiss.com
112










Remarque : A chaque itration, le nombre darcs problmes (i.e pour lesquels le flot
ne satisfait pas les contraintes de capacits) diminue strictement.

Revenons notre exemple premier
Initialisons avec f=0.
1
re
itration
Y s 1 p
o 3 3
A - (s,1) (1,p)

2me itration
Y s 2 p
o 2 2
A - (s,2) (2,p)

3me itration
Y s
o

www.almohandiss.com
113
A -
c(O(Y))=c(O
+
(Y))-b(O
-
(Y)-{ur})=5-0=f(ur)

IV Problme de flot de cot minimum
Dfinition 30 : Soient R=(X,U,a,b,c) un rseau connexe o
a : U (R est une fonction cot
b : U (R{-}.reprsente la capacit infrieure
c : U (R{+}.reprsente la capacit suprieure avec
b(u)sc(u)ueU
Le problme du flot de cot minimum dans R consiste dterminer f e (R
(
U
(
tel que :
1/ f soit un flot sur (X,U),
2/ b(u)sf(u)sc(u) ueU
3/ ) ( ) ( u f u a
U u

e
soit minimum sous les conditions 1/ et 2/.
Remarque : Ce problme peut se formuler comme un programme linaire de la
manire suivante :
Ef = 0
bsf s c
af=z(min)
Thorme 12: Une condition ncessaire et suffisante pour quun flot ralisable f sur R
soit de cot minimum est que pour tout cycle I et pour tout sens de parcours on ait :
si o >0 alors

+ I e u
u a ) ( -

I e u
u a ) ( >0 avec o=min[min{c(u)-f(u) ;ueI
+
},min{f(u)-b(u) ;ueI
-
}]
Consquence: Si on associe R un rseau annexe Rdans lequel un arc (x,y) existe si
((x,y) est dans U et f(x,y) <c(x,y)) ou ((y,x) est dans U et f(y,x)>b(x,y)),
alors la condition du thorme 12 quivaut dire que R est sans circuit absorbant.
Corollaire : Une condition ncessaire et suffisante pour quun flot ralisable f sur R
soit de cot minimum est quil existe un sous-ensemble U de U et un systme de
potentiels H sur les sommets tels que :
www.almohandiss.com
114
1/ (X,U) soit connexe
2/ si u eU alors ddp(u)=a(u)
si ddp(u) <a(u) alors f(u)=b(u)
si ddp(u) >a(u) alors f(u)=c(u)
Remarque: Les deux dernires conditions du 2/ sont quivalentes dire que, pour tout
u, le couple (ddp(u),f(u)) appartient la courbe reprsente ci-dessous :




















Algorithme de dtermination dun flot de cot minimum
(0) Soit f un flot canalis (que lon peut obtenir laide de lalgorithme contenu
dans la dmonstration du thorme dHoffman). Soit
~
U tel que (X,
~
U ) soit un
arbre.
(1) Calculer les potentiels H(.) correspondant larbre (X,
~
U ) en fixant H(x)=0
pour un sommet quelconque x et en imposant la condition ddp(u)=a(u) pour
tout u appartenant
~
U .
c(u)
a(u)
ddp(u)
f(u)
www.almohandiss.com
115
Si -
~
u tel que (ddp(
~
u )>a(
~
u ) et f(
~
u )<c(
~
u )) (resp. (ddp(
~
u )<a(
~
u ) et f(
~
u )>b(
~
u ))
alors considrer le cycle I contenu dans (X,
~
U {
~
u }). Prendre comme sens de
parcours sur I le sens de
~
u (resp .le sens inverse de
~
u ). Poser o
+
=min{c(u)-
f(u) ;ueI
+
}, o
-
=min{f(u)-b(u) ;ueI
-
} et o=min(o
+
,o
-
). Poser f:=f+o (o est le
vecteur reprsentatif de I). Soit u tel que (ueI
+
et o=c(u)-f(u)) ou (ueI
-
et
o=f(u)-b(u)). Poser
~
U :=
~
U {
~
u }-{u} ; aller en (1)
sinon STOP : le flot courant est optimal .

Exemple dapplication de lalgorithme :










1
re
itration : Prenons cet
~
U








7
0

a
s


b
p
4
1
5
2
0
3

(0,3) (2,0,3)
a
s
(0,1)
(0,2)
(0,2)
(0,)



b
p
3
2
www.almohandiss.com
116

~
u =(a,b) ;ddp(
~
u )=3 et f(
~
u )=0<c(
~
u )=2
I
+
={(a,b),(b,p)} I
-
={(a,p)}
2 1 3
o=1u=(b,p) ; larc
~
u remplace u dans
~
U et le flot devient :















2
me
itration : Cette fois-ci on a cet
~
U :







5
2
1
3

(0,3) (2,0,3)
a
s
(0,1)
(0,2)
(0,2)
(0,)



b
p
2
3
9
0

a
s


b
p
4
3
www.almohandiss.com
117



Passons en revue les diffrents arcs nappartenant pas larbre :
u=(s,a): ddp(u)=3>a(u) et f(u)=c(u)
u=(b,p): ddp(u)=5>a(u) et f(u)=c(u)
u=(p,s): ddp(u)=-9<a(u) et f(u)=b(u)
On peut donc conclure que le flot courant est optimal.

V Quelques applications du problme de flot de cot minimum
1/ Le problme du traiteur (caterer problem)
Position du problme : Sur une priode de n jours, un traiteur doit tre en mesure de
fournir di serviettes le jour i (i=1,<n). Pour satisfaire cette demande, il peut :
- soit acheter des serviettes propres ( aDH/unit),
- soit faire laver des serviettes ayant servi.
Le service de lavage peut tre :
- rapide (dlai : q jours et prix : bDH/unit)
- ou lent (dlai : p jours et prix : cDH/unit)
Naturellement, on a q<p et c<b<a.
Le problme du traiteur consiste trouver une solution qui lui permette de satisfaire
la demande au moindre cot.
On peut montrer que ce problme se ramne un problme de flot de cot
minimum.
Rsoudre le problme avec les donnes suivantes :
N=10 ; d=(50, 60, 80, 70, 50, 60, 90, 80, 50, 100) ; p=4 ; q=2 ; a=200 ; b=75 et c=25.

2/ Le problme de transbordement (transshipment problem)
www.almohandiss.com
118
Position du problme : On considre un rseau de transport avec des poids sur les arcs
et aussi des poids ventuels sur les sommets.
Le poids associ un arc reprsente le cot unitaire de transport sur cet arc.
Le poids associ un sommet x (lorsquil existe) peut tre ngatif ou positif :
un poids, lorsquil est positif, reprsente la demande de x ( x est appel alors une
destination ou un puits ) ; lorsquil est ngatif, sa valeur absolue reprsente la
quantit disponible en x (x est alors appel une origine ou encore une source ). Les
sommets qui ne sont ni source ni puits sont des sommets intermdiaires.
Le problme consiste dterminer la manire la moins coteuse dacheminer
un certain produit (ptrole, oranges, wagons vides,..) des diffrentes origines vers les
diffrentes destinations tout en respectant les contraintes de disponibilits aux
origines et les demandes des destinations.
On peut montrer que ce problme se ramne un problme de flot de cot
minimum.
Rsoudre le problme avec les donnes suivantes ( on remarquera que loffre est
gale la demande).





98
38
8
23
28
18
53
44
29
1
7
3
2
4
6
5
5
60
59
37
14
-9
-15
6
10
8
www.almohandiss.com