OPTIMISATION DANS UN RESEAU
Objectifs Probl`emes de flots et de chemins optimaux.
1 Flots
1.1 D´efinitions 1.1.1 R´eseau
On appelle r´eseau (network) un grapheG= (X, U): – orient´e, connexe, sans boucle ;
– poss´edant une source a et un puits b ; – `a arcsuvalu´es par des capacit´esc(u)≥0.
On noteUx−l’ensemble des arcs incidents versx(entrant) etUx+l’ensemble des arcs sortant.1
1.1.2 Flot
Un flot est une fonctionϕ(u) `a valeurs enti`eres, d´efinie surU, telle que : 1. ∀u ϕ(u)≥0
2. ∀u ϕ(u)≤c(u)
Si on a ´egalit´e, l’arcuest dit satur´e.
3. Loi de Kirchhoff :
∀x6=a, b X
u∈Ux−
ϕ(u) = X
u∈Ux+
ϕ(u)
La valeur du flot est la quantit´e qui arrive au puits b (c’est donc aussi ´egal `a ce qui part de la source a).
ϕ(b) = X
u∈Ua+
ϕ(u) = X
u∈Ub−
ϕ(u)
On se propose de maximiser la valeur du flot.
1Notations des ´electriciens : ce qui entre est compt´e n´egativement.
1
1.2 Th´eor`eme de Ford-Fulkerson 1.2.1 Coupe
Une coupe est un ensembleAd’arcs qui rencontre tout chemin allant de la source a vers le puits b.
Variante de la d´efinition : ´etant donn´e un ensembleEde sommets contenant le puits b, on appelle coupe l’ensemble des arcs ayant leur extr´emit´e dansEmais pas leur origine.
On appelle capacit´e d’une coupe la somme des capacit´es de ses arcs :
C(A) =c(UA−) = X
u∈UA−
c(u)
1.2.2 Propri´et´e d’une coupe
Etant donn´e une coupe dans un r´eseau, il r´esulte des d´efinitions pr´ec´edentes qu’une unit´e de mati`ere allant de a vers b doit traverser (au moins une fois) un arc de la coupe. Donc :
∀ϕ,∀A ϕ(b)≤c(UA−)
La valeur d’un flot ne peut d´epasser la capacit´e d’une coupe.
1.3 Flot maximum, coupe minimum
Si donc on a trouv´e une coupe telle que
flot = capacit´e de la coupe alors
– le flot est maximum (on ne peut rien ajouter sur cette coupe)
– la coupe est de capacit´e minimum (car le flot ne pourrait passer sur une coupe de capacit´e moindre).
L’algorithme de Ford-Fulkerson est un proc´ed´e de construction d’un flot et d’une coupe poss´edant cette propri´et´e.
1.4 Cheminements particuliers dans un r´eseau 1.4.1 Flot complet
Un flot est dit complet si chaque chemin allant de a `a b comporte au moins un arc satur´e.
1.4.2 Chaˆınes ´el´ementaires
Supposons avoir trouv´e une chaˆıne ´el´ementaire allant de a `a b. On la parcourt comme si c’´etait un chemin : il y aura donc des arcs dans le bon sens (progressifs) et d’autres dans le mauvais (regressifs).
Lemme Si :
– tout arc progressifvv´erifie :ϕ(v)< c(v) – tout arc regressifwv´erifie :ϕ(w)>0 alors on peut augmenter le flot :
– en ajoutant une unit´e sur tout arc progressifv – en retranchant une unit´e sur tout arc regressifw.
Il est facile de voir que les trois conditions d’un flot restent v´erifi´ees.
1.5 Algorithme de Ford-Fulkerson 1.5.1 Description
L’algorithme de Ford-Fulkerson est un proc´ed´e de construction d’une coupe minimum : on r´ealise une partition (dynamique) des sommets en sommets marqu´es et sommets non marqu´es.
1. Faire passer un flot au jug´e.
2. Am´eliorer (it´erativement) le flot jusqu’`a obtenir un flot complet.
3. Entamer une proc´edure dite de marquage (d´etaill´ee en exercices).
4. Si on arrive `a marquer b, le flot est am´eliorable d’apr`es le Lemme (ce qu’on fait et on recom- mence un marquage).
5. Sinon, il est maximum et les sommets marqu´es d´eterminent une partition donnant la coupe minimum.
2 Chemins extr´emaux
On consid`ere un grapheG= (X, U) `a arcs valu´es.
La valeurvij d’un arc sera appel´ee sa longueur (ou sa dur´ee).
Si on se place dans le cas particulier d’un r´eseau, le probl`eme est de trouver le chemin de longueur extr´emale allant du sommet d’entr´ee a (num´erot´e z´ero ci-dessous) `a la sortie b.
Le graphe est suppos´e sans circuits bien entendu.
2.1 Algorithme de Ford 2.1.1 Principe
Le principe est celui de la Programmation dynamique : ´etant donn´e un processus optimal sur un grapheG, la restriction de ce processus `a un sous-graphe est elle-mˆeme optimale.
On proc`ede donc par it´eration de solutions optimales sur des sous-graphes allant de l’entr´ee au graphe entier.
L’algorithme de Ford consiste `a marquer les sommets dont on vient de calculer la distance maximale
`a l’entr´ee.
– Marquer l’entr´ee part0= 0
– Marquer chaque sommetjdont tous les pr´ed´ecesseursP(j)sont marqu´es : tj = max
i∈P(j)(ti+vij) – La marque de la sortie b est la longueur du chemin extr´emal.
Si on n’arrive pas `a marquer la sortie, c’est que le graphe comporte un circuit.
2.1.2 Calcul des marques
On peut utiliser la matrice associ´ee (valu´ee par lesvij) pour calculer les marques : algorithme de Ford.
FIG. 1 – Algorithme de Ford
for i = 0:n for j = 1:n
if v(i,j) == 0, continue, end ; tt = t(i) + v(i,j) ;
if t(j) < tt, t(j) = tt, end ; if j < i, i = j, j = 1, end ; end
end
Remarques :
1. On notera le testif(j<i)qui montre l’importance de la num´erotation des som- mets : il faut la faire grosso-modo dans l’ordre d’´eloignement de l’entr´ee.
2. Il n’est pas sˆur que le langage de programmation acceptera le changement i=j, j=1`a l’int´erieur des boucles, mais ceci est un algorithme.
2.1.3 Chemin critique
Un fois la longueur obtenue, on rep`ere les arcs(i, j)pour lesquels on a : tj −ti =vij
Ce sont eux qui jalonnent le chemin cherch´e (chemin critique).
2.2 Ordonnancement 2.2.1 Notations
Le probl`eme de l’ordonnancement consiste `a d´eterminer, dans le cadre d’un projet (fonction objectif), le calendrier d’ex´ecution de tˆaches soumises `a des contraintes de succession et de dur´ee.
On peut lui associer un graphe d’´etapes :
– de sommets(i)correspondant aux ´etapes interm´ediaires,
– d’arcs(i, j)correspondant aux tˆaches, valu´ees par la dur´ee de la tˆache.2
Il s’agit alors de d´eterminer le chemin de longueur maximale allant du d´ebut `a la fin du projet.
2.2.2 Chemin critique
Soit un chemin de longueur maximale allant de l’entr´ee `a un sommet donn´e : la longueur de ces chemin est appel´ee date au plus tˆot de ce sommet.
En inversant le sens des arcs du graphe, on obtient les (compl´ements `a la dur´ee totale des) dates au plus tard pour chaque ´etape.
Il apparaˆıt alors un chemin (allant de l’entr´ee `a la sortie) jalonn´e par les sommets pour lesquels les deux dates sont ´egales : c’est le chemin critique.
La m´ethode PERT (exercices) permet de d´eterminer le calendrier correspondant au d´elai minimum d’ex´ecution de toutes les tˆaches.
2Une valuation nulle signifie deux ´ev´enements (concomitants) `a ne pas confondre.