Apr `es la d ´etermination des donn ´ees d’entr ´ee qui constituent une instance du probl `eme, la m ´ethode de r ´esolution doit ˆetre d ´efinie. Nous avons choisi d’utiliser `a cette fin l’outil CPLEX de r ´esolution de formulations de programmation lin ´eaire en nombres entiers.
CPLEX est un outil informatique d’optimisation commercialis ´e par IBM depuis l’acquisition de l’entreprise franc¸aise ILOG en 2009. Son nom fait r ´ef ´erence au langage C et `a l’algorithme du simplexe. Il est compos ´e d’un ex ´ecutable et d’une biblioth `eque de fonctions pouvant s’in- terfacer avec diff ´erents langages de programmation. Notamment, nous avons choisi l’interface avec le langage C++ `a travers la librairie Concert.
CPLEX permet de r ´esoudre les probl `emes mod ´elis ´es en programmation en nombres en- tiers et ceux mod ´elis ´es en programmation lin ´eaire, atteignant de tr `es bonnes performances pour des probl `emes de tr `es grande taille. CPLEX utilise soit la variante primale ou la variante duale de la m ´ethode du simplexe, ou encore la m ´ethode de points int ´erieurs. Pour la program- mation en nombres entiers et pour la programmation mixte-enti `ere, la m ´ethode de r ´esolution est bas ´ee sur la technique de s ´eparation et ´evaluation (“branch and bound”).
Pour pouvoir traiter de mani `ere efficace le probl `eme de saturation d’un r ´eseau ferroviaire sur un horizon de longue dur ´ee, nous appliquons :
— des m ´ethodes d’am ´elioration de performances (choix de param ´etrage, coupes, . . .) — une m ´ethode de d ´ecomposition d’instance,
— une m ´ethode de pr ´etraitement de donn ´ees.
Dans cette section, nous d ´etaillons chacune de ces m ´ethodes dans une sous-section sp ´ecifi- que.
6.1
Parametrage de CPLEX
Pour am ´eliorer les performances de CPLEX dans la r ´esolution de la formulation que nous avons propos ´ee dans le Livrable 2.2, nous avons premi `erement choisi de modifier son pa- ram ´etrage par d ´efaut. Au lieu de laisser `a CPLEX une autonomie compl `ete dans le choix des variables pour la phase de s ´eparation, nous lui imposons de choisir en priorit ´e les variables bi- naires x, qui indiquent qu’un train utilise un parcours particulier, et donc si le train de saturation concern ´e est planifi ´e ou pas (utilise un vrai parcours ou le parcours fictif ˆr).
6.2
In ´egalit ´es valides
Avec le m ˆeme objectif d’am ´elioration de performance, nous int ´egrons des in ´egalit ´es valides au mod `ele.
Les in ´egalit ´es valides sont des contraintes suppl ´ementaires du mod `ele qui permettent de limiter la taille de l’espace de recherche du programme lin ´eaire relax ´e sans pour autant ´eliminer
Pour d ´efinir les in ´egalit ´es valides que nous proposons, nous rappelons ici la partie concern ´ee de la notation d ´ecrite dans le Livrable 2.2 :
T, T ⊆ T ensemble de trains et des trains dans la table horaire, rt∈ R parcours assign ´e au train t,
Sr premi `ere section du parcours r,
ut,s variable r ´eelle non n ´egative qui indique l’instant o `u un train commence `a utiliser
une section,
xt,r variable binaire qui indique l’utilisation d’un parcours par un train saturant.
En utilisant cette notation, les ensembles d’in ´egalit ´es valides que nous int ´egrons au mod `ele sont les suivantes :
xt,rt ≥ xt0,rt0 ∀t, t
0 ∈ T \ T : t, t0 r ´epliquent le m ˆeme t00 ∈ T , t < t0, (6.1)
ut,Srt ≥ ut0,S
rt0 ∀t, t
0 ∈ T \ T : t, t0 r ´epliquent le m ˆeme t00∈ T , t < t0. (6.2)
Pour chaque couple de trains saturants de m ˆeme type (Section 4), les in ´egalit ´es (6.1) imposent que le train avec le plus grand index soit planifi ´e seulement si celui avec l’index plus petit l’est. Les in ´egalit ´es (6.2) imposent que, si les deux trains sont planifi ´es, celui avec l’index le plus grand doit pr ´ec ´eder temporellement l’autre.
Ces in ´egalit ´es n’ ´eliminent pas l’optimum du probl `eme de l’espace de recherche : si au plus ntrains saturants d’un certain type sont planifi ´es, les indices des trains saturants choisis ainsi que l’ordre dans lequel ils sont planifi ´es ne changent pas la solution.
De cette mani `ere, la taille de l’espace de recherche est significativement r ´eduite, ainsi que le nombre des branches sym ´etriques dans l’arbre caract ´erisant la proc ´edure de s ´eparation et
´evaluation.
6.3
Valeur du grand M
Une caract ´eristique du mod `ele que nous avons propos ´e dans le Livrable 2.2 est l’inclusion de contraintes selon la m ´ethode du grand M. Cette m ´ethode permet de lier les valeurs de
variables r ´eelles et binaires.
Notamment, dans le mod `ele, le grand M permet d’imposer la valeur 0 aux variables de d ´ebut d’utilisation de sections aux trains saturants qui ne sont pas planifi ´es. Ceci est assur ´e par les contraintes d ´efinies comme :
ut,s ≤ M xt,rt.
Consid ´erons les deux d ´ecisions li ´ees `a la variable xt,rt :
— si la variable xt,rt a la valeur 1, le train saturant t est planifi ´e et l’instant de d ´ebut d’utili-
sation de chaque section doit ˆetre inf ´erieur ou ´egal `a une quantit ´e extr ˆemement grande multipli ´ee par 1,
— si la variable xt,rt a la valeur 0, le train saturant t n’est pas planifi ´e et l’instant de d ´ebut
d’utilisation de chaque section doit ˆetre inf ´erieur ou ´egal `a cette grande quantit ´e multi- pli ´ee par 0, donc inf ´erieur ou ´egal `a 0. Comme les variables ut,sont la limite inf ´erieure `a
0par d ´efinition, elles seront strictement ´egales `a 0 dans ce cas.
De mani `ere similaire, le grand M nous permet d’imposer la s ´eparation minimale entre trains, en contr ˆolant le lien entre les d ´ebuts d’utilisation de section et l’ordre de passage des trains.
Dans l’utilisation de la m ´ethode du grand M , les exp ´erimentations effectu ´ees dans la litt ´era- ture montrent que les performances de r ´esolution d’un mod `ele sont meilleures avec une petite
valeur de M plut ˆot qu’avec une valeur plus grande. Il est donc important d’ ´etablir la plus petite valeur de M possible qui permette de pr ´eserver la faisabilit ´e de toutes solutions enti `eres du probl `eme. Dans notre mod `ele, M doit ˆetre au moins ´egal `a la plus grande valeur possible de d ´ebut d’utilisation d’une section. Donc, de mani `ere conservatrice, nous fixons M ´egal `a la somme de l’heure de fin de l’horizon et de la dur ´ee du plus long parcours d’un train saturant.
6.4
D ´ecomposition d’instance
Comme nous avons expliqu ´e dans les Sections 4 et 5, le nombre de trains saturants et de trains de la table horaire `a consid ´erer dans la r ´esolution du probl `eme d ´epend de la dur ´ee de l’horizon : quand la dur ´ee de l’horizon augmente, ce nombre augmente aussi. En parall `ele, quand le nombre de trains augmente, le nombre de variables et contraintes du mod `ele aug- mente ´egalement.
Afin de pouvoir saturer un horizon de plusieurs heures d ´epassant la limite du nombre de va- riables et de contraintes qui peuvent ˆetre efficacement trait ´ees, nous permettons la d ´ecomposi- tion de l’horizon en plusieurs sous-horizons de dur ´ee fix ´ee.
Le nombre de trains saturants de chaque type est calcul ´e comme mentionn ´e dans la Sec- tion 4 en fonction de la dur ´ee de ces sous-horizons. Les trains de la table horaire `a consid ´erer pour chaque sous-horizon d ´ependent du sous-horizon sp ´ecifique.
Pour arriver `a la saturation de l’horizon de d ´epart, nous commenc¸ons par r ´esoudre le probl `eme de saturation sur le premier horizon. Une fois cette r ´esolution termin ´ee, nous int ´eg- rons les trains saturants planifi ´es dans la table horaire et nous passons `a la r ´esolution du probl `eme pour le deuxi `eme sous-horizon avec cette table horaire partiellement satur ´ee. En- suite, nous r ´ep ´etons cette int ´egration des trains saturants dans la table horaire avant de passer au sous-horizon suivant, jusqu’ `a atteindre la fin de l’horizon global. Pour chaque phase de r ´esolution, nous fixons un temps limite de calcul, apr `es lequel la meilleure solution faisable trouv ´ee par CPLEX est retourn ´ee comme solution finale, m ˆeme si la preuve de son optimalit ´e n’a pas ´et ´e r ´ealis ´ee.
6.5
Pr ´etraitement des donn ´ees
Pour limiter le nombre de variables et contraintes `a traiter dans la r ´esolution d’une instance, nous effectuons un pr ´etraitement des donn ´ees. En particulier, nous ´eliminons des parcours des trains de la table horaire toutes les sections qui ne sont pas susceptibles d’ ˆetre affect ´ees par la planification des trains saturants.
Pour ce faire, nous ´etudions chaque section de chaque parcours des trains de la table horaire.
En premier lieu, nous ´eliminons chaque section qui n’affectera pas les trains saturants, car utilis ´ees tr `es t ˆot. Soit h le maximum des temps de s ´eparation quand la section est utilis ´ee en premier. Si la somme de la fin de l’utilisation de la section et h est inf ´erieure au d ´ebut de l’horizon, la section est ´elimin ´ee.
En deuxi `eme lieu, nous ´eliminons chaque section qui n’affectera pas les trains saturants, car utilis ´ee tr `es tard. Soit h le maximum des temps de s ´eparation quand la section est utilis ´ee en deuxi `eme. Si la soustraction entre le d ´ebut de l’utilisation de la section et h est sup ´erieure a la fin de l’horizon, la section est ´elimin ´ee.
Gr ˆace `a l’application de ce pr ´etraitement, nous pouvons limiter le nombre de variables y `a consid ´erer, ainsi que le contraintes assurant le respect du temps de s ´eparation minimal entre trains.