Problèmes de flots - CMAP, Polytechnique

Transcription

Problèmes de flots - CMAP, Polytechnique
Problèmes de flots
Cours MAP 557, «Recherche Opérationnelle : aspects mathématiques et applications»
Séance 3, 30 Septembre 2016∗
Le bénéfice de la société est égal à la somme des temps
passés par tous ses chauffeurs avec un client dans la voiture,
diminuée de α fois la somme des temps passés par tous ses
chauffeurs en roulant à vide.
Modéliser ce problème par un flot à coût minimum, en
exploitant la propriété d’optimalité des flots entiers.
Acquisition du cours
Signalons quelques résultats clés. Dans le chapitre sur
les flots:
- La totale unimodularité de la matrice de flots
- La décomposition d’un flot en somme de flots associés
à des chemins et à des circuits.
3.2
On cherche à optimiser le bénéfice tiré de l’exploitation
d’une mine à ciel ouvert. Le sous-sol exploité est formé
de plusieurs couches i = 1, . . . , N . Le bénéfice tiré de
l’exploitation de chaque couche est noté bi , et est de
signe quelconque (en particulier, lorsque bi est négatif,
l’exploitation de la couche coûte plus qu’elle ne rapporte).
La typologie des lieux (c’est-à-dire le fait que l’on ne
puisse pas exploiter une couche avant d’avoir creusé les
couches supérieures) est modélisée par un graphe orienté
G dont les sommets sont les i = 1, . . . , N . Un arc du
sommet i vers le sommet j signifie que pour exploiter la
couche i, il est nécessaire d’exploiter la couche j auparavant. L’ensemble des sommets est noté N , et celui des arcs
de G est noté A.
Par exemple, on considère la mine suivante (le bénéfice
d’exploitation de chaque couche est donné entre parenthèses) :
- Le théorème max-flot = min-cut de Ford et Fulkerson
- L’algorithme de Ford et Fulkerson, et la notion de
graphe résiduel qui sous-tend cet algorithme.
3.1
Exploitation de mine à ciel ouvert
Compagnie de taxi fonctionnant sur
réservation
Une compagnie de véhicules de transport urbain que
nous appelerons “taxis”, travaille uniquement avec des
abonnés. Un abonné appelle la compagnie au plus tard
la veille de sa course. Il donne alors l’heure et le lieu de départ, ainsi que le lieu d’arrivée. La compagnie a un certain
nombre de taxis. Chaque matin, elle fournit à chaque taxi
une feuille de route, lui donnant la liste des courses à effectuer. Le but de la compagnie est, connaissant la liste des
demandes de courses pour la journée, d’établir les feuilles
de routes maximisant le bénéfice.
Les données du problème sont les suivantes:
couche 4 (-3)
• T , le nombre de pas de temps;
couche 6 (-4)
couche 1 (1)
couche 5 (-1)
couche 3 (2)
• K, le nombre de taxis, supposés tous identiques;
couche 2 (8)
• n, le nombre de courses;
Le graphe associé est alors le suivant :
• pour chaque course k ∈ {1, . . . , n}, son lieu d’origine
ok , son lieu d’arrivée ak , son heure de début hk ; on
note O l’ensemble formé des lieux d’origine ok et A
l’ensemble des lieux d’arrivée ak ;
4
1
• dtij , pour (i, j) ∈ (O × A) ∪ (A × O) et 1 ≤ t ≤ T , le
temps de course: dtij est le temps nécessaire pour aller
du lieu i au lieu j en partant à l’instant t;
6
2
• α > 0, le coût moyen d’exploitation horaire lorsque la
voiture roule à vide;
3
• un lieu distingué, p ∈ O ∩ A, qui est le lieu du parking
de la société. Les chauffeurs partent le matin de ce
lieu, et y ramènent le véhicule le soir.
5
1. Modéliser l’optimisation du bénéfice total par un problème de programmation linéaire en nombres entiers, et
montrer qu’il peut être résolu en utilisant un problème
de programmation linéaire.
∗ On rappelle qu’une copie des feuilles de PC, transparents d’amphi, etc., peut être trouvée sur http://www.cmap.
polytechnique.fr/~gaubert/RO
1
2. On définit le graphe de flots G 0 constitués des sommets
i = 1, . . . , N et de deux sommets spéciaux s et t. Ce
graphe contient les arcs suivants :
La compagnie cherche, pour chaque couple de villes vi
et vj (avec 0 ≤ i < j ≤ n) à retenir, parmi les dij clients
potentiels, un nombre de clients voyageant effectivement
dans ce vol de vi à vj , de sorte que la contrainte de capacité
de l’avion soit satisfaite, et que le revenu (somme des prix
des billets acquittés par les voyageur retenus) soit maximal.
Montrer que ce problème se ramène à un problème de
flot à coût minimal (en fait à un problème de circulation
à coût minimal) dont on précisera les paramètres (graphe,
coûts, capacités, etc.) Expliciter le modèle dans le cas du
vol CDG → Jersey → Bristol → Edinburgh.
(i) tous les arcs de A, auquels on associe des capacités égales à +∞,
(ii) pour chaque sommet i ∈ {1, . . . , N } tel que bi ≥
0, un arc de s vers i, de capacité bi ,
(iii) pour chaque sommet j ∈ {1, . . . , N } tel que bj <
0, un arc de j vers t, de capacité −bj .
Dans notre exemple, le graphe de flots est le suivant :
3.4
4
On représente un dessin en noir et blanc avec n pixels par
une application {1, . . . , n} → {±1}: la valeur d’un pixel est
−1 ou +1 (pour blanc et noir).
Soit α : {1, . . . , n} → {±1}, i 7→ αi une image initiale,
qui peut être dégradée. L’image restorée σ : {1, . . . , n} →
{±1}, i 7→ σi est obtenue en minimisant une énergie du
type:
X
X
J(σ) =
−αi σi −
γij σi σj ,
+oo
3
1
+oo
1
s
6
8
4
t
+oo
2
1
+oo
2
3
+oo
Un problème de coupe minimale
apparaissant en traitement d’image
5
1≤i≤n
où les γij ≥ 0 sont donnés. (En pratique, γij > 0 si i et j
sont des pixels voisins, et γij = 0 sinon.)
En effet, dans ce problème de minimisation, le terme
−αi σi incite la valeur reconstruite σi à coïncider avec la
valeur initiale αi , alors que, lorsque γij > 0, le terme
γij σi σj , incite les valeurs σi et σj a être identiques (régularisation).
Nous allons montrer que la minimisation de J se réduit
au calcul d’un flot maximum dans un graphe.
Montrer que une coupe (S, S) séparant s et t est de
capacité finie si et seulement si l’ensemble S \ {s} est
clos pour la relation d’accessibilité de G (i.e. si i ∈
S \ {s} et (i, j) ∈ A, alors j ∈ S \ {s})
3. Etablir une bijection entre les points réalisables du
problème de programmation linéaire en nombres entiers de la question 1, et les ensembles clos pour la
relation d’accessibilité de G.
1. Dire pourquoi il n’y a pas de perte de généralité à
supposer que γij = γji , ce que l’on fera désormais.
4. Montrer que la valeur coupe minimale dans le graphe
de flot G 0 coïncide avec la valeur du problème initial,
à des facteurs additif et multiplicatif près.
3.3
1≤i,j≤n
2. À toute image σ, on associe la partition de {1, . . . , n}
formée des deux ensembles:
Optimisation du remplissage d’un vol avec
escales
T + = {i | σi = 1},
Un petit avion réalise un vol de desserte régionale partant d’une ville v1 et terminant à une ville vn en faisant
escale, dans l’ordre, dans chacune des villes v2 , . . . , vn−1 .
Des passagers peuvent monter ou descendre à chaque escale.
Pour fixer les idées, on pourra imaginer que n = 4, et
que le vol est CDG → Jersey → Bristol → Edinburgh.
Une place donnée peut très bien être occupée par un même
passager pendant toute la durée du vol (ex: CDG → Edinburgh), ou bien par plusieurs passagers (par exemple, un
passager va de CDG à Jersey, sa place reste vide de Jersey à Bristol, et un second passager monte à Bristol pour
descendre à Edinburgh).
Pour chaque couple d’indices (i, j) tels que 1 ≤ i <
j ≤ n, on suppose connu le nombre dij de voyageurs qui
souhaiteraient prendre cet avion de la ville vi à la ville
vj . On note pij le prix du billet à payer par chacun de
ces voyageurs s’il est retenu. L’avion a une capacité de K
places (s’agissant d’un petit avion, on ne distingue pas les
cabines affaire, loisirs, etc.).
T − = {i | σi = −1}
On forme le graphe orienté complet dont les sommets
sont 1, . . . , n (complet signifie que pour chaque 1 ≤
i, j ≤ n, l’arc orienté (i, j) est présent), l’arc (i, j)
étant muni de la capacité γij .
Montrer que
X
γij (1 − σi σj )/2 = 2C(T + , T − )
1≤i,j≤n
où C(T + , T − ) désigne la capacité de la coupe (T + , T − )
(avec la convention que la capacité est nulle si T + ou
T − est vide).
3. Montrer qu’en rajoutant un nœud source et un nœud
puits au graphe, reliés au nœuds 1, . . . , n par des arcs
de capacités bien choisies, on peut interpréter J(σ)
comme la capacité d’une coupe, à des facteurs additifs
et multiplicatifs près, et conclure que la minimisation
de l’énergie J se ramène au calcul d’une coupe minimale séparant s de p.
2
Signalons que ce résultat n’a plus lieu si certains des γij
sont strictement négatifs. En particulier, lorsque tous les
γij sont négatifs, on obtient le problème “MAXCUT” (maximiser la capacité une coupe au lieu de la minimiser), qui
est NP-dur. (Les problèmes de maximisation et de minimisation ne sont pas équivalents via un changement de signe,
car les capacités des arcs sont toujours supposées positives
ou nulles.)
4. Discuter la régularisation de la petite image suivante
(3 pixels voisins dont deux noirs et un blanc) en fonction de la valeur de γij ≡ > 0, ∀1 ≤ i, j ≤ 3.
ε
ε
ε
3

Documents pareils