• Aucun résultat trouvé

4.4 Réexions sur l'insensibilité d'un ensemble dominant

5.1.3 Illustration de l'algorithme TCOR

Reprenons l'exemple du tableau 4.1 (cf. chapitre 4), caractérisé initialement par quatre sommets : s1 = 2, s2 = 4, s3 = 5 et s4 = 7; et quatre pyramides correspondantes

P1 = {1, 3, 6}, P2 = {1, 6}, P3 = {1} et P4 = ∅. L'application de l'algorithme TCOR

passe par les étapes suivantes :

Étape 1 : La racine N0 de l'arborescence est évaluée par le couple maxi∈T Lmini =

Lmin

4 = −2 et maxi∈T Lmaxi = Lmax4 = 11. Le chemin critique produisant maxi∈T Lmaxi

est 2 ≺ 3 ≺ 6 ≺ 1 ≺ 4. Le travail 4, étant sommet de P2 et contenant des travaux non-

sommets, est choisi comme pivot. Le travail 1, appartenant à P2, étant le plus proche du

5.1 Une première procédure par séparation et évaluation 97 Proc TCOR(Solution, Loptimal

max , T)(∗)

Loptimal

max ← +∞;

Solution ← ∅; /∗ solution est une liste de SIs optimales ∗/

A_traiter ← ∅ ; /∗ A_traiter est la liste de SIs non encore traitées ∗/ Calculer les bornes pour Noeud_racine ;

A_traiter ← A_traiter ∪ Noeud_racine ; TantQue A_traiter 6= ∅ faire

N oeud_courant ← dépiler A_traiter ;

Si Lmin = Lmax alors /∗une SI optimale locale ∗/

Si Lmin < Loptimal

max alors

Loptimalmax ← Lmin;

Solution ← ∅;

Solution ← Solution ∪ N oeud_courant ; FinSi

Si Lmin = Loptimal

max alors

Solution ← Solution ∪ N oeud_courant ; FinSi Si Lmin > Loptimal max alors Couper Noeud_courant ; FinSi SiNon

SetPivotLibre(T ravail_pivot, T ravail_libre, T ) ;

Séparer Noeud_courant en deux ls : F ils_gauche et F ils_droit ; Évaluer F ils_gauche et F ils_droit ;

/∗Traiter F ils_gauche possédant la plus grande borne supérieure ∗/ Si Lmin

f ils_gauche ≤ Loptimalmax alors

A_traiter ← A_traiter ∪ F ils_gauche ; SiNon

Couper F ils_gauche ; FinSi

/∗Traiter F ils_droit possédant la plus petite borne supérieure ∗/ Si Lmin

F ils_droit≤ Loptimalmax alors

A_traiter ← A_traiter ∪ F ils_droit ; SiNon Couper F ils_droit ; FinSi FinSi FinTantQue FinProc

(∗) SI : structure d'intervalles. Lmin, Lmax sont les retards au mieux et au pire du n÷ud

courant. Loptimal

max est le meilleur Lmax connu, et à la n de la PSEP, nous obtenons la

valeur optimale.

où r1 ← r4 (4 ≺ 1) et celui où d1 ← d4 (1 ≺ 4), qui conduisent à créer les deux nouveaux

n÷uds N1 et N2.

Les nouvelles bornes maxi∈T Lmini et maxi∈T Lmaxi pour ces deux n÷uds sont indiquées

sur la gure ainsi que le chemin critique associé (elles restent xées par le travail 4). À la prochaine itération, le branchement est eectué sur le n÷ud N1 car sa borne supérieure est

meilleure que celle de N2 (gure 5.5).

Fig. 5.5: Séparation du n÷ud racine N0

Étape 2 : Considérons à présent la séparation du n÷ud N1. Le chemin critique du n÷ud

est2 ≺ 3 ≺ 6 ≺ 4. Le travail 4, le dernier sommet sur le chemin critique, est choisi comme le

travail pivot. Dans la pyramide du sommet 4, il y a un seul travail non sommet, le travail 6, qui est donc choisi comme le travail libre à pivoter.

Deux nouveaux branchements N3 et N4 sont envisagés : celui où r6 ← r4 et celui où

d6 ← d4. Les nouvelles bornes sont à nouveau calculées pour N3 et N4. Dans l'étape sui-

vante, le branchement est eectué sur N3 qui possède la meilleure borne supérieure.

Fig. 5.6: Séparation du n÷ud N1

Étape 3 : Considérons le n÷ud N3. Le travail 3 est le seul travail non sommet sur le

chemin critique 2 ≺ 3 ≺ 4 ≺ 6. Il est donc choisi pour le branchement et le travail 2, étant

le sommet de la pyramide à laquelle 3 appartient, est choisi comme le travail pivot. Nous obtenons donc deux nouveaux n÷uds N5 et N6 correspondant aux actualisations r3 ← r2

5.1 Une première procédure par séparation et évaluation 99 et d3 ← d2.

Les deux branchements N5 et N6 ont leurs deux bornes égales, à 2 pour N5, à 0 pour

N6, la séparation est donc arrêtée. De plus, la borne maximale de N6 étant égale à 0, les

deux n÷uds N2 et N5 sont coupés puisque leurs bornes minimales sont supérieures à cette

valeur. Il ne reste donc plus que N4 à développer, et le meilleur retard optimal connu est

0.

Fig. 5.7: Séparation du n÷ud N3

Étape 4 : On considère N4. Le chemin critique produisant la borne supérieure est

2 ≺ 3 ≺ 6 ≺ 4. Le travail 4 est un sommet dont la pyramide ne contient aucun autre

travail. Le sommet précédent est le travail 2. Sa pyramide étant non vide, il est choisi comme pivot. Le pivotement concerne le travail 3 (le plus proche de 2). Deux nouveaux n÷uds N7 et N8 sont donc envisagés : celui où r3 ← r2 et celui où d3 ← d2. Après avoir

calculé les bornes, N8 est choisi pour continuer la séparation.

Fig. 5.8: Séparation du n÷ud N4

Étape 5 : On considère le n÷ud N8. Sur le chemin critique, il ne reste qu'un seul travail

non sommet, 6, et le sommet 2 correspondant est alors choisi comme le travail pivot. Deux nouveaux n÷uds N9 et N10 sont envisagés : celui où r6 ← r2 et celui où d6 ← d2.

Les deux bornes de N10 sont égales à −1, on arrête donc la séparation. De plus, les

valeur. Il ne reste donc plus aucun n÷ud à développer et seule la feuille N10est une solution

optimale du problème.

Fig. 5.9: Séparation du n÷ud N8

Les séquences optimales de l'ensemble dominant associé à ce problème sont donc toutes caractérisées par le n÷ud N10. Le retard optimal est donc égal à −1. Le chemin critique est

6 ≺ 3 ≺ 2 et l'ensemble dominant de solutions associé à la structure d'intervalles obtenue

pour le n÷ud N10 est 6 ≺ 3 ≺ 2 ≺ 4 ≺ (5 − 1) ≺ 7 où (5 − 1) est un groupe de travaux

permutables.

Nous remarquons que dans cet algorithme, la borne supérieure étant une borne "au pire" du retard algébrique, elle est évidemment peu ecace pour éliminer rapidement les n÷uds de l'arborescence n'amenant à aucun optimum.

Il est donc intéressant d'avoir, en complément d'évaluation, une borne supérieure "au mieux", inférieure à maxi∈T Lmaxi , qui permettrait de couper plus tôt l'arborescence de re-

cherche, et donc d'améliorer les temps de calcul. Bien entendu, la borne maxi∈T Lmaxi doit

être conservée puisqu'elle est utilisée lors des branchements.

Pour calculer cette borne supérieure "au mieux" du retard, nous avons utilisé la méthode de Carlier (cf. chapitre 4) qui permet de connaître directement la valeur optimale du retard. Dans la partie suivante, nous décrivons comment l'algorithme précédent peut être amélioré en tirant partie de la solution optimale déterminée par la PSEP de Carlier.

5.2 Une deuxième procédure par séparation et évalua-