Gipad Ro Demassey App1
Gipad Ro Demassey App1
Gipad Ro Demassey App1
Transports et réseaux
Sophie Demassey
26 septembre 2011
Références
[1] David L. Applegate, Robert E. Bixby, Vasek Chvátal, and William J. Cook. The Traveling Salesman
Problem : A Computational Study. Princeton University Press, 2006.
[2] G. B. Dantzig, R. Fulkerson, and S. M. Johnson. Solution of a large-scale traveling salesman problem.
Operations Research, 2 :393–410, 1954.
[3] S. Lin and B. Kernighan. An effective heuristic algorithm for the traveling-salesman problem. Ope-
rations Research, 21 :498–516, 1973.
[4] I Or. Traveling salesman-type combinatorial problems and their relation to the logistics of regional blood
banking. PhD thesis, Northwestern University, Evanston, Ill., 1976.
[5] M.W.P. Savelsbergh. Local search in routing problems with time windows. Annals of Operations
Research, 4 :285–305, 1985.
[6] http://www.tsp.gatech.edu/methods/.
Glossaire
1. Soit G = (V, E, l, u) un graphe orienté, avec bornes inférieures et capacités sur les arcs (0 6 le 6
ue , ∀e ∈ E). À l’aide des notations précédentes, définir formellement les notions de graphes sui-
vantes :
(a) un flot compatible dans G :
(b) un flot [compatible] de s à t dans G :
(c) la valeur d’un flot de s (source) vers t (puits) dans G :
(d) une coupe séparant s et t dans G :
(e) la capacité d’une coupe dans un graphe valué G = (V, E, p) :
(f) le graphe d’écart d’un flot :
(g) un chemin augmentant d’un flot :
2. Donner une définition des problèmes classiques d’optimisation suivants en précisant l’instance
en entrée et la solution en sortie :
(a) problème de flot maximum
(b) problème de flot de coût minimum
(c) problème de coupe de capacité minimum
(d) problème de transbordement
(e) problème de couplage de cardinalité maximum
(f) problème de couplage de poids maximum
3. Définir formellement les notions suivantes :
(a) matrice unimodulaire :
(b) matrice totalement unimodulaire :
Problème 1
Question 4 Prouver que le problème 1 possède une solution réalisable ; une solution optimale.
Question 5 Proposer une modélisation d’une instance générale du problème en un programme linéaire.
Question 7 Soit une variante du problème, dans laquelle une tonne de nitrocellulose ne permet de produire que
0,8 tonne d’explosifs, modifier le modèle linéaire en conséquence. Modifier l’énoncé du problème pour le rendre à
nouveau réalisable.
Question 8 Recenser des algorithmes applicables à la résolution de ce problème, discuter de leur complexité.
Il s’agit de redistribuer la terre des zones les plus élevées (A, C et E) aux zones les plus basse (B et D)
afin de créer le tracé de route nivellé. On dispose pour cela d’un camion dont on cherchera à minimiser
les déplacements. En considérant la charge du camion comme unité de volume, alors :
– les volumes de terre à retirer des zones A, C et E sont respectivement de 6, 3, et 5 ;
– les volumes de terre pour remblayer les zones B et D sont respectivement de 7 et 3 ;
Enfin, les distances entre les différentes zones sont de : 12km entre A et B, 15km entre B et C, 9km entre
C et D, 10km entre D et E.
Question 10 Formuler précisément le problème de décision (instance en entrée et solution en sortie) que l’INSEE
doit résoudre afin de déterminer si les moyennes sont ou non publiables.
Question 11 Exhiber une condition suffisante élémentaire, telle que la solution au problème est NON pour toute
instance vérifiant la condition.
Question 12 Exprimer les formules mathématiques liant les valeurs xij , ri , cj , (i, j) ∈ I × J ; faire le lien avec la
loi de Kirschoff ; en déduire une modélisation graphique du problème.
Question 13 Un sous-ensemble {(i, j, xij ) | (i, j) ∈ Y ( I × J} de réponses, avec les individus et les questions
qui s’y rapportent, ont été éventées. Modifier votre modèle en conséquence.
Question 14 ? Soit f un (s, t)-flot compatible de valeur v dans G et Gf le graphe d’écart. Donner une condition
nécessaire et suffisante sur Gf pour qu’il existe un autre (s, t)-flot compatible f 0 de valeur v dans G tel que
0 = f − 1. 2 À partir de ce résultat, proposer une démarche de résolution ; proposer un algorithme et donner sa
fij ij
complexité.
Problème 4 Grâce au tatouage de votre frère unique, vous parvenez, avec 7 de vos co-détenus, à vous
évader de la prison de la Joliette. Vous devez maintenant courir pour rejoindre un aérodrome voisin où
un avion, prêt à décoller, vous attend. Il vous faut pour cela traverser un dédale de ruelles très étroites
empêchant une fuite groupée. Malheureusement pour vous, le capitaine Bellick, qui connaît bien le plan
de ces ruelles, a eu le temps de se poster le long de l’une d’entre elles de sorte à intercepter au moins
l’un d’entre vous, voire plus.
Question 15 Discuter du problème 4 : modéliser la stratégie du capitaine (i.e. le problème que le capitaine doit
résoudre pour savoir quelle ruelle choisir). Quelle stratégie peut vous assurer d’arriver au moins à 6 à l’aéro-
drome ? Ajouter à la modélisation. Proposer un algorithme de résolution pour le problème du capitaine ; indiquer
la complexité. Qualifier la topologie du réseau de ruelles, sachant qu’il ne possède ni voie souterraine, ni voie
aérienne.
2. Indication : voir le problème de flot de coût minimal et sa résolution par l’algorithme dit primal.
Question 16 Modéliser le problème 5 en un programme linéaire en nombre entiers (P) ; réduire l’expression du
modèle, en supprimant tout ensemble de contraintes induit et démontrer la validité du modèle ; comment s’appelle
la matrice définissant le système linéaire de contraintes de (P) (en terme de graphe) ?
Question 17 Dualité faible/forte et bornes. Écrire le programme linéaire dual (D̄) de (P). On note (D) le
programme linéaire en nombres entiers dont (D̄) est la relaxation continue ; on note (P̄) la relaxation continue de
(P). Soient x∗ , x̄∗ , y∗ et ȳ∗ des solutions optimales de (P), (P̄), (D) et (D̄), respectivement. Prouver l’existence
de telles solutions, puis établir une relation d’ordre entre elles. S’il existe z une solution réalisable à la fois de (P)
et de (D), que dire des optima de (P) et (D) ?
Question 18 Connaissant ∆ ∈ Z+ , le nombre maximal de forages voisins auxquels un forage peut être raccordé,
déterminer une solution réalisable de (D̄) ; en déduire une borne inférieure du problème 5 ; exprimer de manière
générique 3 cette borne du problème (P).
Question 19 Illustrer chacun des deux cas suivants par un exemple d’instance qui le vérifie :
1. (P) et (D) ont des valeurs optimales égales ;
2. (P), (P̄) et (D) ont des valeurs optimales différentes.
Pour ces deux instances, identifier des solutions optimales de (P), (P̄), (D) et (D̄). Pour prouver l’optimalité des
solutions de (P̄) de (D̄), on pourra s’appliquer d’abord à borner les valeurs optimales de ces programmes linéaires
en considérant des combinaisons valides de leurs contraintes.
Question 20 Complexité. Quel est le nom usuel du problème d’optimisation modélisé par (P) ? Quelle est sa
complexité théorique ? Exhiber une classe d’instances pour laquelle, le problème est trivial.
Question 22 Proposer un algorithme glouton d’approximation pour (P) ; donner sa complexité temporelle
et spatiale.
Question 23 Déterminer une solution optimale du problème 5 pour l’instance à 20 forages représentée sur la
figure 2, en argumentant votre raisonnement.
Question 24 Votre solution, répondant à la question précédente, a été retenue et les usines de traitement ont
été construites aux emplacement préconisés. La seconde étape consiste à réaliser un réseau de canalisation de
longueur totale minimale permettant de relier l’ensemble des 20 forages. Ce réseau est composé de deux types de
canalisations : des raccords forage-usine (dont la longueur est non nulle et inférieure à 150 km), et des raccords
usine-usine. Quelles sont les caractéristiques d’un tel réseau ? Comment appelle-t’on un tel objet en terme de
graphe ? Proposer un algorithme de construction du réseau.
3. comment appelle-t’on ∆ en terme de graphes ?
4. Hint : borner par une combinaison des contraintes de (P).
Question 25 Ajouter au glossaire, la définition et le nom usuel français de chacun des problèmes suivants :
minimum edge cover
minimum node cover
maximum clique
maximum matching
maximum independant set
maximum stable
maximal matching
maximal independant set
Problème 6 Accès wifi. Une municipalité a décidé d’offrir un accès wifi à tous les habitants du centre-ville. Elle
veut équiper le plus petit nombre possible de carrefours en bornes wifi (dont la longueur d’émission est supérieure
à la plus longue rue de la ville) de manière à ce que, depuis chaque habitation dans chaque rue, au moins un signal
soit capté.
Problème 7 Reconnaissance d’images. Soient deux images A et B de taille identique, on s’intéresse à la proxi-
mité de ces deux images selon une mesure simple 5 : la fréquence d’apparition de couleurs. Par exemple, selon une
telle mesure, deux images bichromes, l’une composée de 200 pixels rouges et de 56 pixels jaunes, l’autre compo-
sée de 206 pixels noirs et de 50 pixels blancs, sont considérées comme quasi-identiques : en appariant 200 pixels
rouges/noirs et 50 pixels jaunes/blanc, on obtient une « distance » égale à 250/256. De manière générale, on appa-
rie tous pixels de A à tous pixels de B et on cherche le nombre maximal de couples mutuellement cohérents (divisé
par la taille des images) : deux couples (a1 , b1 ) ∈ A × B et (a2 , b2 ) ∈ A × B sont dits cohérents si et seulement si
a1 et a2 sont de la même couleur et b1 et b2 sont de la même couleur, ou bien, a1 et a2 sont de couleurs différentes
et b1 et b2 sont de couleurs différentes.
Problème 8 Ordonnancement de tâches sur bi-processeur. Étant donnés deux processeurs, un ensemble de
tâches de durée unitaire et une relation de compatibilité entre paires de tâches, l’ordonnanceur du système doit
déterminer le temps minimal nécessaire à l’exécution de l’ensemble des tâches au moyen des deux processeurs, de
sorte que : (i) une tâche est exécutée par l’un ou l’autre des deux processeurs (ii) un processeur exécute une tâche
à la fois (iii) deux tâches exécutées en parallèle sur les deux processeurs sont nécessairement compatibles.
Problème 9 Débat politique. Une émission radiophonique new-yorkaise souhaite organiser un débat politique
entre partisans démocrates et républicains. Les participants ont déjà été sélectionnés, et les échanges s’annoncent
houleux. Afin d’éviter toute querelle familliale, les producteurs décident, en dernière minute, de ne pas faire par-
ticiper des membres d’une même famille qui seraient de tendances politiques opposées. Le nombre de participants
doit cependant rester le plus large possible.
Problème 10 Structure moléculaire. Une molécule est définie par la liste et le nombre de ces atomes, mais
aussi par sa structure : l’ordre des liaisons inter-atomiques. À partir de la première information, les chimistes ont
donc à déterminer la structure atomique possible d’une molécule, c’est à dire affecter un ordre (simple, double,
etc.) aux liaisons inter-atomiques de sorte que la valence des atomes soit respectée. On considère une molécule
hydrocarbonée, composée d’atomes C de carbone (de valence 4) et H d’hydrogène (de valence 1). Les liaisons
C − H sont nécessairement simples mais les liaisons C − C peuvent être simples ou doubles. Avec des liaisons
simples (à gauche sur le schéma), les valences des atomes de carbone C seraient toutes égales à 3. Il s’agit donc de
déterminer quelles liaisons C − C doubler pour que chaque atome de carbone ait une valence de 4.
5. L’application est ici simplifiée, mais le raisonnement est identique pour des mesures plus complexes.
Question 27 Qualifier les deux problèmes modélisés par les programmes linéaires en nombres entiers suivants :
X X
(Px ) : max { xe | xe 6 1 (∀i ∈ V), x ∈ ZE +} (1)
e∈E e∈E|i∈e
X
(Pu ) : max { ui | ui + uj 6 1 (∀(i, j) ∈ V 2 \ E), u ∈ ZV
+ } (2)
i∈V
Question 28 Modéliser les 6 premiers problèmes de la question 25 en programmes linéaires en nombres entiers.
Exhiber un maximum de relations entre ces différents problèmes (par complémentarité, dualité, etc.). En déduire,
la classe de complexité de tous.
Question 29 Identifier, parmi les problèmes 6 à 10, ceux résolvables en temps polynomial.
Question 31 Modéliser cette problématique en une instance du problème du voyageur de commerce (Traveling
Salesman Problem – TSP). Qualifier cette instance du TSP (symétrique, assymétrique, euclidien,...) ? Étant don-
née une solution optimale du problème – on note πi le i-ème trou percé suivant cette solution – exprimer la valeur
optimale du TSP équivalent.
Le problème d’optimisation considéré ci-après est le TSP euclidien sur un ensemble V de villes : trouver
la plus courte route non-orientée qui passe par chacune des villes et qui termine là où elle commence.
On note n = |V| le nombre de villes et G = (KV , c) le graphe complet non-orienté sur l’ensemble V des
sommets et pondéré par la matrice c des distances entre les villes.
Question 32 Caractérisation des solutions. Montrer que dans toute solution optimale du TSP euclidien,
chaque ville est visitée exactement une fois. Montrer que le problème est équivalent à trouver un cycle (simple)
hamiltonien de G de plus petite longueur. Donner deux représentations/encodages d’un cycle hamiltonien dans
G – par une séquence de sommets ou par un ensemble d’arêtes – en précisant la taille de ces ensembles et les
contraintes définissant ces ensembles. Combien de cycles hamiltoniens G possède-t’il ? Par la suite, on désignera
par tour un cycle hamiltonien dans G et par tour partiel un cycle dans G.
Construction de tours.
Question 33 On s’intéresse à des heuristiques constructives gloutonnes de tours : partant d’un unique sommet
ou, plus généralement, d’un tour partiel, la construction consiste à augmenter le tour partiel courant d’un nou-
veau sommet à chaque itération, jusqu’à ce que tous les sommets soient ajoutés. Le choix du tour partiel initial
Question 34 Modifier les deux derniers algorithmes pour utiliser la politique de sélection suivante :
sélection du plus proche : sélectionne le sommet non visité le plus proche de l’ensemble des sommets du tour
partiel.
Comparer l’augmentation du coût du tour partiel obtenu à chaque itération pour chacun des 3 algorithmes.
Question 35 Modifier le dernier algorithme pour utiliser les politiques d’initialisation et de sélection suivantes :
initialisation : le tour partiel initial est formé des deux sommets les plus distants ;
sélection du plus distant : sélectionne à chaque itération le sommet non visité le plus distant de l’ensemble des
sommets du tour partiel.
Discuter l’intérêt de cette démarche en illustrant, par exemple, le résultat sur une instance.
où (i1 i2 . . . il ) est la notation usuelle d’une permutation d’éléments. Quel est la valeur de retour de cet algo-
rithme ? En décrire chaque étape. Proposer une amélioration de step 2.
Question 37 Quelle relation existe-t’il entre le problème de l’arbre de recouvrement de poids minimal dans
un graphe et le TSP ? Citer deux célèbres algorithmes de calcul de l’arbre de recouvrement de poids minimal dans
un graphe et donner leur complexité. Faire le parallèle entre ces algorithmes et les algorithmes des questions 34 et
36. Citer une autre heuristique pour le TSP basée sur la recherche d’un arbre de recouvrement de poids minimal
du graphe.
Question 38 Montrer que les opérations suivantes sont des mouvements de recherche locale, les décrire formel-
lement ou les illustrer, et donner la taille d’un voisinage :
inversion de sommets : échange deux sommets consécutifs du tour ;
échange de sommets : échange deux sommets distincts du tour ;
échange d’arêtes 2-opt : supprime deux arêtes non-adjacentes du tour et reconnecte (une seule possibilité) les
deux chemins résultant.
Question 40 Montrer que le coût minimal d’un arbre de recouvrement de G est au plus égal à l’optimum du
TSP. Proposer une borne inférieure du TSP basée sur le calcul d’un arbre de recouvrement de poids minimal.
Quel autre problème classique de graphe forme aussi une relaxation du TSP. Avec quelles complexités les bornes
inférieures issues de ces relaxations peuvent-elles être calculées ?
Question 42 Même question avec les variables de décision xe ∈ {0, 1} définies par xe = 1 si et seulement si
l’arête e de G appartient au tour. Même question avec les variables de décision zi ∈ V définies par zi = j si et
seulement si la ville j suit la ville i dans le tour.
On reprend ici les notations de la section précédente : soit un graphe complet non-orienté pondéré
G = (KV , c) à n = |V| sommets.
Question 44 assignment problem. On considère le problème Pd’affectation linéaire suivant : trouver une
fonction bijective f de V (ensemble fini discret) dans V telle que i∈V ci f(i) soit minimal. Formuler en un pro-
gramme linéaire en variables booléennes (PLVB). À quelle classe de complexité ce problème appartient-il ? Quelle
relation existe-t’il entre ce problème et le TSP ? Proposer une seconde formulation de PLVB pour le problème
d’affectation linéaire avec exactement |V| contraintes.
Question 46 control zones. On considère ici un encodage du TSP, différent encore, basé sur exactement n
disques, chacun centré sur un sommet de G, et ne s’intersectant pas (les disques sont soit deux à deux disjoints,
soit seulement adjacents). Comparer la somme des diamètres des disques et le coût d’un tour dans G. Proposer
un programme linéaire modélisant une relaxation du TSP et basé sur des variables continues ri > 0 : pour tout
sommet i ∈ V, ri est la longueur du rayon du disque centré en i. Considérer le dual de ce PL.
Question 48 Proposer un modèle linéaire du problème de cycle hamiltonien (on prendra une fonction objective
constante quelconque) basé sur des variables booléennes de type yik = 1 si et seulement si i est le k-ème sommet
du cycle. Compléter ce modèle en un PLVB du TSP de taille polynomiale en n.
Dantzig, Fulkerson et Jonhson [2] furent les premiers à considérer la relaxation AP et les contraintes de
sous-tours pour le TSP. Partant de la solution optimale de (P) le PLVB de la question 44, ils proposèrent
la méthode de résolution itérative suivante : à chaque itération, la relaxation continue de (P) est résolue
et une contrainte de sous-tour, violée par la solution courante, est recherchée puis, si elle existe, ajoutée
à (P). Cette méthode est aujourd’hui appelée algorithme de génération de coupes.
Pour les questions de recherche bibliographique suivantes, on pourra s’appuyer notamment sur les
documents disponibles sur [6] et qui reprennent en partie le livre [1].
Question 49 Montrer que l’algorithme termine. Que peut-on dire de la solution retournée ? Définir les méthodes
de séparation et de branch-and-cut.
Question 50 Résumer la méthode de [2] de recherche de coupes de sous-tour. S’agit-il d’une heuristique ou, au
contraire, la méthode assure-t’elle de trouver une coupe tant qu’il en existe ?
– citer d’autres méthodes de recherche de coupes de sous-tour ;
– citer d’autres classes de coupes structurelles propres au TSP ;
– citer une classe de coupes générique à tout PLNE.
2.5 Model
Let N = {1, . . . , n} be the set of customers and K = {1, . . . , kmax } be the set of vehicles that can be used
to perform the service. The VRPTW is defined on a network G = (V, A), where V = {0, . . . , n + 1} and
the nodes 0 and n + 1 represent the depot : all feasible vehicle routes correspond to elementary paths
from node 0 to node n + 1 in G. For each arc (i, j) ∈ A, we denote tij the travel time on this arc and
cij the travel cost. For each vertex i ∈ V, we denote δ+ (i) the set of successors of i and δ− (i) the set of
predecessors of i.
Nodes 0 and n + 1 are given a time window [E, L] where E and L represent the earliest departure
from the depot and the latest possible arrival at the depot, respectively. In addition, zero demands and
service times are defined for these nodes (d0 = dn+1 = s0 = sn+1 = 0). Unused vehicles can be
represented by routes having exactly one arc : the arc (0, n + 1) defined with t0,n+1 = c0,n+1 = 0.
The following mathematical model uses two types of variables : flow variables xk ij , (i, j) ∈ A, k ∈ K,
k
equal to 1 if arc (i, j) is used by vehicle k and 0 otherwise, and time variables wi , i ∈ V, k ∈ K, specifying
the start of service at node i when serviced by vehicle k.
X X
min z = cij xk
ij (3)
k∈K(i,j)∈A
X X
s.t. xk
ij = 1 ∀i ∈ N, (4)
k∈Kj∈δ+ (i)
X X
xk
ij − xk
ji = 0 ∀k ∈ K, j ∈ N, (5)
i∈δ− (j) i∈δ+ (j)
X
xk
0i = 1 ∀k ∈ K, (6)
i∈δ+ (0)
X
xk
i(n+1) = 1 ∀k ∈ K, (7)
i∈δ− (n+1)
xk k k
ij (wi + si + tij − wj ) 6 0 ∀k ∈ K, (i, j) ∈ A, (8)
X X
ai xk k
ij 6 wi 6 bi xk
ij ∀i ∈ N, ∀k ∈ K, (9)
j∈δ+ (i) j∈δ+ (i)
E 6 wk
i 6L ∀k ∈ K, i ∈ {0, n + 1}, (10)
X X
di ( xk
ij ) 6 C ∀k ∈ K, (11)
i∈N j∈δ+ (i)
ij ∈ {0, 1}
xk ∀k ∈ K, (i, j) ∈ A. (12)
tij 0 1 2 3 4 5 6 7
0 0 10 18 18 25 20 10 10
1 10 0 10 12 22 20 18 20
2 18 10 0 10 12 20 22 28
3 18 12 10 0 15 12 12 20
4 25 22 12 15 0 10 22 32
5 20 20 20 12 10 0 15 25
6 10 18 22 12 22 15 0 10
7 10 20 28 20 32 25 10 0
Question 53 Incremental version of the algorithm. Savelsbergh proposes an efficient implementation of the
lexicographic search algorithm, using additional global variables to reduce the checking effort to O(1) time for
each 2-exchange.
1. Summarize the initialization and the update steps for these variables.
2. Run the algorithm at iteration i = 2 using this technique.
3. At the end of page 293, the author quickly describe a profitability test but does not explain it. Propose a
method for this test and give its complexity.
7. Hint : consider xk k
ij = 1 then introduce an arbitrary large constant M s.t. it remains unconstrained when xij = 0.