La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Problème de flot à coût minimum Énoncé du problème Exemples dapplication Adaptation de lalgorithme du simplexe.

Présentations similaires


Présentation au sujet: "Problème de flot à coût minimum Énoncé du problème Exemples dapplication Adaptation de lalgorithme du simplexe."— Transcription de la présentation:

1 Problème de flot à coût minimum Énoncé du problème Exemples dapplication Adaptation de lalgorithme du simplexe

2 2 Énoncé du problème de flot à coût minimal Soit un réseau R = ( N, A ) où N représente les sommets du réseau et A lensemble des arcs. On désigne aussi par K(x, y) : capacité maximale de larc (x, y), (x, y) A, f(x, y) : quantité de flot passant par larc (x, y), (x, y) A, S : {s N | s est une source avec une disponibilité de v s unités}, P : {p N | p est un puits avec une demande de v p unités}, c(x, y) : coût unitaire du flot dans larc (x, y), (x, y) A. Le problème consiste à déterminer la valeur du flot nexcédant pas la capacité dans chaque arc pour satisfaire la demande à P à partir de la disponibilité à S tout en minimisant le coût total.

3 3 Le problème sénonce alors comme suit : Min c(x, y) f(x, y) (x, y) A f(x, y) {y N | (x, y) A } - f(y, x) {y N | (y, x) A } = v x si x S 0 si x S P -v x si x P 0 f(x, y) K(x, y), (x, y) A. Note : Pour l'instant, nous supposerons que la somme des disponibilités égale la somme des demandes. Cette hypothèse sera relâchée par la suite.

4 4 Exemple dapplication Tiré deB. T. Smith, "Introduction à la théorie des graphes et des réseaux". Tome II, Département de Génie industriel, École Polytechnique de Montréal, Sept Réseau de transbordement dun bien S = {2, 3} : des usines de production avec une capacité de production de 6 et 8 unités resp. pendant une période fixe de temps. P = {5, 6} : des entrepôts locaux ayant des demandes de 9 et 5 resp.

5 5 Les sommets 1 et 4 représentent des points de transbordement (sommets intermédiaires), par exemple des entrepôts régionaux. Le problème consiste à faire passer = 14 unités de flot des sources jusqu'aux puits tel que (1)toutes les demandes soient satisfaites; (2)la conservation de flot soit satisfaite à chaque sommet intermédiaire; (3)le coût total de transport soit minimum. Il ny a aucune contrainte sur la quantité de flot qui peut traverser un arc dans cet exemple. De façon générale, il en est autrement. Les unités ne restent pas à ces endroits mais sont acheminées directement vers d'autres destinations (sources, puits ou sommets intermédiaires). À côté de chaque voie de transport (arc), on indique le coût de transporter une unité à travers l'arc.

6 6 Contrairement au problème de flot maximal, nous ne voulons pas maximiser un flot (car cette valeur est fixée d'office à la somme des disponibilités) mais nous cherchons le vecteur de flot le moins cher qui satisfasse les demandes. Voici un flot réalisable dont le coût total est: 8x7 + 6x8 + 1x1 = 105 (les arcs en gras portent un flot positif, les autres arcs un flot nul) :

7 7 Voyons maintenant un autre exemple de flot réalisable moins cher que le précédent. Le coût total est:8x3 +8x3 + 6x5 + 5x1 = 83.

8 8 Exemple dapplication Tiré deB. T. Smith, "Introduction à la théorie des graphes et des réseaux". Tome II, Département de Génie industriel, École Polytechnique de Montréal, Sept étudiants inscrits dans un cours, 12 projets de fin détudes disponibles, 1 projet par étudiant, les projets de 1 à 4 sont assignés à au plus 1 étudiant, les projets de 5 à 8 sont assignés à au plus 2 étudiants, les projets de 9 à 12 sont assignés à au plus 3 étudiants, les projets sont éliminés sil ny a pas détudiants qui leur sont affectés, 6 professeurs au total sont disponibles pour diriger les projets.

9 9 un sous-ensemble de professeurs peuvent diriger chaque projet : Chaque étudiant travaillant sur un projet doit être dirigé par un professeur dans le sous-ensemble de ceux affectés au projet.

10 10 Chaque professeur peut diriger un nombre maximum détudiants : Chaque étudiant choisit un sous-ensemble des projets sur lesquels il aimerait travailler et il classe les projets dans ce sous-ensemble en ordre décroissant de préférence comme dans le tableau suivant :

11 11 Objectif collectif : Affecter les étudiants aux projets et aux professeurs afin de minimiser la somme des classements des projets sur lesquels travailleront les étudiants. Il sagit dun problème de flot à coût minimum:

12 capacité coût Note : Certains arcs seulement Sont indiqués pour éviter la confusion. Numéro de classement (10)(12)(6) Limite le # détudiants affectés au projet i. Si un professeur j peut diriger le projet i Un arc entre chaque étudiant et chaque projet quil préfère. Limite le # détudiants affectés au professeur j. Demande de 10 étudiants au puits

13 13 Propriétés de la matrice des contraintes de conservation du flot f(x, y) {y N | (x, y) A } - f(y, x) {y N | (y, x) A } = v x si x S 0 si x S P -v x si x P Portons notre attention sur les contraintes suivantes : ou sur une forme succincte : A f = boù A est la matrice dincidence du réseau orienté, f est le vecteur de flot, b est le vecteur colonne des disponibilités et des demandes. Théorème : La matrice dincidence A dun graphe orienté simple et connexe composé de m sommets et n arcs est de rang m – 1.

14 14 Théorème : Soit la matrice dincidence A dun graphe orienté simple et connexe composé de m sommets et n arcs, une sous-matrice de A carré dordre m – 1 est non singulière (forme une base) les arcs associés aux colonnes de cette sous-matrice sont ceux dun arbre partiel du graphe orienté. N'importe quel flot réalisable dans un réseau peut être transformé en un flot réalisable tel que les arcs portant un flot positif fasse partie d'un arbre partiel du graphe orienté. Théorème :

15 15 Preuve du théorème précédent :

16 16 Exemple de transformation dun flot réalisable en un autre tel que les arcs portant un flot positif fasse partie dun arbre partiel du graphe : Réseau de transbordement dun bien Par la suite, seulement les arcs portant un flot positif sont illustrés, avec la valeur du flot indiqué à côté de chaque arc; les autres arcs du réseau portent un flot nul.

17 17 Considérons le flot réalisable suivant : But :Rechercher un flot réalisable avec au plus m – 1 = 5 arcs portant un flot positif où ceux-ci ne forment pas de circuit. Or, pour ce flot réalisable, il y a 9 arcs portant un flot positif.

18 18 Choisissons comme premier circuit 1, 2, 4, 3, 1 avec l'orientation dans le sens de l'arc (1,2). Le seul arc inverse du circuit est (3,4) avec le flot f 34 = 3. On ajoute 3 unités de flot aux arcs (1, 2), (2,4) et (3,1) et on soustrait 3 unités de flot de l'arc (3,4), on a alors:

19 19 Le circuit 2, 5, 6, 2 permet de transformer le flot comme suit :

20 20 Enfin, le circuit 2, 4, 6, 2 donne lieu à un flot positif dans un arbre partiel comme suit:

21 21

22 22 On aurait pu arriver au flot indiqué par les arcs en gras de la figure ci-dessous, où 4 arcs portent un flot positif et un arc (2,4) porte un flot nul, mais fait partie de l'arbre partiel de G. Ce flot réalisable est dégénéré.

23 23 BREF Tout arbre partiel du graphe G correspond à une sol n de base du programme linéaire et inversement, toute sol n de base du programme linéaire peut se ramener à une sol n réalisable n'utilisant que les arcs d'un arbre partiel du graphe. Pour résoudre le problème de flot à coût minimum, il sagit donc de ne soccuper que des arbres partiels du graphe (les solutions de base). Sil existe une solution optimale au problème de flot à coût minimum, il en existe une qui correspond au flot dans un arbre partiel de G.

24 24 Adaptation de la méthode du simplexe Il sagit dexploiter le fait que A est la matrice dincidence du graphe. Note : Considérons dabord le cas où le flot est sans borne supérieure. Illustrons à travers un exemple. coûtflot réalisable source destination

25 25 La valeur du flot sur chacun des arcs correspond à une solution de base réalisable dont la base associée correspond à un arbre partiel T : Cette solution de base est dégénérée puisque le flot à larc (s,1) est nul.

26 26 Cette adaptation du simplexe repose sur l'utilisation des multiplicateurs du simplexe. Dénotons par π i le multiplicateur associé à la i ième ligne de la matrice d'incidence A, i.e. associé au i ième sommet du réseau orienté. Se référant à la définition dun vecteur de coût relatif, on peut écrire: c(x,y) = c(x,y) – x + y (x, y) A. Pour évaluer ces multiplicateurs, il suffit de trouver une solution au système : c(x,y) = c(x,y) – x + y = 0 (x, y) T. Puisquun arbre comporte exactement un nombre darcs égal au nombre de sommets –1, ce système comporte un nombre dinconnus supérieur de 1 au nombre déquations. Il suffit de fixer la valeur dun des multiplicateurs et dévaluer facilement les autres à laide du système.

27 27 Si on pose t = 0, alors 3 = c(3,t) + t = = 2, 2 = c(2,3) + 3 = = 5, s = c(s,2) + 2 = = 6, 1 = s - c(s,1) = = 2. Évaluons maintenant le coût relatif des variables hors-base : c(2,1) = c(2,1) = 2 – = -1 c(1,t) = c(1,t) t = 1 – = -1.

28 28 Puisque c(2,1) = c(1,t) = -1, les 2 variables sont admissibles comme variable dentrée. Choisissons larc (2,1) comme variable dentrée. Critère de sortie : déterminer le cycle fondamental p/r à l'arbre partiel correspondant à la variable d'entrée puisque seul le flot dans les arcs de ce cycle est influencé par une variation du flot dans l'arc associé à la variable d'entrée. Si f(2,1) augmente, f(s,1) doit diminuer et f(s,2) augmenter. Or, f(s,1) = 0 (solution dégénérée) f(2,1) reste égale à 0.

29 29 Cette solution réalisable demeure inchangée : Larbre correspondant à cette solution de base réalisable est :

30 30 Si on pose t = 0, alors 3 = c(3,t) + t = = 2, 2 = c(2,3) + 3 = = 5, s = c(s,2) + 2 = = 6, 1 = 2 - c(2,1) = = 3. Évaluons maintenant le coût relatif des variables hors-base : c(s,1) = c(s,1) - s + 1 = 4 – = 1 c(1,t) = c(1,t) t = 1 – = -2. Larc (1,t) devient variable dentrée avec comme cycle fondamental :

31 31 On peut donc augmenter le flot à larc (1,t) de 4 et mettre à jour les autres arcs du cycle en conséquence. On considère larc (3,t) comme étant la variable de sortie pour retrouver la base suivante : Si on pose t = 0, alors 1 = c(1,t) + t = 1, 2 = c(2,1) + 1 = = 3, s = c(s,2) + 2 = = 4, 3 = 2 - c(2,3) = 3 – 3 = 0.

32 32 Évaluons maintenant le coût relatif des variables hors-base : c(s,1) = c(s,1) - s + 1 = 4 – = 1 c(3,t) = c(3,t) t = = 2. Donc, la solution est optimale. Remarques : La méthode du simplexe est grandement simplifiée grâce à la structure particulière du problème. Il y a beaucoup de dégénérescences dans les problèmes de flots dans les réseaux. À cause de cela, il est parfois nécessaire de changer de base sans changer les valeurs des variables dune itération à lautre. Cunningham (1976) : Des résultats existent pour guider le choix des solutions de base réalisables dans le but déviter de telles itérations dégénérées.

33 33 Énoncé de lalgorithme du simplexe adapté (absence de bornes supérieures sur les arcs) 0. Générer un flot réalisable de base où T est larbre partiel du graphe G associé à cette base. 1. Calculer les valeurs des variables duales i, i=1, 2, …, n en posant n = 0 et en résolvant c(i,j) - i + j = 0 (i,j) T. 2. Test doptimalité Si c(i,j) - i + j 0 (i,j) T, alors terminer. La sol n courante est optimale. 3. Choix de larc dentrée (i*, j*) = argMin {c(i,j) - i + j } (i,j) T Ajouter cet arc à larbre partiel T pour former un circuit fondamental C dans T {(i*, j*)}.

34 34 4. Choix de larc de sortie Choisir larc de sortie (i', j') inverse par rapport à (i*, j*) dans C : (i', j') = argMin f(i,j) (i,j) C (i, j) est linverse de (i*, j*) 5. Pivot Effectuer un pivot pour passer de larbre T à larbre T {(i*, j*)} – {(i', j')} avec comme flot : f(i, j)si (i, j) C f(i, j) + f (i', j') si (i, j) C et direct p/r à (i*, j*) f(i, j) - f (i', j') si (i, j) C et inverse p/r à (i*, j*). Mettre T T {(i*, j*)} – {(i', j')} et passer à létape 1.

35 35 Méthode "GRAND M" Calcul dun flot réalisable de base initial 1. Ajouter un sommet fictif n + 1 au réseau, des arcs (i, n + 1) avec un flot f(i, n+1) = v i i S, des arcs (n + 1, i) avec un flot f(n+1, i) = v i i P, des arcs (n + 1, i) avec un flot f(n+1, i) = 0 i S P. Tous ces nouveaux arcs sont appelés artificiels et le flot dans ces arcs y compris un flot de zéro dans tous les arcs originaux du réseau constituent un flot réalisable dans un arbre partiel du graphe G augmenté. 2. Affecter le coût M >> 0 (une valeur beaucoup plus grande que celle des c(i,j) du problème original) aux arcs artificiels du réseau augmenté.

36 36 3. Résoudre le problème de flot à coût minimum sur le réseau augmenté par l'algorithme du simplexe en éliminant les arcs artificiels au fur et à mesure qu'ils sortent des arbres partiels. 4. si l'arbre partiel obtenu contient des arcs artificiels portant un flot positif alors le problème original n'a pas de flot réalisable. Lorsque l'algorithme du simplexe termine, deux cas sont possibles: si l'arbre partiel obtenu ne contient pas d'arcs artificiels ou contient des arcs artificiels à flot nul, alors cest un flot optimal du problème original.

37 37 Exemple : v = 4, s est la source et t la destination. À chaque arc (i, j) est associé le coût c ij. Supposons quaucun flot réalisable initial nest disponible. Appliquons la méthode M.

38 38 Considérons donc le réseau augmenté suivant où à chaque arc (i, j) est associé le couple c ij, f ij :

39 39 La valeur du flot sur chacun des arcs correspond à une solution de base réalisable dont la base associée correspond à un arbre partiel T : Cette sol n de base est dégénérée puisque f A2 = f A1 = f A3 = 0.

40 40 Calcul des multiplicateurs du simplexe :

41 41 Calcul du coût relatif des variables hors-base Nous choisissons donc la variable f s2 comme variable dentrée avec comme cycle fondamental : Coût négatif

42 On peut donc augmenter le flot à larc (s,2) de 0 car la sol n est dégénérée (f A2 = 0). f A2 est la variable de sortie.

43 43 Larbre correspondant à cette solution de base réalisable est :

44 44 Coût négatif f 21 devient variable dentrée avec comme cycle fondamental :

45 On peut donc augmenter le flot à larc (2,1) de 0 car la sol n est encore dégénérée (f A1 = 0). f A1 est la variable de sortie.

46 46

47 47 Coût négatif f 1t est choisie arbitrairement comme variable dentrée avec comme cycle fondamental :

48 On peut donc augmenter le flot à larc (1, t) de 4; ceci est accompagné dune augmentation à f s2 et f 21 et dune diminution à f sA et f At.

49 49 f At est la variable de sortie.

50 50 Coût négatif f 23

51 51 Le cycle fondamental obtenu en ajoutant la variable dentrée f 23 est : Augmentation de f 23 de 0.

52 52 On choisit f A3 comme étant la variable de sortie.

53 53 Les multiplicateurs sont obtenus en posant :

54 54 Extensions possibles : 1. v i > v i i S i P Rajouter un puits fictif n + 1 avec une demande v n+1 = v i - v i i S i P et des arcs (i, n+ 1) i S avec comme borne supérieure et un coût nul. Lorsque lalgorithme du simplexe termine, enlever le sommet fictif n + 1 ainsi que le flot dans les arcs (i, n + 1), i S.

55 55 2. v i < v i i S i P Rajouter une source fictive n + 1 avec une disponibilité v n+1 = v i - v i i P i S et des arcs (n+ 1, i) i P avec comme borne supérieure et un coût nul. Lorsque lalgorithme du simplexe termine, enlever le sommet fictif n + 1 ainsi que le flot dans les arcs (n + 1, i), i P.

56 56 3. Présence dune borne supérieure finie sur le flot dans un arc Rappel : à chaque itération du simplexe, le flot positif est restreint aux arcs dun arbre partiel T (solution de base); f ij = 0 (i, j) T un arc (i,j) T est candidat pour entrer dans la base si c ij - i + j < 0 un arc (k, l) C est candidat pour sortir de la base si : (i) (k, l) est un arc inverse dans C. (ii) f kl devient nul le premier lorsque le flot f ij augmente. Lorsquil y a des bornes supérieures sur le flot de certains arcs, la méthode du simplexe conserve toujours le vecteur de flot dans un arbre T, mais (i, j) T, ou bien f ij = 0 ou bien f ij = K ij.

57 57 Théorème : Soit une solution de base réalisable f* = (f* ij ) et larbre partiel T qui lui est associé tel que (i, j) T, on a : (i) f* ij = K ij si c ij - i + j < 0 (ii) f* ij = 0si c ij - i + j > 0 alors f* est un flot optimal. Nouveau critère dentrée : Choisir larc (i, j) T qui satisfait : Min {| c ij - i + j |} (i, j) T

58 58 Nouveau critère de sortie : (1)Si (i, j) est larc dentrée et f ij = K ij, alors le changement au flot de larc (i, j) est une diminution de t unités où t = min {f ij | (i, j) est direct, K ij – f ij | (i, j) est inverse} Larc de sortie est celui de C dont le flot atteint le premier soit 0 soit sa borne supérieure.

59 59 (2)Si (i, j) est larc dentrée et f ij = 0, alors le changement au flot de larc (i, j) est une augmentation de t unités où t = min {f ij | (i, j) est inverse, K ij – f ij | (i, j) est direct}. t unités sont ajoutées à tout arc direct de C et soustraites à tout arc inverse de C. Larc de sortie est celui de C dont le flot atteint le premier soit 0 soit sa borne supérieure. Note :Pour trouver larbre initial de flot réalisable, utiliser la méthode « grand M » en remarquant que les arcs artificiels ont une borne supérieure infinie. Dans lexemple suivant, on associe à chaque arc le triplet K ij, c ij f ij

60 60 Exemple : v = 4 Le vecteur de flot correspond à une solution de base réalisable dont la base associée correspond à un arbre partiel T :

61 61 Cette solution de base est dégénérée puisque f s1 = f 1t = 0. Les multiplicateurs du simplexe sont évalués :

62 62 Les coûts relatifs des variables hors-base sont : Puisque f 21 = 0 et f 3t = 4 = K 3t, les deux variables sont admissibles comme variable d'entrée. Nous choisissons de diminuer la valeur de la variable f 3t avec comme cycle fondamental :

63 63 On peut donc diminuer la valeur de f 3t de 2 et alors f 23 = f s2 = f 3t = 2 et f sl = f lt = 2. C'est la plus grande modification possible puisque f lt atteint sa borne supérieure K lt = 2. Cette solution réalisable est :

64 64 Larbre correspondant à cette solution de base réalisable est : non admissible comme variable dentrée : f 1t = 2 = K 1t. admissible comme variable dentrée : f 21 = 0. Le cycle fondamental correspondant à la variable f 21 est :

65 On peut augmenter la valeur de f 21 de 2, et alors f 21 = 2, f s2 = 4, f sl = 0. L'augmentation de f 21 est limitée à la fois par la variable f sl qui devient égale à 0 et par la variable d'entrée qui atteint sa borne supérieure. On pourrait donc conserver la même base et entreprendre une nouvelle itération. On préfère considérer f sl comme étant la variable de sortie pour retrouver la base dont l'arbre partiel est illustré ci-dessous :

66 66 Les coûts relatifs des variables hors-base sont donc c sl = c sl - π s + π l = = 1 c lt = c lt - π l + π t = = -2. Donc la solution de base est optimale puisque f sl = 0 et f lt = 2 = K lt.


Télécharger ppt "Problème de flot à coût minimum Énoncé du problème Exemples dapplication Adaptation de lalgorithme du simplexe."

Présentations similaires


Annonces Google