• Aucun résultat trouvé

3.3 G´en´eration de facettes `a partir du partionnement du graphe en coupes

3.3.7 R´esultats

La recherche de telles contraintes a ´et´e effectu´ee sur les principales instances de la TSPLIB ayant moins de 3000 sommets. Les contraintes trouv´ees sont ma-joritairement des facettes n’appartenant pas `a des classes connues, car on dispose d’algorithmes de s´eparation pour ces classes connues qui sont efficaces, et utilisent aussi une partition du graphe `a l’aide de cactus.

Le tableau 3.1 regroupe les r´esultats obtenus avec et sans l’utilisation des contraintes obtenues grˆace aux coupes de poids minimum. Les probl`emes sont r´esolus avec un branchement sur variable (une seule variable est utilis´ee pour le branchement). Comme les contraintes utilisant les coupes minimum sont ajout´ees apr`es avoir re-cherch´e les contraintes “classiques”, les instances pour lesquelles on donne les r´esultats sont celles n´ecessitant un branchement dans le cas o`u seules les contraintes “classi-ques” sont utilis´ees. Les valeurs donn´ees dans ce tableau sont :

– la valeur du r´esultat du dernier programme lin´eaire obtenu avant branchement, not´ee valeur racine

– le nombre de branches de l’arbre d’ex´ecution, not´e taille arbre

– le nombre de contraintes trouv´ees `a l’aide de la partition du graphe support en coupes minimum, not´e nombre contraintes partitions

Ces valeurs sont compl´et´ees par sans partition ou avec partition suivant que l’on applique ou pas la recherche de contraintes en utilisant les coupes minimum du graphe support. Pour rappel, le nombre de sommets d’une instance est donn´e dans son nom (exemple : l’instance ts225 a 225 sommets).

L’application de la recherche de contraintes `a l’aide de coupes se fait durant un temps qui varie dynamiquement en fonction des contraintes d´ej`a trouv´ees, mais le temps initial utilis´e est le mˆeme pour toutes les instances. C’est pourquoi sur des instances de petite taille, le temps d’ex´ecution total du probl`eme sera fortement augment´e tandis que sur des instances de taille plus grande, le temps d’ex´ecution

sera proche, voire diminu´e, par rapport au temps de r´ef´erence. Par cons´equent les temps d’ex´ecution ne sont pas pr´ecis´es dans cette section, le but ´etant de valider la pertinence de ces contraintes.

La puissance de la machine dont nous disposions ne permettait pas d’effectuer une r´esolution compl`ete du probl`eme pour les instances marqu´ees ’-’, cependant la valeur au nœud racine est indiqu´ee afin d’avoir une id´ee de la progression induite par ces contraintes dans la r´esolution.

On constate que la valeur du programme lin´eaire au nœud racine progresse lorsque les contraintes utilisant les coupes minimum sont utilis´ees, ce qui est tout `a fait logique puisque la s´eparation est plus pouss´ee. L’importance de cette pro-gression d´epend beaucoup des instances, mais elle est r´eelle pour de nombreuses instances et permet souvent alors une r´esolution ´evitant des branchements. Comme les contraintes utilisant les coupes minimum sont recherch´ees dans chaque branche de l’arbre de r´esolution du probl`eme, la progression peut se poursuivre lors de la r´esolution. Ainsi certaines instances pour lesquelles la valeur au nœud racine ne progresse pas beaucoup peuvent ˆetre r´esolues en un nombre plus faible de branches grˆace `a l’exhibition de contraintes apr`es le nœud racine, comme par exemple l’ins-tance pa561.

Quelques instances voient aussi le nombre de branches de l’arbre de r´esolution augmenter, comme par exemple l’instance u724. Ces instances permettent de mettre en ´evidence l’influence du branchement sur la r´esolution du probl`eme. Le choix des variables de branchement s’effectue diff´eremment selon le graphe support de la solution au nœud racine, donc une meilleure solution au nœud racine peut amener `a une r´esolution plus longue `a cause d’un choix peu judicieux d’une variable de branchement.

Quatre instances ne permettent pas de trouver des contraintes viol´ees en utilisant les coupes minimum du graphe support. Deux raisons principales peuvent expliquer cette absence :

– Tous les graphes r´eduits ne sont pas ´etudi´es lors de la recherche de contraintes `a l’aide des coupes minimum. En effet cette ´etude serait trop longue et ne permettrait pas d’obtenir un temps de r´esolution comp´etitif. Il se peut que les graphes r´eduits choisis n’aient pas ´et´e suffisamment pertinents et soient tous des combinaisons convexes de cycles hamiltoniens. Comme l’int´erˆet de cette m´ethode est de chercher des contraintes appartenant `a des classes inconnues (recherche “`a l’aveugle”), la notion de pertinence d’un graphe r´eduit n’a pas vraiment de sens.

– Il n’existe pas de partition du graphe en 8 `a 30 sommets `a l’aide des coupes minimum. Cela se produit pour l’instance ts225 par exemple. Dans ce cas il n’est pas possible d’effectuer la recherche de contraintes, et il n’y a pas de progression dans la r´esolution du probl`eme.

Malgr´e ces instances o`u le r´esultat de cette recherche n’est pas probant, la plu-part des instances ´etudi´ees permettent de montrer l’int´erˆet d’une telle recherche de contraintes sur le nombre de branchements `a effectuer. Comme le branchement est gourmand en m´emoire, la taille en m´emoire du probl`eme se trouve diminu´ee,

Instance valeur racine valeur racine taille arbre taille arbre nombre sans partition avec partition sans partition avec partition contraintes

partition pr76 108009.4 108009.4 5 5 0 pr124 59002.1 59030 3 1 32 pr136 96647.5 96672 3 1 16 gr137 69836.1 69853 3 1 7 d198 15778.3 15780 3 1 72 ts225 124986.7 124986.7 293 293 0 gr229 134536.3 134584.0 3 3 6 pr299 48185.4 48185.4 3 3 0 rd400 15263.7 15263.7 15 15 0 gr431 171367.7 171369.1 11 7 16 pr439 107126.3 107137.0 9 7 21 pcb442 50759.8 50759.8 11 7 49 att532 27681.2 27681.1 5 3 9 pa561 2760.3 2760.7 9 7 41 rat575 6769.6 6769.6 9 9 11 d657 48896.6 48896.9 7 7 42 u724 41898.5 41900.5 5 13 17 dsj1000 18659407.9 18659654.8 3 3 60 pr1002 259027.2 259045 3 1 44 u1060 224027.8 224027.9 11 11 8 vm1084 239182.9 239184.3 11 9 30 pcb1173 56876.3 56876.3 13 11 63 rl1323 270048.4 270048.4 25 29 22 nrw1379 56630.9 56631.5 7 5 45 fl1400 20116.3 20116.4 7 7 170 d1655 62125.4 62128 5 1 17 vm1748 336455.0 336455.0 11 13 12 pcb3038 137644.2 137645.0 - - 30 fnl4461 182534.5 182535.8 - - 52

ainsi que le temps de r´esolution pour les grandes instances. Il est aussi int´eressant de remarquer que toutes les partitions du graphe `a l’aide des coupes minimum ne permettent pas de trouver des contraintes viol´ees. En effet seule une minorit´e de partitions m`enent `a une contrainte viol´ee. En moyenne 3% des graphes r´eduits permettent de trouver une contrainte viol´ee, ce qui signifie que pour 3 contraintes trouv´ees, 100 graphes ont ´et´e analys´es. Une m´ethode simple permettant d’augmenter le pourcentage de r´eussite permettrait de r´eduire consid´erablement le temps pass´e `a la recherche de telles contraintes viol´ees.

Chapitre 4

M´ethodes avanc´ees de

branchement

Dans ce chapitre on aborde les m´ethodes de branchement utilis´ees au cours de la r´esolution du probl`eme du Voyageur de Commerce par la m´ethode “Branch & Cut”. Ces m´ethodes ont une grande importance pour la r´esolution des probl`eme de grande taille, car le nombre de branches de l’arbre de r´esolution influe directement sur la dur´ee de r´esolution. Il est donc n´ecessaire de rendre ce nombre minimum, mais on ne dispose que de peu d’informations sur le comportement de la r´esolution lorsqu’on r´ealise un tel branchement.

4.1 Principe des m´ethodes de branchement

Le principe de base d’une m´ethode de branchement est de g´en´erer deux sous-probl`emes du probl`eme initial, puis de les r´esoudre s´epar´ement et de garder la meilleure solution r´ealisable obtenue. L’union des solutions enti`eres r´ealisables de chacun des probl`emes doit ´evidemment contenir toutes les solutions r´ealisables du probl`eme initial. On appelle fils les sous-probl`emes et p`ere le probl`eme initial. Chaque fils d’un probl`eme est g´en´er´e en ajoutant une contrainte dans le programme lin´eaire relax´e initial. L’union des solutions des programmes lin´eaires obtenus par l’ajout de ces contraintes doit couvrir l’ensemble des solutions du probl`eme, mais ne contient pas la solution fractionnaire relative au p`ere. On choisit des contraintes disjointes, de telle sorte que les deux fils g´en´er´es n’aient pas de solutions communes. On d´ecrit `a pr´esent les diff´erents types de branchement qui peuvent ˆetre effectu´es ainsi que leurs avantages et inconv´enients.