Vous êtes sur la page 1sur 37

Universit Catholique de Louvain cole Polytechnique de Louvain

Contrle et optimisation dun rseau de transport en commun

Dautrebande Marie Martinussen Germain Ulbrich Alexander Van Eesbeeck Laurent

Louvain-la-Neuve, 4 mai 2012

Rsum Ce rapport de projet porte sur le contrle et loptimisation du rseau de mtros bruxellois. La STIIB souhaite amliorer la qualit de ses services et nous a demand de prendre les choses en main. Ce document dcrit le fonctionnement de loptimisation linaire en nombres entiers qui a t retenue, en mettant en vidence le confort des passagers. Direntes variantes ont t testes et compares dans un soucis du dtail. Nous abordons les performances techniques autant que laspect nancier. En pratique, nous remarquons quavec une mthode doptimisation, pour avoir un maximum de confort, il est ncessaire dinvestir dans de nouvelles rames. Ce programme est accessible et est prvu pour tourner sur nimporte quel jour type (jours ouvrables, fris et manifestations particulires) selon dirents paramtres.

Sommaire
Introduction 1 Prsentation du produit 2 Modlisation 2.1 Problme doptimisation . . . . . . . . . . . 2.1.1 La douce illusion de de loptimalit . 2.1.2 Donnes, restrictions et intervalles . 2.2 Description du modle . . . . . . . . . . . . 2.2.1 Gestion des correspondances . . . . . 2.2.2 Variables du modle . . . . . . . . . 2.3 Mise en quations du modle doptimisation 2.3.1 Simplication du modle . . . . . . . 2.3.2 Nombre de mtros . . . . . . . . . . 2.3.3 Heuristiques de modlisation . . . . 2.3.4 Continuit . . . . . . . . . . . . . . . 2.3.5 Objectif et contraintes quadratiques 2.3.6 Les faiblesses de notre modle . . . . 3 5 6 6 6 6 8 8 8 9 10 10 11 12 12 13 14 14 15 15 15 16 17 17 18 18

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

3 Simulation 3.1 Complexit et taille des problmes considrs 3.2 Variation des paramtres . . . . . . . . . . . . 3.3 Description des fonctions . . . . . . . . . . . . 3.3.1 Gestion des donnes . . . . . . . . . . 3.3.2 Modlisation . . . . . . . . . . . . . . 3.4 Mise en pratique . . . . . . . . . . . . . . . . 3.4.1 Variation du nombre de mtros . . . . 3.4.2 Variation du temps dattente . . . . . 3.4.3 Linaire vs. Quadratique . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

4 Analyse des rsultats 20 4.1 Critres de qualit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.2 Comparaison des solutions sans ajout de mtros . . . . . . . . . . . . . . . . . . . . 20 4.3 Achat de nouvelles rames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Conclusion A Cahier des charges 23 24

INMA1375 Projet en mathmatiques appliques

Page 1 sur 35

B Horaire complet sur base des donnes du 5 septembre 2011 C Gestion du travail de groupe et bilan du projet D Modlisation avec ajout de rames E Le dfaut dune modlisation trop complte

27 30 31 33

INMA1375 Projet en mathmatiques appliques

Page 2 sur 35

Introduction
Alternative principale la voiture personnelle, les transports en commun sont de plus en plus utiliss en Belgique et, en particulier, dans Bruxelles. Le noyau principal du rseau bruxellois est son rseau de mtros qui gre prs de 40% des voyages eectus dans la capitale 1 . Il y a quelques mois, la Socit des Transports Intercommunaux Intelligents de Bruxelles (la STIIB) a lanc un appel dores plusieurs groupes dtudes, dont notre socit doptimisation, la Transportation Network Optimization (TNO). Elle souhaite amliorer le rseau de mtros de la capitale belge en termes de confort des usagers en rduisant leur temps dattente tout en vitant de dpasser une certaine enveloppe budgtaire. Si la requte du client semble vague au premier abord, le cadre du problme a t dni de manire claire : pour des raisons budgtaires, la STIIB ne souhaite pas investir dans de nouvelles rames de mtro ni modier ses lignes. Elle ne nous demande pas non plus de grer les pannes ventuelles lies au dysfonctionnement des mtros. Le problme se rsume donc aecter les ressources disponibles (les rames de mtro) de manire optimale an damliorer la qualit du service propos. De plus, les rames de mtro ne peuvent pas changer de ligne au cours dun trajet ; chaque ligne dispose donc dun nombre de mtros constant sur une journe. Pour rpondre sa demande, la STIIB nous a fourni les donnes suivantes : le plan du rseau ainsi que la matrice dadjacence associe son graphe ; le temps ncessaire pour quun mtro se dplace dune station une autre ainsi que le temps ncessaire pour faire demi-tour en n de ligne ; le nombre de places disponibles dans chaque rame de mtro ; lhistorique dune journe comprenant le trajet de chaque usager du rseau ainsi que lheure laquelle il arrive sa station dembarquement (obtenu grce des compteurs rcemment installs sur le rseau). Nous avons galement reu des fonctions permettant de traduire lhistorique de la journe vers des variables Matlab ainsi quun simulateur permettant de calculer le temps dattente moyen (et dautres donnes statistiques) de chaque passager sur un horaire donn. Pour rpondre la demande, nous sommes partis dans la direction de loptimisation linaire, puisque notre socit a dj travaill dans ce contexte par le pass 2 . Par confort, nous avons choisi dimplmenter notre problme en Matlab et de le rsoudre laide du solveur Gurobi rput pour ses performances excellentes. Nous orons notre client un horaire plus performant que lhoraire actuel en termes de temps dattente moyen des usagers du rseau. Cet horaire se prsente comme un immense tableau qui contient les heures auxquelles doivent dmarrer les mtros au dpart des extrmits de chaque ligne du rseau. Nous fournissons galement lensemble de nos codes Matlab, laissant ainsi les
1. Voir http://www.stib.be/figures.html?l=fr 2. Lanne passe, la TNO a cr un programme de reconstruction dimages endommages pour lindustrie Glineur Imagerie.

INMA1375 Projet en mathmatiques appliques

Page 3 sur 35

gestionnaires de la STIIB libres de rednir leurs horaires au moyen dautres paramtres. Sachant que notre programme se base sur un chier contenant lhistorique complet dune journe, il est possible de dnir les horaires pour des jours fris ou des vacances scolaires en appliquant notre modle sur un autre historique. Il est galement possible pour le client de choisir plusieurs jours de rfrences, de calculer les horaires optimaux correspondant et de trouver ensuite un juste milieu entre ceux-ci. Ce rapport a pour objectif de prsenter le rsultat de ces quelques mois de travail. Nous allons prsenter notre produit, en dtaillant son fonctionnement et son intrt. Nous exposerons un peu plus en dtail la mthode doptimisation utilise. Nous expliquerons ensuite la manire dont cette mthode a t utilise et de quelle faon nous avons russi traiter un problme aussi important, avec autant de paramtres (nombre de lignes et de passagers entre autres). Enn, nous prouverons que notre solution est plus intressante que ce qui se fait actuellement Bruxelles, en comparant notamment les temps dattente moyen des usagers. En annexes se trouvent les cahiers des charges (celui que nous vous avons dj prsent et la version nale), quelques mots sur la gestion des tches en groupe, des rsultats complmentaires et un modle complet.

INMA1375 Projet en mathmatiques appliques

Page 4 sur 35

Chapitre 1

Prsentation du produit
Avant de crer un produit, il est important de se xer des objectifs, davoir bien en tte ce quoi nous voulons arriver. Cest le rle du cahier des charges. Notre socit a crit deux versions de son cahier des charges, une en ayant que lide gnrale du problme et lautre lorsquelle a eu sa disposition toutes les donnes et contraintes. Ces deux versions sont rdiges et compares en annexe A. La demande principale du client tait la conception dun nouvel horaire. Nous avons donc crit un programme qui nous renvoie un horaire optimal bas sur lhistorique du rseau sur un jour de rfrence. Cet horaire se prsente sous la forme Ligne 1 Dpot 1 Dpot Heure Id Heure 6 :00 1 6 :00 6 :19 3 6 :20 6 :34 5 6 :38 21 Id 2 4 6 Ligne 2 Dpot 30 Dpot Heure Id Heure 6 :00 9 6 :00 6 :17 12 6 :11 6 :33 14 6 :24 31 Id 10 11 13 Ligne 3 Dpot 38 Dpot Heure Id Heure 6 :00 21 6 :00 6 :18 24 6 :16 6 :33 26 6 :29 60 Id 22 23 25

Pour chaque extrmit de ligne (appele dpot), ce tableau contient les heures auxquelles auxquelles les rames de mtro quittent leur dpot. A chaque dpart est galement associ un identiant qui correspond au nom de la rame de mtro (physique) qui eectue ce trajet. Lhoraire complet bas sur lhistorique du 5 septembre 2011 se trouve en Annexe B. En plus de simplement rcrire un nouvel horaire, notre socit a voulu se dmarquer des autres compagnies engages pour rsoudre le mme problme. Elle a ainsi cr une interface graphique, permettant au client de ritrer sa demande de modication des horaires autant de fois que possible. Notre interface graphique a t conue dans un soucis de simplicit dutilisation. Elle est rdige en franais, en nerlandais et en anglais et permet dacher rapidement les horaires dj calculs. Elle permet galement de choisir un nouveau jour de rfrence (jour que lon juge reprsentatif dune utilisation normale) et de recalculer un nouvel horaire. Aucune notice dutilisation nest fournie mais le code Matlab est susamment comment que pour permettre une personne, ayant quelques notions de base, de rajouter lui-mme des donnes fraichement collectes. Cela permet au client de renouveler son horaire quand il le souhaite, tous les ans par exemple ou en cas dvnement pouvant modier les habitudes des usagers (changement de tarifs par exemple).

INMA1375 Projet en mathmatiques appliques

Page 5 sur 35

Chapitre 2

Modlisation
Notre objectif est doptimiser le confort des utilisateurs du rseau en minimisant leur temps dattente sur le quai avant dembarquer dans une rame de mtro. Nous modlisons ce problme par un problme doptimisation linaire, car tout problme linaire faisable (cest--dire que son domaine admissible est non-vide et que sa valeur optimale est nie) est solvable (par exemple au moyen de lalgorithme du simplexe et dune numration intelligente de type Branch and Bound ). Parmi les dirents solveurs de problmes linaires disponibles, nous avons choisi dutiliser Gurobi.

2.1
2.1.1

Problme doptimisation
La douce illusion de de loptimalit

Sil est facile dcrire des quations rsoudre et si tout problme linaire est solvable, nous ne devons pas perdre de vue quun modle conforme la ralit comprend gnralement un trs grand nombre de variables de dcision et de contraintes. Notre modle tient compte du temps dattente de chaque passager et comporte donc potentiellement autant de variables que dusagers sur la journe. Comme environ 100 000 voyageurs transitent par le rseau mtro quotidiennement, une augmentation du nombre de variables passant du simple au double a un lourd impact sur la taille du problme et aecte sensiblement le temps de calcul ncessaire. De mme, un passage du simple au carr est inconcevable. Le modle que nous prsentons ici est simple (voire mme simpliste), prix ncessaire payer pour quil soit solvable en un temps raisonnable. Une des contraintes du modle se traduit physiquement par lassertion une rame dune capacit Cmax nacceptera que Cmax voyageurs distincts au cours de son trajet. Lannexe E contient un modle linaire qui rcrit cette contrainte par en tout temps et partout, le nombre dusagers prsents dans une rame est infrieure Cmax et explique simplement pourquoi un tel modle est irralisable en pratique. Nous avons donc d, plusieurs endroits, ngliger le ralisme du modle pour le rendre solvable.

2.1.2

Donnes, restrictions et intervalles

Notre problme sapplique spciquement au rseau mtro bruxellois compos de trois lignes dnies dans les deux sens. Chaque extrmit de ligne constitue un dpt (il y en a donc 6 en tout) o des rames peuvent tre stockes et faire demi-tour. Chaque vhicule ncessite cinq minutes pour cette manuvre, avant de pouvoir repartir. La STIIB possde trente mtros oprationnels entre 6h00 et 22h00. En dehors de cet intervalle, les mtros ne peuvent plus dmarrer des dpts mais peuvent nanmoins circuler tant quils INMA1375 Projet en mathmatiques appliques Page 6 sur 35

natteignent pas un terminus. Daprs notre observation quotidienne, une journe ouvrable est spare en heures de pointe (o le trac est dense) et en heures creuse (o le trac est peu dense). Pour dnir formellement ces tranches horaires, nous avons tabli lhistogramme de la frquentation du rseau chaque heure de la journe. Nous observons que, pour la journe du 5 septembre suppose normale, les heures de pointe du matin ont lieu entre 6h00 et 9h00 et que celles du soir ont lieu entre 16h00 et 19h00 (voir Figure 2.1). Lhistogramme de la journe du 6 septembre a une allure quasi identique, les deux journes tant des jours de semaine, le trac est semblable.

Figure 2.1 Histogramme du 5 septembre 2011

Pour rduire la taille du problme, nous divisons une journe complte en 4 plages horaires et optimisons lhoraire ligne par ligne, un sens la fois, sur ces plages. Nous veillons galement avoir une frquence de mtros plus grande aux heures de pointe quaux heures creuses. Heures de pointe 6-9 16-19 Heures creuses 9 - 16 19 - 22

Le fait de travailler sur des intervalles en sparant les lignes simplie grandement la taille du problme. Chaque sous-problme doptimisation naura plus qu considrer environ 4100 voyageurs. De plus, comme nous allons trouver des optimums sur chaque intervalle en trs peu de temps, en ngligeant certains aspects de continuit (car des passagers peuvent embarquer sur un intervalle et dbarquer dans un autre), nous esprons tre moins sujets aux particularits de la journe considre. Vu quon souhaite crer un horaire ecace et commun pour tous les jours semblables, cette sparation semble bienvenue.

INMA1375 Projet en mathmatiques appliques

Page 7 sur 35

2.2

Description du modle

Nous cherchons les instants auxquels faire dmarrer des rames de mtro partir de leur dpt an que les usagers attendent le moins possible. Notre modle utilise, entre autres et comme nous le verrons plus loin, des variables de dcision binaires et ncessite donc une technique de rsolution particulire. Cette technique nglige, dans un premier temps, la nature entire des variables et rsout le problme comme sil sagissait dun problme linaire classique. Par aprs, elle force certaines variables prendre des valeurs entires et elle rsout des sous-problmes. Un problme linaire mixte contenant des variables relles et des variables entires 1 demande donc un temps de calcul plus lev. Heureusement, le solveur Gurobi se base sur un certain nombre dheuristiques de calcul trs performantes. Nous avons trouv deux objectifs dirents optimiser : le temps dattente moyen (une fonction linaire) ou la variance des temps dattente (une fonction quadratique). La minimisation de la variance est fort sensible aux voyageurs dont le temps dattente est lev, ce qui diminue le nombre de fortes insatisfactions. En contrepartie, le temps dattente moyen risque daugmenter. Ces deux approches se basent globalement sur le mme contexte. Lnonc quadratique possde nanmoins quelques variables supplmentaires pour aboutir une fonction objectif convexe indpendamment de son contexte. En eet, Gurobi considre lobjectif min x2 y 2 comme non-convexe.

2.2.1

Gestion des correspondances

Les usagers dont le voyage d a est tel que a et d sont situs sur des lignes direntes eectuent des correspondances en passant par une station de croisement C. Leur trajet est donc d C a, avec C commune la ligne de dpart et la ligne darrive. Notre modle linaire ne gre quune ligne la fois dans un seul sens, ce qui le rend trop pauvre pour pouvoir tenir compte de tels usagers. Une approche simple pour intgrer ces voyageurs dans notre modle consiste les sparer en couples de voyageurs ctifs {d C, C a}. Le problme dans la sparation dun voyageur en deux voyageurs ctifs est que lheure laquelle le second voyageur pntre dans le rseau dpend de lheure laquelle le premier embarque dans sa rame. Pour contourner cette situation, nous supposons par dfaut que chaque voyageur attend au exactement 30 minutes sur le quai avant dembarquer. Nous pouvons alors supposer lheure darrive en quai du second voyageur ctif. Cette approche nest pas trs rigoureuse mais fournit des rsultats satisfaisants car nous bornons suprieurement le temps dattente. Nous ne pouvons donc quavoir un temps dattente total infrieur ou gal au double du temps dattente maximum.

2.2.2

Variables du modle

Au premier abord, nous souhaitons donc crire un problme doptimisation linaire. Lobjectif est de minimiser la moyenne des temps dattente de chacun des passagers qui transitent sur la ligne, sur un intervalle de temps donn. Nous allons donc considrer les passagers qui partent de la ligne pour rejoindre une autre station de celle-ci ; ceux qui viennent dune autre ligne et qui arrivent sur celle-ci ;
1. Un tel problme est appel MIP (Mixed-Integer Programming) ou encore MIQP (Mixed-Integer Quadratic Programming) lorsque lobjectif optimiser est une fonction quadratique, comme le permettent certains solveurs.

INMA1375 Projet en mathmatiques appliques

Page 8 sur 35

ceux qui dmarrent de la ligne et vont sur une autre. (Les deux derniers cas correspondent aux passagers en correspondance). Pour minimiser ce temps dattente, nous allons chercher quel moment il est le plus judicieux de faire dmarrer un mtro. Nous allons donc supposer quun mtro peut partir chaque minute de notre intervalle. Cet intervalle possde t minutes et donc t heures possibles de dpart pour les mtros, rassembles dans un vecteur Ii avec i = 1, . . . , t. Pour ramener le problme bidimensionnel spatial-temporel tudi un problme monodimensionnel temporel, nous ramenons lensemble des passagers la station de dpart (le dpt). Nous travaillons donc avec un ensemble de passagers ctifs dont le temps darrive tc en station dun passager c correspond au temps darrive rel auquel on soustrait le temps mis par un mtro pour parcourir le trajet jusqu la station relle dembarquement. Nous dnissons les variables suivantes : wc , le temps dattente du passager c, correspondant la dirence entre le dpart du mtro lheure Ii et le temps darrive tc du voyageur la station de dpart ; yc,i , variable binaire qui vaut 1 lorsque le passager c prend le mtro i qui part au temps Ii et 0 sinon ; mi , variable binaire qui vaut 1 lorsquun mtro part au temps Ii et 0 sinon. Tous les temps sont en minutes, ce qui implique que les variables wc sont entires. Pour lobjectif quadratique du problme, nous devons dnir les variables supplmentaires T le temps dattente moyen, continue ; vc lcart, pour chaque voyageur, entre son temps dattente et le temps dattente moyen, continue galement.

2.3

Mise en quations du modle doptimisation


p

Notre objectif consiste minimiser la moyenne des temps dattente de chacun des passagers : min f = 1 p wc
c=1

(2.1)

avec p, le nombre total de voyageurs considrs sur la ligne. La premire contrainte limite le nombre maximum de mtro :
t

mi
i=1

(2.2)

avec M , le nombre total de mtros disponibles. La seconde contrainte assure que lembarquement dun voyageur implique le dpart dun mtro en dbut de ligne : yc,i mi c, i. (2.3) La troisime contrainte concerne le chargement maximal de chaque des mtros : une rame dispose dune capacit dau plus Cmax (par dfaut 400) voyageurs :
p

yc,i
c=1

Cmax

i.

(2.4)

INMA1375 Projet en mathmatiques appliques

Page 9 sur 35

On souhaite ensuite que chaque dpart soit espac dau moins 2 minutes de scurit. A priori vu le nombre de mtro et lintervalle de temps sur lequel on travaille, il y a peu de chance pour que deux mtros partent moins de 2 minutes dintervalle mais cette contrainte nest pas encombrante. mi + mi+1 2 pour i = 1, . . . , t (2.5)

Nous nous assurons aussi que chaque voyageur embarque bien dans un mtro :
t

yc,i = 1
i=1

c.

(2.6)

Finalement, on dnit le temps dattente comme :


t

wc =
i=1

yc,i (Ii tc )

(2.7)

avec Ii , lheure de dpart du mtro i et tc , le temps darrive la station de dpart du voyageur c. Remarquons que, par la contrainte (2.7), cette contrainte nest pas une somme mais la slection dune unique valeur Ii tc . Par ralisme, il faut que cette quantit soit positive (un passager ne peut pas embarquer avant darrive sur le quai) : wc 0 c.

2.3.1

Simplication du modle

Il est clair que le nombre de gens qui prennent le mtro sur notre ligne est bien suprieur au nombre de minutes de notre intervalle, on a donc un nombre de variables inutilement grand. Nous pouvons remdier ce problme en associant chaque minute un poids nc correspondant au nombre de voyageurs qui arrivent ce moment. Lobjectif (2.1) se modie comme suit : 1 min f = p
p

wc n c
c=1

(2.8)

Notre nouvelle fonction objectif est donc f avec p qui correspond au nombre de passagers rduits, ou encore au nombre de minutes de notre intervalle. Les contraintes sont bien vident sujettes ce changement ; le domaine de lindice c est rduit {1, . . . , p} et la contrainte (2.4) devient :
p

yc,i nc
c=1

Cmax

(2.9)

2.3.2

Nombre de mtros

Il existe deux possibilits pour connaitre le nombre de mtros ncessaires. La premire consiste xer M par calcul pralable comme le minimum ncessaire. La deuxime mthode consiste complter lobjectif de telle manire ce que la valeur augmente lorsquon ajoute un mtro. 1 min f = p
p t

wc n c + K
c=1 i=1

mi

(2.10)

INMA1375 Projet en mathmatiques appliques

Page 10 sur 35

avec K, un nombre arbitraire qui va pondrer la somme. A priori, cette nouvelle fonction objectif f nous donnera un nombre de mtros minimum qui satisfasse les contraintes. Et donc les mmes rsultats que si on calculait le nombre minimum de mtros ncessaires la main . Nanmoins, on peut tirer prot de cette fonction, en posant une borne suprieure au temps dattente. Si on souhaite quun voyageur eectuant un trajet simple (il reste sur la mme ligne) attendent moins de 20 minutes, on pose : wc = 20 c (2.11)

Il faut donc bien videmment poser un nombre de mtros M arbitrairement grand pour laisser susamment de libert au problme doptimisation.

2.3.3

Heuristiques de modlisation

Le rseau de la STIIB possde un total de 30 rames physiques qui peuvent circuler en mme temps. On remarque aisment que lobjectif (2.10) avec K non-nul va nous donner un nombre de mtros croissant au plus on diminue le temps dattente . Sans cette borne de temps dattente maximum, comme mentionn prcdemment, le nombre minimum de mtros est nanmoins lev. Trop lev si on sen tient aux 30 rames disponibles. Le problme rside dans le fait que lorsque un passager embarque dans un mtro, il y reste ctivement pour lentiret du trajet (jusquau terminus). Mais en pratique, les passagers ne restent pas tous jusquau terminus. De plus, comme nous calculons chaque ligne indpendamment (aller et retour galement, donc nous comptons 6 lignes), les passagers en correspondances sont compts deux fois. On suppose alors dans un premier temps que 30 mtros sont susants pour couvrir lentiret du rseau, en calculant en excs le nombre de passagers sur chaque lignes, on peut tablir une proportion de mtros ncessaires sur chaque ligne et ce toutes les heures. Bien videmment, ce nombre est en excs. On va ensuite oprer une heuristique qui est de sapercevoir que aller et retour sur une ligne, le nombre de passagers nest gnralement pas identique (en fonction des intervalles considrs). Mais les mtros sur une ligne (aller ou retour) vont forcment tre utilis sur la ligne oppose une fois le terminus atteint. Donc si une ligne (aller ou retour) possde plus de dparts que son oppose, sauf sil y a encore des mtros inutiliss dans le dpt, se retrouvera un moment dans limpossibilit denvoyer un mtro sur la ligne. On va donc forcer le nombre de dparts dans les deux sens comme gaux et ce nombre correspondra au nombre de mtros sur la ligne la moins frquente (donc on prend le nombre par dfaut). Cette mthode donne de trs bons rsultats car nous ne dpassons pas le nombre total de mtros possibles (soit 30), le rseau devient symtrique et tous les passagers sont considrs. Pour tenir compte de cette heuristique, on va supprimer la contrainte (2.9) de capacit maximale et forcer K = 0. Ensuite pour chaque ligne, on xe M , le nombre de mtros ncessaire en fonction de lheuristique ci-dessus. On pourrait supposer que comme K est nul, il nest plus ncessaire de borner les temps dattente. Nanmoins, pour permettre une gestion ecace des voyageurs en correspondance, leur temps darrive leur station de changement de ligne est calcul partir du temps dattente maximum quils auraient leur arrive la station initiale. Ce temps dattente maximum correspond donc notre borne et est nalement un pr-requis pour avoir une bonne continuit entre nos INMA1375 Projet en mathmatiques appliques Page 11 sur 35

horaires. Un voyageur en correspondance nattendra jamais plus de deux fois le temps dattente maximum. Finalement, on exclut galement du calcul les gens qui arrivent en n de ligne au mme instant que le dbut de lintervalle. En dbut de journe, les gens qui arrivent tellement tt sont conscients quaucun mtro ne peut physiquement arriver en si peu de temps (car ils ne peuvent pas partir avant 6 heures), il sagit donc de les ngliger pour rendre le problme faisable.

2.3.4

Continuit

Sur un intervalle de temps, la contrainte (2.6) force le dernier mtro partir en mme temps que le dernier passager (lgrement restrictif). Pour assurer une continuit, on va forcer le premier mtro partir au dbut de lintervalle et pas avant ; par exemple, si lintervalle commence 9 heures, le premier mtro partira au plus tt 9 heures et pas avant, mme si des gens arrivent plus tt plus loin sur la ligne. Cette contrainte est valable car le premier mtro ne peut partir qu 6 heures lorsque le rseau dmarre et idem pour 22 heures, lorsque le rseau ferme. Ensuite, cette contrainte vite galement quon ait un nombre dlibrment trop lev de mtros sur les lignes et videmment que deux mtros appartenant un problme dirent partent moins de 2 minutes dcart.

2.3.5

Objectif et contraintes quadratiques

Si ce nest pour lobjectif et priori une seule contrainte supplmentaire, le modle quadratique se soumet aux mmes discussions que pour le modle linaire. Notre objectif devient : min g = 1 p1
p 2 wc n c T 2 + K c=1 i=1 M

mi

(2.12)

o lon reconnait lestimateur non-biais de la variance. Il nous faut alors dnir le temps dattente moyen travers une contrainte : 1 T = p
p

wc n c
c=1

(2.13)

Cette modlisation possde juste une variable et une contrainte en plus, donc la complexit est identique mais on pourrait sattendre quelques dicults de calcul pour un objectif quadratique. Eectivement, comme mentionn prcdemment, notre solveur ne considre par notre objectif comme convexe ; on doit donc exprimer la variance sous a forme la plus gnrale en introduisant une nouvelle variable continue dnie par la contrainte : v c = wc T c (2.14)

Ce qui entraine une modication de lobjectif comme suit : min g = 1 p1


p 2 vc nc + K c=1 i=1 M

mi

(2.15)

qui est une somme de carr donc dni positif et donc convexe.

INMA1375 Projet en mathmatiques appliques

Page 12 sur 35

2.3.6

Les faiblesses de notre modle

Le modle que nous venons dcrire est trs loin de la ralit du rseau que nous souhaitons optimiser. Avec lui, nous noptimisons quune ligne la fois, dans un seul sens, et sur un seul intervalle de temps. Ces trois simplications donnent lieu trois carts par rapport au meilleur horaire possible sur le rseau : les usagers eectuant des correspondances ne peuvent pas tre pris exactement en compte. Nous les approximons en supposant leur temps dattente en dbut de voyage connu, ce qui nest pas le cas en ralit ; chaque ligne envoie des rames dans un sens en supposant que le sens oppos en enverra galement. Nous forons la symtrie sur des lignes simples contraires, mais nous ne tenons alors pas compte du fait que sur une ligne il pourrait y avoir plus de passagers dans un sens que lautre. Nous risquons donc davoir des mtros sous-exploits ; la sparation dune journe en plusieurs intervalles disjoints implique que loptimisation dun intervalle se fait indpendamment du nombre de mtros ncessaire aux intervalles voisins. Une consquence directe est quautour des heures dnissant les intervalles, trop de mtros sont aects par rapport la demande. Par exemple, sur la ligne 1, il peut tre judicieux aux yeux de lintervalle 6h9h denvoyer un mtro 8h55 alors quaux yeux de lintervalle 9h16h, il est avantageux denvoyer un mtro 9h05. Si, en assemblant les deux intervalles, un dpart 8h59 sut, cela signie que les mtros envoys 9h00 et 9h05 sont inutiles.

INMA1375 Projet en mathmatiques appliques

Page 13 sur 35

Chapitre 3

Simulation
3.1 Complexit et taille des problmes considrs

Le problme linaire (et quadratique une variable prs) possde p + ( t) + t p variables, avec p le nombre de passagers rduits (ou la dirence entre le temps darrive du pre mier et du dernier voyageur de lintervalle), et t, le nombre de mtros possibles (ou la dirence entre le temps de n et de dbut de lintervalle). Le nombre de contraintes du problme linaire est au nombre de 1 + ( t) + t + (2 p) p Comme rares sont les passagers dont le temps darrive normalis est plus petit que le temps de dbut dintervalle (de plus on nglige ceux qui arrivent beaucoup trop tt), la pondration des voyageurs ctifs nous permet dapproximer p t, ce qui donne une complexit du nombre de variables et de contraintes dordre O(t2 ). On voit donc immdiatement que si on calcule sur la journe, quel que soit le nombre total de voyageurs (d au calcul du nombre nc de voyageurs par minutes), comme on a 960 minutes, le nombre de variables et de contraintes slvent un peu plus de 921600. Mme en travaillant avec des matrices creuses (une matrice pleine aurait 8.5 1011 lments), on a environ 4 millions dlments non nuls dans la matrice des contraintes. La sparation de la journe en intervalles est donc bien moins gourmande en mmoire et en temps de calcul, mme sur le plus grand des intervalles (de 9 16 heures). Concernant le problme sous forme quadratique, comme mentionn prcdemment, celui-ci ncessite lintroduction des p variables vc et du mme nombre de contraintes supplmentaires pour que le solveur considre lobjectif convexe. Ces ajouts restent ngligeables en terme de mmoire.

INMA1375 Projet en mathmatiques appliques

Page 14 sur 35

3.2

Variation des paramtres

Paramtres de modlisation
Les quelques variations prsents pour nos modles permettent de choisir K et le temps dattente maximum . Pour garder une grandeur adquate pour la fonction objectif f (2.10), la valeur maximum de K sera xe 5 arbitrairement. Le temps dattente maximum peut tre x nimporte quelle valeur (en minutes), tout en sachant quun faible entrainera plus de mtros. Si on oblige le premier mtro partir au plus tt au temps de dbut dintervalle tstart , alors il ne faut pas considrer les gens qui arrivent avant tstart , comme mentionn prcdemment. Si on xe le nombre minimum de mtro, et donc K est nul, alors on va obligatoirement choisir un temps dattente maximum de 30 minutes environ, une valeur plus faible ne sera pas toujours possible sur lintervalle le plus large (car il ny a pas assez de mtros) et ce de toute manire ce temps dattente sera minimis. Lintrt rside surtout dans la dclaration des temps darrive des gens en correspondances.

Paramtres du solveur
Le solveur Gurobi nous permet de choisir plusieurs paramtres. Bien que les paramtres par dfaut soient adquats pour le problme complet sous forme dintervalles, il est intressant de les prciser pour un problme de grande taille. Lorsque la taille du problme est grande, le plus couteux en temps est la vrication de loptimum. Ce temps peut tre rduit dune part en forant le solveur passer plus de temps trouver une heuristique de dpart qui pourrait tre meilleure, dautre part en eectuant un maximum de coupes chaque itration de la vrication pour rduire au maximum le nombre de nuds vrier.

3.3

Description des fonctions

Lensemble de nos codes Matlab est donn en annexe (chier .zip). An de faciliter la comprhension et la navigation travers nos codes, nous dcrivons ici brivement, par ordre alphabtique, lensemble de nos fonctions. Elles sont classes en deux catgories : les fonctions qui grent les donnes fournies et celles qui rsolvent notre problme doptimisation.

3.3.1

Gestion des donnes

get_infos traduit un chier log contenant tous les passagers ayant vhicul sur le rseau durant une journe. Chaque ligne du chier log correspond un usager et est crite au format Id Date Gare_depart Heure_depart Gare_arrivee Heure_arrivee

(des tabulations sparent les colonnes). Utilisant la fonction readlog fournie, get_infos renvoie les informations suivantes (un vecteur colonne par information) : lidentiant de chaque usager ; lheure laquelle lusager arrive sa station dembarquement ; la station laquelle il a embarqu (chaque station comprend un numro entre 1 et 28 qui correspond sa position par rapport la station de dpart de la ligne) ; la ligne sur laquelle il a embarqu ; le sens dans lequel il a embarqu :

INMA1375 Projet en mathmatiques appliques

Page 15 sur 35

+1 dans les sens stockel garedelouest, herrmann-debroux erasme, simonis(E) roibaudouin 1 dans les sens garedelouest stockel, erasme herrmann-debroux, roibaudouin simonis(E) la station sur laquelle il a chang de ligne, normalise sur sa ligne de dpart (0 sil ne change pas de ligne) ; la station laquelle il a dbarqu ; la ligne sur laquelle sa station de dbarquement se trouve ; le sens dans lequel il a dbarqu (utile en cas de correspondances) ; la station de sa correspondance, normalise sur la ligne darrive (0 sil ne change pas de ligne).

get_metros partant dun horaire compris dans un chier horaire.mat contenant les listes de dpart des 6 dpots dans les vecteurs get_num_metros sur base de deux listes dheure de dpart aux extrmits dune ligne, cette fonction dtermine le nombre de rames de mtro physique ncessaire aux dpots en dbut de journe pour que lhoraire soit ralisable. Elle associe galement un indice chaque heure de dpart, correspondant lidentiant de la rame partant cette heure-l. ligne1a ligne1r ligne2a ligne2r ligne3a ligne3r

cette fonction renvoie la variable metro ncessaire au simulateur qui nous permet dvaluer les performances de notre horaire. get_riding_time sur base de lhorairee des dparts dune ligne, cette fonction calcule le temps pendant lequel chaque rame de mtro est en mouvement et le temps pendant lequel un conducteur doit tre bord de la rame (par exemple lorsquil est stock dans un dpot en attendant lheure du prochain dpart). Cette fonction appelle get_num_metros. horaire2latex sur base dun horaire compris dans un chier horaire.mat, gnre un chier texte A horaire.tex inclure dans un cher L TEX pour obtenir un horaire similaire celui prsent en page pagerefhorairelatex. Pour tre compil, il faut ajouter le package supertabular au prambule du document. minute2strhour traduit une heure exprime par une variable double contenant le nombre de minutes coules depuis minuit en un string au format hh:mm (le premier digit est un espace si lheure ne contient quun chire). Cette fonction est vectorise, ce qui lui permet de traiter des vecteurs de minutes. riding_time_horaire calcule, sur base dun horaire compris dans un chier horaire.mat, le temps total que passent tous les conducteurs de mtro bord de leur rame et le temps total pendant lequel les rames sont en mouvement. selectline trouve lensemble des voyageurs voyageant sur une ligne dans un intervalle horaire et sur base dun chier log spci. Linformation renvoye est comprise dans deux vecteurs colonne contenant les temps darrive en station de dpart et les stations de dpart, normalises partir de 1 pour chaque ligne. En plus, cette fonction calcule le nombre de dparts ncessaires en chaque extrmit de ligne. Cette fonction appelle la fonction get_infos.

3.3.2

Modlisation

horaire Fonction qui prend en argument un chier .log correspondant la journe sur laquelle on se base pour calculer lhoraire quotidien et qui renvoit un chier horaire.mat qui contient

INMA1375 Projet en mathmatiques appliques

Page 16 sur 35

6 vecteurs colonnes reprsentant les minutes de dpart des mtros aux 6 dpts du rseau (1 pour chaque ligne) ligne1a ligne1r ligne2a ligne2r ligne3a ligne3r

Cette fonction appelle 12 reprises la fonction modelisation.m : une fois par ligne et par intervalle temporel. La fonction sassure nalement quil ny a pas de doublons dans lhoraire et renvoit aussi la disposition des mtros dans leur dpt respectif en dbut de journe an dviter quil ne manque des mtros un moment. modelisation Fonction qui prend en argument le numro de ligne, le temps de dbut de lintervalle, le temps de n de lintervalle et un chier .log correspondant la journe considre. Elle renvoie lhoraire sous forme de cellules pour une ligne (aller et retour, une par cellule) sur un intervalle temporel ainsi que le nombre de mtros (vecteur) par ligne. schedule{1} schedule{2} number(1) number(2)

La fonction appelle selectline qui extrait les passagers souhaits puis ramne tous les passagers au dpt (ctivement), elle construit la matrice des contraintes et lobjectif linaire ou quadratique prsents prcdemment puis utilise le solveur Gurobi pour trouver une solution optimale. Elle ache nalement lhoraire associ (en heures) dans la console.

3.4

Mise en pratique

Nous avons donc programm les modles comme dcrit dans le chapitre prcdent. Nous avons fait varier les paramtres correspondant au nombre de mtros et au temps dattente maximum des passagers. Nous avons galement test le problme de modlisation directement sur une journe entire en plus de la sparation en intervalles.

3.4.1

Variation du nombre de mtros

Nous avons le choix entre plusieurs possibilits, soit nous aectons un maximum de mtros sur chaque intervalle ou sur toute la journe, soit nous aectons un nombre de mtros proportionnel au trac sur les lignes en fonction de lintervalle considr selon lheuristique dnie dans la sous-section 2.3.3. Notre but est bien videmment demployer en heures de pointes un maximum de mtros tel que la rpartition des mtros dans les dpts en dbut de journe nexcde pas les 30 mtros physiques notre disposition. Lheuristique implmente avec les proportions donnait de trs bons rsultats mais entrainait parfois une dpassement de mtros physiques. Eectivement, notre heuristique ne tenait compte que de la proportion de voyageur et non de la longueur de la ligne. Un mtro circulant sur une ligne plus longue prendra plus de temps avant de pouvoir redmarrer dans lautre sens. Il a donc fallu procder par essais-erreurs bass sur lheuristique de dpart et en tenant compte du fait que la ligne 2 possdait 28 stations, contre 26 pour la ligne 3 et 21 pour la ligne 1. Cette approche a t couple une analyse du temps de fonctionnement des mtros physiques ; si un mtro a un temps de circulation faible, on peut se permettre de rajouter un dpart. Un mtro qui circule peu, attend beaucoup au dpt et est donc susceptible de faire un aller-retour supplmentaire. Une fois le nombre maximum trouv, il est ais de rduire proportionnellement ce nombre pour les heures creuses.

INMA1375 Projet en mathmatiques appliques

Page 17 sur 35

Il est possible dimplmenter cette heuristique supplmentaire dans le code et de relancer le programme avec un nombre de dparts ajust, tant que le nombre de mtros physiques est exactement gal 30. Remarque Pour cette approche, le facteur K de notre objectif (linaire ou quadratique) doit tre nul et la contrainte (2.9) de charge maximale des mtros doit tre ignore.

3.4.2

Variation du temps dattente

Lautre option qui se prsente nous est de faire varier le temps dattente maximum . Cependant, xer le nombre de mtros et un trop petit temps dattente rendrait le problme infaisable. Il faut donc laisser le nombre de mtros possibles libre, cest--dire choisir un K non-nul. Au plus petit le temps dattente, au plus grand le nombre de mtros ncessaires. Pour viter davoir un mtro chaque minute il faut donc forcer la capacit maximale (contrainte (2.9)). Mais une capacit relle ( savoir 400 passagers) est trop contraignante puisquon ne sait pas quand les gens descendent de leur mtro, laissant ainsi une place pour un autre. Il faut donc revoir une capacit maximum la hausse pour ne pas avoir beaucoup trop de mtros. Mais nous supposons que pour K susamment grand, il compensera susamment lobjectif pour que nous puissions quand mme ngliger la contrainte de chargement maximum. Cette approche donnera de meilleures performances mais un cot supplmentaire (achat de nouvelles rames). Une rapide comparaison sera eectue en n du chapitre suivant et les rsultats complets peuvent tre trouvs en annexe D.

3.4.3

Linaire vs. Quadratique

Loptimisation linaire possde des atouts particuliers autant dans la simplicit dimplmentation que dans lecacit des algorithmes. Une rapide comparaison des temps de calcul du problme sous forme dintervalles et pour une journe entire nous donne (la premire colonne correspond au temps dexcution du solveur et la deuxime au temps ncessaire pour la construction des matrices) : MIP 72 105 1, 5 7, 5 Matrices 90 240 3, 5 5

Journe complte (plusieurs intervalles) Journe complte (un intervalle) Intervalle de 3 heures (par occurrence) Intervalle de 7 heures (par occurrence)

Table 3.1 Comparaison des temps de calcul approximatifs pour le problme linaire. Une occurrence correspond un appel de Gurobi (et donc construction des matrices associes). Pour la journe complte les temps correspondent la somme des temps de chaque occurrence. Le temps est exprim en secondes. La forme quadratique devrait donner des rsultats quelques peu dirents et une option supplmentaire serait un problme objectif mixte. Nanmoins, le problme quadratique, en plus de ncessiter des variables et contraintes supplmentaires pour assurer la convexit de lobjectif, est INMA1375 Projet en mathmatiques appliques Page 18 sur 35

bien plus long calculer et on suppose donc que les algorithmes de calcul sont moins ecaces. La recherche heuristique dune solution admissible optimale de dpart nest pas concluante quels que soient les paramtres modis dans le solveur (temps pass chercher une heuristique, nombre de passes, . . . ). Le solveur va donc immdiatement commencer chercher une solution admissible en calculant lobjectif pour chaque nud puis en eectuant des coupes successives. Nanmoins, cette recherche est trs longue et fastidieuse, et lcart ne diminue pratiquement pas au l du parcours des nuds. Pour tenter damliorer le temps de calcul du problme quadratique, nous avons donc dcid de construire une solution de dpart partir de la solution au problme linaire (pr-traitement). Grce cette mthode, la valeur de lobjectif au dpart est plus de deux fois meilleure que sans le nud initial. Cependant la diminution de lcart lors de la vrication de loptimum inject est toujours aussi lente et donc impraticable avec les moyens notre disposition.

INMA1375 Projet en mathmatiques appliques

Page 19 sur 35

Chapitre 4

Analyse des rsultats


4.1 Critres de qualit

Notre socit a mis laccent uniquement sur une minimisation du temps dattente des passagers. Le temps moyen dattente des usagers est donc notre principal critre de qualit. Nous avons aussi veill ce que les personnes qui nont pas de correspondance nattendent pas plus de 30 minutes. Aucune nouvelle rame na t achete, aucune ligne ou station na t ajoute et il ny a pas eu de travaux de rnovation ou de modication. Les seules dpenses budgtaires pour la STIIB sont dues au fait que les rames disponibles roulent plus longtemps quactuellement. Il y a donc une augmentation de budget, pour la maintenance de ces vhicules et le salaire de chaueurs supplmentaires, mais celle-ci reste raisonnable. On ne dpasse certainement pas une enveloppe budgtaire alloue par la STIIB. Nous pouvons mme prtendre que si les mtros sont moins remplis et donc que le confort y est augment, des personnes en plus vont utiliser les services de la STIIB, amortissant alors ces dpenses supplmentaires. Mais nous navons aucun moyen de prdire cela ni mme de le quantier. Nous dnissons le cot supplmentaire comme h1 cot xe + h2 cot variable (4.1)

o le cot xe correspond au cot de maintenance, que la rame roule ou non (salaire des chaueurs par exemple) alors que le cot variable est le cot dun mtro en circulation (il comprend donc le cot nergtique). Un autre critre de qualit pour comparer nos solutions est le fait quune rame ne doit pas rester trop longtemps dans un dpt sans bouger. Cela rduit un peu les dpenses puisquon ne paye pas un chaueur ne rien faire. Nous quantions cela grce au rapport du temps de circulation des rames sur le temps total de leur activit. Il est aussi important que les vhicules se trouvent dans les bons dpts en n de journe. Ce serait en eet une dpense inutile de les faire rouler vides de nuit. Enn, le temps de calcul est pour nous un critre important que nous avons tent de rduire au maximum.

4.2

Comparaison des solutions sans ajout de mtros

Nous avons utilis plusieurs mthodes pour trouver une solution. Il nous faut maintenant les comparer an de dterminer celle qui correspond le mieux nos critres. Les solutions pour lesquelles nous gardons les trente mtros actuellement disponibles correspondent respectivement : INMA1375 Projet en mathmatiques appliques Page 20 sur 35

Solution actuelle Horaire de base, un mtro toute les 20 minutes, sur chaque ligne tout heure ; Solution 1 Horaire calcul par optimisation linaire sur quatre intervalles de temps, avec un maximum de mtros en heures de pointe et un nombre rduit en heures creuses ; Solution 2 Horaire calcul par optimisation linaire sur quatre intervalles, avec un maximum de mtros tout instant ; Solution 3 Horaire calcul par optimisation linaire sur la journe complte, avec un maximum de mtro. Voici les rsultats statistiques que nous obtenons avec le simulateur fourni par la STIIB. Les trois derniers horaires sont calculs partir de la journe du 05/09/2011. Temps dattente (minutes) 5 10 15 20 25 30 35 40 45 > 45 Nombre de refuss Passagers (%) Solution 1 Solution 2 19.5 22.3 41.4 48.4 64.7 73.9 81.4 88.9 90.8 96.4 96.3 99.0 98.7 99.8 99.6 99.9 99.9 100. 0.10 0.00 383 203

Situation actuelle 15.9 33.0 52.1 73.8 85.2 93.4 98.7 99.5 99.9 0.10 692

Solution 3 22.3 47.8 73.6 88.5 96.2 98.9 99.8 99.9 100. 0.00 203

Table 4.1 Performances pour le pourcentage de passagers et le nombre de passagers refuss. Nous voyons donc que nos solutions permettent de diminuer de manire signicative le temps dattente de passagers. Nous pouvons galement comparer les performances moyennes ainsi que les cots, comme exprims en (4.1). On pose en simpliant : h1 = 1 et h2 = 500, on suppose arbitrairement que le cot nergtique des mtros est 500 fois plus important que le salaire horaire dun conducteur ; On dnit le cot total pondr de notre horaire, avec les heures de travail des conducteurs correspondant toutes les heures passes dans un mtro en mouvement et larrt tandis que les heures de roulage correspondent uniquement aux aller-retours des mtros comme Ctot = h1 heures de travail + h2 heures de roulage h1 + h2

Si nous ajoutons ces deux critres le temps ncessaire au calcul de la solution, nous avons ainsi trois moyens de comparer nos solutions. Solution 1 13,2 160 282,28 Solution 2 11,4 160 330,02 Solution 3 11,5 250 330,02

Temps moyen (en minutes) Temps de calcul (en secondes) Cot total pondr

Table 4.2 Temps moyen, temps de calcul et cot total pondr. INMA1375 Projet en mathmatiques appliques Page 21 sur 35

Nous retenons ainsi la solution 2 comme notre solution nale, savoir un horaire avec un maximum de mtros tout moment de la journe (gain au niveau du temps moyen) et calcul selon des intervalles de temps (gain de temps). Notre principal critre tant le temps moyen, il sagit de la solution qui correspond le mieux nos objectifs. Le cot qui en rsulte pour la STIIB y est cependant plus lev, cest donc elle faire les compromis quelle souhaite et ventuellement prfrer une des deux autres propositions. Avec la pondration faite sur le cot, il sut de multiplier le cot pondr par 501 pour avoir le cot rel en euros (selon nos proportions arbitraires). Sachant quon a environ 100 000 passagers par jour, raison de 2 euros par ticket, le bnce est certain pour notre solution : 200000 165000 = 35000 euros

4.3

Achat de nouvelles rames

A titre indicatif, nous allons ici prsenter rapidement les performances dun horaire qui possderait plus de mtros. Nous continuons notre comparaison avec la solution 2 retenue ci-dessus. An davoir un nombre de mtros optimal, nous allons xer K = 1000 ( avec K qui est la pondration entre le nombre de mtros total et le temps dattente moyen) ainsi un temps dattente maximum = 10. Temps moyen (en minutes) Cot total pondr Solution 2 11,4 330,02 Solution = 10 8,0 458,24

Table 4.3 Temps moyen et cot total pondr. Un cot pondr de 458,24 nous donne un cot total tel que la STIIB sera en perte selon nos critres (200000 (458, 24 501) donne un nombre deuros ngatif). De plus, ce cot ne tient mme pas compte de linvestissement longue dure que reprsente lachat des 9 nouvelles rames ncessaires pour cet horaire (nombre calcul avec la fonction selectline). Selon nos critres, cette solution nest donc pas idale. Nanmoins, nous pouvons ajuster le de manire trouver un compromis bnque. Avec des valeurs plus prcises pour les cots et si la STIIB nous permettait dacheter de nouvelles rames, nous aurions pu envisager un horaire encore mieux adapt la situation. Remarque A titre dexemple supplmentaire, pour un = 15 minutes, les rsultats sont encore moins bons que notre solution 2 : le temps moyen est de 11,5 et il y a deux mtros en plus. En annexe D, nous dtaillons plus les performances de la solution o lachat de nouvelles rames est permis.

INMA1375 Projet en mathmatiques appliques

Page 22 sur 35

Conclusion
La STIIB a engag notre socit pour rdiger un horaire rpondant pour le mieux aux demandes des usagers. Cette requte a t correctement traite et il en a rsult un horaire diminuant le temps dattente de ceux-ci. Pour cela, la TNO a exprim le problme sous la forme dun problme linaire, lobjectif tant de diminuer la sommes des temps dattentes. Les contraintes ont t apportes par les donnes que nous avons demand la STIIB de nous fournir. Notre produit fournit un horaire optimal pour une certaine journe de rfrence, sa basant sur les trajets prcis de tous les passages. Il permet galement de connaitre tout moment le nombre de rames ncessaire. Il est possible de faire varier celui-ci, selon les besoins du client. Deux mthodes ont t utilises. La premire minimise le temps moyen dattente et la seconde, moins discute et analyse, permet de minimiser la variance dans les temps dattente. Lidal serait de combiner ces deux mthodes, an de sassurer que tout le monde attende un temps rduit et plus ou moins constant. Le point faible de notre produit est quil ne se base que sur les alles et venues dune seule journe. Cependant, nous avons contourn un petit ce problme en proposant au client dobtenir des horaires pour plusieurs jours et de trouver un compromis entre ceux-ci. De plus, si la journe choisie est reprsentative de la frquentation usuelle, les petites dirences ninuencent pas trop la solution. Nous avons test nos solutions grce un simulateur fourni par la socit elle-mme qui nous a permis de connaitre quelques donnes statistiques sur les temps dattente. Le cout engendr par nos solutions tait galement un critre important. Nous laissons cependant soin au client de choisir le compromis qui larrange entre le confort et le budget. Nous lui avons donn celle qui nous semblait la plus approprie mais le choix nalement lui revient videmment. Si nous avions eu plus de temps et plus de ressources (un budget plus lev notamment), nous aurions pu faire une tude approfondie des besoins de la capitale et rednir tout le rseau en consquence. Nous aurions pu construire de nouvelles stations des endroits stratgiques et choisir les lignes de manire viter que les trajets les plus frquents ne ncessitent de correspondance.

INMA1375 Projet en mathmatiques appliques

Page 23 sur 35

Annexe A

Cahier des charges


Cahier des charges initial Contraintes du problmes Le produit demand doit pouvoir amliorer le fonctionnement du rseau actuel dune grande socit de gestion de transports en commun. Lobjectif est de contrler les dplacements des vhicules an damliorer le confort des passagers et rduire leur temps de dplacement. Une enveloppe budgtaire xe ne peut tre dpasse. Notre horaire doit diminuer le temps dattente des usagers. Les temps entre les correspondances sont pris en compte. La trajectoire de chaque passager est dtermin si on connait ses stations de dpart et darrive. La seule variable est donc la somme des temps dattente la premire station et la station o a lieu la correspondance, qui sont tous deux minimiss. Lenveloppe budgtaire ne sera pas dpasse et le cot nergtique sera minimis (ventuellement avec un pondration moindre que celle du confort). Nous veillerons donc faire circuler le moins de vhicules possibles et ventuellement le permettre de na pas sarrter aux stations peu frquentes. Le client reoit un code Matlab qui gnre une interface graphique. Celle-ci lui permet dobtenir un nouvel horaire, sur base des donnes passes. Il peut choisir une grande quantit de jours quil juge reprsentatif de lutilisation usuelle des mtros ; les frquentations des rames durant ces jours-l seront moyennes et donneront une frquentation typique. Cela permettra au client de crer des horaires dirents pour des jours ayant des caractristiques distinctes et dadapter alors ses horaires en consquence. Si une grve est annonce par exemple, il lui sera possible de se baser sur des donnes similaires et de sadapter en consquence. Il est ncessaire que le client installe Matlab et aie quelques notions de base an de pouvoir lancer le programme. Un manuel dutilisation sera fourni. Il faut galement quun dispositif soit mis en place de manire permanente an de collecter les informations ncessaires au lancement du programme.

Caractristiques produit

du

Utilisation du produit

INMA1375 Projet en mathmatiques appliques

Page 24 sur 35

Cahier des charges nal Contraintes du pro- Le produit demand doit pouvoir amliorer le fonctionnement du blmes rseau actuel dune grande socit de gestion de transports en commun. Lobjectif est de contrler les dplacements des vhicules an damliorer le confort des passagers et rduire leur temps de dplacement. Une enveloppe budgtaire xe ne peut tre dpasse. Certaines mesures couteuses ne peuvent tre prises : achat de nouveaux vhicules, rnovation ou construction de lignes ou de stations. Les rames ont une capacit xe et non modiable. Elles ne peuvent faire demi-tour quaux dpts, cest--dire les stations en bout de lignes et un il faut compter 5 minutes pour cette manuvre. Une distance de scurit doit galement tre respecte entre deux mtros conscutifs, correspondant une dirence de 2 minutes. Caractristiques du Notre produit amliore lhoraire actuel du rseau, en diminuant le produit temps dattente des usagers 1 . Le cot nergtique nintervient pas dans notre optimisation mais nous veillons cependant ce quil ne dpasse pas un certain seuil. En eet, les seules dpenses que le client devra faire sont causes par un nombre plus important de rames en circulation. Le cot nergtique est donc un peu plus lev et il faudra engager de nouveaux chaueurs pour maintenir le rythme des dparts. Le client reoit un code Matlab qui gnre une interface graphique. Celle-ci lui permet dacher lhoraire dj obtenu mais galement de calculer un nouvel horaire sur base des donnes passes. Il peut choisir un jour de rfrence dans ceux dont les donnes nous ont dj t fournies. Le client pourra lui-mme rajouter des donnes quil aura acquises avec le temps, moyennant une simple manipulation du code Matlab. Les informations ncessaires cela sont dans les commentaires du code. En plus de ce programme et de cet horaire dj calcul, notre socit fournit galement un programme capable dassigner un identiant chaque mtro utilis. Cela permet de savoir quel mtro doit partir tel moment de la journe et au dpart de quelle station. Nous avons rdig cette information de faon claire mais il est possible de le recrer facilement, au dpart de la fonction Matlab crite cet eet. Nous avons ainsi clairement indiqu les informations utiles aux passagers (horaires de passage des rames) mais galement aux chaueurs et techniciens. Utilisation du pro- Il est ncessaire que le client installe Matlab et aie quelques noduit tions de base an de pouvoir lancer le programme. Il doit galement acheter une licence Gurobi. Il sagit dune dpense ngligeable en comparaison au gain de temps et lecacit gagne. Les informations concernant lutilisation du programme sont dans les commentaires du code fourni. Il ny a pas de manuel dexplication proprement parler. Il faut galement quun dispositif soit mis en place dans les stations de manire permanente an de collecter les informations ncessaires au lancement du programme, cest--dire dtecter quelles stations un usager monte et descend. INMA1375 Projet en mathmatiques appliques Page 25 sur 35

Justicatif des modications apportes Les dirences entre les deux versions sont en grande partie dues aux contraintes du problme. Le client nous a fourni aprs la rdaction du premier cahier des charges les donnes quantitatives du problme ainsi que les hypothses simplicatrices apportes. Les dicults rencontres durant le projet et la contraintes de temps ont galement t dterminantes et nous ont forcs simplier la solution imagine initialement.

INMA1375 Projet en mathmatiques appliques

Page 26 sur 35

Annexe B

Horaire complet sur base des donnes du 5 septembre 2011


Dpot Heure 6 :00 6 :19 6 :34 6 :49 7 :08 7 :28 7 :49 8 :07 8 :23 8 :42 9 :00 9 :16 9 :33 9 :48 10 :04 10 :23 10 :38 10 :56 11 :13 11 :34 11 :53 12 :13 12 :30 12 :49 13 :07 Ligne 1 1 Dpot Id Heure 1 6 :00 3 6 :20 5 6 :38 2 6 :57 4 7 :14 6 7 :32 1 7 :51 3 8 :11 5 8 :27 2 8 :42 4 9 :00 6 9 :15 1 9 :30 3 9 :47 5 10 :05 2 10 :24 7 10 :45 4 11 :05 1 11 :22 3 11 :39 5 11 :54 2 12 :13 6 12 :31 4 12 :47 1 13 :03 21 Id 2 4 6 1 3 5 2 4 6 1 3 5 2 7 4 1 3 5 2 6 4 1 3 5 2 Dpot Heure 6 :00 6 :17 6 :33 6 :46 6 :57 7 :09 7 :23 7 :34 7 :47 8 :01 8 :17 8 :31 8 :45 8 :59 9 :00 9 :12 9 :23 9 :37 9 :51 10 :06 10 :19 10 :31 10 :43 10 :57 11 :08 Ligne 2 30 Dpot Id Heure 9 6 :00 12 6 :11 14 6 :24 16 6 :37 18 6 :50 10 7 :03 11 7 :17 13 7 :31 15 7 :44 17 7 :57 9 8 :09 19 8 :21 12 8 :39 14 8 :58 16 9 :00 18 9 :12 10 9 :26 20 9 :42 11 9 :57 13 10 :10 15 10 :24 9 10 :36 17 10 :49 19 11 :03 12 11 :16 31 Id 10 11 13 15 17 9 19 12 14 16 18 10 11 13 15 17 9 19 12 14 16 10 18 11 13 Dpot Heure 6 :00 6 :18 6 :33 6 :48 7 :04 7 :19 7 :32 7 :46 8 :01 8 :15 8 :28 8 :42 9 :00 9 :13 9 :29 9 :44 10 :00 10 :14 10 :28 10 :44 10 :59 11 :11 11 :23 11 :36 11 :48 Ligne 3 38 Dpot Id Heure 21 6 :00 24 6 :16 26 6 :29 28 6 :41 22 6 :57 23 7 :12 25 7 :26 27 7 :40 29 7 :53 21 8 :08 24 8 :22 26 8 :38 28 8 :59 22 9 :00 23 9 :11 25 9 :24 27 9 :36 29 9 :50 21 10 :05 24 10 :19 26 10 :31 28 10 :44 22 10 :59 23 11 :16 25 11 :30 60 Id 22 23 25 27 29 21 24 26 28 22 23 25 27 29 30 21 24 26 28 22 23 25 27 29 21

continued on next page

INMA1375 Projet en mathmatiques appliques

Page 27 sur 35

continued from previous page

Dpot Heure 13 :26 13 :44 14 :03 14 :21 14 :38 14 :55 15 :13 15 :28 15 :43 16 :00 16 :20 16 :38 16 :57 17 :14 17 :31 17 :47 18 :03 18 :19 18 :37 19 :00 19 :18 19 :37 19 :56 20 :14 20 :31 20 :47 21 :02 21 :20 21 :39 21 :59

Ligne 1 1 Dpot Id Heure 3 13 :20 5 13 :39 2 13 :57 6 14 :17 4 14 :34 1 14 :51 3 15 :06 5 15 :22 2 15 :38 7 15 :58 6 16 :00 4 16 :18 1 16 :36 3 16 :54 2 17 :11 5 17 :29 6 17 :51 4 18 :08 8 18 :25 1 18 :41 2 18 :58 3 19 :00 5 19 :18 4 19 :38 6 19 :56 1 20 :13 2 20 :31 3 20 :46 5 21 :03 4 21 :19 21 :37 21 :59

21 Id 6 4 1 3 5 2 7 6 4 1 8 3 2 5 6 4 1 3 2 5 6 7 4 8 1 2 3 5 4 6 1 2

Dpot Heure 11 :20 11 :32 11 :45 11 :57 12 :10 12 :23 12 :35 12 :48 13 :04 13 :18 13 :33 13 :46 14 :00 14 :15 14 :26 14 :42 14 :56 15 :10 15 :24 15 :41 16 :00 16 :12 16 :27 16 :38 16 :51 17 :05 17 :19 17 :32 17 :46 18 :00 18 :14 18 :27 18 :43 19 :00 19 :13 19 :26 19 :39 19 :54 20 :08 20 :22 20 :34 20 :46

Ligne 2 30 Dpot Id Heure 14 11 :29 16 11 :44 10 12 :01 18 12 :14 11 12 :28 13 12 :40 15 12 :51 9 13 :04 17 13 :17 12 13 :29 14 13 :41 16 13 :52 10 14 :05 18 14 :19 11 14 :32 13 14 :46 9 15 :00 15 15 :15 17 15 :28 12 15 :44 14 16 :00 16 16 :13 10 16 :25 11 16 :36 13 16 :50 9 17 :03 15 17 :16 18 17 :30 17 17 :43 12 17 :56 14 18 :10 16 18 :26 10 18 :40 11 19 :00 9 19 :15 13 19 :29 15 19 :43 18 19 :57 17 20 :10 12 20 :22 14 20 :33 16 20 :47

31 Id 15 9 17 12 14 16 10 18 11 13 15 9 19 17 12 14 16 10 11 13 9 15 18 17 12 14 16 10 11 13 9 15 18 17 12 14 16 10 11 9 13 15

Dpot Heure 12 :01 12 :13 12 :27 12 :41 12 :55 13 :09 13 :22 13 :33 13 :45 13 :59 14 :15 14 :32 14 :46 15 :00 15 :15 15 :28 15 :44 16 :00 16 :16 16 :31 16 :44 16 :59 17 :13 17 :26 17 :42 17 :57 18 :11 18 :26 18 :41 19 :00 19 :12 19 :27 19 :41 19 :56 20 :10 20 :26 20 :41 20 :56 21 :10 21 :24 21 :39 21 :59

Ligne 3 38 Dpot Id Heure 27 11 :45 30 12 :01 29 12 :14 21 12 :28 24 12 :42 26 12 :57 28 13 :09 22 13 :23 23 13 :39 25 13 :53 27 14 :07 30 14 :21 21 14 :34 24 14 :47 26 14 :59 28 15 :11 22 15 :25 23 15 :41 25 16 :00 27 16 :12 29 16 :26 21 16 :41 24 16 :56 26 17 :11 28 17 :25 22 17 :39 23 17 :53 25 18 :07 27 18 :23 29 18 :38 21 19 :00 24 19 :13 26 19 :28 30 19 :40 22 19 :56 23 20 :11 25 20 :27 27 20 :43 21 21 :00 28 21 :13 24 21 :26 26 21 :41

60 Id 24 26 28 22 23 25 27 30 21 24 26 28 22 23 25 29 27 30 21 24 26 28 22 23 25 27 29 21 24 26 22 23 25 27 28 21 24 26 29 22 23 25

continued on next page

INMA1375 Projet en mathmatiques appliques

Page 28 sur 35

continued from previous page

Ligne 1 Dpot 1 Dpot 21 Heure Id Heure Id

Dpot Heure 20 :58 21 :09 21 :24 21 :39 21 :59

Ligne 2 30 Dpot Id Heure 19 21 :00 10 21 :12 9 21 :26 11 21 :41 13 21 :59

31 Id 18 17 12 14 16

Ligne 3 Dpot 38 Dpot 60 Heure Id Heure Id 21 :59 27

Table B.1 Lhoraire du rseau pour une journe complte. La colonne Id correspond lidentiant de la rame de mtro dmarrant cette heure-l.

INMA1375 Projet en mathmatiques appliques

Page 29 sur 35

Annexe C

Gestion du travail de groupe et bilan du projet


Tches Interface graphique Cahier des charges Mthodes de rsolution Modlisation relaxe Modlisation complte Programmation linaire/quadratique Gestion des donnes Simulations Heuristique par essais-erreurs valuation des rsultats Rpartition Marie Dautrebande Marie Dautrebande, Alexander Ulbrich Marie Dautrebande, Germain Martinussen, Alexander Ulbrich, Laurent Van Eesbeeck Alexander Ulbrich, Laurent Van Eesbeeck Laurent Van Eesbeeck Alexander Ulbrich Laurent Van Eesbeeck Germain Martinussen, Alexander Ulbrich Alexander Ulbrich Marie Dautrebande, Alexander Ulbrich, Laurent Van Eesbeeck

Si nous devions recommencer ce projet partir de zro, nous ne laborderions certainement pas de la mme faon. Nous avons perdu normment de temps au dbut car lobjectif atteindre ntait pas encore clairement dni (Marie voulait crire un modle tenant compte des caprices de la mto et des matchs de foot, Laurent a perdu du temps imaginer comment rednir les lignes). Quand nous avons pens modliser le problme de faon linaire, nous sommes dabord partis sur un modle inutilement complexe utilisant des variables boolennes pour traduire des inclusions et des implications de contraintes entre elles. Nous avons navons dcouvert Gurobi (et sa puissance de calcul phnomnale) quen dernire minute : pendant la majeure partie du projet, nous craignions davoir crit un problme de trop grande taille. Si nous recommencions un projet dans des conditions de dpart aussi oues, il nous semble vident que nous passerions par les mmes impasses. Grce notre exprience du quadrimestre, nous ne partirons plus de rien lorsque nous devrons traiter un problme similaire loptimisation dun horaire.

INMA1375 Projet en mathmatiques appliques

Page 30 sur 35

Annexe D

Modlisation avec ajout de rames


Il est intressant de comparer rapidement ce quimplique la rduction du temps dattente maximum par optimisation linaire. Temps dattente (minutes) 5 10 15 20 25 30 35 40 45 > 45 Nombre de refuss Passagers (%) = 10 = 5 33.8 77.3 73.4 98.4 91.9 99.3 98.5 99.6 99.5 99.8 99.8 99.9 99.9 99.9 100. 100. 100. 100. 00.0 00.0 129 82

Table D.1 Performances pour le pourcentage de passagers et le nombre de passagers refuss, calcul partir de la journe du 05/09/2011 Comme prvu les performances sont eectivement trs proches de la borne recherche (sachant que la plupart des passagers ont des correspondances). = 10 8,0 458,25 9 =5 4,0 809,27 32

Temps moyen (en minutes) Cot total pondr Nombre de mtros supplmentaires

Table D.2 Temps moyen et cot total pondr Lintrt rside ici si jamais on sattend avoir de plus en plus de passagers. Imaginons que le rseau fonctionne trs bien et que la plupart de passagers ne doivent gure attendre pour prendre leur mtro. On sattend alors voir plus de gens prendre le mtro, sachant quun horaire ecace signie un voyage confortable. Dans ce cas on pourrait acheter de nouvelles rames telles que le bnce [recettes - cot total] soit positif.

INMA1375 Projet en mathmatiques appliques

Page 31 sur 35

Ces optimisations pourraient tre amliores par aprs en analysant les temps de circulation des mtros et en ajustant forant ensuite le nombre de mtros. On remarque galement que certains passagers sont toujours refuss. La cause est bien sr que certains usagers arrivent trop tt en station le matin, alors que les mtros viennent peine de commencer rouler.

INMA1375 Projet en mathmatiques appliques

Page 32 sur 35

Annexe E

Le dfaut dune modlisation trop complte


Cette annexe a pour but de montrer quun modle doptimisation conforme la ralit peut savrer insolvable en pratique car il est de trop grande taille. A titre dexemple, nous dcrivons ici loptimisation du temps dattente moyen sur une ligne et dans un seul sens dont la contrainte de chargement maximale inclut les stations dembarquement et de dbarquement de chaque voyageur. Donnes du problme Soit C = {c} lensemble des voyageurs et soit S lensemble des stations. Pour chaque voyageur c, on dispose : de son temps darrive en station de dpart, c ; du numro de sa station dembarquement, c ; du numro de sa station de dbarquement, c (on suppose c > c ) ; de la multiplicit c de ce voyageur (par exemple, c = 2 si pour c il existe un seul autre c dans C tels que c = c , c = c et c = c ). (Les constantes associes aux voyageurs sont indiques en lettres grecques.) Les rames de mtro sont limites par leur capacit de chargement, note K. Le nombre de mtros disponibles est galement limit et est not Nmax . Variables du problme mj : les variables correspondant au temps de dpart potentiel j de chaque rame de mtro (chaque rame part de la station 1). mj = 1 =0 si un mtro part au temps j ; sinon.

Plus loin dans le texte, on sous-entendra par le mtro j le mtro ayant dmarr son parcours en gare 1 au temps j. yc,j : les variables indiquant quel voyageur a pris quel mtro : yc,j = 1 =0 si le voyageur c est parti avec le mtro j; sinon.

INMA1375 Projet en mathmatiques appliques

Page 33 sur 35

ec,j,s et dc,j,s : les variables dembarquement et de dbarquement de chaque voyageur : ec,j,s = 1 =0 dc,j,s = 1 =0 si le voyageur c, prenant le mtro j, a embarqu la station s; sinon. si le voyageur c, parti avec le mtro j, a dbarqu la station s; sinon.

wc : le temps qua attendu le voyageur c avant dembarquer ; cj,s : le chargement du mtro j la gare s Fonction objectif Lobjectif est de minimiser le temps dattente moyen de lensemble des voyageurs, le tout avec un nombre raisonnable de rames actives. Si cela permet de diminuer le temps dattente dune certaine quantit, on accepte dallouer un nombre de mtros supplmentaires. Lobjectif est donc de c wc min + mj , #C c
j

o traduit lide on ajoute un mtro si le temps dattente moyen diminue de minutes. Contraintes chaque voyageur prend un et un seul mtro : yc,j = 1
j

laectation des variables dembarquement : ec,j, c yc,j ec,j,s = 1


j s

(la contrainte de chargement maximal a tendance ne faire embarquer personne, ce qui fait que lgalit est respecte a priori) laectation des variables de dbarquement : dc,j,c yc,j dc,j,s = 1
j s

(la contrainte de chargement maximal a tendance faire dbarquer tous les usagers) un mtro dmarre si un voyageur embarque sur la ligne : mj2 c yc,j la dnition du temps dattente du voyageur c : wc =
j

c,

(j + 2

c )yc,j

On remarque quil ne sagit pas dune vraie somme mais de la slection du seul j pour lequel yc,j est non-nul. INMA1375 Projet en mathmatiques appliques Page 34 sur 35

un temps dattente ne peut pas tre ngatif : wc 0 le nombre de mtros ne dpasse pas le nombre maximal autoris : mj Nmax
j

la dnition du chargement du mtro j en gare s : cj,s = cj,s1 +


c

c ec,j,s
c

c dc,j,s

(avec cj,0 = 0) le chargement maximal dune rame est respect en tout temps et partout : cj,s K j s

Nombre de variables du modle Il sut de regarder les indices associs chaque variable. En posant #S = S, #C = C et #j = J : #mj = J ; #yc,j = CJ ; #ec,j,s = #dc,j,s = CJS ; #wc = C ; #cj,s = JS, ce qui nous amne un total de 2CJS + JC + JS + J + C variables, soit approximativement 2CJS variables (le terme dominant). En regroupant les voyageurs similaires ensemble, on peut borner C : S(S 1) JS 2 CJ 2 2 (car on sait que c > c ). Finalement, le nombre de variables est born par J 2S3. Pour la ligne no 1 comportant 21 arrts, on obtient approximativement 33 000 000 variables si lon souhaite simuler 60 minutes de fonctionnement. ( titre informatif, la version actuelle Matlab met environ 0.09 s multiplier un vecteur de 33 000 000 lments par 2 et un vecteur de 1 000 000 000 lments dpasse la taille autorise.)

INMA1375 Projet en mathmatiques appliques

Page 35 sur 35