• Aucun résultat trouvé

Une m´ethode coop´erative de r´esolution exacte

et qualit´e de la borne. Cette version de l’algorithme fut pr´esent´ee dans [BOY 06]. Cependant on constatera les tr`es bons r´esultats, en terme d’approximation, de l’algorithmeHDP MKP+C PR

o`u la valeur optimale n’a pas ´et´e atteinte que dans un seul cas.

Nom de HDP S HDP MKP

l’instance C PR C BS C PW C PR C BS C PW

Petersen 0,03% 0,09% 0,04% 0,00% 0,01% 0,03%

Fr´eville & Plateau 0,22% 0,27% 0,49% 0,00% 0,05% 0,15%

Senju & Toyoda 0,00% 0,07% 0,00% 0,00% 0,00% 0,00%

Weingartner & Ness 0,00% 0,01% 0,05% 0,00% 0,00% 0,04%

Shi 0,00% 0,01% 0,02% 0,00% 0,00% 0,09%

TableIII.10 – Ecart `a l’optimalit´e des algorithmes HDP+HDP augment´e.

Nom de HDP S HDP MKP

l’instance C PR C BS C PW C PR C BS C PW

Petersen 6/7 5/7 6/7 7/7 6/7 5/7

Fr´eville & Plateau 6/8 6/8 4/8 8/8 7/8 5/8

Senju & Toyoda 2/2 1/2 2/2 2/2 2/2 2/2

Weingartner & Ness 8/8 7/8 5/8 7/8 8/8 7/8

Shi 30/30 28/30 27/30 30/30 30/30 27/30

TableIII.11 – Optimalit´e avec les algorithmesHDP+HDP augment´e.

Nom de HDP S HDP MKP

l’instance C PR C BS C PW C PR C BS C PW

Petersen 7,14ms 15,71ms 2,95ms 121,43ms 250,00ms 218,57ms

Fr´eville & Plateau 18,87ms 17,50ms 27,50ms 361,25ms 408,75ms 372,50ms

Senju & Toyoda 10,00ms 40,00ms 35,00ms 1070,00ms 2080,00ms 1050,00ms

Weingartner & Ness 6,25ms 5,00ms 3,75ms 37,50ms 36,25ms 43,75ms

Shi 6,00ms 9,66ms 4,66ms 36,33ms 85,67ms 39,33ms

TableIII.12 – Temps de calcul des algorithmesHDP+HDP augment´e.

III.4 Une m´ethode coop´erative de r´esolution exacte

Au cours du d´eroulement de l’algorithme de HDP, nous avons conserv´e dans Lsec les ´etats ´elimin´es par la programmation dynamique pour lesquels nous avons aucune garantie qu’ils ne vont pas mener `a une solution meilleure pour (M KP). Il est alors ais´e de construire `a partir de

HDP une m´ethode de r´esolution exacte pour (M KP). En effet, il suffit de continuer l’exploration de ces ´etats l`a o`u la programmation dynamique s’est arrˆet´ee.

88 Chapitre III. Une m´ethode coop´erative multi-´etape

Les ´etats de Lsec ayant des profondeurs d’exploration diff´erentes, nous avons opt´e pour un algorithme de branch-and-bound. Nous obtenons ainsi une m´ethode coop´erative combinant pro-grammation dynamique et branch-and-bound. Cette approche fut pr´esent´ee dans [BOY 07a]. Un ´etat (w, p)∈ Lsec devient alors un noeud, que l’on notera N, pour le branch-and-bound. A ce noeud N, on associe les param`etres suivants :

– I(N), l’ensemble des indices des variables libres (non-trait´ees par un processus d’exploration et non-fix´ees),

– J0(N), l’ensemble des indices des variables fix´ees `a 0, – J1(N), l’ensemble des indices des variables fix´ees `a 1 et – x(N), sa solution associ´ee.

Nous avons donc ;

I(N)∪J0(N)∪J1(N) ={1, ..., n} et pour j ∈Jǫ(N), xj(N) =ǫ avec ǫ∈ {0,1}.

Ainsi nous pouvons red´efinir le sous-probl`eme (M KP(N)) associ´e au noeud N de la fa¸con suivante : (M KP(N))            max X j∈I(N) pj.xj + X j∈J1(N) pj, s.c. X j∈I(N) wi,j.xj ≤ci− X j∈J1(N) wi,j, i∈ {1, ..., m}, xj ∈ {0,1}, j ∈I(N). (III.20)

Sa relaxation continue sera not´ee (M KP(N)).

La mise en place d’un algorithme de branch-and-bound n´ecessite un certain nombre de choix (voir section II.5.1 page 49) :

– le principe d’´evaluation : le calcul des bornes,

– le principe de s´eparation : le choix de la variable sur lequel est fait le branchement, – la strat´egie de parcours : le choix du noeud `a explorer,

Les diff´erentes strat´egies retenues sont d´ecrites dans la suite.

III.4.1 Calcul des bornes

Le calcul des bornes sup´erieures est souvent le processus consommant le plus de temps de calcul. Pour cette raison, pour un noeudN, il est souvent commode de r´esoudre la relaxation continue d’une relaxation surrogate, voir mˆeme de r´esoudre une relaxation lagrangienne, du probl`eme (M KP(N)). Cependant, nous avons opt´e pour la r´esolution par le simplexe de (M KP(N)) pour deux raisons :

– une meilleure qualit´e de la borne sup´erieure et

– obtention des profits r´eduits pour la r´eduction de variable (voir page 35).

Ainsi, `a chaque fois qu’un noeud est choisi, une borne sup´erieure est ´evalu´ee. Si le noeud est conserv´e, on essaie de fixer des variables `a partir des profits r´eduits. Ceci nous permet de rentabiliser le temps de calcul pass´e dans le simplexe.

En ce qui concerne le calcul des bornes inf´erieures le premier choix retenu fut le mˆeme algorithme glouton que pr´ec´edemment (voir page 83). Nous avons alors test´e une heuristique gloutonne,

III.4. Une m´ethode coop´erative de r´esolution exacte 89

Ainsi, nous construisons une solution admissible `a partir de la solution non-enti`ere de la relaxa-tion continue. Cette heuristique permet d’une fa¸con g´en´erale d’am´eliorer la convergence vers la solution optimale.

Algorithme III.8 - Glouton Continue :

Soit x une solution optimale de la relaxation continue de (M KP); Notons J ={j |xj ∈ {0,1}};

On suppose alors les indices j /∈J class´ees selon les xj d´ecroissants ;

Initialisation :

x= (x1, ..., xn)t, tel que si j∈J xj =xj, sinon xj = 0;

v=X

j∈J pj.xj;

Q=c−X

j∈J

Wj.xj, vecteur repr´esentant la place restante dans le sac `a dos ;

Pour j /∈ {1, ..., n} : Si Q−Wj ≥0, alors : xj = 1; v=v+pj; Q=Q−Wj; Fin Si ; Fin Pour ; Retourner v et x.

III.4.2 La strat´egie de branchement

Soit N un noeud pendant du branch-and-bound.

La strat´egie de branchement choisie vise `a minimiser la non-r´ealisabilit´e de la solution obtenue par la r´esolution de (M KP(N)). Si l’on notex(N) cette solution, l’indicek∈I(N) de la variable sur laquelle sera fait le branchement est tel que :

k=argmin{|xj(N)−0,5| |j∈I(N)}. (III.21)

On effectue donc le branchement sur la variable libre dont la valeur dansx(N) est la plus proche de 0,5. Ainsi `a chaque ´etape de l’algorithme nous ne faisons pas de calcul de bornes sup´erieures redondantes. En effet, si on branche sur la variable xk(N) tel que xk(N) ∈ {0,1}, le calcul de la borne sup´erieure d’un des deux fils r´esultants est inutile. De plus, on concentre l’exploration sur les variables fractionnaires.

III.4.3 La strat´egie de parcours

Nous avons retenu la strat´egie de parcours “Meilleur d’abord”. Elle est connue pour ´etant celle donnant les meilleurs temps de calcul compar´ee aux autres.

Durant le d´eroulement du branch-and-bound, l’ensemble des noeuds N est donc class´e dans une liste, L, selon leur borne sup´erieure d´ecroissante. A chaque ´etape du branch-and-bound, le

90 Chapitre III. Une m´ethode coop´erative multi-´etape

premier noeud de cette liste est retir´e pour ˆetre trait´e par l’algorithme. Les fils r´esultants sont ins´er´es dans cette liste en conservant l’ordre ´etabli.

III.4.4 Algorithme

La m´ethode de branch-and-bound utilis´ee, que l’on noteraB&B, est d´etaill´ee dans l’algorithme suivant :

Algorithme III.9 - B&B : Initialisation :

L={NVIDE}, avec NVIDE le noeud correspondant au sac `a dos vide ;

Initialiser v(M KP) par une borne inf´erieure de (MKP) avec Glouton Continue ; Tant que L 6=∅ :

Soitx(N) le premier ´el´ement de L (celui ayant la meilleure borne sup´erieure) ;

L=L − {N };

R´esoudre (M KP(N))et r´ecup´erer sa valeur optimale v(N) et x(N) sa solution associ´ee, ainsi que les profits r´eduits pred(N);

Si⌊v(N)⌋> v, alors :

R´eduire les variables `a partir des profits r´eduits pred(N) et mettre `a jour I(N),

J1(N) et J0(N);

Calculer v(N) une borne inf´erieure de (M KP(N)) avec Glouton Continue ; Si v(M KP)< v(N), alors v(M KP) =v(N) fin Si ;

Choisir la variable de branchement k telle quek=argmin{|xj−0,5| | j∈I(N)}; Cr´eation des 2 fils N1 et N0 de N :

→ N1 : I(N1) =I(N)− {k}, J1(N1) =J1(N)∪ {k} et J0(N1) =J0(N) et

→ N0 : I(N0) =I(N)− {k}, J0(N0) =J0(N)∪ {k} et J1(N0) =J1(N); Si I(N1)6=∅ (⇔ I(N0)6=∅), alors :

Fixer v(N1) =v(N0) =v(N);

Ins´erer N0 dans L en conservant le classement des bornes sup´erieures d´ecroissantes ;

De mˆeme pour N1 si ce noeud est r´ealisable ; Fin Si ;

Fin Si ; Fin Tant que.

Dans le cadre de la m´ethode coop´erative, le branch-and-bound est initialis´e comme suit : – la listeL est initialis´ee avec les ´el´ements de la liste secondaire Lsec et

– la borne v(M KP) est initialis´ee avec la borne obtenue avecHDP+HDP augment´e. Ainsi on reprend directement l’exploration l`a o`u elle s’est arrˆet´ee.

Les r´esultats obtenus sur les petites instances de la litt´erature avec les diff´erentes variantes de

HDP sont pr´esent´es dans les tableaux III.13 et III.14.

Le tableau III.13 montre le temps de calcul total moyen n´ecessaire pour la r´esolution exacte de ces instances avec les diff´erents algorithmes HDP. On peut constater les tr`es bonnes performances de HDP S avec le classement de variable C PR (profits r´eduits d´ecroissants) qui dans tous les cas est le plus rapide. Bien que l’heuristiqueHDP MKP+HDP augment´efournit les meilleures bornes, le temps n´ecessaire `a leur obtention n’est pas compens´e par B&B.

Documents relatifs