Rapport TER

21 vues

Publié le

Publié dans : Sciences
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
21
Sur SlideShare
0
Issues des intégrations
0
Intégrations
1
Actions
Partages
0
Téléchargements
1
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Rapport TER

  1. 1. Universit´e de Nantes TER Master Optimisation en Recherche Op´erationnelle R´esolution du probl`eme de flot de coˆut minimum avec l’algorithme des plus courts chemins successifs L´eo Pelletier & Cl´ement Bauchet Ann´ee acad´emique 2014-2015
  2. 2. Algo SSP - L´eo Pelletier & Cl´ement Bauchet Table des mati`eres 1 Le probl`eme de flot de coˆut minimum 2 1.1 Pr´esentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Complexit´e du probl`eme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 Cas particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.5 Hypoth`eses de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.6 Notions utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.6.1 Le graphe r´esiduel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.6.2 L’algorithme de Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.6.3 Les conditions d’optimalit´e . . . . . . . . . . . . . . . . . . . . . . . . 7 2 L’algorithme des plus courts chemins successifs 8 2.1 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 Exemple - Graphe r´esiduel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4 Exemple - Coˆuts r´eduits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1
  3. 3. Algo SSP - L´eo Pelletier & Cl´ement Bauchet Chapitre 1 Le probl`eme de flot de coˆut minimum 1.1 Pr´esentation Le probl`eme de flot de coˆut minimum (MCNFP : Min Cost Network Flow Problem), est un probl`eme de flot dans un r´eseau de transport consistant `a d´eplacer certaines quantit´es de produits `a partir des points qui en proposent jusqu’aux points qui en demandent, tout en minimisant le coˆut d’utilisation des voies choisies et en respectant leurs capacit´es. Les r´eseaux dans lesquels on travaille peuvent par exemple repr´esenter sous forme de graphe des r´eseaux de t´el´ecoms, de canalisations hydrauliques, de conduites de gaz, ou encore des r´eseaux routiers. Diverses applications concr`etes de ce probl`eme sont donc trouvables dans l’industrie, notam- ment dans la distribution de ressources ou le transport de marchandises. 2
  4. 4. Algo SSP - L´eo Pelletier & Cl´ement Bauchet 1.2 Formulation Ce probl`eme peut se formuler `a l’aide du mod`ele math´ematique suivant :       min z(x) = (i,j)∈A cijxij (0) s/c j:(i,j)∈A xij − j:(j,i)∈A xji = b(i) i ∈ N (1) 0 ≤ xij ≤ uij ∀(i, j) ∈ A (2)       MCNFP avec les donn´ees : n = |N|, le nombre de sommets du graphe G(N,A) i, j, indices des sommets (i, j), arc de i vers j b(i), offre/demande au sommet i, offre si b(i) > 0, demande si b(i) < 0 cij, le coˆut de passage d’une unit´e de flot sur l’arc de i vers j cij ≥ 0 ∀(i, j) ∈ A uij, la capacit´e de l’arc de i vers j, valeur maximale du flot qui peut y circuler uij ≥ 0 ∀(i, j) ∈ A les variables : xij, le flot circulant sur l’arc de i vers j et : (0), la fonction objectif (1), contrainte d’´equilibre, les sources doivent ˆetre ´epuis´ees, les demandes satisfaites et les sommets neutres le rester (2), contrainte de capacit´e : le flot circulant sur un arc ne peut exc´eder sa capacit´e (2), positivit´e : pas de flot n´egatif 1.3 Complexit´e du probl`eme Ce probl`eme appartient `a la classe P, il existe en effet plusieurs algorithmes permettant de le r´esoudre en temps polynomial par rapport `a la taille des donn´ees d’entr´ee. L’algorithme des plus courts chemins successifs (ou SSP, Successive Shortest Path) que nous ´etudions a une complexit´e en O(nUS(n, m, nC)) o`u n d´esigne le nombre de sommets, m le nombre d’arcs, C la valeur maximale parmi les cij et U la valeur maximale parmi les uij. L’expression S(n, m, nC) d´esigne la complexit´e de la r´esolution d’un probl`eme de plus court chemin. L’algorithme que nous utilisons pour r´esoudre chacun des plus courts chemins succes- sifs est l’algorithme de Dijkstra, dont la complexit´e est en O(n2), amenant donc une complexit´e en O(Un3) pour notre impl´ementation du SSP. Cette complexit´e est dite pseudo-polynomiale car elle varie polynomialement en fonction de la valeur de la borne sup´erieure U sur la capacit´e des arcs. La valeur de U pourrait donc potentiellement ˆetre exponentielle en n. 3 CHAPITRE 1. LE PROBL`EME DE FLOT DE COˆUT MINIMUM
  5. 5. Algo SSP - L´eo Pelletier & Cl´ement Bauchet 1.4 Cas particuliers Divers probl`emes peuvent ˆetre r´eduits vers le MCNFP, conduisant `a des cas particuliers d’instances du probl`eme. Le probl`eme de plus court chemin entre deux sommets y correspond avec un sommet s avec une offre b(s) = 1, un sommet t avec une demande b(t) = −1, et tous les arcs de capacit´es uij ≥ 1. Le probl`eme d’affectation est un cas o`u toutes les tˆaches i auraient une offre de 1, tous les postes j une demande de -1 et l’arc (i, j) les reliant aurait le coˆut d’affectation de la tˆache i au poste j et une capacit´e de 1. Il est int´eressant de noter que dans le cas du probl`eme d’affectation, la valeur de U ´etant fix´ee `a 1, la r´esolution par l’algorithme des plus courts chemins successifs se fait en temps polynomial. Plus g´en´eralement, c’est le cas pour toutes les classes d’instances o`u U est ind´ependante de la taille de l’instance. (a) Graphe biparti pour un probl`eme d’affec- tation (b) Solution du probl`eme Figure 1.1 – Exemple de r´esolution d’une instance d’affectation avec SSP 4 CHAPITRE 1. LE PROBL`EME DE FLOT DE COˆUT MINIMUM
  6. 6. Algo SSP - L´eo Pelletier & Cl´ement Bauchet 1.5 Hypoth`eses de travail Dans le cadre de ce travail, on consid`ere que les instances trait´ees respectent ces crit`eres : • Toutes les donn´ees (les coˆuts, les offres/demandes, les capacit´es) sont enti`eres (i.e. ∈ ZZZ) • Le r´eseau est un graphe orient´e • La somme des offres est ´egale `a la somme des demandes Cette hypoth`ese est indispensable au bon d´eroulement du SSP. En effet, le cas contraire ne permettrait pas le respect de la contrainte d’´equilibre (1) et impliquerait l’arrˆet du programme quand l’offre serait ´ecoul´ee ou la demande satisfaite, mais pas les deux. Dans ces conditions, aucune solution admissible n’est envisageable et le probl`eme n’est alors pas faisable. • Les coˆuts des arcs sont positifs Cela est un pr´erequis pour nous permettre d’utiliser l’algorithme de Dijkstra pour r´esoudre chacun des sous-probl`emes de plus court chemin. • Les arcs et leurs capacit´es autorisent au moins une solution admissible au probl`eme La faisabilit´e du MCNFP n’est pas assur´ee, mˆeme si la somme des offres est ´egale `a la somme des demandes, car il faut que des chemins existent entre les sommets exc´edents et les sommets d´eficitaires, et que les arcs les composant aient des capacit´es suffisantes pour ˆetre `a mˆeme de faire transiter vers la demande la totalit´e de l’offre. C’est un probl`eme de d´ecision qui peut ˆetre r´esolu par exemple en ajoutant au graphe une source s reli´ee `a tous les sommets en exc`es j telle que usj = b(j) et un puits t auquel sont reli´es tous les sommets demandeurs i tel que uit = −b(i). Apr`es avoir transf´er´e la somme des offres et celle des demandes sur respectivement s et t, la r´esolution dans ce graphe du probl`eme de flot maximal permet de d´efinir si le probl`eme MCNFP est faisable sur l’instance de base, en v´erifiant que tous les arcs au d´epart de s, ou indiff´eremment ceux qui arrivent `a t, sont satur´es Cette ´etape n’est pas incluse dans notre programme, nous supposons toutes les ins- tances trait´ees faisables. 5 CHAPITRE 1. LE PROBL`EME DE FLOT DE COˆUT MINIMUM
  7. 7. Algo SSP - L´eo Pelletier & Cl´ement Bauchet 1.6 Notions utiles 1.6.1 Le graphe r´esiduel Par la suite, nous consid´erons un algorithme construisant un flot it´erativement, o`u une it´eration envoie des unit´es de flot des sommets exc´edents vers les sommets d´eficitaires. Ce flot n’est donc r´ealisable qu’`a la fin de l’algorithme. Dans ce contexte, la notion de graphe r´esiduel sera n´ecessaire. Dans un probl`eme de flot sur un graphe G parcouru par un flot x, le graphe r´esiduel G(x) permet de repr´esenter les chemins qu’un ajout au flot pourrait emprunter. Le graphe r´esiduel se construit comme suit : • G(x) a les mˆemes sommets que G • Chaque arc (i, j) ∈ A du graphe G parcouru par un flot voit sa capacit´e r´eduite de la valeur du flot en question uij = uij − xij, ne lui est donc affect´ee que sa capacit´e restante. • Pour chaque arc (i, j) ∈ A de G parcouru par le flot, G(x) comprend l’arc inverse (j, i) dont la capacit´e est uji = xij et le coˆut cji = −cij, emprunter cet arc inverse correspond donc `a revenir sur une d´ecision pr´ec´edente en pr´elevant tout ou une partie du flot circulant sur l’arc d’origine pour l’envoyer ailleurs, tout en ´etant rembours´e de son coˆut. Le graphe r´esiduel G(x) repr´esente les chemins que peut emprunter un flot plus important que x car il est constitu´e des arcs d’origine non satur´es qui permettent d’augmenter le flot, et des arcs inverses qui permettent de le d´eplacer sans le diminuer. S’il existe dans G(x) un chemin reliant un sommet en exc`es `a un sommet en d´eficit, il donc toujours possible d’augmenter la valeur du flot sur ce chemin de δ unit´es, δ ´etant le minimum des capacit´es des arcs emprunt´es par ce chemin. Le flot x est maximal dans G lorsqu’il n’est plus possible de trouver un tel chemin dans G(x). L’exemple de d´eroulement de l’algorithme donn´e en section 2.3 permet de visualiser la construc- tion de ce graphe r´esiduel. 1.6.2 L’algorithme de Dijkstra Pour trouver un plus court chemin depuis un sommet vers tous les autres, nous utilisons l’algorithme de Dijkstra. L’utilisation de cet algorithme n´ecessite que le graphe soit connexe, et que tous les coˆuts/distances des arcs soient positifs. En partant du sommet sp´ecifi´e i, on calcule la distance qui le s´epare de chacun de ses succes- seurs j, que l’on affecte `a ces derniers : d(i) = 0, d(j) = cij. On stocke ´egalement pred(j) = i pour sp´ecifier que le plus court chemin vers j passe par l’arc venant de i. Puis, pour chacun des successeurs j, on calcule les distances jusqu’`a ses propres successeurs k, en mettant ´eventuellement `a jour la distance totale d(k) entre i et k si elle est am´elior´ee en passant par j : d(k) = min{d(k), d(j) + cjk}, auquel cas pred(k) = j 6 CHAPITRE 1. LE PROBL`EME DE FLOT DE COˆUT MINIMUM
  8. 8. Algo SSP - L´eo Pelletier & Cl´ement Bauchet A noter qu’on ne s’int´eresse aux successeurs d’un successeur j que lorsque celui-ci a re¸cu son ´etiquette d´efinitive, c’est-`a-dire que d(j) a ´et´e test´ee et ´eventuellement actualis´ee `a partir de tous les arcs entrants en j et correspond donc de mani`ere certaine au plus court chemin de i `a j. On proc`ede ainsi jusqu’`a ce que tous les sommets aient ´et´e explor´es. Le plus court chemin de i vers tout sommet j sera donc de longueur d(j) et il pourra ˆetre reconstitu´e en remontant jusqu’`a i suivant les pr´ed´ecesseurs stock´es `a partir de j, puis pred(j) et ainsi de suite. 1.6.3 Les conditions d’optimalit´e Les conditions d’optimalit´e du probl`eme de plus court chemin sont : ∃ d(j) > d(i) + cij ∀(i, j) ∈ A On peut reformuler ces conditions sous la forme suivante : cd ij = cij + d(i) − d(j) ≥ 0 ∀(i, j) ∈ A o`u cd ij est appel´e coˆut r´eduit de l’arc (i, j), quantifiant l’impact sur la valeur de la solution si l’arc (i, j) y est emprunt´e. Ainsi, un coˆut r´eduit n´egatif indique une possibilit´e d’am´elioration de la solution (pour un probl`eme de minimisation), positif une d´egradation de la solution, et nul aucun changement, c’est-`a-dire qu’un chemin ´equivalent ou l’arc lui-mˆeme est d´ej`a dans la solution. La solution est donc optimale quand elle n’admet plus de coˆut r´eduit n´egatif, car aucun arc ne peut alors am´eliorer la solution. Ce principe est extensible au MCNFP via l’introduction de π(i) que nous appellerons po- tentiel du sommet i, qui d´esigne l’accessibilit´e globale du noeud, quantifie la facilit´e avec laquelle le flot peut transiter d’un sommet en exc`es jusqu’`a lui. Ces valeurs sont actualis´ees en fonction des valeurs d(i) successives, ce qui garde une trace des pr´ec´edentes valeurs de d(i) et leur donne `a l’´echelle du MCNFP le rˆole qu’ont les d(i) pour le plus court chemin et permettent de calculer les coˆuts r´eduits : cπ ij = cij + π(i) − π(j) Dans le cadre du SSP, on initialise ces valeurs `a 0, puis leur soustrait les d(i) calcul´es `a chaque ex´ecution de l’algorithme de Dijsktra dont les distances sont calcul´ees `a partir de ces coˆuts r´eduits plutˆot que des coˆuts d’origine. Cela nous permet de conserver des coˆuts positifs ou nuls au fur et `a mesure de l’apparition dans le graphe r´esiduel des arcs inverses de coˆuts d’origine n´egatifs, avec lesquels l’algorithme de Dijkstra ne peut pas travailler. L’actualisation des coˆuts r´eduits au cours d’une r´esolution figure dans l’exemple pr´esent´e en section 2.4. 7 CHAPITRE 1. LE PROBL`EME DE FLOT DE COˆUT MINIMUM
  9. 9. Algo SSP - L´eo Pelletier & Cl´ement Bauchet Chapitre 2 L’algorithme des plus courts chemins successifs 2.1 Fonctionnement L’algorithme des plus courts chemins successifs est un algorithme r´esolvant le probl`eme de flot de coˆut minimum. Sa complexit´e temporelle est pseudo-polynomiale en g´en´eral, et poly- nomiale pour des cas particuliers comme par exemple les probl`emes de plus court chemin et d’affectation. Cet algorithme construit it´erativement des solutions partielles, non r´ealisables car elles violent les contraintes d’´equilibre, i.e. n’´epuisent pas la totalit´e de l’offre et ne satisfont pas la totalit´e de la demande. De telles solutions partielles sont appel´ees pseudo-flots. Son d´eroulement est le suivant : un pseudo-flot est initialis´e vide. `A chaque it´eration, on choisit un sommet s en exc`es et un sommet t en d´eficit, puis on augmente le flot de s vers t par le plus court chemin les reliant dans le graphe r´esiduel. Pour un pseudo-flot x, on note e(i) le d´es´equilibre du sommet i : e(i) = b(i) + j:(j,i)∈A xji − j:(i,j)∈A xij, ∀i ∈ N Si le d´es´equilibre de i est positif, e(i) est l’exc`es de i. S’il est n´egatif, −e(i) est le d´eficit de i. S’il est nul, le noeud i est ´equilibr´e. L’algorithme s’arrˆete quand il n’y a plus de sommet en exc`es ou en d´eficit, ce qui arrive simultan´ement car on a fait l’hypoth`ese que i∈N b(i) = 0. Cet algorithme conserve `a chaque ´etape l’optimalit´e selon les conditions sur les coˆuts r´eduits d´ecrites plus haut, mais travaille avec des pseudo-flots, qui ne sont pas des solutions admis- sibles. La solution est donc optimale pour le probl`eme d`es lors qu’elle est r´ealisable. 8
  10. 10. Algo SSP - L´eo Pelletier & Cl´ement Bauchet 2.2 Algorithme 1: procedure Successive Shortest Path 2: x ← 0, π ← 0 3: e(i) ← b(i)∀i ∈ N 4: initialiser E ← i : e(i) > 0 et D ← i : e(i) < 0 5: tant que E = 0 faire 6: choisir un sommet k ∈ E et un sommet l ∈ D 7: d´eterminer les distances les plus courtes d(j) de k `a tous les autres sommets de G(x) en tenant compte des coˆuts r´eduits cπ ij 8: soit P un plus court chemin de k a l 9: π ← π − d 10: δ ← min[e(k); −e(l); min[rij : (i, j) ∈ P]] 11: augmenter le flot de δ unit´es le long de P 12: mettre a jour x, G(x), E, D et les coˆuts r´eduits 13: fin tant que 14: fin procedure 9 CHAPITRE 2. L’ALGORITHME DES PLUS COURTS CHEMINS SUCCESSIFS
  11. 11. Algo SSP - L´eo Pelletier & Cl´ement Bauchet 2.3 Exemple - Graphe r´esiduel Voici un exemple du d´eroulement de l’algorithme illustrant la construction du graphe r´esiduel. Les d´es´equilibres des sommets sont indiqu´es en rouge, les coˆuts des arcs en noir, leurs capa- cit´es en vert, et les arcs en bleu repr´esentent l’augmentation du pseudo-flot le long de cet arc et sa valeur ´egalement indiqu´ee en bleu. (a) Le graphe initial. (b) Le plus court chemin entre le sommet exc´edent et le d´eficitaire est 1-3-4, on y fait donc passer un pseudo-flot de 2, le maximum autoris´e par les capacit´es des arcs emprunt´es. (c) Graphe r´esiduel apr`es pas- sage du premier pseudo-flot. Les arcs emprunt´es ont vu leur ca- pacit´e r´eduite et l’apparition de leurs arcs inverses. L’arc 1-3 dis- paraˆıt car il est `a capacit´e pleine. (d) Le plus court chemin est ici 1-2-3-4, on peut y faire passer le reste de l’exc`es. (e) Graphe r´esiduel apr`es pas- sage du deuxi`eme flot. Tous les sommets sont ´equilibr´es, l’algo- rithme est donc termin´e. (f) Solution du MCNFP sur ce graphe. 10 CHAPITRE 2. L’ALGORITHME DES PLUS COURTS CHEMINS SUCCESSIFS
  12. 12. Algo SSP - L´eo Pelletier & Cl´ement Bauchet 2.4 Exemple - Coˆuts r´eduits Ci-dessous ce mˆeme exemple, illustrant cette fois l’actualisation des coˆuts r´eduits et des po- tentiels. On y voit que les coˆuts r´eduits restent toujours positifs ou nuls et qu’ils sont toujours `a 0 le long des arcs utilis´es. Les potentiels des sommets sont indiqu´es en rouge, les coˆuts r´eduits des arcs en noir. (g) Le graphe initial. Les coˆuts r´eduits sont ´egaux aux coˆuts des arcs et les potentiels sont nuls (h) Pseudo-flot augment´e le long du plus court chemin (i) L’actualisation des poten- tiels am`ene les coˆuts r´eduits `a 0 le long du chemin emprunt´e (j) Le plus court chemin est ici 1-2-3-4 (k) Graphe r´esiduel apr`es pas- sage du deuxi`eme flot. Tous les sommets sont ´equilibr´es, l’algo- rithme est donc termin´e. 11 CHAPITRE 2. L’ALGORITHME DES PLUS COURTS CHEMINS SUCCESSIFS
  13. 13. Algo SSP - L´eo Pelletier & Cl´ement Bauchet Analyse des r´esultats Sur des instances al´eatoires |N| |A| temps CPU (en s) 256 2048 0.060 512 4096 0.367 1024 8192 2.563 2048 16384 18.152 4096 32768 125.417 |N| |A| temps CPU (en s) 256 4096 0.071 512 11585 0.506 1024 32768 3.094 2048 92682 21.409 4096 262144 150.425 Sur des instances du probl`eme d’affectation Nb d’affectations |N| |A| temps CPU (en s) 128 256 16 384 0.028 256 512 65 536 0.224 512 1024 262 144 2.117 1024 2048 1 048 576 16.678 2048 4096 4 194 304 130.784 4096 8192 16 777 216 1044.752 Sur les instances al´eatoires, le premier tableau correspond aux tests effectu´es sur des instances pour lesquelles |A| = 8 × |N| tandis que le deuxi`eme tableau correspond `a des instances pour lesquelles |A| = |N| |N|. Dans les deux cas, la capacit´e maximale des arcs est U = 1000. Cela nous permet de constater que l’augmentation du nombre d’arcs dans le probl`eme fait ´egalement augmenter son temps de r´esolution par le programme. Cependant on voit que l’impact proportionnel de |A| est n´egligeable par rapport `a celui de |N|. On constate que, pour un nombre de sommets ´egal et une quantit´e d’arcs nettement sup´erieure, la r´esolution des instances d’affectation se fait bien plus rapidement que celle des instances al´eatoires, la seule exception pr´esente dans ces r´esultats ´etant sur des instances o`u deux ordres de grandeur s´eparent les valeurs de |A| entre les instances al´eatoires et d’affectation. 12 CHAPITRE 2. L’ALGORITHME DES PLUS COURTS CHEMINS SUCCESSIFS
  14. 14. Algo SSP - L´eo Pelletier & Cl´ement Bauchet Conclusion Ce travail a ´et´e l’occasion de s’int´eresser `a des m´ethodes de r´esolution de probl`emes de programmation lin´eaire appliqu´es `a un type de probl`emes de transbordement, et ainsi mettre en relation diff´erents cours de cette ann´ee de Master, notamment ”Integer Programming” et ”Graphs and Networks”. Les r´esultats obtenus seraient am´eliorables en arrˆetant par exemple l’algorithme de Dijkstra d`es qu’il a donn´e une ´etiquette d´efinitive `a un sommet d´eficitaire, bien que cela demande d’ˆetre pris en compte lors de l’actualisation des π, ou encore pour le probl`eme d’affectation en effectuant la premi`ere phase de la m´ethode hongroise sur l’instance de d´epart pour d´ebuter la r´esolution par le SSP `a partir d’une meilleure base que le pseudo-flot vide. Le temps ne nous a malheureusement pas permis l’impl´ementation de ces am´eliorations avant le rendu de ce rapport, mais le travail sera poursuivi afin d’observer leur impact sur les r´esultats. 13 CHAPITRE 2. L’ALGORITHME DES PLUS COURTS CHEMINS SUCCESSIFS

×