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

Algorithme "out-of-Kilter " dû à Ford et Fulkerson (1962)

Présentations similaires


Présentation au sujet: "Algorithme "out-of-Kilter " dû à Ford et Fulkerson (1962)"— Transcription de la présentation:

1 Algorithme "out-of-Kilter " dû à Ford et Fulkerson (1962)

2 Le problème à une source et une destination avec des bornes inférieures et supérieures sur les arcs et avec une valeur de flot v fixée à lavance sénonce 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 si x = s 0 si x {s, p} -v si x = p L(x, y) f(x, y) K(x, y), (x, y) A. Considérons un algorithme de type primal-dual issu de la théorie de la dualité en programmation linéaire.

3 Posons (i) la variable duale associée au sommet i N. Loptimum dun flot réalisable f est atteint sil existe un vecteur dual satisfaisant la condition de complémentarité suivante : (x, y) A, (y) - (x) > c(x, y) f(x, y) = K(x, y) (y) - (x) < c(x, y) f(x, y) = L(x, y) (y) - (x) = c(x, y) L(x, y) f(x, y) K(x, y) Lalgorithme primal-dual utilise des couples de solutions primale – réalisable et duale-réalisable et tente de les modifier, une à la fois, de telle sorte que la condition de complémentarité soit satisfaite.

4 Algorithme primal - dual Déterminer un flot réalisable f initial dont sa valeur est égale à v. Choisir un vecteur tel que la condition de complémentarité soit remplie par le plus grand nombre possible darcs. Note : Au pire aller, prenons comme vecteur initial = 0. Définissons létat dun arc (x, y) comme suit : Condition État (y) - (x) < c(x, y)et f(x, y) = L(x, y) - arc (y) - (x) = c(x, y)et L(x, y) f(x, y) K(x, y) - arc (y) - (x) > c(x, y)et f(x, y) = K(x, y) - arc (y) - (x) L(x, y)a - arc (y) - (x) > c(x, y)et f(x, y) < K(x, y)b - arc

5 On constate que la condition de complémentarité est satisfaite par les - arcs, les - arcs et les - arcs tandis quelle ne lest pas par les a - arcs et les b - arcs. Évidemment, si la condition de complémentarité est satisfaite par tous les arcs du réseau, le flot est optimal et lalgorithme est terminé. Autrement, on modifie soit le flot f, soit le dual, afin damener les a-arcs et les b-arcs à satisfaire les conditions de complémentarité sans que ceux qui y satisfont déjà ne cessent de le faire. ÉtatModification requise a - arcchangement de flotDiminuer si possible le flot sur larc à sa borne inférieure. a - arcchangement de laAugmenter si possible la valeur variable dualede (y) - (x) à c(x, y). b - arcchangement de flotAugmenter si possible le flot sur larc à sa borne supérieure. b - arcchangement de laDiminuer si possible la valeur variable duale.de (y) - (x) à c(x, y).

6 1 er cas :changement de flot. Considérons un a-arc (x, y). La quantité de flot f(x, y) doit être réduite. Pour réduire cette quantité sans modifier v, il faut expédier des unités de flot de x à y par un autre chemin : il sagit dun ré-acheminement de flot de x à y. Considérons un b-arc (x, y). La quantité de flot f(x, y) doit être augmentée. Pour augmenter cette quantité sans modifier v, il faut expédier des unités de flot de y à x par un autre chemin : il sagit dun ré-acheminement de flot de y à x. Les changements de flots sur chaque arc doivent être tels quaucun arc vérifiant la condition de complémentarité ne cesse de le faire.

7 Voici un résumé des modifications de flot possibles : ÉtatType de changement de flot permis - arcadmissible pour augmentation ou diminution (tout en respectant les contraintes. a - arcadmissible pour diminution seulement. b - arcadmissible pour augmentation seulement. - arc et - arcaucun changement permis. Un ré-acheminement de flot de x à y sopère en obtenant une chaîne daugmentation de x à y au moyen dun algorithme de marquage. Cette chaîne daugmentation, si elle existe, nest formée que de a-arcs, b-arcs ou -arcs selon les restrictions ci-dessus.

8 Si une chaîne daugmentation existe, il faudra modifier le flot en conséquence sans oublier la modification sur larc (x, y). Autrement, il nous faut modifier les variables duales afin daugmenter le niveau de satisfaction à la condition de complémentarité.

9 Algorithme de marquage Soient f un flot réalisable et le vecteur dual, Choisir un a-arc ou un b-arc (x, y) A, - poser i = x et j = y si (x, y) est un a-arc, - poser i = y et j = x si (x, y) est un b-arc. Notre objectif est de déterminer une chaîne daugmentation de i à j. 0. Sil nexiste pas de tels arcs, cest terminé, le flot est optimal. 1. Tous les sommets sont non marqués sauf i. Le sommet i est marqué (-, d(i) = ) et non encore examiné. 2. Choisir nimporte quel sommet r marqué (z, d(r)) et non encore examiné. Si t est un sommet non marqué tel que (r, t) A est un -arc ou un b-arc, avec f(r, t) < K(r, t), lui assigner la marque (r +, d(t)) où d(t) = min{d(r), K(r, t) – f(r, t)}.

10 Si t est un sommet non marqué tel que (t,r) A est un -arc ou un a-arc, avec f(t, r) > L(t, r), lui assigner la marque (r -, d(t)) où d(t) = min{d(r), f(t, r) – L(t, r)}. De tels sommets t sont maintenant marqués et non encore examinés. 3. Répéter létape précédente, aussi souvent que possible, jusquà ce que, ou bien notre destination j du ré-acheminement soit marquée et non encore examinée, aller à lalgorithme de réaménagement du flot; ou bien aucune marque nait pu lui être assignée, aller à lalgorithme de changement du vecteur dual.

11 Algorithme de réaménagement du flot 1. Posons = min{d(j), f(i, j) – L(i, j)} f(i, j) = f(i, j) - (i, j) est un a-arc. (j, i) est un b-arc. Posons = min{d(j), K(j, i) – f(j, i)} f(j, i) = f(j, i) + 2. Si j est marqué (t +, d(j)),poser f(t, j) = f(t, j) +, (t -, d(j)),poser f(j, t) = f(j, t) -. Si t est marqué (r +, d(t)),poser f(r, t) = f(r, t) +, (r -, d(t)),poser f(t, r) = f(t, r) -. Reprendre cette dernière étape avec le sommet r et ainsi de suite jusquà ce que le réaménagement du flot atteigne la source i.

12 3. Lorsque la source i est atteinte, déterminer létat de chaque arc et constater quil est le même ou meilleur quil était au sens dune meilleure satisfaction à la condition de complémentarité. Sil nexiste plus de a-arcs ou de b-arcs, alorscest terminé, le flot est optimal, sinoneffacer toutes les marques, retourner à lalgorithme de marquage.

13 2 ième cas :changement des variables duales. Soient X lensemble des sommets marqués et X = N - X, lensemble des sommets non marqués. Il est clair que i X et j X. Posons : A 1 = {(x, y) A | x X, y X, (x,y) est un a-arc ou un -arc} A 2 = {(x, y) A | x X, y X, (x,y) est un b-arc ou un -arc} Calculer : = min{| (y) - (x) - c(x, y) | : (x, y) A 1 A 2 } (x) = (x) si x X (x) = (x) + si x X Déterminer létat de chaque arc.

14 Sil nexiste plus de a-arcs ou de b-arcs, alorscest terminé, le flot est optimal, sinoneffacer toutes les marques, retourner à lalgorithme de marquage. Considérons maintenant un exemple où dans les cases associées à chaque arc, nous indiquerons les quantités suivantes : L(x, y), K(x, y), c(x, y) état, f(x, y)

15 ADGJ BEH CFI 5, 20, 210, 20, 15, 20, 15, 30, 10, 60, 40, 90, 5 5, 20, 30, 10, 20, 10, 10, 10, 20, 40, 20, 70, 3 0, 10, 20, 40, 2 0, 15, 40, 20, 1 5, 30, 10, 30, 20, 50, 2

16 ADGJ BEH CFI 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 10 0, 60, 4, 0 0, 90, 5, 40 5, 20, 3, 20 0, 10, 2, 10 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 0 0, 10, 2, 10 0, 40, 2, 40 0, 15, 4, 0 0, 20, 1, 0 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2, 30 Flot maximum

17 A0A0 D1D1 G3G3 J8J8 B2B2 E4E4 H6H6 C3C3 F7F7 I5I5 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 10 0, 60, 4, 0 0, 90, 5 a, 40 5, 20, 3, 20 0, 10, 2 a, 10 0, 10, 1 a, 10 0, 10, 2 b, 0 0, 40, 2, 0 0, 70, 3, 0 0, 10, 2, 10 0, 40, 2, 40 0, 15, 4, 0 0, 20, 1, 0 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2 b, 30 Variables duales État de chaque arc

18 A0A0 D1D1 G3G3 J8J8 B2B2 E4E4 H6H6 C3C3 F7F7 I5I5 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 10 0, 60, 4, 0 0, 90, 5 a, 40 5, 20, 3, 20 0, 10, 2 a, 10 0, 10, 1 a, 10 0, 10, 2 b, 0 0, 40, 2, 0 0, 70, 3, 0 0, 10, 2, 10 0, 40, 2, 40 0, 15, 4, 0 0, 20, 1, 0 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2 b, 30 Choisir un a-arc : (C, D). Il faut diminuer f(C, D). ALG.DEMARQUAGEALG.DEMARQUAGE (-, ) (C +,15) (C -,15) D nest pas atteint.

19 On procède donc à lalgorithme de changement de variables duales On a : X = {A, C, F}et X = {B, D, E, G, H, I, J}. Doù, A 1 = {(C, D), (C, G), (F, I)} A 2 = {(G, F)}. Donc, = min {| (D) – (C) - c(C, D)|, | (G) – (C) - c(C, G)|, | (I) – (F) - c(F, I)|, | (F) – (G) - c(G, F)| } = min {4, 1, 3, 2} = 1. On ajoute donc 1 unité à chaque variable duale associée à un sommet non marqué. On a aussi déterminé le nouvel état.

20 A0A0 D2D2 G4G4 J9J9 B3B3 E5E5 H7H7 C3C3 F7F7 I6I6 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 10 0, 60, 4, 0 0, 90, 5 a, 40 5, 20, 3, 20 0, 10, 2 a, 10 0, 10, 1, 10 0, 10, 2 b, 0 0, 40, 2, 0 0, 70, 3, 0 0, 10, 2, 10 0, 40, 2, 40 0, 15, 4, 0 0, 20, 1, 0 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2 b, 30 Choisir de nouveau un a-arc : (C, D). Il faut diminuer f(C, D). ALG.DEMARQUAGEALG.DEMARQUAGE (-, ) (C +,15) (C -,15) D nest pas atteint.

21 On procède donc à lalgorithme de changement de variables duales. On a : X = {A, C, F}et X = {B, D, E, G, H, I, J}. Doù, A 1 = {(C, D), (F, I)} A 2 = {(G, F)}. Donc, = min {| (D) – (C) - c(C, D)|, | (I) – (F) - c(F, I)|, | (F) – (G) - c(G, F)| } = min {3, 2, 1} = 1. On ajoute donc 1 unité à chaque variable duale associée à un sommet non marqué. On a aussi déterminé le nouvel état de chaque arc.

22 A0A0 D3D3 G5G5 J 10 B4B4 E6E6 H8H8 C3C3 F7F7 I7I7 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 10 0, 60, 4, 0 0, 90, 5 a, 40 5, 20, 3, 20 0, 10, 2 a, 10 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 0 0, 10, 2, 10 0, 40, 2, 40 0, 15, 4, 0 0, 20, 1, 0 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2 b, 30 Choisir de nouveau un a-arc : (C, D). Il faut diminuer f(C, D). ALG.DEMARQUAGEALG.DEMARQUAGE (-, ) (C +,15) (C -,15) D nest pas atteint.

23 On procède donc à lalgorithme de changement de variables duales. On a : X = {A, C, F}et X = {B, D, E, G, H, I, J}. Doù, A 1 = {(C, D), (F, I)} A 2 =. Donc, = min {| (D) – (C) - c(C, D)|, | (I) – (F) - c(F, I)| } = min {2, 1} = 1. On ajoute donc 1 unité à chaque variable duale associée à un sommet non marqué. On a aussi déterminé le nouvel état de chaque arc.

24 A0A0 D4D4 G6G6 J 11 B5B5 E7E7 H9H9 C3C3 F7F7 I8I8 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 10 0, 60, 4, 0 0, 90, 5 a, 40 5, 20, 3, 20 0, 10, 2 a, 10 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 0 0, 10, 2, 10 0, 40, 2, 40 0, 15, 4, 0 0, 20, 1, 0 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2 b, 30 Choisir de nouveau un a-arc : (C, D). ALG.DEMARQUAGEALG.DEMARQUAGE (-, ) (C +,15) (C -,15) (F +,15) (G -,5)(E -,5)(I +,15) (E -,10)(H -,15) (J -,15)

25 Posons = min{d(D), f(C, D) – L(C, D)} = 5 f(C, D) = f(C, D) – 5. (C, D) est un a-arc. Appliquons lalgorithme de réaménagement du flot. Ré-acheminement du flot. Lorsque la source C est atteinte, déterminer létat de chaque arc.

26 A0A0 D4D4 G6G6 J 11 B5B5 E7E7 H9H9 C3C3 F7F7 I8I8 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 5 0, 60, 4, 0 0, 90, 5 a, 35 5, 20, 3, 20 0, 10, 2 a, 5 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 5 0, 10, 2, 10 0, 40, 2, 35 0, 15, 4, 5 0, 20, 1, 5 5, 30, 1, 30 0, 30, 2, 25 0, 50, 2 b, 30 (-, ) (C +,15) (C -,15) (F +,15) (G -,5)(E -,5)(I +,15) (E -,10)(H -,15) (J -,15)

27 A0A0 D4D4 G6G6 J 11 B5B5 E7E7 H9H9 C3C3 F7F7 I8I8 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 5 0, 60, 4, 0 0, 90, 5 a, 35 5, 20, 3, 20 0, 10, 2 a, 5 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 5 0, 10, 2, 10 0, 40, 2, 35 0, 15, 4, 5 0, 20, 1, 5 5, 30, 1, 30 0, 30, 2, 25 0, 50, 2 b, 30 Effacer les marques Déterminer létat de chaque arc

28 A0A0 D4D4 G6G6 J 11 B5B5 E7E7 H9H9 C3C3 F7F7 I8I8 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 5 0, 60, 4, 0 0, 90, 5 a, 35 5, 20, 3, 20 0, 10, 2 a, 5 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 5 0, 10, 2, 10 0, 40, 2, 35 0, 15, 4, 5 0, 20, 1, 5 5, 30, 1, 30 0, 30, 2, 25 0, 50, 2 b, 30 Choisir de nouveau un a-arc : (C, D). ALG.DEMARQUAGEALG.DEMARQUAGE (-, ) (C +,10) (F +,10) (C -,15)(I +,10) (E -,10)(H -,10) (J -,10)

29 On procède donc à lalgorithme de changement de variables duales. On a : X = {A, B, C, E, F, H, I, J}et X = {D, G}. Doù, A 1 = {(B, D), (C, D)} A 2 = {(D, E), (G, J)}. Donc,= min {2, 1, 2, 3 }= 1. On ajoute donc 1 unité à chaque variable duale associée à un sommet non marqué. On a aussi déterminé le nouvel état de chaque arc.

30 A0A0 D5D5 G7G7 J 11 B5B5 E7E7 H9H9 C3C3 F7F7 I8I8 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 5 0, 60, 4, 0 0, 90, 5 a, 35 5, 20, 3, 20 0, 10, 2, 5 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 5 0, 10, 2, 10 0, 40, 2, 35 0, 15, 4, 5 0, 20, 1, 5 5, 30, 1, 30 0, 30, 2, 25 0, 50, 2 b, 30 ALG.DEMARQUAGEALG.DEMARQUAGE (-, ) Choisir un b-arc : (G, J). Il faut augmenter f(G, J). (J -,5) (I -,5) (F -,5) (C -,5)(C +,5)(D +,5) (E -,10)(H -,35)(J -,35)

31 Posons = min{d(G), K(G, J) – f(G, J)} = 5 f(G, J) = f(G, J) + 5. (G, J) est un b-arc. Appliquons lalgorithme de réaménagement du flot. Ré-acheminement du flot. Lorsque la source J est atteinte, déterminer létat de chaque arc.

32 A0A0 D5D5 G7G7 J 11 B5B5 E7E7 H9H9 C3C3 F7F7 I8I8 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 5 0, 60, 4, 0 0, 90, 5 a, 35 5, 20, 3, 20 0, 10, 2, 10 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 0 0, 10, 2, 10 0, 40, 2, 35 0, 15, 4, 0 0, 20, 1, 0 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2 b, 35 (-, ) (J -,5) (I -,5) (F -,5) (C -,5)(C +,5)(D +,5) (E -,10)(H -,35)(J -,35)

33 A0A0 D5D5 G7G7 J 11 B5B5 E7E7 H9H9 C3C3 F7F7 I8I8 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 5 0, 60, 4, 0 0, 90, 5 a, 35 5, 20, 3, 20 0, 10, 2, 10 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 0 0, 10, 2, 10 0, 40, 2, 35 0, 15, 4, 0 0, 20, 1, 0 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2 b, 35 Effacer les marques

34 A0A0 D5D5 G7G7 J 11 B5B5 E7E7 H9H9 C3C3 F7F7 I8I8 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 5 0, 60, 4, 0 0, 90, 5 a, 35 5, 20, 3, 20 0, 10, 2, 10 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 0 0, 10, 2, 10 0, 40, 2, 35 0, 15, 4, 0 0, 20, 1, 0 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2 b, 35 Choisir un b-arc : (G, J). (-, ) (E -,10)(H -,35)(J -,35)

35 On procède donc à lalgorithme de changement de variables duales. On a : X = {B, E, H, J}et X = {A, D, G, I, F, C}. Doù, A 1 = {(B, D)} A 2 = {(A, B), (D, E), (G, J)}. Donc,= min {1, 3, 1 }= 1. On ajoute donc 1 unité à chaque variable duale associée à un sommet non marqué. On a aussi déterminé le nouvel état de chaque arc.

36 A1A1 D6D6 G8G8 J 11 B5B5 E7E7 H9H9 C4C4 F8F8 I9I9 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 5 0, 60, 4, 0 0, 90, 5 a, 35 5, 20, 3, 20 0, 10, 2, 10 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 0 0, 10, 2, 10 0, 40, 2, 35 0, 15, 4, 0 0, 20, 1, 0 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2 b, 35 Choisir un b-arc : (G, J). (-, ) (E -,10)(H -,35)(J -,35) ALG.DEMARQUAGEALG.DEMARQUAGE Choisir un b-arc : (G, J). (E -,15)(C -,10) (D -,10) (C +,10) (F +,10)

37 On procède donc à lalgorithme de changement de variables duales. On a : X = {A, B, C, D, E, F, H, I, J}et X = {G}. Doù, A 1 = A 2 = {(G, J)}. Donc,= 1. On ajoute donc 1 unité à chaque variable duale associée à un sommet non marqué. On a aussi déterminé le nouvel état de chaque arc.

38 A1A1 D6D6 G9G9 J 11 B5B5 E7E7 H9H9 C4C4 F8F8 I9I9 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 5 0, 60, 4, 0 0, 90, 5 a, 35 5, 20, 3, 20 0, 10, 2, 10 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 0 0, 10, 2, 10 0, 40, 2, 35 0, 15, 4, 0 0, 20, 1, 0 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2, 35 Choisir un a-arc : (H, J). (-, ) (E -,10)(H -,35) ALG.DEMARQUAGEALG.DEMARQUAGE (E -,15)(C -,10) (D -,10) (C +,10) (F +,10)

39 On procède donc à lalgorithme de changement de variables duales. On a : X = {A, B, C, D, E, F, H, I}et X = {G, J}. Doù, A 1 = {(I, J), (H, J)} A 2 =. Donc,= min{1, 3} = 1. On ajoute donc 1 unité à chaque variable duale associée à un sommet non marqué. On a aussi déterminé le nouvel état de chaque arc.

40 A1A1 D6D6 G 10 J 12 B5B5 E7E7 H9H9 C4C4 F8F8 I9I9 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 20 5, 30, 1, 5 0, 60, 4, 0 0, 90, 5 a, 35 5, 20, 3, 20 0, 10, 2, 10 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 0 0, 10, 2, 10 0, 40, 2, 35 0, 15, 4, 0 0, 20, 1, 0 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2, 35 Choisir un a-arc : (H, J). (-, ) (E -,10)(H -,35) ALG.DEMARQUAGEALG.DEMARQUAGE (E -,15)(C -,10) (D -,10) (C +,10) (F +,10) (I +,10)

41 Posons = min{d(J), f(H, J) – L(H, J)} = min{10, 35} f(H, J) = f(H, J) (H, J) est un a-arc. Appliquons lalgorithme de réaménagement du flot. Ré-acheminement du flot. Lorsque la source H est atteinte, déterminer létat de chaque arc.

42 A1A1 D6D6 G 10 J 12 B5B5 E7E7 H9H9 C4C4 F8F8 I9I9 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 10 5, 30, 1, 5 0, 60, 4, 0 0, 90, 5 a, 25 5, 20, 3, 20 0, 10, 2, 0 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 10 0, 10, 2, 10 0, 40, 2, 25 0, 15, 4, 10 0, 20, 1, 10 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2, 35 (-, ) (E -,10)(H -,25) (B +,10) (D -,10) (C +,10) (F +,10)

43 Effacer les marques A1A1 D6D6 G 10 J 12 B5B5 E7E7 H9H9 C4C4 F8F8 I9I9 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 10 5, 30, 1, 5 0, 60, 4, 0 0, 90, 5 a, 25 5, 20, 3, 20 0, 10, 2, 0 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 10 0, 10, 2, 10 0, 40, 2, 25 0, 15, 4, 10 0, 20, 1, 10 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2, 35

44 Choisir un a-arc : (H, J). A1A1 D6D6 G 10 J 12 B5B5 E7E7 H9H9 C4C4 F8F8 I9I9 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 10 5, 30, 1, 5 0, 60, 4, 0 0, 90, 5 a, 25 5, 20, 3, 20 0, 10, 2, 0 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 10 0, 10, 2, 10 0, 40, 2, 25 0, 15, 4, 10 0, 20, 1, 10 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2, 35 (-, ) (E -,10)(H -,25) (B +,10)

45 On procède donc à lalgorithme de changement de variables duales. On a : X = {B, D, E, H}et X = {A, C, F, G, I, J}. Doù, A 1 = {(H, J)} A 2 = {(A, B), (A, D)}. Donc,= min{2, 2, 4} = 2. On ajoute donc 2 unités à chaque variable duale associée à un sommet non marqué. On a aussi déterminé le nouvel état de chaque arc.

46 A3A3 D6D6 G 12 J 14 B5B5 E7E7 H9H9 C6C6 F 10 I 11 5, 20, 2, 20 10, 20, 1, 10 5, 20, 1, 10 5, 30, 1, 5 0, 60, 4, 0 0, 90, 5, 25 5, 20, 3, 20 0, 10, 2, 0 0, 10, 1, 10 0, 10, 2, 0 0, 40, 2, 0 0, 70, 3, 10 0, 10, 2, 10 0, 40, 2, 25 0, 15, 4, 10 0, 20, 1, 10 5, 30, 1, 30 0, 30, 2, 30 0, 50, 2, 35 Coût optimal : 570


Télécharger ppt "Algorithme "out-of-Kilter " dû à Ford et Fulkerson (1962)"

Présentations similaires


Annonces Google