• Aucun résultat trouvé

Reconsidérer le nombre de décisions sélectionnées

4.3 Informations complémentaires et améliorations

4.3.5 Reconsidérer le nombre de décisions sélectionnées

Dans la section 4.1, nous avons expliqué comment la sélection aléatoire des décisions à relaxer fonctionne : α décisions sont sélectionnées pour être supprimées, où α est tiré aléa- toirement. Cependant, le paramètre α n’est pas tiré à chaque appel de la méthodeRANDOM,

mais tous les θ = minimum( |∆|−1α , 200) appels, où ∆ est égal à ∆c ou ∆d. Cela permet

de tester toutes les combinaisons possibles lorsque |∆|−1α  est inférieur à 2001, et de n’en tester qu’un échantillon quand ce nombre est grand –plusieurs voisinages de la même taille sont testés avant de tirer une nouvelle valeur pour α. Nous avons évalué d’autres approches, celle-ci a donné les résultats les plus stables et améliore globalement la résolution.

1Cette valeur a été retenue comme limite parce qu’elle permet de trouver un compromis entre énumération

5

Expérimentations

L’objectif principal des voisinages exp-cft and exp-obj est de générer des solutions partielles de bonne qualité, c.-à-d. qui orientent l’exploration de l’espace de recherche vers des parties améliorantes et donc rendant plus efficace encore la LNS. Cette section démontre les bénéfices de combiner exp-obj et exp-cft ensemble.

5.1

Implémentation de la LNS

Dans cette section, nous présentons les détails techniques d’implémentation préalables aux expérimentations.

Recherche à voisinage large guidée par la propagation Indépendant de l’instance trai- tée mais nécessitant un paramétrage, cette combinaison de trois voisinages a montré son efficacité sur une version modifiée du problème de Car Sequencing [85].

À chaque appel du voisinage guidé par la propagation, ou pgn (pour “propagation- guided neighborhood”), une première variable est sélectionnée aléatoirement pour faire par- tie de la solution partielle, en lui affectant sa valeur dans la solution précédente. Cette instan- ciation partielle est propagée au travers du réseau de contraintes et un graphe de dépendance entre les variables est construit : les variables modifiées par propagation sont marquées. Chaque variable marquée non instanciée est placée dans une liste à priorité, où les variables sont triées en fonction de l’importance de la réduction que leur domaine a subie. La pre- mière variable est ensuite sélectionnée pour faire partie de la solution partielle. La phase de sélection-propagation s’arrête lorsque la somme des logarithmes du domaine des variables est inférieure à une constante K donnée. Cette constante peut être multipliée par un coeffi- cient de correction, nommé epsilon, dont la valeur peut évoluer dynamiquement.

Cet algorithme se décline en deux versions : le voisinage guidé par propagation inverse, ou repgn (pour “reverse propagation-guided neighborhood”) est construit par en sélection- nant une variable pour appartenir à l’instanciation partielle selon une relation de proximité liée au volume de propagation qu’elle génère ; le voisinage guidé par la propagation aléatoire, ou rapgn (pour “random propagation-guided neighborhood”) est une version de pgn avec

62 Chapitre 5. Expérimentations

une liste de priorités de taille nulle. Donc, cette première heuristique est, en fait, une appli- cation séquentielle de pgn, repgn et rapgn. Nous avons utilisé les paramètres par défaut décrit par Perron et autres dans [85] : la taille de liste est limitée à 10, la constante d’arrêt K a pour valeur 30, et epsilon évolue dynamiquement. Comme nous considérons la LNS comme une boîte noire dans notre étude, nous n’avons pas cherché à adapter les paramètres au pro- blème traité, et nous nous sommes concentrés sur l’aspect générique de cette approche. Ce candidat sera nommé PGLNS.

Recherche à voisinage large basée sur les explications Nous allons évaluer plusieurs combinaisons des voisinages à base d’explications présentés auparavant. La première com- binaison est composé du voisinage exp-obj et d’un voisinage aléatoire, nommée ran. Ce dernier voisinage apporte de la diversification en générant des solutions partielles nullement liées au problème traité. En effet, dans leur article [85], les auteurs “ obtiennent de meilleurs résultats en intercalant des voisinages purement aléatoires avec des voisinages avancés”. ran relaxe ζ variables sélectionnées aléatoirement dans chaque solution partielle générée. Les variables restantes sont, bien entendu, instanciées à leur valeur dans la meilleure so- lution trouvée jusqu’alors. ζ est initialisé à |X|3 à chaque nouvelle solution, puis sa valeur est augmentée de un tous les 200 appels à ce voisinage. De tels paramètres permettent une bonne diversification. Ce premier candidat est nommé objLNS. La seconde combinaison as- socie le voisinage exp-cft et ran, est nommé cftLNS. Comme exp-obj et exp-cft exploitent les explications de manières différentes, ils se complètent et le comportement de chacun est renforcé par celui de l’autre. C’est pourquoi, nous évaluons un troisième candidat, nommé EBLNS. Il s’agit d’une combinaison de exp-obj, exp-cft et ran. Dans chaque combinaison, les voisinages sont appliqués séquentiellement, jusqu’à obtenir une nouvelle solution.

Fast restarts. Tous les candidats sont évalués avec une stratégie de fast restart [83] bran- chée : elle limite à 30 le nombre d’échecs autorisés avant de générer un nouveau voisin et de redémarrer la recherche. Une telle stratégie est communément associée à la LNS, et a été démontrée comme améliorant globalement son fonctionnement.

Un candidat purement aléatoire, exclusivement composé du voisinage ran, facile à im- plémenter et totalement générique a également été évalué. Cependant, les résultats que ce voisinage donne sont incomparablement moins bons que ceux de PGLNS et EBLNS, c’est pourquoi nous avons choisi de ne pas les reporter ici.