• Aucun résultat trouvé

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.