Documente Academic
Documente Profesional
Documente Cultură
de
Transport
Analysons
cet
exemple
de
distribution.
Nous
Avons
3
Usines
(Sources)
et
4
Clients
(Destinations)
• Les
usines
1,
2
et
3
possèdent
un
stock
de
700,
900
et
1600
Unités
respectivement
• Les
clients
A,
B,
C
et
D
commandent
800,
500,
600
et
1300
Unités
respectivement
• Le
coût
de
transport
unitaire
de
chacune
des
sources
vers
chacune
des
destinations
est
donné
dans
le
tableau
suivant
:
A
B
C
D
Stock
1
4
6
8
3
700
2
5
5
7
4
900
3
2
3
11
9
1600
Commande
800
500
600
1300
Question
De
quelle
manière
devons
nous
servir
l’ensemble
des
clients
afin
de
minimiser
le
coût
de
transport
total
?
De
manière
générale
on
a
:
• N
Sources
• M
Destinations
• Chaque
Source
produit
Ai
unités
1<
=
i
<=
N
• Chaque
Destination
commande
Bj
unités
1
<=
j
<=
M
• Le
coût
de
transport
unitaire
de
la
source
i
à
la
destination
j
est
donné
dans
la
matrice
des
coûts
Cij.
Formulation
Mathématique
Notons
par
:
Xij
La
quantité
de
produit
servie
par
la
source
i
à
la
destination
j
Que
vaut
:
!
• La
production
Totale
= !!! 𝐴𝑖
!
• La
Commande
Totale
= !!! 𝐵𝑗
! !
• Le
coût
de
transport
total
= !!! !!! 𝐶𝑖𝑗 ∗ 𝑋𝑖𝑗
!
• La
quantité
reçue
par
le
client
j = !!! 𝑋𝑖𝑗
!
• La
quantité
servie
par
la
source
i = !!! 𝑋𝑖𝑗
Formulation
Mathématique
! !
𝑋𝑖𝑗 = 𝐵𝑗 1 ≤ 𝑗 ≤ 𝑀
!!!
!
𝑋𝑖𝑗 ≤ 𝐴𝑖 1 ≤ 𝑖 ≤ 𝑁
!!!
𝑋𝑖𝑗 ≥ 0
Problème
de
Programmation
Linéaire
Hypothèse
! !
𝐴𝑖 = 𝐵𝑗
!!! !!!
! !
𝑋𝑖𝑗 = 𝐴𝑖 1 ≤ 𝑖 ≤ 𝑁
!!!
!
𝑋𝑖𝑗 = 𝐵𝑗 1 ≤ 𝑗 ≤ 𝑀
!!!
𝑋𝑖𝑗 ≥ 0
Problème
de
Transport
Contraintes
sous
forme
de
Tableau
X11
X12
X13
X14
X21
X22
X23
X24
X31
X32
X33
X34
1
1
1
1
700
Sources
1 1 1 1 900
1 1 1 1 1600
1
1
1
800
Destinations
1 1 1 500
1 1 1 600
1 1 1 1300
Algorithme
de
Transport
1. Vérification
de
L’Hypothèse
A
B
C
D
Sources
1
4
6
8
3
700
2
5
5
7
4
900
3 2 3 11 9 1600
2. Tableau
Initial
A
B
C
D
Sources
1
4
6
8
700
3
700
X0
=
3*700
+
5*300
+
4*600
+
2*500
+
3*500
+
11*600
X0
=
15100
3. Nombre
de
Variables
de
Base
N+M-‐1
4. Calcul
des
coûts
réduits
Par
La
méthode
des
θ
:
A
B
C
D
Sources
1
4
6
8
700
3
700
5. Calcul
des
coûts
réduits
Par
La
méthode
des
θ
:
A
B
C
D
Sources
1 7 4 8 6 2 8 700 3 700
Tous
les
coûts
réduits
sont
positifs
ou
nuls
donc
le
tableau
en
cours
est
un
tableau
final.
Le
client
A
sera
servi
par
la
source
3
de
800
Unités
Le
client
B
sera
servi
par
la
source
3
de
500
Unités
Le
client
C
sera
servi
par
les
sources
2
et
3
de
la
quantité
300
et
300
unités
Le
client
D
sera
servi
des
sources
1
et
2
des
quantités
700
et
600
unités
X0
=
15
100
+
300
*
(
-‐
7
)
=
13
000
Question
Comment
Eviter
le
Calcul
des
coûts
réduits
Par
La
méthode
des
θ
?
Résolution
par
la
méthode
Duale
Le
dual
du
problème
de
transport
! !
𝑋𝑖𝑗 = 𝐴𝑖 1 ≤ 𝑖 ≤ 𝑁
!!!
!
𝑋𝑖𝑗 = 𝐵𝑗 1 ≤ 𝑗 ≤ 𝑀
!!!
𝑋𝑖𝑗 ≥ 0
est
:
! !
𝑀𝑎𝑥 𝑉𝑖 ∗ 𝐴𝑖 + 𝑊𝑗 ∗ 𝐵𝑗
!!! !!!
𝑉𝑖 + 𝑊𝑗 ≤ 𝐶𝑖𝑗 1 ≤ 𝑖 ≤ 𝑁, 1 ≤ 𝑗 ≤ 𝑀
𝑉𝑖, 𝑊𝑗 𝐿𝑖𝑏𝑟𝑒𝑠
Les
Variables
d’écarts
Zij
de
𝑉𝑖 + 𝑊𝑗 + 𝑍𝑖𝑗 = 𝐶𝑖𝑗 1 ≤ 𝑖 ≤ 𝑁, 1 ≤ 𝑗 ≤ 𝑀
Sont
en
bijection
avec
les
variables
Xij
Remarque
Si
Xij
est
une
variable
de
Base,
sa
correspondante
Zij
est
alors
Hors
base,
et
vaut
donc
Zéro.
L’équation
:
𝑉𝑖 + 𝑊𝑗 + 𝑍𝑖𝑗 = 𝐶𝑖𝑗
Devient
𝑉𝑖 + 𝑊𝑗 = 𝐶𝑖𝑗
Les
inconnues
(N
+
M)
de
ce
système
sont
:
les
Vi
1<=i<=N,
et
les
Wj
1<=
j<=
M.
Le
nombre
de
Variables
de
Base
dans
le
problème
Primal
est
de
:
(N
+
M
–
1).
Si
on
fixe
V1
=
0,
on
aura
un
système
de
N+M-‐1
équations
à
N+M-‐1
inconnues,
à
partir
duquel
on
peut
connaître
tous
les
Vi
et
les
Wj.
Si
par
contre
Xij
est
Hors
base
comment
calculer
son
coût
réduit
?
Il
suffit
de
calculer
la
valeur
de
sa
correspondante
Zij
qui
est
alors
une
variable
de
base,
en
utilisant
l’équation
:
𝑍𝑖𝑗 = 𝐶𝑖𝑗
-‐
Vi
–
Wj
Application
A
B
C
D
Sources
W1=
W2=
W3=
W4=
1
4
6
8
700
3
700
V1=0
Calcul
des
Coûts
réduits
A
B
C
D
Sources
W1=4
W2=5
W3=13
W4=3
1
0
4
1
6
-‐5
8
700
3
700
V1=0
2
300
5
-‐1
5
-‐7
7
600
4
900
V2=1
3
500
2
500
3
600
11
8
9
1600
V3=-‐2
Destinations
800
500
600
1300
3200
Remarques
1.
Si
au
cours
des
itérations
une
ou
plusieurs
cases
contenant
(
–
θ
)
sont
toutes
égales
à
R,
alors
une
seule
sortira
de
la
base
et
les
autres
resteront
avec
une
valeur
égale
à
Zéro.
! !
2. Si
l’hypothèse
!!! 𝐴𝑖 = !!! 𝐵𝑗
n’est
pas
vérifiée,
alors
! !
a. 1er
Cas
:
!!! 𝐴𝑖 > !!! 𝐵𝑗
Dans
ce
cas
on
crée
un
client
Fictif
qui
commandera
la
différence.
Le
coût
de
transport
unitaire
de
chacune
des
sources
vers
ce
client
fictif
sera
nul.
! !
b. 2ème
Cas
:
!!! 𝐴𝑖 < !!! 𝐵𝑗
Dans
ce
cas
on
crée
une
source
Fictive
qui
produira
la
différence.
Le
coût
de
transport
unitaire
de
la
source
Fictive
vers
chacun
des
clients
sera
d’autant
plus
élevé
qu’est
la
qualité
de
ce
client.
Exercice
Année
1er
2ème
3ème
4ème
2014
Trimestre
Trimestre
Trimestre
Trimestre
Demande
24
18
36
44
Clients
Capacité
Temps
20
16
20
24
Normal
Capacité
16
12
10
8
Temps
sup
• Les
Produits
fabriqués
en
Temps
Normal
ont
un
prix
de
revient
de
20.
• Les
Produits
fabriqués
en
Temps
Supplémentaire
ont
un
prix
de
revient
de
30.
• Les
produits
fabriqués
le
trimestre
N
livrés
aux
clients
le
trimestre
N+k,
engendrent
un
coût
supplémentaire
de
stockage
de
:
2*k
Quel
est
le
plan
de
fabrication,
qui
répond
aux
demandes
des
clients
et
qui
minimise
le
coût
de
revient
total
?
Problème
d’affectation
Le
problème
d’affectation
est
un
cas
particulier
du
problème
de
transport.
Dans
un
problème
d’affectation
il
y
a
:
• Autant
de
sources
que
de
destinations.
(N
=
M)
• Chaque
source
produit
une
unité
et
une
seule
(
Ai
=
1)
• Chaque
destination
commande
une
unité
et
une
seule
(
Bj
=
1)
Formulation
Mathématique
! !
𝑋𝑖𝑗 = 1 1 ≤ 𝑖 ≤ 𝑁
!!!
!
𝑋𝑖𝑗 = 1 1 ≤ 𝑗 ≤ 𝑁
!!!
𝑋𝑖𝑗 ≥ 0
Problème
de
Programmation
Linéaire
Exercice
Une
compagnie
désire
installer
des
photocopieuses
nouvellement
achetées.
Elle
dispose
de
4
bureaux
et
de
3
Photocopieuses.
Les
frais
d’aménagements
pour
installer
chacune
des
photocopieuses
dans
chacun
des
bureaux
sont
donnés
par
la
matrice
des
coûts
suivante
:
1
2
3
4
A
65
50
60
55
B
65
Impossible
75
100
C
25
35
50
30
Sachant
qu’un
Bureau
ne
peux
pas
disposer
de
plus
d’une
Photocopieuse,
de
quelle
manière
devons
nous
les
installer
pour
minimiser
les
frais
d’aménagements.
Remarque
• Nous
devons
affecter
chacune
des
photocopieuses
à
un
bureau
:
ceci
est
un
problème
d’affectation.
• Dans
ce
Problème
nous
disposons
de
3
Photocopieuses
(Sources)
et
4
Bureaux
(Destinations).
• Créons
une
Photocopieuse
Fictive.
Les
Frais
d’aménagement
associés
à
l’installation
de
la
Photocopieuse
Fictive
sont
nuls.
1
2
3
4
A
65
50
60
55
B
65
M
75
100
C
25
35
50
30
F
0
0
0
0
Présentation
de
la
méthode
Hongroise
Etape
1
:
Réduction
de
la
Matrice
M
Dans
cette
étape
on
cherche
BI
le
coût
d’une
Borne
Inferieur
à
toute
solution
possible.
Ceci
est
fait
en
réduisant
la
Matrice
en
ligne
puis
en
Colonne
de
la
manière
suivante
:
Réduction
En
Ligne
1
2
3
4
Min
A
65
50
60
55
50
B
65
M
75
100
65
C
25
35
50
30
25
F
0
0
0
0
0
BI
=
50
+
65
+
25
+
0
Matrice
réduite
en
ligne
1
2
3
4
A
15
0
10
5
B
0
M
10
35
C
0
10
25
5
F
0
0
0
0
Réduction
En
Colonne
1
2
3
4
A
15
0
10
5
B
0
M
10
35
C
0
10
25
5
F
0
0
0
0
Min
0
0
0
0
BI
=
BI
+
0
+
0
+
0
+
0
Matrice
réduite
BI
=
140
1
2
3
4
A
15
0
10
5
B
0
M
10
35
C
0
10
25
5
F
0
0
0
0
Etape
2
:
Recherche
d’une
solution
coutant
BI
• On
commence
par
la
1ère
ligne
contenant
le
minimum
de
Zéro.
On
Encadre
un
de
ces
Zéros
et
on
Barre
tous
les
zéros
se
trouvant
sur
la
même
ligne
ou
la
même
colonne
que
le
zéro
encadré.
• On
répète
ce
processus
pour
toutes
les
lignes
de
la
matrice.
• Ensuite,
on
vérifie
l’existence
d’un
zéro
encadré
sur
toutes
les
lignes
et
toutes
les
colonnes
de
la
matrice.
o Si
ceci
existe,
cela
signifie
que
nous
avons
trouvé
une
solution
au
problème
d’affectation,
son
coût
correspond
à
la
borne
Inférieure
BI.
o Sinon
cela
signifie
qu’il
n’existe
pas
de
solution
avec
un
coût
inférieur
ou
égal
à
BI
et
on
passe
à
l’étape
3.
Etape
3
:
Augmenter
BI
du
plus
petit
élément
non
nul
de
la
plus
grande
sous
matrice
de
M
Dans
cette
étape
on
cherche
à
éliminer
un
nombre
minimum
de
lignes
et
de
colonnes
contenant
les
zéros
de
M.
Ainsi,
on
obtiendra
la
plus
grande
sous
matrice
de
M
dont
aucun
élément
n’est
nul.
1. On
marque
d’une
croix
toutes
les
lignes
ne
contenant
pas
de
zéro
encadré.
2. On
marque
d’une
croix
toutes
les
colonnes
non
marquées
contenant
un
zéro
(Barré)
sur
une
ligne
marquée.
3. On
marque
d’une
croix
toutes
les
lignes
non
encore
marquées,
contenant
un
zéro
encadré
sur
une
colonne
marquée.
4. Répéter
2
et
3
tant
que
nous
pouvons
encore
marquer.
5. On
élimine
les
lignes
non
marquées
et
les
colonnes
marquées.
6. Les
cases
non
éliminées
représentent
la
plus
grande
sous
matrice
de
M
dont
aucun
élément
n’est
nul.
Dans
notre
cas
1
2
3
4
0
A
15
10
5
B
0
M
10
35
C
10
25
5
F 0
F
5
0
Vérification
A
è
2
è
50
B
è
1
è
65
C
è
4
è
30
F
è
3
è
0
Total
=
145
=
BI
Matrice
Initiale
1
2
3
4
A
65
50
60
55
B
65
M
75
100
C
25
35
50
30
F
0
0
0
0
Exercice
1
2
3
4
5
A
20
25
10
15
30
B
20
15
30
40
20
C
40
35
20
30
50
D
25
15
40
30
20
E
20
15
10
15
20
Problème
de
Voyageur
de
commerce
Un
représentant
de
commerce
désire
visiter
N
villes,
sans
répétitions,
à
l’exception
de
la
ville
de
départ
qui
est
aussi
la
ville
d’arrivée.
Trouvez
la
tournée
qui
minimise
la
distance
totale
parcourue.
Difficulté
du
problème
• Nombre
de
parcours
:
(N
–
1)
!
• Nombre
d’additions
:
N
!
• Temps
d’exécution
nécessaire
pour
N
=
30
30
!
*
10
-‐5
Secondes
soit
:
2,65253E+27
Secondes
ou
encore
8
*
1017
siècles
Exemple
Trouvons
le
parcours
le
plus
court
pour
visiter
les
villes
A,B,C,D,E
et
F
.
La
matrice
des
distances
entre
les
villes
est
:
A
B
C
D
E
F
A
0
27
43
16
30
26
B
7
0
16
1
30
25
C
20
13
0
35
5
0
D
21
16
25
0
18
18
E
12
46
27
48
0
5
F
23
5
5
9
5
0
Algorithme
du
Voyageur
de
commerce
Etape
1
• Remplacer
les
Zéros
de
la
diagonale
de
la
matrice
des
distances
M
par
l’
∞
A
B
C
D
E
F
A
∞
27
43
16
30
26
B
7
∞
16
1
30
25
C
20
13
∞
35
5
0
D
21
16
25
∞
18
18
E
12
46
27
48
∞
5
F
23
5
5
9
5
∞
• Réduire
la
matrice
M
et
calculer
BI
la
Borne
Inferieure.
A
B
C
D
E
F
Min
A
∞
27
43
16
30
26
16
B
7
∞
16
1
30
25
1
C
20
13
∞
35
5
0
0
D
21
16
25
∞
18
18
16
E
12
46
27
48
∞
5
5
F
23
5
5
9
5
∞
5
• BI
=
(
16
+
1
+
0
+
16
+
5
+
5
)
=
43
A
B
C
D
E
F
A
∞
11
27
0
14
10
B
6
∞
15
0
29
24
C
20
13
∞
35
5
0
D
5
0
9
2
2
∞
E
7
41
22
43
∞
0
F
18
0
0
4
0
∞
Min
5
0
0
0
0
0
• BI
=
BI
+
(
5
+
0
+
0
+
0
+
0
+
0
)
• BI
=
48
Matrice
Réduite
A
B
C
D
E
F
A
∞
11
27
0
14
10
B
1
∞
15
0
29
24
C
15
13
∞
35
5
0
D
0
0
9
2
2
∞
E
2
41
22
43
∞
0
F
13
0
0
4
0
∞
Etape
2
Soit
Ω l’ensemble de toutes les solutions
Dans
cette
étape,
on
divise
Ω en deux sous ensembles S1 et
S2 complémentaires et disjoints ( S1 U S2 = Ω ) et
( S1 Π S2 = Φ ) tels que :
S1 contient très probablement la solution optimale et
donc
S2 exclue probablement la solution optimale.
1. Calculons
pour
toutes
les
cases
contenant
un
Zéro,
la
pénalité
de
ne
pas
choisir
ce
Zéro.
A
B
C
D
E
F
A
11
27
0
(10)
14
10
∞
B
1
∞
15
0(1)
29
24
C
15
13
∞
35
5
0(5)
D
0(1)
0(0)
9
∞
2
2
E
2
41
22
43
∞
0(2)
F
13
0(0)
0(9)
4
0(2)
∞
Θ(1,4) = 10
2. Choisir
le
Zéro
(i,j)
avec
la
plus
forte
pénalité
et
construire
S1 comme
étant
le
sous
ensemble
de Ω incluant
le
tronçon
(i,j).
S2 comme
étant
le
sous
ensemble
de Ω excluant
le
tronçon
(i,j).
La
borne
Inférieure
associée
à
S2 est
celle
de
Ω +
la
pénalité.
48
Ω
58
AD
AD
3. Eliminer
la
ligne
i
et
la
colonne
j
associés
au
tronçon
AD
Eliminer
les
Sous-‐parcours
:
DA
=
∞
Enfin,
réduire
la
nouvelle
matrice.
A
B
C
D
E
F
Min
A
B
1
∞
15
29
24
1
C
15
13
∞
5
0
0
D
∞
0
9
2
2
0
E
2
41
22
∞
0
0
F
13
0
0
0
∞
Réduction
en
colonne
A
B
C
D
E
F
A
B
0
∞
14
28
23
C
15
13
∞
5
0
D
∞
0
9
2
2
E
2
41
22
∞
0
F
13
0
0
0
∞
Min
0
0
0
0
0
49
AD
A
B
C
D
E
F
A
B
0
∞
14
28
23
C
15
13
∞
5
0
D
∞
0
9
2
2
E
2
41
22
∞
0
F
13
0
0
0
∞
Répéter
ce
processus
jusqu’à
atteindre
une
matrice
2x2
A
B
C
D
E
F
A
B
0(16)
∞
14
28
23
C
15
13
∞
5
0(5)
D
∞
0(2)
9
2
2
E
2
41
22
∞
0(2)
F
13
0(0)
0(9)
0(2)
∞
D’où
le
choix
de
(B,A)
49
49+16=65
AD
BA
BA
Sous
Parcours
:
B
è
A
è
D
=>
DB
=
∞
Nouvelle
Matrice
avant
Réduction
A
B
C
D
E
F
Min
A
B
C
13
∞
5
0
0
D
∞
9
2
2
2
E
41
22
∞
0
0
F
0
0
0
∞
0
Nouvelle
Matrice
après
Réduction
A
B
C
D
E
F
A
B
C
13
∞
5
0
D
∞
7
0
0
E
41
22
∞
0
F
0
0
0
∞
A
B
C
D
E
F
A
B
C
13
∞
5
0(5)
D
∞
7
0(0)
0(0)
E
41
22
∞
0(22)
F
0(13)
0(7)
0(0)
∞
D’où
le
choix
de
(E,F)
Sous
Parcours
:
B
è
A
è
D
E
è
F
=>
FE
=
∞
A
B
C
D
E
F
A
B
C
13
∞
5
D
∞
7
0
E
F
0
0
∞
51
BA
51+22=73
51+5=56
EF
EF
Réduction
A
B
C
D
E
F
Min
A
B
C
13
∞
5
5
D
∞
7
0
0
E
F
0
0
∞
0
Pénalités
A
B
C
D
E
F
A
B
C
8
∞
0(8)
D
∞
7
0(7)
E
F
0(8)
0(7)
∞
Choisir
:
C,E
Sous
Parcours
:
B
è
A
è
D
C
è
E
è
F
=>
FC
=
∞
A
B
C
D
E
F
A
B
C
D
∞
7
E
F
0
∞
Réduction
A
B
C
D
E
F
A
B
C
D
∞
0
E
F
0
∞
56+7=63
EF
Arrivé
à
une
matrice
2x2
on
prend
les
Zéros
:
(D,C)
et
(F,B)
AD
AD
65
51
BA
BA
56
73
EF
EF
64
63
CE
CE
63
Infini
DC
DC
FB
FB
Matrice
AD(Barre)
A
B
C
D
E
F
Min
A
∞
11
27
∞
14
10
10
B
1
∞
15
0
29
24
0
C
15
13
∞
35
5
0
0
D
0
0
9
∞
2
2
0
E
2
41
22
43
∞
0
0
F
13
0
0
4
0
∞
0
Matrice
Réduite
A
B
C
D
E
F
A
∞
1
17
∞
4
0(1)
B
1
∞
15
0(5)
29
24
C
15
13
∞
35
5
0
D
0(1)
0(0)
9
∞
2
2
E
2
41
22
43
∞
0(2)
F
13
0(0)
0(9)
4
0(2)
∞
58
AD
Choisir
:
F,C
67
FC
FC
Sous
Parcours
:
FC
A
B
C
D
E
F
Min
A
∞
1
∞
4
0
0
B
1
∞
0
29
24
0
C
15
13
35
5
∞
5
D
0
0
∞
2
2
0
E
2
41
43
∞
0
0
F
Réduction
A
B
C
D
E
F
A
1
4
0
∞
∞
B
1
∞
0
29
24
C
10
8
30
0
∞
D
0
0
2
2
∞
E
2
41
43
∞
0
F
FC
possède
une
borne
Inferieure
>=
63
le
coût
de
la
solution
déjà
trouvée.
58+5=63
FC
Conclusion
La
solution
en
cours
«
a
un
coût
de
63
»
est
la
meilleure
solution.
Remarque
Cet
Algorithme
porte
le
nom
de
:
Branch
and
Bound
Son
but
est
de
trouver
la
meilleure
solution.
Il
est
utilisé
dans
des
problèmes
de
complexité
non
polynomiale.
Un
Algorithme
Heuristique
a
pour
but
de
trouver
une
solution
proche
de
la
solution
optimale
en
des
temps
réduits
(Polynomiaux).
La
présentation
faite
correspond
à
un
algorithme
hybride
mixant
l’heuristique
et
le
Branch
and
Bound.
Exercice
Trouver
la
solution
du
problème
de
voyageur
de
commerce
associé
à
la
matrice
suivante
:
A
B
C
D
E
F
A
60
52
23
55
54
B
24
58
60
16
49
C
23
11
27
52
34
D
44
40
29
37
12
E
8
38
15
7
52
F
55
48
11
54
9
Algorithme
de
Floyd-‐Murchland
Etant
donné
un
réseau
R,
on
souhaite
trouver
la
distance
minimale
et
le
chemin
associé
entre
tout
nœud
i
et
tout
nœud
j
de
ce
réseau.
Exemple
Cet
Algorithme
se
base
sur
deux
matrices
:
• Une
matrice
D
des
distances
et
• une
matrice
C
des
chemins
Initialisation
Dist(i,j)
si
(i,j)
Appartient
au
Réseau
D
=
0
si
i
=
j
Infini
sinon
j
si
(i,j)
Appartient
au
Réseau
C
=
*
sinon
(i)
(j)
(k)
Cij(k)
est
le
1er
nœud
à
visiter
pour
réaliser
le
tronçon
i
è
j
en
la
distance
Dij(k)
Algorithme
Pour
K
:=
1
à
N
faire
Pour
I
:=
1
à
N
faire
Pour
J
:=
1
à
N
faire
Si
Dij(k-‐1)
<=
Dik(k-‐1)
+
Dkj(k-‐1)
Alors
Dij(k)
=
Dij(k-‐1)
Cij(k)
=
Cij(k-‐1)
Sinon
Dij(k)
=
Dik(k-‐1)
+
Dkj(k-‐1)
Cij(k)
=
Cik(k-‐1)
Remarque
Dij(N)
donne
la
distance
minimale
entre
i
et
j.
Cij(N)
indique
le
premier
nœud
après
i
à
visiter
pour
faire
le
tronçon
i
è
j
en
Dij(N)
D’où
le
tronçon
total
de
i
à
j
:
(i)
è
r=C (N)
è
s=
Crj(N)
è
t=
Caj(N)
ij
…
è
(j)
Algorithme
de
Ford
–
Fulkerson
Maximiser
𝐹 = 𝑁
𝑗=1 𝑋 𝑗𝑁
2<=i<=N
Algorithme
1. Xij
=
0
pour
tous
les
arcs
(i,j)
du
réseau
R
2. Attribuer
la
marque
(*,
∞)
au
nœud
(1)
3. Choisir
un
sommet
i
qui
possède
déjà
une
marque
(k,
αi)
et
marquer
un
sommet
j
sans
marque
par
(i,
αj)
ssi
(
rij
>
0
)
où
:
rij
=
Sij
-‐
Xij
si
(
i,
j)
appartient
à
R
Xji
si
(
j,
i)
appartient
à
R
et
dans
ce
cas
αj
=
Min(αi,
rij)
4. continuer
jusqu’à
ce
que
N
soit
marqué
ou
qu’il
ne
soit
plus
possible
de
le
marquer.
• S’il
n’est
plus
possible
de
le
marquer
alors
le
système
des
valeurs
Xij
représente
le
flot
maximum.
• Sinon
on
modifie
le
flot
Xij
de
la
manière
suivante
:
5. Partant
de
N,
on
détermine
les
sommets
qui
acheminent
le
flot
αN
de
1
vers
N
et
pour
ces
sommets
:
• on
augmente
le
flot
Xij
de
ces
sommets
de
αN
pour
tous
les
arcs
(i,j)
appartenant
au
réseau
et
• on
diminue
le
flot
Xji
de
ces
sommets de
αN
pour
tous
les
arcs
(j,i)
appartenant
au
réseau