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