Chapitre 3 Méthodes exactes de résolution des problèmes ... · Elles peuvent pallier le manque...
Transcript of Chapitre 3 Méthodes exactes de résolution des problèmes ... · Elles peuvent pallier le manque...
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
Chapitre 3 : Méthodes exactes de résolution des problèmes combinatoires NP-difficiles.
Chapitre 3
Méthodes exactes de résolution des problèmes combinatoires NP-difficiles
1. Introduction aux méthodes par séparation et évaluation
Les méthodes arborescentes (Branch and Bound Methods) sont des méthodes exactes
d'optimisation qui pratiquent une énumération intelligente de l'espace des solutions. Il s'agit
d'énumération complètes améliorées. Elles partagent l'espace des solutions en sous ensembles
de plus en plus petits, la plupart étant éliminés par des calculs de bornes avant d'être construits
explicitement. Appliquées à des problèmes NP-difficiles, ces méthodes restent bien sur
exponentielles, mais leur complexité en moyenne est bien plus faible que pour une
énumération complète. Elles peuvent pallier le manque d'algorithmes polynomiaux pour des
problèmes de taille moyenne. Pour des problèmes difficiles de grande taille, leur durée
d'exécution est très grande et il faut se retourner vers des heuristiques ou solutions
approchées.
Pour un POC, on peut inventer plusieurs méthodes arborescentes. Cependant elles auront trois
composantes communes : • Une règle de séparation de l'ensemble des solutions
• une fonction d'évaluation des ensembles de solutions
• une stratégie d'exploration
Le premier exemple développé de procédure par séparation est l'algorithme proposé en 1960
par LAND et DOIG pour les programmes mixtes.
En 1963, Little et al. utilisent une PS pour résoudre le problème du voyageur de commerce et
eut un grand retentissement. Il sera exposé dans la suite, dans le paragraphe des exemples.
On explore l'ensemble des solutions réalisables Ω en de sous ensembles de plus en plus petits
de façon à isoler une solution optimale dans l'un de ses sous ensembles.
Pour représenter cette exploration, on construit une arborescence dont le sommet de base
correspond à l'ensemble Ω et dont les autres sommets correspondent à des sous ensembles de
Ω. Pour définir l'exploration, nous devons définir une règle de séparation et une règle pour se
déplacer dans l'arborescence. Il faut définir pour chaque sous ensemble, un minorant appelé
" évaluation par défaut". Cela impose de savoir calculer rapidement une " bonne" évaluation
par défaut. Une itération consiste à choisir une feuille de l'arborescence, nœuds ou sommets
non encore séparés. Quand un sommet ne peut fournir de meilleurs solutions, il est dit tué ou
élagué. La recherche se termine quand tous les nœuds ont été tués. Les sommets sont
numérotés dans l'ordre de leur création.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
28
Toute technique de séparation est valable, à condition qu'aucune solution ne soit perdue.
La fonction d'évaluation empêche en pratique que l'arborescence soit construite en entier.
2. Principe des méthodes par séparation et évaluation
Soit ( S, f ) la donnée d'un POC.
Définitions 1 :
- On dit qu'on sait évaluer le sous ensemble S'⊂ S, si on sait déterminer un réel g(S') tel que
g(S') ≤ f(s) ∀s ∈ S' ( respectivement g(S') ≥ f(s) ∀s ∈ S' ).
- Une évaluation g(S') de S' est dite exacte s'il existe s0∈S' tel que g(S') = f(s0).
- Une évaluation h(S') de S' est dite meilleure qu'une évaluation g(S') de S' si h(S') > g(S')
( resp. h(S') < g(S')).
- Si g(S') est une évaluation exacte, il ne peut exister une évaluation meilleure.
Définition 2 : Un sous ensemble S'⊂ S, ensemble de solutions d'un POC est dit " stérile " si
on connaît une solution s0∈ S tel que f(s0) ≤ g(S') ( resp. f(s0) ≥ g(S') )
S'⊂ S peut être stérilisé dans deux cas,
• On est sur que S' ne peut contenir de solutions optimales ( S' = ∅ ou ∃ s0 ∈ S, f(s0) < g(S'))
•on dispose d'une évaluation exacte de S'.
Définition 3 :
Un sous ensemble S'⊂ S est dit "séparé" en S'1 , S'2,…, S'k si S' = S'1 ∪ S'2 ∪…∪ S'k
avec S'i ⊂ S' ∀ i = 1, …, k.
La séparation n'est pas propre si et seulement si ∃ k / S'k = ∅
Théorème 1 : Soit S = UF'S'S
∈alors si tous les éléments de la famille F sont stériles on a soit :
• Aucun ensemble S' n'a une évaluation exacte et S = ∅,
• la meilleure évaluation exacte des ensembles S' correspond à une solution optimale.
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
Chapitre 3 : Méthodes exactes de résolution des problèmes combinatoires NP-difficiles. 29
P. Bertier et B. Roy ont donné en 1964 une première axiomatique des procédures par
séparation applicable à des problèmes combinatoires.
3. Schéma général des méthodes par séparation et évaluation dites SE
s désignera la meilleure solution connue (non forcément optimale) et v = f( s ).
Si s est encore indéterminée on posera v = + ∞ ( resp. pour le max on pose v = - ∞ )
F une famille de sous-ensembles de S recouvrant S.
3.1. Procédure d'initialisation
Si on ne connaît pas de solution réalisable s , indéterminée et v = + ∞. La famille F contient
l'unique élément S. S est déclaré non stérile. Aller à la procédure de choix.
3.2. Procédure de choix
a) si tous les éléments de F sont stériles, s est solution optimale. Si s est indéterminée, le
problème posé n'a pas de solutions et S = ∅.
b) Sinon choisir S' ∈F, non stérile.
b1) si S' n'a pas été évalué, aller à la procédure évaluation 3.
b2) si S' a été évalué, aller à la procédure séparation 4.
3.3. Procédure d'évaluation
Calculer g(S') l'évaluation de S.
a) si g(S') ≥ v alors S' est déclaré stérile. Aller à la procédure choix 2.
b) Si g(S') < v et si l'évaluation est exacte ( g(S') = f(s'), s'∈ S' ) alors poser s = s' et v = g(S')
= f(s'). S' est déclaré stérile. Aller à la procédure choix 2.
c) Si on n'est pas dans le cas a) ou b) aller à la procédure de choix 2.
3.4. Procédure de séparation
Séparer S' en créant les sous-ensemble S'1 , S'2,…, S'k où S' = S'1 ∪ S'2 ∪…∪ S'k.
Les S'i ne sont pas déclarés stériles. Posons F = ( F \ S') ∪ S'1, S'2,…, S'k et aller à la
procédure du choix 2.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
30
Remarques :
Dans le cas général, l'algorithme de ce schéma est fini si S'i ⊂ S', ∀ i = 1, …, k.
Les stratégies possibles pour la procédure du choix 2 sont les suivantes,
a) sélectionner S' dont l'évaluation est la plus faible ( resp. la plus grande ).
b) Sélectionner S' le plus récemment crée, cette manière de faire correspond à une
exploration dite " profondeur d'abord ". La famille F fonctionne comme une pile, le
dernier arrivé est le premier servi.
c) Sélectionner S' le plus anciennement crée, elle correspond à une exploration " largeur
d'abord ". F est géré comme une pile FIFO.
d) On pratique on combine a), b) et c).
Les deux méthodes d'exploration les plus employées sont : les procédures par séparation et
évaluation progressive. Elles séparent le sommet de l'arborescence d'évaluation minimale.
Cela revient à faire une exploration en " largeur d'abord". Elles sont en général assez lourdes
mais intéressantes, lorsque le problème est peu contraint et que l'on sait trouver de bonnes
solutions réalisables.
Les procédures par séparation et évaluation séquentielle. Elles séparent le sommet de
l'arborescence le plus proche du dernier sommet séparé. Cela revient à faire une exploration
en " profondeur d'abord" ( backtracking). Elles sont en général plus faciles à mettre en œuvre
et donc plus souvent utilisées.
4. Exemples d'application des PSE
Exemple 1. un problème d'ordonnancement à une seule machine
De nombreux problèmes d'ordonnancement classés NP-difficiles peuvent être résolus par des
procédures par séparation et évaluation. Nous présentons des problèmes d'ordonnancement à
une seule machine et un job shop.
Un atelier comporte une seule machine toujours disponible. "n " tâches doivent y être
exécutées les unes à la suite des autres. Elles sont toutes disponibles dès l'instant zéro. La
tâche i dure pi unités de temps et doit être terminée avant l'instant di, sinon il faut payer une
pénalité de retard wi par unité de temps de retard. Il s'agit de trouver le meilleur ordre de
passage des tâches sur la machine de manière à minimiser la somme des pénalités de retard à
payer.
Ensemble des solutions réalisables S0 est formé des n! permutations possibles des n tâches.
La séparation se fera sur la tâche que l'on fixe en dernier, puis en avant dernier, …
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
Chapitre 3 : Méthodes exactes de résolution des problèmes combinatoires NP-difficiles. 31
Pour le calcul des bornes ou minorant, on prend en considération la somme des pénalités des
tâches placées en queue. L'élimination des sous ensembles se fera sur le sommet ayant le plus
petit minorant. Le problème suivant est à 1 machine et 3 tâches.
Tâche 1 Tâche 2 Tâche 3
pi
di
wi
2
3
4
4
5
2
1
5
3
Etape 0 : initialisation
≥ b0 = 0
≥ b1 = 8 ≥ b2 = 0 ≥ b3 = 3
≥ b4 = 4 ≥ b5 = 4
Fig 1. Schéma récapitulatifs des séparations.
On a séparé par rapport à une tâche placée en dernière position.
Pour calculer b1, quelque soit la séquence ( 2, 3, 1 ) ou ( 3, 2, 1), la tâche 1 ne peut
commencer son exécution qu'à la date p2 + p3 = 5. Elle sera en retard de 2 unités.
Le coût de retard sera d'au moins 2 x 4 = 8 d'où b1 = 8.
Ainsi de suite b2 = 0 car la tâche 2 ne sera pas en retard si elle est placée la dernière.
Si la tâche 3 est placée a dernière, elle sera en retard de 1 unité, b3 = 3 x 1 = 3.
On sépare par rapport au sommet de b2. On trouve que pour les séquences ( 1, 3, 2) ou
( 3, 1, 2 ) les pénalités sont respectivement de 4 unités.
S0
….. …. 1 ….. …. 3…... …. 2
….. 1 2….. 3 2
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
32
Il faut encore séparer le sommet où la tâche 3 est placée la dernière. On trouve 2 sous
ensembles de coût 8 et 18. D'où (1,3,2) et (3,1,2) sont optimaux.
Exemple 2. Affectation
Un problème d'affectation est spécifié par la donnée d'une matrice D : n x n dont dij représente
le coût d'affectation du ième ouvrier à la jième tâche. Il s'agit de trouver une affectation de
chaque ouvrier à chaque tâche de coût total minimum.
Une manière d'énumérer sans répétition l'ensemble des affectations possibles est de
décomposer par étape.
A la première étape, on affecte l'ouvrier n°1 à l'une des n tâches
A la seconde étape, on affecte l'ouvrier n°2 à l'une des (n-1) tâches restantes.
…………….
A la nième étape, on affecte l'ouvrier n°n à la dernière tâche restante.
Il y a n! affectations possibles.
Soit la matrice des coûts d'affectation
TâchesOuvriers
a b c d
1 8 3 1 5
2 11 7 1 6
3 7 8 6 8
4 11 6 4 9
Etape 0 : Aucun ouvrier n'est affecté à aucune tâche
Au lieu d'énumérer toutes les affectations possibles qui sont au nombre de 4! = 24 et de
choisir celle de coût minimum, la procédure SEP permet d'éviter toute l'énumération.
Une observation de bon sens nous permet d'accélérer de manière importante la résolution de
cet exemple. Chaque tâche devant être affectée à un ouvrier, il en coûtera au moins 7 pour que
la tâche "a" soit assurée, au moins 3 pour que la tâche "b" le soit et au moins 1 et 5 pour que
les tâches "c" et "d" le soient respectivement. La somme des minimum de chaque colonne de
la matrice D, égale à 7 + 3 + 1 + 5 = 16, constitue un minorant du coût de toute affectation
réalisable. On ne peut trouver une affectation dont le coût soit égal à cette borne inférieure,
l'ouvrier 4 ne sera pas affecté.
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
Chapitre 3 : Méthodes exactes de résolution des problèmes combinatoires NP-difficiles. 33
Etape 1 : l'ouvrier 1 est affecté à la tâche "a".
Séparons l'ensemble des 24 affectations possibles en distinguant suivant la tâche assignée à
l'ouvrier 1 et cherchons un minorant du coût des affectations dans chacun des quatre groupes
ainsi constitués.
Si l'ouvrier 1 effectue la tâche "a" cela coûte d11 = 8 et il faudra trouver une affectation de
coût minimum de l'ensemble des ouvriers 2, 3, 4 à l'ensemble des tâches b, c, d.
C'est un problème analogue au précédant avec une matrice
TâchesOuvriers
b c d
2 7 1 6
3 8 6 8
4 6 4 9
En prenant encore le minimum de chaque colonne on a un minorant de 6 + 1 + 6 = 13 pour
cette affectation de 3 x 3. Donc, toute affectation pour laquelle l'ouvrier 1 effectue la tâche "a"
aura un coût au moins égal à 13 + 8 = 21.
On calcule de la même manière les minorants des coûts des trois autres affectations.
Etape 0 : aucun ouvrier n'est affecté 16
Etape 1: l'ouvrier 1 est affecté à la tâche 21 17 20 19
Etape 0 : aucun ouvrier n'est affecté 16
Etape 1: l'ouvrier 1 est affecté à la tâche 17
On sépare le nœud B de coût minimum 17. 26 19 20
Ω
A B C D
B
Ω
B-A B-C B-D
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
34
Etape 2 : l'ouvrier 2 est affecté à la tâche
Si on sépare le nœud les deux solutions seront BC AD ou BCDA de coûts
respectifs 3 + 1 + 7 + 9 = 20 et 3 + 1 + 8 + 11 = 23.
Ainsi pour le groupe correspondant à l'affectation de l'ouvrier 1 à la tâche D, on a calculer un
minorant sur la matrice
Tâches
Ouvriers
A B C
2 11 7 1
3 7 8 6
4 11 6 4
Le minorant est égale à 7 + 6 + 1 = 14 correspondant à une affectation réalisable
L'affectation des ouvriers aux tâches D-C-A-B est de coût total d14 + 14 = 19 est une
affectation sera l'affectation de coût minimum.
L'arborescence construite est la suivante :
16
21 17 20 19
26 19 20 19
20 23 19
B-C
A B C D
Ω
BA BC BD
BCAD BCDA DCAB
DC
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
Chapitre 3 : Méthodes exactes de résolution des problèmes combinatoires NP-difficiles. 35
Exemple 3. Résolution d'un PLNE à variables bivalentes
Par une méthode par séparation et évaluation, résoudre le problème de partition suivant :
Min z = 3 x1 + 7 x2 + 5 x3 + 8 x4 + 10 x5 + 4 x6 + 6 x7 + 9 x8
x1 + x2 = 1
x3 + x4 + x5 = 1
x5 + x6 + x7 = 1
x7 + x8 = 1
x2 + x4 + x6 = 1
xi ∈ 0, 1 , i = 1, …, 8.
La résolution se fait en plusieurs étapes.
Etape1. Evaluation par défaut: On peut réduire la fonction économique en lui soustrayant
une combinaison linéaire des contraintes.
On peut soustraire trois fois la première contrainte, d'où :
z = 3 + 4x2 + 5 x3 + 8 x4 + 10 x5 + 4 x6 + 6 x7 + 9 x8
puis cinq fois la seconde contrainte, d'où
z = 8 + 4 x2 + 3 x4 + 5 x5 + 4 x6 + 6 x7 + 9 x8
puis quatre fois la troisième contrainte, d'où :
z = 12 + 4 x2 + 3 x4 + x5 + 2 x6 + 9 x8
enfin, deux fois la quatrième contrainte, d'où :
z = 14 + 4 x2 + 3 x4 + x5 + 7 x8
Puisque les xi, i = 1, …, 9, doivent être positifs, cela entraîne que toute solution réalisable du
problème donné a une valeur au moins égale à 14.
On associera donc au problème donné une évaluation par défaut égale à 14.
Etape 2. Séparation en deux problèmes
Nous devons choisir une variable xio et séparer l'ensemble des solutions réalisables en deux
sous ensembles, l'un dans tel que xio = 0, l'autre avec xio = 1.
Considérons alors les variables dont le coût dans la fonction objectif réduite est nul; soient x1,
x3, x6 et x7. Si on prend x1 = 0, on devra prendre x2 = 1, pour que la première contrainte soit
vérifiée. On augmentera donc l'évaluation par défaut du problème donné du coût de x2 dans la
fonction économique réduite, c-a-d quatre.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
36
Ce nombre que nous affecterons à x1 représentera la pénalisation de la fonction économique si
on ne choisit pas x1= 1; on l'appellera " pénalité" associée au chois de x1 = 0.
Si on prend x3 = 0, on devra prendre x4 = 1 ou x5 = 1 pour que la seconde contrainte soit
vérifiée. La pénalité associée au choix de x3 = 0 sera donc égale au minimum des coûts de x4
et x5 dans la fonction économique réduite, c-a-d min (3,1) = 1.
De la même façon, on déduit que la pénalité associée au choix de x6 = 0 sera le minimum des
coûts de x2 et x4, c-a-d min(4,3) = 3, et la pénalité associée au choix de x7 = 0 sera le coût de
x8, c-a-d 7.
On séparera alors l'ensemble des solutions réalisables en deux sous ensembles, l'un dans
lequel on pense qu'il existera la ( ou les ) solutions(s), l'autre qui a peu de chances de contenir
de bonnes solutions. Pour séparer les solutions, on choisira alors la variable de coût nul qui a
la pénalité maximale, c-a-d ici x7. En effet, toute solution réalisable avec x7 = 0 aura alors une
valeur au moins égale à 14 + 7 = 21.
Arborescente : Si S est l'ensemble des solutions réalisables du problème donné, on séparera S
en deux sous ensembles, l'un tel que x7 = 1, l'autre tel que x7 = 0. On représentera ces
ensembles par les sommets d'une arborescence;
Représente l'ensemble des solutions réalisables
L'ensemble des solutions tel que x7 = 1,
L'ensemble des solutions tel que x7 = 0,
14 14
14 + 7
sera le père de et de
Au dessous de chaque sommet de l'arborescence, on a représenté l'évaluation par défaut de
l'ensemble des solutions réalisables correspondant à ce sommet. Le principe de la méthode est
de recommencer sur le sommet ce qui a été fait sur le sommet
S
7
7
S 7
7
77S
7 S
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
Chapitre 3 : Méthodes exactes de résolution des problèmes combinatoires NP-difficiles. 37
Etape 3. Implications
Plaçons nous au sommet , c-a-d faisons x7 = 1 dans le problème donné. Les contraintes 3
et 4 entrainent alors x5 = x6 = x8 = 0.
Le problème initial devient, en éliminant x5, x6, x7 et x8.
Min z = 14 + 4 x2 + 3 x4
x1 + x2 = 1
x3 + x4 = 1
x2 + x4 = 1
xi ∈ 0, 1 , i = 1, …, 4.
La réduction de la fonction objectif peut alors se faire comme à l'étape 1;
On trouve z = 17 + x2, en soustrayant trois fois la troisième contrainte.
Le sommet implique alors le sommet avec 17 comme évaluation par
défaut.
14 14 17
21
Etape 4. Sommet terminal et optimalité
On cherche alors à séparer le sommet ; on calcule alors les pénalités associées
aux variables x1, x3 et x4 comme à l'étape 2. On trouve p1 = 1, p3 = 0, p4 = 1.
On séparera alors le sommet sur la variable x1 par exemple.
Alors x1 = 1 entraîne x2 = 0, x4 = 1 et x3 = 0.
Ce dernier sommet est terminal puisqu'il ne contient qu'une seule solution
réalisable ( 1, 0, 0, 1, 0, 0, 1, 0 ).
14 14 17 17 17
21 17 +1=18
Nous avons donc déterminé une solution réalisable au sommet terminal de valeur 17.
7
7 8 ,6 ,5
S 7
7
8 ,6 ,5
8 ,6 ,5
4 ,3 ,2
S 7
7
8 ,6 ,5
1
1 4 ,3 ,2
38
En chemin, nous avons laissé deux sous ensembles représentés par les sommets et
. Or, chacun de ces sous ensembles a une évaluation par défaut plus grande que 17.
La solution réalisable trouvée est donc optimale.
Remarque: Trois notions ont été fondamentalement dans l'exploration.
- La notion de séparation qui est à la base de la méthode.
- La notion d'évaluation par défaut qui a permis, lorsque l'on a connu une solution réalisable
de valeur 17, d'affirmer qu'il n'existe pas de meilleurs solutions dans les sous ensembles
ayant une évaluation par défaut plus grande que 17.
Le critère de séparation, lié ici à la notion de pénalité, a permis de définir sur quelle variable
devait se faire la séparation.
Exemple 4. ( Algorithme de Little, Murty, Sweeney et Karel, 1963, pour résoudre un
problème de circuit hamiltonien ou du problème du voyageur de commerce, PVC )
Un autocar de ramassage scolaire doit, tous les matins, partant de l’école située en A, charger
des élèves en B, C, D, E et F. Ayant chronométré la durée de chacun des trajets entre les
différents points d’arrêt, on cherche le trajet hamiltonien de durée minimum dans un graphe
valué. On donne la matrice D = ( dij ) des durées des trajets ( i, j) ( non symétrique à cause
peut être des sens uniques ).
∞+∞+
∞+∞+
∞+∞+
2
2
3
4
3
9
2
6
1
1
8
4
5
6
2
16
8
5
4
2
18
10
8
6
1
18
12
10
8
6
F
EDC
B
A
F E D C B A
a. Recherche d’une évaluation par défaut
Toutes les méthodes peuvent commencer par une phase de réduction de la matrice des
distances ( phase d'initialisation). Le voyageur de commerce doit quitter une fois et une seule
fois la ville i; dans le meilleur des cas pour se rendre à la ville la plus proche j0 telle que
d(i, j0) = )j,i(dij
min≠
et dans les autres cas pour ce rendre en une ville quelconque j1 à la
distance d(i, j0) + (d(i, j1) - d(i, j0)) où ce qui est entre parenthèse est positive et la seule qui
varie avec le choix de j1; on peut donc décompter la distance d(i, j0) une fois en début de
l'algorithme, puis travailler sur les distances réduites d'(i, j1) = d(i, j1) - d(i, j0)).
7
1
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
Chapitre 3 : Méthodes exactes de résolution des problèmes combinatoires NP-difficiles. 39
De même le voyageur de commerce doit arriver une fois et une seule fois à la ville j; dans le
meilleur des cas il vient de la ville la plus proche i0 telle que d(i0, j) = )j,i(dji
min≠
et dans les
autres cas d'une ville quelconque i1 à la distance d(i0, j) + (d(i1, j) - d(i0, j)) où
d(i1, j) - d(i0, j) ≥ 0. On peut donc décompter la distance d(i0, j) une fois en début de
l'algorithme, puis travailler sur les distances réduites d"(i1, j) = d(i1, j) - d(i0, j). En fin de
réduction il y a obligatoirement au moins une distance nulle par ligne et une distance nulle par
colonne. d(i,j) est la nouvelle distance réduite de i à j pour simplifier la notation.
La somme des réductions effectuées sur la matrice des distances notée b0, est la distance
minimale parcourue quelque soit la séquence des villes retenues et décomptées à priori.
a.1. Ensemble des solutions candidates
On travaille sur des sous ensembles d'arcs retenus ou interdits dans le circuit partiel en
construction: la solution sera réalisable lorsqu'on aura retenu une suite de "n " arcs qui
constitue un seul circuit élémentaires. Dans A0 les sous ensembles d'arcs retenus ou interdits
sont vides; la matrice des distances est la matrice réduite de la phase d'initialisation.
a.2. Séparation
Un sous ensemble Ai est défini par un ensemble d'arcs retenus ou interdits et par la matrice
réduite des distances ( où les distances des arcs interdits sont infinies et où la ligne i et la
colonne j ne figurent plus si l'arc (i,j) a été retenu).
On partitionne Ai en A'i et A"i où dans l'un, l'arc (u, v) ( de distance réduite nulle) a été
ajouté à la liste des arcs retenus et dans l'autre à la liste des arcs interdits dans toute solution
constituant un circuit hamiltonien. On obtient des bornes b'i et b"i en ajoutant à bi le coût de
réduction de la nouvelle matrice des distances modifiée. Dans la nouvelle matrice D'i obtenue
en supprimant la ligne u et la colonne v et où on a mis à la valeur infinie la distance de v à u
( pour ne pas fermer un sous-circuit de deux arcs).
a.3. Choix des arcs à retenir
Pour pouvoir programmer les séparations, il faut préciser comment on choist l'arcs (u,v) parmi
tous les arcs qui ont une distance réduite nulle. Little a introduit la notion de " plus grand
regret", les choix étant faits de telle sorte que l'écart entre b'i et b"i soit le plus grand possible
si bien après avoir exploré A'i de meilleure borne on ait pu avoir la chance de trouver une
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
40
solution réalisable meilleure que b"i ce qui évitera l'exploration de A"i. Pour cette raison, on
sépare à partir des arcs de distances nulles: leur sélection coûte 0 et si on a la chance que les
réductions de la matrice des distances ne fait pas augmenter la borne, alors b'i = bi valeur
minimale que peut prendre cette borne après la séparation. Au contraire, si on ne prend pas
(u,v), on souhaite que le coût de la réduction correspondante soit maximal pour que b"i soit le
plus grand possible après séparation. On calcule le "regret" de l'arc (u,v) dans la matrice
réduite D, par la formule regret(u,v) = )v,i(dui
min≠
+ )j,u(dvj
min≠
. Il est la somme de la
distance minimale sur la ligne u et sur la colonne v lorsqu'on interdit l'arc (u,v), ce sera le coût
de la réduction de A"i. Après le calcul des regrets de tous les arcs de distance nulle, on affecte
la séparation par l'arc de plus grand regret.
a.4. Elimination de sous ensembles
Ai est vide de solutions réalisables si un sous ensemble des arcs retenus constitue un circuit de
moins de "n" arcs. Ai est réduit à une seule solution réalisable s'il y a exactement " n" arcs
retenus qui ne ferment pas de sous-circuits dont le nombre d'arcs est inférieur à n.
On considère la matrice des coûts T0 =
8
223
1
1
2
2
3
4
3
9
2
6
1
1
8
4
5
6
2
16
8
5
4
2
18
10
8
6
1
18
12
10
8
6
F
EDC
B
A
F E D C B A
∞+∞+
∞+∞+
∞+∞+
1. Réduction de la matrice en soustrayant le minimum de chaque ligne, On obtient la matrice
T1 =
∞+∞+
∞+∞+
∞+∞+
0
0
0
3
2
1
0
3
0
0
0
2
2
5
1
8
6
3
3
1
10
8
6
3
0
10
10
8
5
5
F
EDC
B
A
F E D C B A
. La somme de 1 + 1 + 3 + 2+2+8 = 17, le
minimum de chaque ligne représente le coût des sorties des villes A, B, C, D, E et F.
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
Chapitre 3 : Méthodes exactes de résolution des problèmes combinatoires NP-difficiles. 41
Réduction de la matrice en soustrayant le minimum de chaque colonne. On détermine la
valeur minimale de chaque colonne de T1,
0 0 0 1 0 5
0
0
0
3
2
1
0
3
0
0
0
2
2
5
1
8
6
3
3
1
10
8
6
3
0
10
10
8
5
5
F
EDC
B
A
F E D C B A
∞+∞+
∞+∞+
∞+∞+
.
T2 =
∞+∞+
∞+∞+
∞+∞+
0
0
0
3
2
1
0
3
0
0
0
2
2
5
1
7
5
2
2
0
10
8
6
3
0
5
5
3
0
0
. Le minimum de chaque colonne représente le
coût des entrées des villes A, B, C, D, E et F. Il est de 5 + 0 + 1 + 0 + 0 + 0 = 6.
Le coût des entrées et sorties des villes A, B, C, D, E et F est de 17 + 6 = 23.
Quelque soit une tournée T, v(T) ≥ 23.
b. Résolution par l'algorithme de Little
a. Calcul des regrets: on sépare suivant l'arc qui a le plus grand regret, calculé
par la formule regret(u,v) = )v,i(dui
min≠
+ )j,u(dvj
min≠
. De la matrice T2, l'arc AB, son regret
est 0 + 3 = 3. On peut déterminer les regrets à chaque arc de valeur 0. Il est indiqué en indice
On obtient
∞∞
∞∞
∞
∞
200000
3
2
1
00
30000
20
2
2
5
1
7
5
2
220
10
8
6
3
30
5
5
30000
F
EDC
B
A
FEDCBA
. L'arc AC son regret est 0 + 2 = 2.
L'arc AB a le plus grand regret.
b. séparation de l'ensemble A0 de toutes les solutions du problème de borne b0 = 23 en deux
sous ensembles : A1 où on choisit l'arc ( A, B ) et A2 où on interdit l'arc ( A B ) et qui aura
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
42
comme borne b2 = b0 + regret( AB) = 23 + 3 =26. Pour calculer la borne de A1 on construit
la matrice M1 qui lui est associée:
- en supprimant la ligne A sur laquelle on ne peut plus faire d'autres choix.
- en supprimant la colonne B sur laquelle on ne peut faire d'autres choix.
- en rendant infinie la case ( B, A ) pour éviter de fermer le sous-circuit (A ,B ,A ).
Puis on réduit si nécessaire la matrice M1 de manière à avoir au nouveau un "0" par ligne et
par colonne , ce qui permet d'ajuster le minorant b1
M1 =
0 0 0 2 0
0
00
0
0
1
0
0
2
7
5
5
50023
0320
3052
F
ED
C
BF E D CA
∞+∞+
∞+∞+
∞+
. M'1 =
∞+∞+
∞+∞+
∞+
120
30
2
5
3
5
50000003
003230
30052
F
ED
C
B
F E D CA
.
b1 = 23 + 2 = 25.
c. on choisit d'utiliser une P S E P
A1 est le sous ensemble de meilleure borne : On a calculé sur M'1 les regrets de ses zéros de
manière à le séparer. Le plus grand regret est de C pour l'arc (C, A ). On sépare l'ensemble
A1 de borne b1= 25 en deux sous ensembles A3 où on choisit l'arc ( C,A ) ( en plus de l'arc
(A, B) ) et A4 où on interdit l'arc (C, A )( mais où on conserve (A,B))et qui aura comme
borne b4 = b1 + regret (C,A ) = 25+ 3 = 28.
Pour construire la borne de A3 , on construit la matrice M3 qui lui est associée : en
supprimant la ligne C et la colonne A sur lesquelles on ne plus faire d'autres choix.
On devrait rendre infinie la case en position (1, 3) mais elle n'appartient pas à la partie
restante de la matrice M'1 . On réduit si nécessaire la matrice obtenue M3 de manière à avoir à
nouveau un 0 par ligne et par colonne, ce qui permet d'ajuster le minorant b3.
M3 =
0 0 0 0
0
0
0
0
13052023000000
300500
F
E
D
BF E D C
∞+∞+
∞+ . b3 = 25 + 0 = 25.
d. A3 est le sous ensemble de meilleur borne : on a calculé sur M3 ses regrets. Le plus grand
est de 3 pour l'arc FD. On sépare l'ensemble A3 de borne b3 = 25 en deux sous ensembles A5
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
Chapitre 3 : Méthodes exactes de résolution des problèmes combinatoires NP-difficiles. 43
où on choisit l'arc FD ( en plus des arcs CA et AB ) et A6 où on interdit l'arc ( F D ) ( mais on
conserve CA et AB ) et qui aura une borne b6 = b3 + regret(FD) = 25 + 3 = 28.
Pour calculer la borne de A5 on construit la matrice M5 qui lui est associée:
- en supprimant la ligne F et la colonne D en rendant infinie la case DF pour éviter de
fermer le sous circuit ( FDF).
Puis on réduit si nécessaire la matrice obtenue de M5 afin d'ajuster b5.
M5 =
∞+∞+
6030000
30000
E
D
BF E C
. b5 =25.
e. A5 est le sous ensemble de meilleure borne; le plus grand regret est de 6 pour l'arc EF. On
sépare l'ensemble A5 de borne b5 = 25 en deux sous ensembles A7 où on choisit l'arc EF ( en
plus des arcs CA, AB et FD) et A8 où on interdit l'arc EF ( mais on conserve CA, AB et FD)
avec la borne b8 = b5 + regret (EF) = 25 + 6 = 31.
Pour calculer la borne de A7, on construit la matrice M7 en supprimant la ligne E, la colonne F
et on réduit si nécessaire la matrice obtenue. M7 =
00000000
D
BE C
.
f. A7 est le sous ensemble de meilleure borne 25; le plus grand regret est zéro pour l'arc BC
par exemple. On sépare A7 de borne b7 = 25 en deux sous ensembles A9 où on choisit l'arc BC
( en plus des arcs (CA, AB, EF, FD)) et A10 où on interdit l'arc BC ( mais on conserve CA,
AB, EF, FD) avec la borne b10 = b7 + regret(BC) = 25.
Si l'on examine A9, on s'aperçoit qu'il contient un sous-circuit (CABC), il est donc vide de
solutions réalisables et on l'élimine de la recherche.
g. A10 est alors le sous-ensemble de meilleure borne. Pour le séparer il faut connaître les
regrets de ses zéros et donc construire la matrice M10 qui lui est associée; on l'obtient à partir
de M7 en mettant simplement l'infini dans la case interdite BC et on la réduit si nécessaire.
M10 =
∞+
000000
D
BE C
.
h. La borne de A10 est de 25. On sépare A10 en A11 qui contient les arcs ( CA, AB, BE, EF et
FD) et A12 qui contient les arcs (CA, AB, EF et FD mais pas BE).
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
44
Ces deux sous ensembles ont pour regret 0 et A11 ne contient qu'une seule solution réalisable
qui consiste à compléter le circuit hamiltonien par DC ( seule case à coût nul et à regret infini
de M11 ).
On a obtenu la solution réalisable CABEFDC de coût 25, alors que toutes les bornes des sous
ensembles non séparés et non éliminés sont toutes supérieures où égale à 25. Cette solution
est optimale. On ne sait pas si l'optimum est unique, c'est laissé pour l'étudiant de déterminer
d'autres solutions optimales.
Remarque: on devrait aussi rendre infinie la case BC car elle ferme le sous-circuit CABC
mais cela complique la programmation de cette méthode en demandant de tester en
permanence les sous-circuits " succeptibles" d'être fermés. Nous nous contenterons de tester
ici les sous circuits effectivement fermés ce qui est moins couteux mais conduit à quelques
séparations de plus.
Exemple 5. L'algorithme de Eastman
a. ensemble de solutions candidates
Pour l'obtenir, on compare le problème Π du voyageur de commerce avec le problème Π' de
l'affectation simple à coût minimal.
Π' ) Etant donné une matrice carrée de coûts ( que l'on peut noter d(i,j), choisir exactement
une case par ligne et une case par colonne de telle sorte que la somme des coûts soit minimal)
Π ) Etant donné une matrice carrée donnée de distances, choisir exactement une case par ligne
( car le voyageur quitte une fois et une seule fois une ville i) et une case par colonne ( car le
voyageur arrive une fois et une seule fois dans la ville j) de telle sorte que la somme des
distances soit minimale et que l'ensemble des cases retenues constituent un seul circuit de "n"
arcs. Le problème du voyageur de commerce contient une contrainte supplémentaire. Toute
solution du voyageur de commerce est une solution réalisable pour le pro0blème de l'affectation
simple à coût minimal, mais la réciproque est fausse: L'ensemble des solutions réalisables de
l'affectation contient les solutions du voyageur de commerce et la meilleure solution pour
l'affectation est au moins aussi bonne que la meilleure solution du PVC, sa valeur est donc un
minorant pour le PVC. A0 contient une solution du problème d'affectation et b0 sa borne est
calculée selon au moins la méthode vue en cours.
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
Chapitre 3 : Méthodes exactes de résolution des problèmes combinatoires NP-difficiles. 45
Séparation
Pour évaluer la borne bi, on applique la méthode vue en cours. Si la solution fournie est une
solution du PVC ( elle constitue un seul circuit passant par tous les points), alors c'est une
solution optimale de Ai que l'on cesse de séparer. Si au contraire, cette solution n'est pas une
solution du PVC, alors les arcs qui la compose constitue un sous ensemble de sous-circuits
indépendants dont le nombre d'arcs est strictement plus petit que "n", solution réalisable pour
l'affectation, mais pas pour le PVC. On cherche à séparer de telle sorte que cette solution
disparaisse sans supprimer d'autres solutions réalisables; pour cela, on considère les sous-
circuits de cette solution, on retient un des plus petits en nombre d'arcs ( de manière à séparer
en un plus petit nombre de sous ensembles) : i1, i2,…, ip, i1 ( p < n) et on sépare l'ensemble Ai
en p sous ensembles Ak1, Ak2, …, Akp tel que Akj est l'ensemble des solutions de Ai qui ne
contiennent pas l'arc (ij, ij+1). La séparation est dite par "recouvrement": on ne retrouve plus
les solutions de l'affectation simple qui contiennent le circuit " ouvert" mais une solution qui
ne contient aucun arc du circuit ouvert se retrouve dans les sous-ensembles obtenus.
Exemple 6. Algorithme de l'arbre de recouvrement minimal
a. Ensemble des solutions réalisables
On suppose que le graphe des distances est symétrique, graphe orienté. On compare le
problème du PVC, Π, avec celui de la recherche de la plus courte chaîne hamiltonienne dans
un graphe Π ' et le problème Π " de la recherche de l'arbre de recouvrement minimal dans un
graphe.
Lien entre les meilleures solutions de Π et les meilleures solutions de Π '
Supposons, arbitrairement, que le voyageur de commerce parte de la ville i0 et y revienne en
fin de circuit et considérons le sous-graphe G' obtenu à partir du graphe G en supprimant le
point i0. Toute solution de Π est constituée d'une arête liant i0 à un point i1 de G', d'une chaîne
hamiltonienne passant par les points de G' et se terminant en un point in-1 et d'une arête liant
in-1 à i0. Pour obtenir un minorant aux solutions du problème Π, il faut chercher la meilleure
solution de Π ' et lui ajouter la distance des deux plus petites arêtes allant de i0 à G ' (
minorant de i1, i2,…, in-1.
Si les deux plus petites arêtes ainsi définies complètent la chaîne hamiltonienne minimale de
G' de manière à former un cycle hamiltonien de G, alors celui-ci est minimal.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
46
Liens entre les meilleurs solutions de Π ' et celle de Π "
Une chaîne hamiltonienne est un graphe partiel connexe er sans cycles de n -1 sommets tel
qu'il existe un point origine et un point extrémité où le degré est de 1 alors que tous les autres
points sont de degré 2, alors qu'un arbre de recouvrement est un graphe partiel connexe et
sans cycles de n-1 sommets. Toute chaîne hamiltonienne est un arbre de recouvrement, la
réciproque étant fausse. Le poids du plus petit arbre de recouvrement est un minorant pour la
valeur de la plus petite chaîne hamiltonienne. On travaille sur les arbres de recouvrement de
G' que l'on complète par les deux arêtes les plus petites i0 à G' de manière à obtenir des
minorants pour le problème Π.
Séparation
Comme dans l'algorithme de Eastman, on utilise une technique de recouvrement et on
est amené à interdire des arêtes de manière à ne plus retrouver de solutions minimales mais
irréalisables. A la fin du calcul du minorant de l'ensemble Ak, on a obtenu un arbre de
recouvrement minimal de G' ( par un des algorithmes de Prim, Kruskal ou de Sollin), on
complète par les deux arêtes de i0 à G', on obtient un graphe partiel connexe de " n" arêtes
dont on examine les degrés: s'ils sont tous égaux à 2; On a obtenu la solution optimale de Ak;
sinon, il existe au moins un point de degré supérieur à 2 dont une des arêtes au moins doit
disparaître pour obtenir une solution réalisable. On choisit le point j de degré maximal "p"
dans le sous graphe partiel qui contient les arêtes (ju1) (ju2),…, (jup) et on sépare Ak en p sous
ensembles Av1, …, Avp où on interdit l'arête ( j, uw) dans le sous-ensemble Anw, ce qui revient
pour ce sous ensemble, soit à interdire une arête allant de i0 à G', soit à modifier G' par
suppression d'une arête.
Elimination
Suit les règles usuelles des PSE.
Exemple 7. un problème du job shop
Pour réaliser la fabrication de trois pièces, on dispose de leur gamme de fabrication.
La pièce i demande qi opérations et la jième opération de la pièce i occupe τij unités de temps
de la machine Mij. Les durées d'usinage sont très longues par rapport aux durées de transport
et de réglage et on négligera ces dernières. Cette méthode ne permet de résoudre que des
problèmes de taille raisonnable. Le problème qui consiste à placer les opérations sur les
machines de telle sorte que :
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
Chapitre 3 : Méthodes exactes de résolution des problèmes combinatoires NP-difficiles. 47
L’opération j du produit i soit terminée avant le début j+1.
Une machine ne traite qu’une seule opération à la fois
On minimise la durée totale ( l’opération qui se termine la dernière se termine le plus tôt
possible)
Les gammes sont fournies dans le tableau suivant:
n° opération 1 2 3 4
Pièce 1
Durées
Machines
3
(1)
1
(2)
2
(3)
1
(3)
Pièce 2
Durées
Machines
1
(2)
2
(1)
1
(3)
3
(2)
Pièce 3
Durées
Machines
2
(3)
1
(2)
./.
./.
./.
./.
Les bornes minorantes sont calculées par relaxation en ignorant, initialement, les contraintes
dues au fait qu'une machine ne peut effectuer qu'une seule et unique opération à la fois.
Ces contraintes seront intégrées progressivement au fur et à mesure des séparations jusqu'à
l'obtention de solutions réalisables qui seront optimales pour le sous-ensemble de solutions
auquel elles appartiennent. En fin d'exploration, la meilleure solution réalisable trouvée sera
optimale. L'ensemble des solutions candidates A0 est l'ensemble de tous les ordres possibles
de toutes les opérations à exécuter sur les différentes machines.
Pour trouver un minorant à la meilleure solution possible de cet ensemble, on ignore les
contraintes dues aux machines en faisant comme si on avait autant d'exemplaires de chaque
machine que nécessaire pour réaliser la solution "au plus tôt" pour chaque pièce, ce qui donne
l'ordonnancement non réalisable suivant représenté sur un diagramme où chaque ligne
correspond à une pièce et chaque case à la j-ème opération de la tâche i sur la machine (k).
1 2 3 4 5 6 7 8 9 10 11 12
Pièce 1
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
48
1,1(1) 1,2(2) 1,3(3) 1,4(3)
Pièce 2
2,1(2) 2,2(1) 2,3(3) 2,4(2)
Pièce 3
3,1(3) 3,2(2)
Fig 2. Diagramme " pièces " calé au plus tôt correspondant au sous ensemble A0.
La plus longue gamme ayant une durée totale de sept (7 ) unités de temps, 7 est un minorant
pour la durée totale pour l'ensemble des solutions du problème d'où b0 = 7. La solution ci
dessus serait optimale si elle était réalisable. Elle comporte des conflits sur l'utilisation des
machines. A l'instant 1, un conflit survient entre 1,1 (1) ( la première opération du produit un )
et 2,2(1) ( la deuxième opération du produit deux ) sur l'utilisation de la machine 1.
Nous devons séparer l'ensemble de solutions A0 en deux sous ensembles de solutions de telle
sorte que toute solution réalisable se retrouve obligatoirement dans l'un des deux et que les
solutions non réalisables qui contenaient ce premier conflit ne s'y retrouvent plus.
Pour cela, on partitionne A0 en deux sous ensembles complémentaires. A1 où 1,1(1) est placée
sur la machine 1 avant 2,2 et A2 où 2,2 est placée sur la machine 1 avant 1,1. Avant de séparer
A1 ou A2 , nous allons calculer les nouvelles bornes les concern ants de manière à pouvoir
appliquer une procédure par séparation et évaluation progressive en séparant toujours le sous
ensemble de meilleur borne. Placer 1,1 avant 2,2 revient à déplacer le début de 2,2 de 2 unités
et donc à déplacer la fin du produit deux de 7 à 9 unités. D'où b1 = 9. Placer 2,2 avant 1,1
revient à déplacer le début de 1,1 de 3 unités et donc de déplacer la fin du produit un de 7 à 10
unités. D'où b2 = 10. La meilleure borne est fournie par A1 que nous allons séparer en
cherchant le premier conflit-machine sur son diagramme pièces calé au plus tôt.
1 2 3 4 5 6 7 8 9 10 11 12
Pièce 1
1,1(1) 1,2(2) 1,3(3) 1,4(3)
Pièce 2
2,1(2) ///////////////////// 2,2(1) 2,3(3) 2,4(2)
Pièce 3
3,1(3) 3,2(2)
Fig 3. Diagramme " pièces " calé au plus tôt correspondant au sous ensemble A1.
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
Chapitre 3 : Méthodes exactes de résolution des problèmes combinatoires NP-difficiles. 49
Ici, le diagramme de A2 n'est pas représenté. Un conflit survient à l'instant 5 entre 1,3(3) et
2,3(3) pour l'utilisation de la machine 3. A1 sera séparé en deux sous ensembles A3, où 1,3 (3)
est placée avant 2,3(3) et A4, où 2,3(3) est placée avant 2, 3(3). Placer 1,3(3) avant 2,3(3)
revient à déplacer 2,3(3) d'une unité de temps et donc de déplacer la fin du produit 2 de
l'instant 9 à 10. Placer 2,3(3) avant 1,3(3) revient à déplacer 1,3(3) de deux unités de temps et
donc de déplacer la fin du produit 1 de l'instant 7 à 9.
1 2 3 4 5 6 7 8 9 10 11 12
Pièce 1
1,1(1) 1,2(2) /////////////////// 1,3(3) 1,4(3)
Pièce 2
2,1(2) ///////////////////// 2,2(1) 2,3(3) 2,4(2)
Pièce 3
3,1(3) 3,2(2)
Fig 4. Diagramme " pièces " calé au plus tôt correspondant au sous ensemble A4.
Ce diagramme ne comporte plus de conflit pour l'utilisation des machines. C'est une solution
réalisable pour le problème posé, comme sa durée totale est strictement inférieure à toutes les
bornes des sous ensembles que nous n'avons pas encore séparés.
C'est l'unique solution optimale parmi les solutions calées au plus tôt.
Remarque : Si on programme cette méthode, on n'utilise pas les diagrammes " pièces " mais
les dates au plus tôt de toutes les opérations sur le graphe potentiel-tâche comportant les
contraintes de précédence dues aux gammes puis celles ajoutées progressivement à chaque
séparation pour tenir compte des conflits dus aux machines.
La borne étant la date au plus tôt de la tâche fictive de fin de réalisation.
≥ b0 = 7
≥b1= 9 ≥ b2 = 10
≥b3=10 ≥ b4 = 9
Fig 5. Arborescence des séparations.
A0
A2
L'opération2,2(1) > 1,1(1)
A1
L'opération1,1(1) > 2,2(1)
A4
1,1(1) > 2,2(1) et 2,3(3) > 1,3(3)
A3
1,1(1) > 2,2(1) et 1,3(3) > 2,3(3)
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
50
Exemple 8.
Résoudre le problème de sac à dos binaire suivant, à l’aide de la méthode de séparation et
d’évaluation présentée au cours :
Max z = 13 x1 + 16 x2 + 7 x3 + 4 x4
6 x1 + 8 x2 + 4 x3 + 3 x4 ≤ 12
x1, x2, x3 et x4 ∈ 0, 1
Evaluation. Pour la phase d'évaluation, on va résoudre la relaxation linéaire du problème, du
problème linéaire obtenu en remplaçant les contraintes xi ∈ 0, 1 ∀ i, par 0 ≤ xi ≤ 1, ∀ i.
Pour résoudre cette relaxation, on va appliquer un algorithme glouton : les objets sont à
chargés par ordre croissant du rapport ρi = qualité/ poids = ci / ai.
Objet i 1 2 3 4
Utilité ci
Poids ai
13 16 7 4
6 8 4 3
ρi = ci / ai. 2.16 2 1.75 1.3
Les objets sont à considérer dans l'ordre donné 1, 2 , 3 et 4.
Séparation. Si la relaxation linéaire n'est pas entière, on crée deux sous-problèmes en posant,
dans l'un, xj = 1 et, dans l'autre, xj = 0 où xj est la variable fractionnaire dans la solution de la
relaxation linéaire.
Initialisation. L'arbre d'énumération ne contient que la racine A0 représentant le problème
initial. −∞=z .
Première itération. On évalue une borne supérieure 0z pour A0 :
X1 = 1, x2 = 6/8, x3 = 0, x4 = 0 et 0z = 25.
La solution n'est pas entière et 0z > z . On sépare A0 en créant deux sous problèmes avec
respectivement, x2 = 1 et x2 = 0.
z = - ∞
A2 oùx 2 = 0
A1 oùx 2 =1
A1
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA
Chapitre 3 : Méthodes exactes de résolution des problèmes combinatoires NP-difficiles. 51
Deuxième itération. On traite le sommet ou nœud actif A1, et on évalue une borne
supérieure 1z pour ce dernier : x2 = 1 (fixé), x1 = 4/6, 1z = 24.6.
La solution n'est pas entière et 1z > z , on sépare A1 en branchant sur x1.
z = - ∞
Troisième itération. On traite le sommet actif A3. On a x1 = x2 = 1, mais a1 + a2 = 14 > 12=b.
L'ensemble A3 est vide, et le sommet est sondé.
Quatrième itération. On traite le sommet actif A4, et on évalue sa borne supérieure 4z ,
x1 = 0, x2 = 1, x3 = 1, 4z = 23.
La solution est entière et 4z > z . On met à jour z= 23. Le nœud A4 est sondé.
Cinquième itération. On traite le sommet actif A2, et on évalue sa borne supérieure 2z .
x1 = 1, x2 = 0, x3 = 1, x4 = 2/3, 2z = 22.6.
La solution n'est pas entière mais 2z ≤ z , le sommet est ainsi sondé.
La solution optimale est de prendre les objets 2 et 3 pour une valeur de 23.
Exercices.
1. Donner les circuits hamiltoniens de valeur totale minimale pour les graphes valorisés dans
les tableaux suivants:
∞+∞+
∞+∞+
∞+
0
23
16
3
5
2
2
022007
00021
01143
;
∞+∞+
∞+∞+
∞+
6
5
4
11
6
8
3
89 937
2 683
9725
;
∞+∞+
∞+∞+
∞+∞+
2
64
006
6
20
1
45
0
02
23023
61035
60450
A2 oùx 2 = 0
A1 oùx 2 =1
A0
A3 oùx1 =1
A4 oùx1 =0
52
2. Formuler et résoudre par une procédure par séparation et évaluation le problème de sac à
dos avec les données numériques suivantes
Aliments k 1 2 3 4
Prix ck 20 30 40 50
Poids pk 10 15 30 40
Le budget disponible est b = 60.
Module: Procédures PSE, PLNE, programmation dynamique et Métaheuristiques, dispensé par le Dr. DERBALA Ali.
UNIVERSIT
E SAAD DAHLAB D
E BLIDA