Algorithme "out-of-Kilter " dûà
Ford et Fulkerson (1962)
Le problème à une source et une destination avec des bornes inférieureset supérieures sur les arcs et avec une valeur de flot v fixée à l’avances’é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 ladualité en programmation linéaire.
Posons (i) la variable duale associée au sommet i N.
L’optimum d’un flot réalisable f est atteint s’il 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)
L’algorithme 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.
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é soitremplie par le plus grand nombre possible d’arcs.
Note : Au pire aller, prenons comme vecteur initial = 0.
Définissons l’état d’un 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) < c(x, y) et f(x, y) > L(x, y) a - arc
(y) - (x) > c(x, y) et f(x, y) < K(x, y) b - arc
On constate que la condition de complémentarité est satisfaite parles - arcs, les - arcs et les - arcs tandis qu’elle ne l’est paspar les a - arcs et les b - arcs.
Évidemment, si la condition de complémentarité est satisfaite partous les arcs du réseau, le flot est optimal et l’algorithme est terminé.Autrement, on modifie soit le flot f, soit le dual , afin d’amener lesa-arcs et les b-arcs à satisfaire les conditions de complémentaritésans que ceux qui y satisfont déjà ne cessent de le faire.
État Modification requise
a - arc changement de flot Diminuer si possible le flot surl’arc à sa borne inférieure.
a - arc changement de la Augmenter si possible la valeurvariable duale de (y) - (x) à c(x, y).
b - arc changement de flot Augmenter si possible le flot surl’arc à sa borne supérieure.
b - arc changement de la Diminuer si possible la valeurvariable duale. de (y) - (x) à c(x, y).
1er 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édierdes unités de flot de x à y par un autre chemin :
il s’agit d’un 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édierdes unités de flot de y à x par un autre chemin :
il s’agit d’un ré-acheminement de flot de y à x.
Les changements de flots sur chaque arc doivent être tels qu’aucun arcvérifiant la condition de complémentarité ne cesse de le faire.
Voici un résumé des modifications de flot possibles :
État Type de changement de flot permis
- arc admissible pour augmentation ou diminution (tout enrespectant les contraintes.
a - arc admissible pour diminution seulement.
b - arc admissible pour augmentation seulement.
- arc et - arc aucun changement permis.
Un ré-acheminement de flot de x à y s’opère en obtenant une chaîned’augmentation de x à y au moyen d’un algorithme de marquage.
Cette chaîne d’augmentation, si elle existe, n’est formée que de a-arcs,b-arcs ou -arcs selon les restrictions ci-dessus.
Si une chaîne d’augmentation existe, il faudra modifier le flot enconséquence sans oublier la modification sur l’arc (x, y).
Autrement, il nous faut modifier les variables duales afin d’augmenterle niveau de satisfaction à la condition de complémentarité.
Algorithme de marquageSoient 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 d’augmentationde i à j.
0.
S’il n’existe pas de tels arcs, c’est 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 n’importe quel sommet r marqué (z, d(r)) etnon encore examiné.
Si t est un sommet non marqué tel que (r, t) A est un -arcou 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)}.
Si t est un sommet non marqué tel que (t,r) A est un -arcou 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 encoreexaminé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 etnon encore examinée,
aller à l’algorithme de réaménagement du flot;ou bien aucune marque n’ait pu lui être assignée,
aller à l’algorithme de changement du vecteur dual.
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 suitejusqu’à ce que le réaménagement du flot atteigne la source i.
3. Lorsque la source i est atteinte, déterminer l’état de chaque arc etconstater qu’il est le même ou meilleur qu’il était au sens d’unemeilleure satisfaction à la condition de complémentarité.
S’il n’existe plus de a-arcs ou de b-arcs,alors c’est terminé, le flot est optimal,sinon effacer toutes les marques,
retourner à l’algorithme de marquage.
2ième cas : changement des variables duales.
Soient X l’ensemble des sommets marqués etX = N - X, l’ensemble des sommets non marqués.
Il est clair que i X et j X.
Posons :
A1 = {(x, y) A | x X , y X , (x,y) est un a-arc ou un -arc}
A2 = {(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) A1 A2}
(x) = (x) si x X
(x) = (x) + si x X
Déterminer l’état de chaque arc.
S’il n’existe plus de a-arcs ou de b-arcs,alors c’est terminé, le flot est optimal,sinon effacer toutes les marques,
retourner à l’algorithme 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)
A D G J
B E H
C F I
5, 20, 2 10, 20, 1 5, 20, 1 5, 30, 1 0, 60, 4 0, 90, 5
5, 20, 3 0, 10, 2 0, 10, 1 0, 10, 2 0, 40, 2 0, 70, 3
0, 10, 2 0, 40, 2
0, 15, 4 0, 20, 1
5, 30, 1 0, 30, 2 0, 50, 2
A D G J
B E H
C F I
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
Flotmaximum
A0
D1
G3
J8
B2
E4
H6
C3
F7
I5
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 20
5, 30, 1, 10
0, 60, 4, 0
0, 90, 5a, 40
5, 20, 3, 20
0, 10, 2a, 10
0, 10, 1a, 10
0, 10, 2b, 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, 2b, 30
Variablesduales
État dechaque
arc
A0
D1
G3
J8
B2
E4
H6
C3
F7
I5
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 20
5, 30, 1, 10
0, 60, 4, 0
0, 90, 5a, 40
5, 20, 3, 20
0, 10, 2a, 10
0, 10, 1a, 10
0, 10, 2b, 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, 2b, 30
Choisirun a-arc :
(C, D).
Il fautdiminuerf(C, D).
ALG.
DE
MARQUAGE (-,)
(C+,15)
(C-,15)
Dn’est pasatteint.
On procède donc à l’algorithme de changement de variables duales
On a : X = {A, C, F} et X = {B, D, E, G, H, I, J}.
D’où, A1 = {(C, D), (C, G), (F, I)}
A2 = {(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 à unsommet non marqué. On a aussi déterminé le nouvel état.
A0
D2
G4
J9
B3
E5
H7
C3
F7
I6
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 20
5, 30, 1, 10
0, 60, 4, 0
0, 90, 5a, 40
5, 20, 3, 20
0, 10, 2a, 10
0, 10, 1, 10
0, 10, 2b, 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, 2b, 30
Choisirde nouveauun a-arc :
(C, D).
Il fautdiminuerf(C, D).
ALG.
DE
MARQUAGE (-,)
(C+,15)
(C-,15)
Dn’est pasatteint.
On procède donc à l’algorithme de changement de variables duales.
On a : X = {A, C, F} et X = {B, D, E, G, H, I, J}.
D’où, A1 = {(C, D), (F, I)}
A2 = {(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 à unsommet non marqué. On a aussi déterminé le nouvel état de chaquearc.
A0
D3
G5
J10
B4
E6
H8
C3
F7
I7
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 20
5, 30, 1, 10
0, 60, 4, 0
0, 90, 5a, 40
5, 20, 3, 20
0, 10, 2a, 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, 2b, 30
Choisirde nouveauun a-arc :
(C, D).
Il fautdiminuerf(C, D).
ALG.
DE
MARQUAGE (-,)
(C+,15)
(C-,15)
Dn’est pasatteint.
On procède donc à l’algorithme de changement de variables duales.
On a : X = {A, C, F} et X = {B, D, E, G, H, I, J}.
D’où, A1 = {(C, D), (F, I)}
A2 = .
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 à unsommet non marqué. On a aussi déterminé le nouvel état de chaquearc.
A0
D4
G6
J11
B5
E7
H9
C3
F7
I8
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 20
5, 30, 1, 10
0, 60, 4, 0
0, 90, 5a, 40
5, 20, 3, 20
0, 10, 2a, 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, 2b, 30
Choisirde nouveauun a-arc :
(C, D).ALG.
DE
MARQUAGE (-,)
(C+,15)
(C-,15)
(F+,15)
(G-,5) (E-,5) (I+,15)
(E-,10) (H-,15)(J-,15)
Posons = min{d(D), f(C, D) – L(C, D)} = 5f(C, D) = f(C, D) – 5.
(C, D) est un a-arc.
Appliquons l’algorithme de réaménagement du flot.
Ré-acheminement du flot.
Lorsque la source C est atteinte, déterminer l’état de chaque arc.
A0
D4
G6
J11
B5
E7
H9
C3
F7
I8
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 20
5, 30, 1, 5
0, 60, 4, 0
0, 90, 5a, 35
5, 20, 3, 20
0, 10, 2a, 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, 2b, 30
(-,)
(C+,15)
(C-,15)
(F+,15)
(G-,5) (E-,5) (I+,15)
(E-,10) (H-,15)(J-,15)
A0
D4
G6
J11
B5
E7
H9
C3
F7
I8
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 20
5, 30, 1, 5
0, 60, 4, 0
0, 90, 5a, 35
5, 20, 3, 20
0, 10, 2a, 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, 2b, 30
Effacerles marques
Déterminerl’état dechaquearc
A0
D4
G6
J11
B5
E7
H9
C3
F7
I8
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 20
5, 30, 1, 5
0, 60, 4, 0
0, 90, 5a, 35
5, 20, 3, 20
0, 10, 2a, 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, 2b, 30
Choisirde nouveauun a-arc :
(C, D).ALG.
DE
MARQUAGE (-,)
(C+,10) (F+,10)
(C-,15) (I+,10)
(E-,10) (H-,10)
(J-,10)
On procède donc à l’algorithme de changement de variables duales.
On a : X = {A, B, C, E, F, H, I, J} et X = {D, G}.
D’où, A1 = {(B, D), (C, D)}
A2 = {(D, E), (G, J)}.
Donc, = min {2, 1, 2, 3 } = 1.
On ajoute donc 1 unité à chaque variable duale associée à unsommet non marqué. On a aussi déterminé le nouvel état de chaquearc.
A0
D5
G7
J11
B5
E7
H9
C3
F7
I8
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 20
5, 30, 1, 5
0, 60, 4, 0
0, 90, 5a, 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, 2b, 30
ALG.
DE
MARQUAGE
(-,)
Choisirun b-arc :
(G, J).
Il fautaugmenter
f(G, J).
(J-,5)
(I-,5)
(F-,5)
(C-,5) (C+,5) (D+,5)
(E-,10) (H-,35) (J-,35)
Posons = min{d(G), K(G, J) – f(G, J)} = 5f(G, J) = f(G, J) + 5.
(G, J) est un b-arc.
Appliquons l’algorithme de réaménagement du flot.
Ré-acheminement du flot.
Lorsque la source J est atteinte, déterminer l’état de chaque arc.
A0
D5
G7
J11
B5
E7
H9
C3
F7
I8
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 20
5, 30, 1, 5
0, 60, 4, 0
0, 90, 5a, 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, 2b, 35
(-,)
(J-,5)
(I-,5)
(F-,5)
(C-,5) (C+,5) (D+,5)
(E-,10) (H-,35) (J-,35)
A0
D5
G7
J11
B5
E7
H9
C3
F7
I8
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 20
5, 30, 1, 5
0, 60, 4, 0
0, 90, 5a, 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, 2b, 35
Effacerles marques
A0
D5
G7
J11
B5
E7
H9
C3
F7
I8
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 20
5, 30, 1, 5
0, 60, 4, 0
0, 90, 5a, 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, 2b, 35
Choisirun b-arc :
(G, J).
(-,)
(E-,10) (H-,35) (J-,35)
On procède donc à l’algorithme de changement de variables duales.
On a : X = {B, E, H, J} et X = {A, D, G, I, F, C}.
D’où, A1 = {(B, D)}
A2 = {(A, B), (D, E), (G, J)}.
Donc, = min {1, 3, 1 } = 1.
On ajoute donc 1 unité à chaque variable duale associée à unsommet non marqué. On a aussi déterminé le nouvel état de chaquearc.
A1
D6
G8
J11
B5
E7
H9
C4
F8
I9
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 20
5, 30, 1, 5
0, 60, 4, 0
0, 90, 5a, 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, 2b, 35
Choisirun b-arc :
(G, J).
(-,)
(E-,10) (H-,35) (J-,35)
ALG.
DE
MARQUAGE
Choisirun b-arc :
(G, J).
(E-,15)(C-,10)
(D-,10)
(C+,10)
(F+,10)
On procède donc à l’algorithme de changement de variables duales.
On a : X = {A, B, C, D, E, F, H, I, J} et X = {G}.
D’où, A1 =
A2 = {(G, J)}.
Donc, = 1.
On ajoute donc 1 unité à chaque variable duale associée à unsommet non marqué. On a aussi déterminé le nouvel état de chaquearc.
A1
D6
G9
J11
B5
E7
H9
C4
F8
I9
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 20
5, 30, 1, 5
0, 60, 4, 0
0, 90, 5a, 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
Choisirun a-arc :
(H, J).
(-,)
(E-,10) (H-,35)
ALG.
DE
MARQUAGE
(E-,15)(C-,10)
(D-,10)
(C+,10)
(F+,10)
On procède donc à l’algorithme de changement de variables duales.
On a : X = {A, B, C, D, E, F, H, I} et X = {G, J}.
D’où, A1 = {(I, J), (H, J)}
A2 = .
Donc, = min{1, 3} = 1.
On ajoute donc 1 unité à chaque variable duale associée à unsommet non marqué. On a aussi déterminé le nouvel état de chaquearc.
A1
D6
G10
J12
B5
E7
H9
C4
F8
I9
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 20
5, 30, 1, 5
0, 60, 4, 0
0, 90, 5a, 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
Choisirun a-arc :
(H, J).
(-,)
(E-,10) (H-,35)
ALG.
DE
MARQUAGE
(E-,15)(C-,10)
(D-,10)
(C+,10)
(F+,10)
(I+,10)
Posons = min{d(J), f(H, J) – L(H, J)} = min{10, 35}f(H, J) = f(H, J) - 10.
(H, J) est un a-arc.
Appliquons l’algorithme de réaménagement du flot.
Ré-acheminement du flot.
Lorsque la source H est atteinte, déterminer l’état de chaque arc.
A1
D6
G10
J12
B5
E7
H9
C4
F8
I9
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 10
5, 30, 1, 5
0, 60, 4, 0
0, 90, 5a, 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)
Effacerles marques
A1
D6
G10
J12
B5
E7
H9
C4
F8
I9
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 10
5, 30, 1, 5
0, 60, 4, 0
0, 90, 5a, 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
Choisirun a-arc :
(H, J).
A1
D6
G10
J12
B5
E7
H9
C4
F8
I9
5, 20, 2, 20
10, 20, 1, 10
5, 20, 1, 10
5, 30, 1, 5
0, 60, 4, 0
0, 90, 5a, 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)
On procède donc à l’algorithme de changement de variables duales.
On a : X = {B, D, E, H} et X = {A, C, F, G, I, J}.
D’où, A1 = {(H, J)}
A2 = {(A, B), (A, D)}.
Donc, = min{2, 2, 4} = 2.
On ajoute donc 2 unités à chaque variable duale associée à unsommet non marqué. On a aussi déterminé le nouvel état de chaquearc.
A3
D6
G12
J14
B5
E7
H9
C6
F10
I11
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ûtoptimal :
570
Top Related