Vous êtes sur la page 1sur 24

Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Recherche Operationnelle:
Optimisation de reseaux

Ecole Nationale de Commerce et de Gestion Casablanca


Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

1 Probleme du chemin le plus court

2 Probleme de flot maximum

3 Probleme de flot a cout minimum


Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Graphes

Les graphes sont un outil puissant de modelisation : Problemes de


transport, de production, dapprovisionnement, de gestion des
ressources, de planification financiere,...

Graphe
Un graphe un ensemble de sommets ou noeuds relies par des lignes
appelees arcs. un graphe G prend la forme G = (N; A) ou N est un
ensemble de sommets et A N N un ensemble darcs.

reseau
Le terme reseau est un terme generique designant un graphe dont
les sommets ou les arcs possedent des attributs : couts, capacites,
longueurs, temps, etc.
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Graphes

Il y a principalement 5 classes de problemes relatifs aux graphes :


Le probleme du plus court chemin,
le probleme de flot maximal,
Le probleme de flot maximal a cout minimal,
Le probleme de planification des projets : PERT, MPM,
GANTT,
Le probleme darbre de poids minimal !
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Definitions

Graphe oriente : Les liens entre les noeuds du graphe ne peuvent


etre parcourus que dans un sens precis.
Graphe non oriente : il ny a pas dorientation pour larc.
Chemins : Un chemin est une suite de sommets de G tel que deux
sommets consecutifs quelconques sont relies par un arc de G .
Circuits : Un circuit est un chemin qui commence et finit au
meme sommet.

Deux sommets i et j de N sont dits adjacents sil y au moins un


arc qui les relient.
A chaque arc a = (i, j) de A est associe un nombre reel da appele
longueur ou poids de larc a. Si a = (i, j), la longueur de larc est
notee dij . On definit la longueur ou le poids dun chemin comme
etant la somme algebrique des longueurs des arcs qui le
constituent.
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Probleme du plus court chemin : Algorithmes de determination du plus court chemin

Les algorithmes de resolution different suivant les proprietes du


graphe :
couts non negatifs,
graphe et couts quelconques,
graphe sans circuit,
et suivant le probleme considere :
recherche du plus court chemin dun sommet a un autre,
recherche du plus court chemin dun sommet a tous les autres,
recherche du plus court chemin entre tous les couples de
sommets.
Pour la resolution de ces differentes variantes du probleme du plus
court chemin, les algorithmes sont a peu pres identiques et sont
bases sur le principe doptimalite de Bellman :Tout chemin
optimal est compose de sous chemins optimaux..
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Algorithme de Dijkstra (1959)

Lalgorithme de Dijkstra permet de trouver le plus court chemin


dun sommet (note 1) a tous les autres sommets du graphe, dans
le cas ou toutes les longueurs sont positives.
On affecte a chaque sommet une etiquette. Les sommets sont
partitionnes en deux sous ensembles S et T :
S est lensemble des sommets ayant une etiquette permanente,
T est lensemble des sommets ayant une etiquette temporaire.
Une etiquette permanente represente la longueur du plus court
chemin entre 1 et le sommet considere et une etiquette temporaire
represente une borne superieure de cette longueur.
Pour un graphe a n sommets, lalgorithme de Dijkstra
procede en (n 1) iterations : a chaque iteration, un sommet est
transfere de lensemble T vers lensemble S, et les etiquettes
temporaires sont mises a jour.
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Algorithme de Dijkstra (1959)

Algorithme de Dijkstra (1959)


1 Etape 1 : Initialisation :
v1 = 0
j 6= 1, vj = d1j si (1, j) A ; sinon vj =
S = {1}, T = {2, , n}
2 Etape 2 : Fixation dune etiquette
Trouver k T , tel que vk = minjT (vj )
Faire : T = T \ {k} ; S = S {k}
Si T = alors FIN
3 Etape 3 : Mise a jour des etiquettes temporaires
Faire vj = min(vj , vk + dkj )
Aller a letape 2

Remarque : Dans le cas des graphes ayant des longueurs de signes


quelconques, on applique Algorithme de Ford- Bellman (1956).
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Exemple (algorithme de Dijkstra)


Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Exemple

Le graphe ci-dessous represente le reseau routier dune region qui


prend en compte le sens de la circulation, chaque arc represente
une route a sens unique dont le poids est la distance en kilometre
entre deux sommets. Quel est litineraire le plus court qui relie E a
S?
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Exemple

Pour une simulation de lalgorithme, voir


http : //yallouz.arie.free.fr /terminale cours/graphes/dijkstra.php
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Applications

Probleme de flot : acheminement dune quantite de marchandises


(divisibles : on peut acheminer nos marchandises par des routes
differentes) de la source vers la destination.
Applications
il existe plusieures situations reelles pouvant etre modelisees
comme des problemes de flots dans les reseaux :
logistique : transport de marchandises de differents points
distributeurs vers differents points consommateurs, a travers
un reseaux urbain, ferroviaire, maritime, aerien ou mixte,
distribution deau (canalisations)
transport de petrole : reseau de pipelines
energie : reseaux electrique, centrales clients
information : reseau telephonique, reseau dentreprises,
internet.
problemes de gestion de stocks,...
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Definitions

Donnees : Soit G = (N, A) un graphe oriente. Soit (s, t) N N


un couple particulier de sommets ; on appelle s la source, et t le
puits. Pour tout (i, j) A, on note uij la capacite de larc, tel que
uij 0.

Flot : Un flot de source s et de puits t dans le reseau est un


vecteur dentiers F = (xij ) . Pour chaque arc (i, j) A, il faut
associer une valeur xij appellee flux sur larc (i, j), tel que
0X xij uij , (i,
Xj) A (contrainte de capacite),
xij = xji , i N\{s, t}
j|(i,j)A j|(j,i)A
(contraintes de conservation de fot)
La valeur Xdu flot est : X
v (F) = xsj = xjt
j|(s,j)A j|(j,t)A
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Probleme du flot maximal

Un flot admissible est un flux qui verifie les contraintes (mais non
necessairement optimal).
Remarque : Quand deux arcs en sens inverse relient deux sommets,
on peut toujours annuler la fonction flot sur lun des deux.
Arc sature : Un arc est dit sature si sa capacite residuelle est nulle :
Xij = uij .

Probleme : comment trouver un flot qui a la valeur maximale ?


Le probleme de flot maximal consiste a transporter la quantite
maximale possible dune origine (source, s) a une destination
(puits, t) donnes, sans depasser les capacites des arcs uij .
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Flot maximum et programmation lineaire

Idee de base :
Un flot F peut etre ameliore si lon trouve un chemin de s a t
qui soit non bloque par rapport a F.
Envoyer un flot le long de ce chemin augmente la divergence
de s sans violer les contraintes de capacite.
Question : si on ne trouve pas un tel chemin, sommes-nous a
loptimum ?

Flot maximum et programmation lineaire


X X
max v (F) = xsj = xjt
j/((s,j)A j/((j,t)A
X X
xij = xji , i N\{s, t}
s.c j/((i,j)A j/((j,i)A
0 xij uij

Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Algorithme de Ford-Fulkerson

1 Initialisation :
pour chaque (i, j) A faire
f (i, j) 0
uf (i, j) u(i, j)
fin pour
2 Calcul de la capacite residuelle du chemin ameliorant :
tant que il existe un chemin ameliorant C dans le graphe
residuel faire
uf min uf (i, j)
(i,j)C
mise a jour du flot et de la capicite residuelle le long des arcs
de C
pour tout arc (i, j) C du chemin ameliorant C faire
f (i, j) f (i, j) + uf ; f (j, i) f (j, i) uf
ur (i, j) u(i, j) uf ; uf (j, i) f (j, i) + uf
fin pour
fin tant
retourne(f)
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Exemple 1 :flot maximum


Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Exemple 2 :flot maximum

Supposons quen periode de grande affluence, nous disposions


dune flotte dautobus pour faire visiter les differents postes
dobservation du parc. La reglementation limite le nombre
dautobus pouvant circuler sur chaque troncon de route. Comment
faire circuler les autobus dans le parc de facon a maximiser le
nombre total dautobus allant de lorigine (O) a la destination (T) ?
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Donnees

Soit G = (N; A) un graphe oriente.


A chaque arc (i, j), on associe une capacite uij > 0 et un cout
par unite de flot cij
Il y a au moins une source et au moins un puits
Tous les autres sont des sommets de transfert
On cherche a minimiser le cout total encouru par le transport
du flot des sources (sommets doffre) vers les puits (sommets
de demande)
des offres ou demandes bi i N (offre bi > 0, demande
bi < 0).
Il sagit dun probleme semblable a celui du flot maximum mais on
suppose en plus quun cout par unite de flot associe a lutilisation
dun lien (arc)
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Modele de flot a cout minimum

Formulons maintenant le probleme de flot a cout minimum


consistant a determiner comment acheminer dans les arcs du
reseau une quantite de flot dune source a une destination de sorte
a minimiser le cout total.
xij = flot sur larc (i, j)
X
min cij xij
((i,j)A
X X
xij xji = bi , i N
s.c j+ (i) j (i)
0 xij uij , (i, j) A

bi = 0 (transfert), = offre (source), = - demande (puits)


N = ensemble des sommets ; A = ensemble des arcs
+ (i) = ensemble des arcs sortant du sommet i
(i) = ensemble des arcs entrant au sommet i
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Modele de flot a cout minimum

Definition (Flot compatible)


Un flot compatible avec loffre b = (bi ) est un vecteur dentiers
xX
= (xij ) associes
X aux arcs tel que
xij xji = bi , i N
j+ (i) j (i)

But
X : Trouver un flot f compatible avec loffre b de cout total
cij xij
(i,j)A
Applications :
Probleme dacheminement,
Probleme de navette aerienne,...
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Cas particuliers

1 Probleme du plus court chemin


Une source et un puits
Plusieurs sommets de transfert
On pose bi = +1 (source), 1 (puits)
Aucune capacite uij =
2 Probleme du flot maximum
bi = +F (source), F (puits), ou F > somme des capacites
Ajout dun arc entre s et t : cst = M et ust = F
Puisque cij = 0 sur tous les autres arcs, une solution optimale
consiste a faire passer le maximum de flot entre s et t sans
passer par larc (s, t)

Plus court chemin : couts, mais pas de capacites


Flot maximal : capacites, mais pas de couts
Transbordement : couts et capacites
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Exemple

Considerons deux usines (U1 et U2), un centre de distribution


(CD), et deux entrepots (E1, E2). Chaque usine manufacture un
certain nombre dunites dun meme produit (offre). Chaque
entrepot requiert un certain nombre dunites de ce meme produit
(demande). Sur chaque lien (arc) du reseau, il y a un cout de
transport par unite de produit (cout unitaire). De plus, sur certains
arcs, il y a une capactite sur le nombre dunites transportees. Le
reseau considere est represente dans la Figure suivante. Lobjectif
est de minimiser le cout de transport total. Comme dordinaire,
pour formuler le modele, identifions en premier lieu les variables
dinteret.
Probleme du chemin le plus court Probleme de flot maximum Probleme de flot a cout minimum

Exemple

Nous designerons par xij le nombre dunites du produit transportees


sur larc (i ; j) (i.e. entre les sommets i et j). La fonction objectif
(en chifrant le montant total en centaines de dollars), contraintes
de conservation, contraintes de capacites et positivites :

Vous aimerez peut-être aussi