IFT1575 Modèles de recherche opérationnelle (RO)
Optimisation de réseaux
Optimisation des réseaux 2
IFT1575 Professeur B. Jaumard
Graphe orienté
Exemple : réseau de distribution
Sommets : A, B, C, D, E
Arcs : (A,B), (A,C), (A,D), (B,C), (C,E), (D,E), (E,D)
Optimisation des réseaux 3
IFT1575 Professeur B. Jaumard
Graphe [non orienté]
Exemple : Parc Seervada (H&L sec. 9.1)
Sommets : O, A, B, C, D, E, T
Arêtes : {O,A}, {O,B}, {O,C}, {B,C}, {B,D}, {B,E}, {D,E}, {D,T}, {E,T}
Le nombre sur chaque arête représente la distance entre les deux sommets reliés par cette arête
Optimisation des réseaux 4
IFT1575 Professeur B. Jaumard
Transformations
Graphe orienté dérivéd’un graphe non orienté : obtenu en introduisant deux arcs pour chaque arête, un dans chaque direction
Graphe sous-jacentà un graphe orienté : obtenu en enlevant l’orientation des arcs
Si Gest un graphe non orienté, le graphe sous- jacent au graphe orienté dérivé de Gn’est pas G!
De même, si Gest un graphe orienté, le graphe dérivé du graphe sous-jacent àGn’est pas G!
Optimisation des réseaux 5 IFT1575
Professeur B. Jaumard
Chemins et circuits
Chemin [chaîne] : suite d’arcs [d’arêtes] distinct[e]s reliant deux sommets
Chemin non orienté: suite d’arcs distincts qui relient deux sommets lorsqu’on ne considère pas
l’orientation des arcs
En d’autres mots, un chemin non orienté est une chaîne dans le graphe sous-jacent
Circuit[cycle] : chemin [chaîne] qui commence et finit au même sommet
Circuit non orienté: cycle dans le graphe sous-jacent
Optimisation des réseaux 6
IFT1575 Professeur B. Jaumard
Chemins et circuits (exemples)
A->C->E->D = chemin (= chemin non orienté)
A->D->E->C->B = chemin non orienté (≠ chemin)
D->E->D = circuit (= circuit non orienté)
A->B->C->A = circuit non orienté (≠ circuit)
Optimisation des réseaux 7
IFT1575 Professeur B. Jaumard
Connexité
Deux sommets sont connexess’il existe au moins un chemin non orienté les reliant
Un graphe est connexesi toute paire de sommets est connexe
Le plus petit graphe connexe ànsommets possède n-1arêtes
On l’appelle un arbre
Définition alternative : un arbreest un graphe connexe sans cycle
Arbre partiel: arbre obtenu à partir d’un graphe connexe en incluant tous les sommets
Optimisation des réseaux 8
IFT1575 Professeur B. Jaumard
Arbre partiel
Pas un arbre partiel : non connexe
Pas un arbre partiel : possède des cycles
Arbre partiel
Optimisation des réseaux 9 IFT1575
Professeur B. Jaumard
Flot dans un réseau
Réseau : graphe orienté ayant
des capacités sur les arcs
des sommets d’offre (ou sources)
des sommets de demande (ou puits)
des sommets de transfert
Flot dans un réseau : nombre d’unités circulant sur les arcs du réseau de façon à respecter les capacités et les contraintes de conservation de flot
En chaque sommet, flot sortant – flot entrant =
Offre (si le sommet est une source)
-Demande (si le sommet est un puits)
0 (en un sommet de transfert)
Optimisation des réseaux 10
IFT1575 Professeur B. Jaumard
Flot en langage mathématique
xij = quantité de flot qui passe sur l’arc (i,j)
bi= 0 (transfert), offre (source), -demande (puits)
V = ensemble des sommets
A = ensemble des arcs du réseau
A+(i) = ensemble des arcs sortants du sommet i
A-(i) =ensemble des arcs entrants au sommet i A
j i u x
V i b x x
ij ij
i ji ij
i A i j i A j i
∈
≤
≤
∈
=
−
∑
∑
−
+ ∈
∈
) , ( 0
) ( ) , ( ) ( ) , (
Optimisation des réseaux 11
IFT1575 Professeur B. Jaumard
Problème du chemin le plus court
On a un graphe non orienté et connexe
Il y a deux sommets spéciaux
Source (ou origine) O
Puits (ou destination) T
A chaque arête {i,j}, on associe une distance cij≥ 0
On cherche le chemin non orienté (ou chaîne) le plus court reliant O à T
Chemin le plus court : celui dont la distance totale (somme des distances des arêtes du chemin) est minimale parmi tous les chemins de O à T
Optimisation des réseaux 12
IFT1575 Professeur B. Jaumard
Algorithme de Dijkstra
Méthode itérative
À chaque itération, on choisit le sommet jle plus près de O et on fixe d(j), la variable calculant la distance entre O et j : on dit que le sommet jest marqué
Au départ, O est marqué et d(O) = 0
Le sommet le plus près est choisi parmi les sommets non marqués reliés à au moins un sommet marqué
Le sommet choisi jest celui qui atteint
minsommetsi non marqués{ minsommetsimarqués d(i) + cij }
d(j)est fixée à cette valeur
On arrête lorsque T est marqué
Optimisation des réseaux 13 IFT1575
Professeur B. Jaumard
Dijkstra (1930 – 2002)
Un membre très influent de la première génération des informaticiens
Expertises:
Conception d’algorithmes
Langages de programmation
Conception de programmes
Systèmes d’opérations
Calcul distribué
Spécification formelle et vérification de programmes
Conception d’arguments mathématiques
Pour plus d’information:
http://www.cs.utexas.edu/users/EWD/
Optimisation des réseaux 14
IFT1575 Professeur B. Jaumard
Algorithme de Dijkstra (étape 1)
O
D
B A
C E
T
4 5
2 2
1
4 3 4 7
1 7 5
O O
2
5
4 A
B
C 0
Optimisation des réseaux 15
IFT1575 Professeur B. Jaumard
Algorithme de Dijkstra (étape 2)
O
D
B A
C E
T
4 5
2 2
1
4 3 4 7
1 7 5
O
min {2+2, 5} = 4
4 B
C 2
0
D 9
Optimisation des réseaux 16
IFT1575 Professeur B. Jaumard
Algorithme de Dijkstra (étape 3)
O
D
B A
C E
T
4 5
2 2
1
4 3 4 7
1 7 5
O
4
min {4, 1+4} = 4 C
2
0
D
min {7 +2, 4+4} = 8
E
3 + 4 = 7
Optimisation des réseaux 17 IFT1575
Professeur B. Jaumard
Algorithme de Dijkstra (étape 4)
O
D
B A
C E
T
4 5
2 2
1
4 3 4 7
1 7 5
O
4
4 2
0
D
min {7+2, 4+4} = 8
E
min {3 + 4, 4 + 4 } = 7
Optimisation des réseaux 18
IFT1575 Professeur B. Jaumard
Algorithme de Dijkstra (étape 5)
O
D
B A
C E
T
4 5
2 2
1
4 3 4 7
1
7 5
O
4
4 2
0
min{7+2, 4+4, 7+1} =8
7
T 7 + 7 = 14 D
Optimisation des réseaux 19
IFT1575 Professeur B. Jaumard
Algorithme de Dijkstra (étape 6)
O
D
B A
C E
T
4 5
2 2
1
4 3 4 7
1 7 5
O
4
4 2
0
8
7
T min {8 + 5,
7 + 7} = 13
Optimisation des réseaux 20
IFT1575 Professeur B. Jaumard
Algorithme de Dijkstra (étape 7)
O
D
B A
C E
T
4 5
2 2
1
4 3 4 7
1 7 5
O
4
4 2
0
8
7
13
Optimisation des réseaux 21 IFT1575
Professeur B. Jaumard
Exemple sous forme tableau
13 8 8 7 4 4 2 Dist min
D T 13 14 T T D
E
B E E D D D 9
8 8 D D D A
B E
B E 9
7 8 D E E A
B C
O A C B 4
4 C B O
A
O A 2
A O
p(j) jle plus près jnon Dist
marqué le plus près imarqués
reliés àj non marqué
Optimisation des réseaux 22
IFT1575 Professeur B. Jaumard
Modèle de flot
Chemin le plus court = flot dans un réseau
Réseau = graphe orienté dérivé
On enlève les arcs entrant à O et les arcs émanant de T
O est la seule source, avec une offre = 1
T est le seul puits, avec une demande = 1
Le flot sur chaque arc (i,j) est soit 1, si l’arc appartient au chemin le plus court, soit 0, sinon
Voir l’exemple modélisé avec Excel Solver
Optimisation des réseaux 23
IFT1575 Professeur B. Jaumard
Autres variantes
Graphe orienté : l’algorithme de Dijkstra s’applique
Trouver les chemins les plus courts entre la source et tous les autres sommets : l’algorithme de Dijkstra s’applique
Trouver les chemins les plus courts entre toutes les paires de sommets : napplications de l’algorithme de Dijkstra (mais il est possible de faire mieux)
Si certaines « distances » sont négatives : l’algorithme de Dijkstra ne s’applique pas (essayez de voir pourquoi sur un exemple à 3 sommets)
Optimisation des réseaux 24
IFT1575 Professeur B. Jaumard
Problème de l’arbre partiel minimum
On a un graphe non orienté et connexe
A chaque arête {i,j}, on associe une distance cij≥ 0
On cherche à construire un arbre partiel (plus petit graphe connexe contenant tous les sommets) dont la somme des distances soit minimum parmi tous les arbres partiels du graphe
Exemple simple de problème de conception de réseaux(network design) : choisir une
configuration de réseau (sous-ensemble d’arcs) qui optimise un certain critère
Optimisation des réseaux 25 IFT1575
Professeur B. Jaumard
Algorithme de Prim (1957)
Initialisation: choisir un sommet i(arbitrairement) et le relier au sommet j le plus près : ajouter {i,j}
À chaque itération: choisir le sommet non reliéj le plus prèsd’un des sommets déjà reliés i: ajouter {i,j}
Arrêter lorsque tous les sommets ont été reliés
En cas d’égalité, on peut choisir arbitrairement
De telles égalités indiquent qu’il pourraity avoir plusieurs solutions optimales
Optimisation des réseaux 26
IFT1575 Professeur B. Jaumard
Algorithme de Prim : exemple
Initialisation: choisir le sommet O et le relier au sommet le plus près : ajouter {O,A}
Optimisation des réseaux 27
IFT1575 Professeur B. Jaumard
Exemple (suite)
Le sommet non relié le plus près de O ou de A est B;
comme il est plus près de A, on ajoute {A,B}
Le sommet non relié le plus près de O, de A ou de B est C; puisqu’il est plus près de B, on ajoute {B,C}
Optimisation des réseaux 28
IFT1575 Professeur B. Jaumard
Exemple (suite)
Le sommet non relié le plus près d’un des sommets reliés est E; on ajoute l’arête {B,E}
Optimisation des réseaux 29 IFT1575
Professeur B. Jaumard
Exemple (suite)
Le sommet non relié le plus près d’un des sommets reliés (E) est D; on ajoute l’arête {E,D}
Le sommet non relié le plus près d’un des sommets reliés (D) est T; on ajoute l’arête {D,T}
Optimisation des réseaux 30
IFT1575 Professeur B. Jaumard
Exemple (suite et fin)
On arrête car tous les sommets ont été reliés
La valeur optimale correspond à la somme des distances des arêtes ajoutées, soit 14
Optimisation des réseaux 31
IFT1575 Professeur B. Jaumard
Problème du flot maximum
On a un graphe orienté et connexe
A chaque arc (i,j), on associe une capacitéuij> 0
Il y a deux sommets spéciaux
Source (ou origine) O
Puits (ou destination) T
Tous les autres sont des sommets de transfert
L’offre en O et la demande en T sont variables
Offre en O = demande en T = valeur du flot entre O et T
On cherche à maximiser la valeur du flot entre O et T
Optimisation des réseaux 32
IFT1575 Professeur B. Jaumard
Exemple : parc Seervada
En période de grande affluence, on dispose d’une flotte d’autobus pour faire visiter les différents postes d’observation du parc
La réglementation limite le nombre d’autobus pouvant circuler sur chaque tronçon de route
Comment faire circuler les autobus dans le parc de façon à maximiser le nombre total d’autobus allant de l’origine (O) à la destination (T)?
Optimisation des réseaux 33 IFT1575
Professeur B. Jaumard
Exemple: parc Seervada (suite)
Optimisation des réseaux 34
IFT1575 Professeur B. Jaumard
Graphe résiduel
Supposons qu’on a déjà affecté un flot sur les arcs
Capacité résiduelle d’un arc (i,j) : uij– xij
Graphe résiduel :
Graphe non orienté sous-jacent
Sur chaque arête, on associe deux valeurs :
Capacité résiduelle
Flot déjà affecté
Exemple : on a affecté 5 unités de flot sur l’arc (O,B)
Optimisation des réseaux 35
IFT1575 Professeur B. Jaumard
Interprétation du graphe résiduel
On a affecté 5 unités de flot sur l’arc (O,B)
Si on traverse O → B
2 = capacité résiduelle
5 = flot sur (O, B)
Si on traverse B → O
5 = capacité résiduelle
2 = flot sur (B, O)
O 2 B
O 5B
5 0 7
Optimisation des réseaux 36
IFT1575 Professeur B. Jaumard
Graphe résiduel: une autre notation
Le graphe résiduel est parfois appelé le graphe d’écart.
Exemple : on a affecté 5 unités de flot sur l’arc (O,B)
O B
[2]
[5]
5
0
capacité résiduelle Flot affecté à l’arc
Optimisation des réseaux 37 IFT1575
Professeur B. Jaumard
Chemin d’augmentation
Chemin allant de la source au puits dans le graphe orienté dérivé du graphe résiduel
Pour chaque arête {i,j}
L’arc (i,j)possède une capacité résiduelle = uij– xij L’arc (j,i)possède une capacité résiduelle = xij Chaque arc du chemin possède une capacité
résiduelle > 0
Capacité résiduelle d’un chemin d’augmentation : minimum des capacités résiduelles de tous les arcs du chemin
Optimisation des réseaux 38
IFT1575 Professeur B. Jaumard
Algorithme de Ford-Fulkerson
1. Initialiser le flot: 0 unité sur chaque arc 2. Si aucun chemin d’augmentation ne peut être
identifié, arrêter: le flot est maximum
3. Identifier un chemin d’augmentation P ; soit csa capacité résiduelle
4. Sur chaque arc de P
a. Augmenter le flot de c
b. Diminuer la capacité résiduelle dec 5. Retourner à l’étape 2
Optimisation des réseaux 39
IFT1575 Professeur B. Jaumard
Identifier un chemin d’augmentation
1. Marquer la source O (aucun autre sommet n’est marqué); tous les sommets sont non visités 2. S’il n’y a aucun sommet marqué non visité, arrêter :
il n’existe aucun chemin d’augmentation 3. Choisir un sommet marqué non visitéi
4. Visiter i : pour chaque (i,j)de capacité résiduelle >0 dans le graphe orienté dérivé du graphe résiduel, marquer j
5. Si T est marqué, arrêter: un chemin d’augmentation a été identifié
6. Retourner à l’étape 2
Optimisation des réseaux 40
IFT1575 Professeur B. Jaumard
Exemple : parc Seervada
Graphe résiduel initial
Identifier un chemin d’augmentation : O->B->E->T
Capacité résiduelle = min{7,5,6} = 5
Optimisation des réseaux 41 IFT1575
Professeur B. Jaumard
Exemple (suite)
Augmenter le flot et diminuer la capacité résiduelle de 5 unités sur tous les arcs de O->B->E->T
Identifier un chemin d’augmentation : O->A->D->T
Capacité résiduelle = min{5,3,9} = 3
Optimisation des réseaux 42
IFT1575 Professeur B. Jaumard
Exemple (suite)
Augmenter le flot et diminuer la capacité résiduelle de 3 unités sur tous les arcs de O->A->D->T
Chemin d’augmentation : O->A->B->D->T
Capacité résiduelle = min{2,1,4,6} = 1
Optimisation des réseaux 43
IFT1575 Professeur B. Jaumard
Exemple (suite)
Augmenter le flot et diminuer la capacité résiduelle de 1 unité sur tous les arcs de O->A->B->D->T
Chemin d’augmentation : O->B->D->T
Capacité résiduelle = min{2,3,5} = 2
Optimisation des réseaux 44
IFT1575 Professeur B. Jaumard
Exemple (suite)
Augmenter le flot et diminuer la capacité résiduelle de 2 unités sur tous les arcs de O->B->D->T
Chemin d’augmentation : O->C->E->D->T
Capacité résiduelle = min{4,4,1,3} = 1
Optimisation des réseaux 45 IFT1575
Professeur B. Jaumard
Exemple (suite)
Augmenter le flot et diminuer la capacité résiduelle de 1 unité sur tous les arcs de O->C->E->D->T
Chemin d’augmentation : O->C->E->T
Capacité résiduelle = min{3,3,1} = 1
Optimisation des réseaux 46
IFT1575 Professeur B. Jaumard
Exemple (suite)
Augmenter le flot et diminuer la capacité résiduelle de 1 unité sur tous les arcs de O->C->E->T
Chemin d’augmentation : O->C->E->B->D->T
Capacité résiduelle = min{2,2,5,1,2} = 1
Optimisation des réseaux 47
IFT1575 Professeur B. Jaumard
Exemple (suite)
Augmenter le flot et diminuer la capacité résiduelle de 1 unité sur tous les arcs de O->C->E->B->D->T
Aucun chemin d’augmentation possible
Flot maximum
Optimisation des réseaux 48
IFT1575 Professeur B. Jaumard
Exemple (suite et fin)
Optimisation des réseaux 49 IFT1575
Professeur B. Jaumard
Flot maximum - Coupe minimum
Supposons qu’on partitionne l’ensemble des sommets en deux sous-ensembles X,Y
Coupe : sous-ensemble d’arcs allant d’un sommet de X vers un sommet de Y
Capacité d’une coupe : somme des capacités des arcs de la coupe
Coupe minimum : coupe dont la capacité est minimum parmi toutes les coupes possibles
Théorème flot max - coupe min: la valeur du flot maximum est égale à la capacité d’une coupe minimum
Optimisation des réseaux 50
IFT1575 Professeur B. Jaumard
Flot max – Coupe min : exemple
Optimisation des réseaux 51
IFT1575 Professeur B. Jaumard
Flot maximum avec Excel Solver
Flot maximum = modèle de flot
Tous les sommets, sauf O et T, sont des sommets de transfert
Il y a une capacité sur chaque arc
L’objectif est de maximiser la valeur du flot, soit le flot net en O
Voir l’exemple modélisé avec Excel Solver
Optimisation des réseaux 52
IFT1575 Professeur B. Jaumard
Problème du flot à coût minimum
On a un graphe orienté et connexe
A chaque arc (i,j), on associe une capacitéuij> 0 et un coût par unité de flot cij
Il y a au moins une source et au moins un puits
Tous les autres sont des sommets de transfert
On cherche à minimiser le coût total encouru par le transport du flot des sources (sommets d’offre) vers les puits (sommets de demande)
Optimisation des réseaux 53 IFT1575
Professeur B. Jaumard
Modèle de flot à coût minimum
xij=flot sur l’arc (i,j) minimize
Σ
(i,j) ∈A cijxijsous les contraintes:
Σ
(i,j) ∈A+(i) xij -Σ
(j, i) ∈A-(i) xji= bi i ∈V0 ≤ xij≤ uij (i,j) ∈A
bi=0 (transfert), offre (source), -demande (puits)
V = ensemble des sommets ; A = ensemble des arcs
A+(i) = ensemble des arcs sortants du sommet i
A-(i) = ensemble des arcs entrants du sommet i
Optimisation des réseaux 54
IFT1575 Professeur B. Jaumard
Cas particuliers
Problème de transport (H&L, sec. 8.1-8.2)
Plusieurs sources et plusieurs puits
Aucun sommet de transfert
Uniquement des arcs entre une source et un puits
Aucune capacité (uij= ∞)
Problème d’affectation(H&L, sec. 8.3-8.4)
Cas particulier du problème de transport
Autant de sources que de puits
On cherche à affecter chaque source à un seul puits, et vice- versa, de façon à minimiser le coût total des affectations
On pose bi= +1 (source), -1 (puits)
Optimisation des réseaux 55
IFT1575 Professeur B. Jaumard
Cas particuliers
Problème du plus court chemin
Une source et un puits
Plusieurs sommets de transfert
On pose bi= +1 (source), -1 (puits)
Aucune capacité (uij= ∞)
Problème du flot maximum
bi= +F(source), -F(puits), oùF > somme des capacités
Ajout d’un arc entre O et T: cOT= Met uOT= F
Puisque cij= 0 sur tous les autres arcs, une solution optimale consiste à faire passer le maximum de flot entre O et T sans passer par l’arc (O,T)
Optimisation des réseaux 56
IFT1575 Professeur B. Jaumard
Méthode du simplexe – réseau: idée de base
Flot à coût minimum : modèle de PL simplexe
Au lieu d’utiliser la méthode du simplexe basée sur l’élimination de Gauss-Jordan, on utilisera une adaptation qui effectue les pivots sur le réseau
Solution de base: arbre partieldans le graphe non orienté sous-jacent
Pivot
Variable d’entrée: choisir un arc ∉à l’arbre partiel qui contribue le plus par unité à la diminution de l’objectif
L’ajout de cet arc crée un cycle
Variable de sortie: choisir l’arc du cycle dont l’élimination permet de retrouver une solution réalisable
Optimisation des réseaux 57 IFT1575
Professeur B. Jaumard
Correspondance entre point extrême et arbre partiel
Points extrêmesdans un réseau avec
n
sommets→ n équations de conservation de flots
→ ncontraintes
→ Points extrêmes définis par n-1variables en base
→ xij= flot sommeti→sommetj ⇒ arc en base
Propriétés des arcs en base
Ne forment jamais un circuit
n-1arcs en base sans circuit ⇒arbre partiel
Optimisation des réseaux 58
IFT1575 Professeur B. Jaumard
Contraintes de capacité
On traitera les contraintes de capacité comme les contraintes de non négativité
Interviennent dans le choix de la variable de sortie, lorsqu’on s’assure de générer une solution réalisable
0 ≤ xB= fonction (xHB) ≤ uB
Arc à pleine capacité: pourra être considéré hors- base (à sa borne supérieure)
xij= uij ⇔ yij= uij– xij= 0
Augmenter la variable hors-baseyij:
Diminuer le flot sur (i,j), ce qui diminue le coût de cij
Augmenter le flot en sens inverse, sur (j,i), ce qui
« augmente » le coût de -cij
Arc (i,j)hors-base à pleine capacité: remplacer (i,j) par (j,i)de coût -cij
Optimisation des réseaux 59
IFT1575 Professeur B. Jaumard
Solution de base réalisable initiale
On peut résoudre un problème de flot maximumsur le réseau suivant :
On ajoute une super-sourcereliée à chacune des sources par un arc de capacité égale à l’offre à la source
On ajoute un super-puitsrelié à chacun des puits par un arc de capacité égale à la demande au puits
S
S3 S2 S1 [30]
[15]
[20]
u(S,S1) ≤ 30
u(S,S2) ≤ 15
u(S,S3) ≤ 20
P
P2 P1
[-40]
[-10] u(P1, P) ≤ 10
u(P2, P) ≤ 40
Optimisation des réseaux 60
IFT1575 Professeur B. Jaumard
Solution de base réalisable initiale
Une fois ce problème résolu, on construit une solution de base réalisable initiale (un arbre partiel) :
Tous les arcs à flot non nul et inférieur à la capacité sont inclus dans l’arbre partiel
Si l’arbre partiel est incomplet, on ajoute (arbitrairement) des arcs à flot nul ou à pleine capacité
30 ≤45
7 ≤15 5 ≤10
20 ≤25 35 ≤45 25 ≤25
2 ≤15 0 ≤10
Optimisation des réseaux 61 IFT1575
Professeur B. Jaumard
Simplexe – réseau : résumé
1. Obtenir un arbre partiel initial
2. Critère d’optimalité: si aucun arc ∉à l’arbre partiel ne peut faire diminuer la valeur de l’objectif, arrêter 3. Choisir l’arc (i,j)pour lequel une augmentation de 1
unité de flot fait le plus diminuer l’objectif
4. Identifier le cycle créé par l’ajout de (i,j),ainsi que l’arc (p,q)du cycle qui doit être enlevé afin de demeurer dans le domaine réalisable
5. Ajouter (i,j)et enlever (p,q)pour obtenir un nouvel arbre partiel; retourner à l’étape 2
Voir l’exemple dans le OR Tutor
Optimisation des réseaux 62
IFT1575 Professeur B. Jaumard
Simplexe – réseau : exemple
Optimisation des réseaux 63
IFT1575 Professeur B. Jaumard
Exemple
B A
C
E D
bA= [50] bD= [-30]
bE= [-60]
bB= [40]
bC= [0]
cAD= 9
2 4
3 1
2 3
(uAB= 10)
(uCE= 80)
all xij≥ 0 uAB=80
xCE≤ uAB=10
xAB≤
-60
= + xED - xDE - xCE
-30
= - xED
+ xDE
- xAD
0
= + xCE
- xBC - xAC
40
= + xBC
- xAB
50
= + xAD
+ xAC xAB sous les contraintes
+ 2 xED +3xDE + xCE + 3xBC + 9xAD + 4xAC 2xAB minimize Z=
Optimisation des réseaux 64
IFT1575 Professeur B. Jaumard
Exemple de solution initiale
B A
C
E D bA= [40]
bD= [-30]
bE= [-60]
bB= [50]
bC= [0]
xAD= 40
2 4
xBC= 50
xCE= 50 2 xDE= 10 (uAB= 10)
(uCE= 80)
all xij≥ 0 uAB=80
xCE≤ uAB=10
xAB≤
-60
= + xED - xDE - xCE
-30
= - xED + xDE - xAD
0
= + xCE
- xBC
- xAC
50
= + xBC
- xAB
40
= + xAD
+ xAC xAB sous les contraintes
+ 2 xED + 3 xDE + xCE + 3 xBC + 9 xAD + 4 xAC 2 xAB minimize Z=
Exemple de solution
initiale
Optimisation des réseaux 65 IFT1575
Professeur B. Jaumard
Exemple (suite 1)
Supposons que dans la solution initiale, l’arc (A,B) est à capacité et hors-base
On introduit alors l’arc (B,A) de coût -2
B A
C
E D [40]
[50]
[0]
[-60]
[-30]
-2
9 4
3 1
2 3
(10) (80)
Optimisation des réseaux 66
IFT1575 Professeur B. Jaumard
Exemple (suite 2)
Arbre partiel initial (le flot est entre parenthèses)
B A
C
E D [40]
[50]
[0]
[-60]
[-30]
-2
9 4
3
1
2 3
(10) (80)
(40)
(10)
(50) (50)
Optimisation des réseaux 67
IFT1575 Professeur B. Jaumard
Exemple (suite 3)
Essai 1: ajout de l’arc (A,C)
B A
C
E D [40]
[50]
[0]
[-60]
[-30]
-2
9
4
3 1
2 3
(10) (80)
+ +θθθθθθθθ
+ +θθθθθθθθ
- -θθθθθθθθ -
-θθθθθθθθ
∆Z = 4 θ+ θ- 3 θ– 9 θ= - 7 θ
Optimisation des réseaux 68
IFT1575 Professeur B. Jaumard
Exemple (suite 4)
Essai 2: ajout de l’arc (B,A)
B A
C
E D [40]
[50]
[0]
[-60]
[-30]
-2
9 4
3 1
2 3
(10) (80)
+ +θθθθθθθθ
- -θθθθθθθθ
-θ-θθθθθθθ +θ+θθθθθθθ +
+θθθθθθθθ
∆Z = - 2 θ+ 9 θ+ 3 θ–θ– 3 θ= 6 θ
Optimisation des réseaux 69 IFT1575
Professeur B. Jaumard
Exemple (suite 5)
Essai 3: ajout de l’arc (E,D)
B A
C
E D [40]
[50]
[0]
[-60]
[-30]
-2
9
4
3 1
2 3
(10) (80) ++θθθθθθθθ +θ+θθθθθθθ
∆Z = + 2 θ+ 3 θ = 5 θ
Optimisation des réseaux 70
IFT1575 Professeur B. Jaumard
Exemple (suite)
On ajoute donc l’arc (A,C) puisque c’est le seul pour lequel l’objectif diminue
Le cycle formé par l’ajout est constitué des arcs
(A,C) : on peut augmenter le flot indéfiniment, puisque sa capacité est infinie
(C,E) : on peut augmenter le flot (50) jusqu’à la capacité 80
(D,E) : on peut diminuer le flot (10) jusqu’à 0
(A,D) : on peut diminuer le flot (40) jusqu’à 0
L’augmentation maximum sur le cycle est donc 10 : xAC= 10, xCE= 60, xDE= 0, xAD= 30
Optimisation des réseaux 71
IFT1575 Professeur B. Jaumard
Exemple (suite)
On enlève donc l’arc (D,E) pour obtenir un nouvel arbre partiel
B A
C
E D [40]
[50]
[0]
[-60]
[-30]
-2
9
4
3
1
2 3
(10) (80) (10 →0)
(0 →10)
(50 →50)
(50 →60) (40 →30)
-θ-θθθθθθθ + +θθθθθθθθ
++θθθθθθθθ
--θθθθθθθθ
Optimisation des réseaux 72
IFT1575 Professeur B. Jaumard
Exemple (suite)
Lors de la prochaine itération :
L’arc (E,D) est ajouté (voir détails dans H&L)
On ajuste les valeurs des flots
L’arc (C,E) est enlevé, car il atteint sa capacité
On doit donc introduire un arc (E,C) de coût -1
B A
C
E D [40]
[50]
[0]
[-60]
[-30]
-2
9
4
3 1
2 3
(10) (80)
(30)
(10)
(50)
(60) -1 (30 →10)
(60 →80)
(10 →30) (0 →20)
(0) [-80]
[20]
Optimisation des réseaux 73 IFT1575
Professeur B. Jaumard
Exemple (suite)
Lors de la prochaine itération :
L’arc (A,B) est ajouté
L’arc (B,A) est enlevé, car il atteint sa capacité!
On doit donc introduire un arc (A,B) de coût –(-2)=2
Ce pivot correspond à vider le flot sur (A,B)
B A
C
E D [50]
[40]
[-80]
20]
[-30]
-2
9 4
3 1
2 3
(10) (80)
Optimisation des réseaux 74
IFT1575 Professeur B. Jaumard
Exemple (suite et fin)
Lors de la prochaine itération, aucun arc ne peut être ajouté de façon à diminuer l’objectif : la solution est optimale
B A
C
E D [50]
[40]
[0]
[-60]
[-30]
-2
9
4
3 1
2 3
(10) (80)
(10)
(20) (0)
(40)
(40) (0)