• Aucun résultat trouvé

5.1.2 Temps de calcul . . . 84 5.1.3 Qualité de la solution entière et de la borne supérieure . . . 85 5.1.4 Utilisation mémoire . . . 87 5.2 Impact des composants de l’algorithme . . . 87 5.2.1 Répartition du temps de calcul . . . 87 5.2.2 Impact de l’agrégation de contraintes sur la formulation . . . 92 5.2.3 Impact de différentes stratégies d’insertion des colonnes . . . 94 5.3 Le logiciel RECIFE PC . . . 96 5.3.1 Génération de scénarios . . . 99 5.3.2 Saturation . . . 99 5.3.3 Robustesse . . . 100 5.3.4 Visualisation des solutions . . . 100 5.4 Bilan et critique . . . 102 5.4.1 Bilan des contributions . . . 102 5.4.2 Critique des solutions obtenues . . . 102

5.1

Résultats expérimentaux comparatifs

5.1.1 Protocole d’expérimentation

Nous comparons notre méthode à la métaheuristique ACO seule, exécutée sur les instances que nous avons présentées. Cette comparaison est justifiée par le fait qu’ACO est jusqu’ici l’algorithme qui a montré les meilleures performances pour les formulations importantes de SPP, et plus particulièrement pour résoudre le problème de saturation. Conformément aux points problématiques que nous avons mis en avant concernant ACO sur les instances considérées, nous effectuons les comparaisons sur les axes suivants :

– temps de calcul CPU nécessaire à l’obtention d’une solution entière ; – qualité de solution, c’est-à-dire la valeur de la fonction-objectif ; – utilisation mémoire.

Le temps de résolution est bien entendu d’un point crucial de comparaison, puisque nous avons vu qu’ACO seule nécessitait une durée pouvant être considérée comme particulièrement handicapante dans le cadre d’un logiciel d’aide à la décision. Pour nos expérimentations, le temps d’exécution des algo- rithmes est limité à 100 000 secondes.

La mesure de qualité de solution est aussi un résultat important à comparer, puisque la précision de l’estimation de la saturation dépend notamment de la qualité des solutions. Nous devons plus précisément vérifier que le fait d’exécuter ACO sur un nombre de colonnes restreint n’est pas nuisible à la qualité des solutions. Cette vérification nous permet conséquemment d’estimer la pertinence des variables choisies par la génération de colonnes du point de vue de la résolution en nombre entiers. Nous donnons égale- ment la valeur de la borne supérieure calculée par la génération de colonnes et examinons dans quelle mesure celle-ci permet de tirer des conclusions, sur la qualité de la relaxation continue et de la solution entière.

La consommation mémoire est également un point important, puisque nous avons vu que l’exécution d’ACO pouvait être, dans le pire des cas, interrompue du fait d’une consommation trop importante. Ici, nous souhaitons que la génération de colonnes, par la sélection d’un sous-ensemble de colonnes de taille limitée, contribue à réduire la consommation mémoire.

Afin d’éviter les confusions, nous utiliserons la terminologie suivante dans cette section relative à la comparaison des résultats :

– l’algorithme ACO seul exécuté pour résoudre une instance du problème de saturation sera désigné par « ACO » ;

– l’algorithme que nous proposons, combinant la génération de colonnes et ACO, sera désigné par « GC-ACO ».

Pour les deux méthodes, les temps de résolution sont une moyenne calculée sur 10 exécutions sur chaque instance. Bien que l’algorithme ACO ne soit pas déterministe du fait qu’il fasse appel à une recherche aléatoire de solutions, nous avons mesuré des coefficients de variation n’excédant pas 3% en ce qui concerne sont temps de résolution, rendant en conséquence la valeur moyenne pertinente.

La résolution du PMRA par le simplexe au sein de la génération de colonnes est réalisée par la bibliothèque de PL libre Coin-OR Clp, dans sa version 1.09. Le simplexe qu’elle implémente fournit l’ensemble des fonctionnalités dont nous avons supposé l’existence aux chapitres 3 et 4 (solution duale, coût réduit des variables de la formulation, etc.). Tous les algorithmes sont exécutés sur un système Linux, sur une machine équipée d’un microprocesseur Intel Core2 Duo cadencé à 2.60GHz et possédant 2Gio de mémoire vive.

5.1.2 Temps de calcul

Le tableau 5.1 reprend le nombre de variables (noté n) de chaque instance et présente le temps de résolution de chaque méthode pour l’ensemble des instances. Les temps de résolution d’ACO et de GC-ACO sont dans les colonnes respectives « aco » et « cgaco ». Lorsqu’une méthode présente un meilleur temps de résolution pour une instance donnée, son temps de résolution est en gras. L’indication tempssignifie que l’algorithme n’a pas retourné de solution dans le temps imparti (100 000 secondes), et l’indication mem. signifie que l’algorithme a été interrompu par le système du fait d’une utilisation de la mémoire vive trop importante.

La comparaison des temps de résolution montre une nette tendance en faveur de GC-ACO, la com- paraison donnant globalement les résultats suivants :

– 3 instances, figurant parmi les 5 plus petites, sont résolues plus rapidement pas ACO, GC-ACO mettant dans le pire des cas (pour l’instance la plus petite) 65% de temps en plus ;

– 37 instances sont résolues plus rapidement par GC-ACO ;

– 5 instances sont résolues par GC-ACO dans le temps imparti sans l’être par ACO.

Cette tendance est d’autant plus nette avec l’augmentation de la taille des formulations. Jusqu’à environ 2 000 variables, le gain de temps reste raisonnable notamment du fait qu’ACO ne nécessite pas un temps prohibitif. Au-delà de 5 000 variables, le gain est très net et varie entre 60% et 90%. L’amélioration est d’autant plus marquée que le nombre de variables est élevé du fait d’une valeur de granularité faible, plus précisément telle que g ≤ 5. En terme de temps de résolution, la tendance est donc très nettement en faveur de GC-ACO.

Les propriétés des instances affectent les deux algorithmes d’une façon différente. ACO est essen- tiellement affecté par le nombre de variables, bien que pour deux instances possédant le même nombre de variables, une valeur plus grande pour d semble faire augmenter légèrement le temps de résolution. Au contraire, les performances de GC-ACO sont plus sensibles envers les paramètres ferroviaires. En effet, l’augmentation de la taille de l’instance par une augmentation de d entraîne une augmentation sig- nificative du temps de résolution, alors que la diminution de g (entraînant également une augmentation du nombre de variables) a un impact plus limité. Cette observation est bien illustrée par la colonne cor- respondant aux instances à 66 trains, pour d = 30 et g = 1 d’une part et pour d = 60 et g = 2 d’autre part : les deux instances possèdent 10 943 variables, mais il y a un facteur multiplicateur égal à 3.4 entre leurs temps de résolution respectifs avec GC-ACO. Enfin, l’augmentation du nombre de trains pour une taille comparable d’instance ne montre pas d’impact clairement identifiable sur le temps de résolution.

Ces différences de comportement s’expliquent donc nécessairement par la variation de la structure de la matrice des contraintes à nombre de lignes et de colonnes très proches. Nous avons vu qu’ACO repose sur une matrice NPP décrivant l’ensemble des conflits deux-à-deux, matrice qui est donc faible- ment dépendante de la structure des contraintes dans la matrice SPP initiale, et notamment de sa qualité de relaxation continue. En revanche, la procédure de génération de colonnes exécutée dans GC-ACO utilise directement la matrice SPP, permettant d’identifier plusieurs facteurs susceptibles d’impacter la résolution :

– un nombre de variables augmentant du fait d’une augmentation de d plutôt que d’une diminution de g peut entraîner moins d’apparition de contraintes redondantes, réduisant ainsi l’impact de l’algorithme d’agrégation et augmentant le temps de résolution du PMRA en conséquence ; – une qualité de relaxation continue plus faible implique une valeur de solution optimale continue

plus haute, pouvant nécessiter davantage d’itérations de génération de colonnes et un temps de résolution plus important pour atteindre l’optimal ;

– davantage d’itérations de la génération de colonnes peut également mener à un temps d’exécution plus long de l’algorithme ACO suivant la procédure de génération de colonnes, du fait qu’un nombre plus important de variables doivent être prises en compte.

Nous avons donc, d’une façon globale, obtenu une réduction nette du temps du résolution, réduction s’exprimant de façon plus marquée sur les instances plus difficiles, qui sont justement celles sur lesquelles le temps de ACO est particulièrement handicapant.

5.1.3 Qualité de la solution entière et de la borne supérieure

Les comparaisons en termes de fonction-objectif sont montrées par le tableau 5.2, qui donne les meilleures valeurs de fonction-objectif trouvées par chacun des algorithmes ainsi que la valeur de borne supérieure donnée par la résolution de la relaxation continue. Il est possible d’y observer ceci :

– les deux méthodes se montrent capables de retourner la même valeur de fonction-objectif dans 31 cas, c’est-à-dire que la meilleure solution retournée par les deux algorithmes sont égales ;

– GC-ACO se montre moins performant qu’ACO dans 8 cas, parmi lesquels l’écart est d’une unité dans 6 cas et de deux unités dans 2 cas ;

– GC-ACO se montre plus performant qu’ACO dans 2 cas, où l’écart est d’une unité ;

– dans 4 cas correspondant aux 4 instances contenant le plus grand nombre de variables, ACO ne retourne aucune solution en temps imparti, soit du fait d’un excès de consommation mémoire, soit du dépassement de la limite des 100 000 secondes, alors que GC-ACO retourne effectivement une solution.

Pour une majorité des instances, la valeur d’objectif trouvée est donc la même pour les deux al- gorithmes ou bien GC-ACO surpasse ACO. Ce constat montre que l’adjonction de la génération de colonnes comme pré-traitement à la métaheuristique dans le but d’identifier un sous-ensemble de vari- ables prometteuses est une approche pertinente. Elle permet donc, au vu des d’affirmer que le gain en terme de temps de calcul ne se fait pas au prix d’un sacrifice significatif en terme de fonction-objectif. L’impact ne semble toutefois pas inexistant non plus, au vu des 8 instances en faveur de ACO.

Cette application montre en outre, dans le contexte des hybridations de méthodes exactes et ap- prochées, que la génération de colonnes peut être un pré-traitement pertinent à une métaheuristique ACO pour fournir à celle-ci un ensemble de variables à même de conduire à une solution entière de bonne qualité.

En ce qui concerne la relaxation continue, l’écart entre la valeur de la solution optimale continue et la valeur de la solution entière est hétérogène. Il est toutefois possible d’effectuer plusieurs observations. Pour les plus petites instances, l’écart n’est que d’une unité, mettant ainsi en valeur à la fois la bonne qualité de solution entière obtenue ainsi que la bonne qualité de la relaxation continue. Ceci permet notamment de venir étayer les mesures de Gandibleux et al. [30, 31, 32] montrant la stabilité d’ACO et sa capacité à trouver des solutions de bonne qualité.

L’écart se dégrade toutefois avec l’augmentation de la taille des instances, et plus particulièrement pour de grandes valeurs de |T | et d. Cette observation ne permet pas en elle-même de conclure formelle- ment sur la cause d’un tel écart, à savoir si cela est causé par une incapacité d’ACO à trouver une meilleure solution ou par une dégradation de la borne supérieure. Il paraît toutefois fort probable que cette seconde raison en soit la cause, conjecture que nous pouvons justifier par les points suivants :

– la régularité de la métaheuristique au niveau de la qualité des solutions a été montrée empirique- ment, à la fois par Gandibleux et al. [30, 31, 32] sur des instances du problème de saturation et par les petites instances dont nous disposons ici, rendant peu vraisemblable une perte de qualité ponctuelle pour certaines instances particulières ;

d g |T |

53 66 104

n aco cgaco n aco cgaco n aco cgaco

30 15 876 17 28 1059 26 44 1737 86 103 10 1168 37 33 1412 56 52 2316 181 120 5 2044 159 51 2471 250 76 4053 922 186 2 4672 1546 66 5648 2355 120 9264 7304 289 1 9052 7371 132 10943 11435 207 17949 35539 481 60 15 1460 81 49 1765 127 72 2895 420 188 10 2044 207 69 2471 317 116 4053 1104 319 5 3796 1147 156 4589 1789 319 7527 5879 909 2 9052 10152 436 10943 14804 703 17949 45387 3373 1 17812 41821 1067 21533 60965 1602 35319 mem. 11011 90 15 2044 226 94 2471 347 137 4053 1420 432 10 2920 543 168 3530 829 258 5790 2784 925 5 5548 3179 535 6707 4954 1081 11001 15111 4105 2 13432 21440 2501 16238 30534 3876 26634 temps 26695 1 26572 temps 8019 32123 temps 13215 52689 mem. 89753

– qu’elle utilise la formulation complète ou la formulation restreinte à l’issue de la génération de colonnes, la métaheuristique retourne des valeurs de fonction-objectif très proches pour une in- stance donnée.

D’un point de vue ferroviaire, le tableau 5.2 montre enfin que pour une taille d’offre |T | et un délai maximal d fixés, le nombre de train routés par l’algorithme varie au plus d’une unité avec la variation de g. Dans tous les cas, ce train supplémentaire n’est routé qu’à condition que g ≤ 10. Ainsi, si le nombre de chemins disponibles augmente fortement lorsque g diminue, il semble que ceci n’ait en réalité que peu d’impact sur la mesure de saturation. L’augmentation du retard maximal a un impact sensiblement plus important sur la possibilité de router davantage de trains, comme montré par les résultats obtenus pour le |T | = 66, où l’écart atteint 3 unités.

5.1.4 Utilisation mémoire

Le stockage de la matrice d’exclusivité par la métaheuristique ACO peut être extrêmement consom- mateur de mémoire. En effet, une formulation de plus de 50 000 variables entraîne l’impossibilité d’exé- cuter l’algorithme, et ce par épuisement de la mémoire vive disponible, à savoir 2Gio. Ce phénomène est un problème critique, d’autant plus qu’il est susceptible de se produire sur des systèmes relativement récents. De plus, la matrice d’exclusivité étant stockée pendant l’ensemble du processus de résolution de la métaheuristique, cette quantité de mémoire est utilisée pendant une durée non négligeable.

Au contraire, GC-ACO évite la manipulation d’une telle matrice du fait de la sélection d’une petite proportion des variables. Ainsi, nos mesures ont montré que le pic d’utilisation le plus important en terme de consommation mémoire sur l’ensemble des instances était à 300Mio, intervenant pendant la résolution du PMRA par Coin-OR Clp. Par la suite, la résolution par la métaheuristique des formulations restreintes n’implique à aucun moment le dépassement de cette valeur pour les instances que nous utilisons.

Sur l’axe de l’utilisation de la mémoire, GC-ACO apporte donc une amélioration appréciable qui peut être bénéfique du point de vue de l’utilisabilité.