Vous êtes sur la page 1sur 108

Mastère de Recherche en IAD − FSEG-Nabeul

Optimisation Combinatoire

Par
Dr. Slim BECHIKH
Maître de Conférences en Informatique de Gestion
slim.bechikh@fsegn.rnu.tn

Département: Méthodes Quantitatives et Informatique, FSEG-Nabeul


Laboratoire de Recherche: SMART (Strategies for Modeling & ARTificial intelligence)

©2021 Dr. Slim BECHIKH 1 Optimisation Combinatoire


Plan du cours

▪ Chapitre 1: Modélisation des problèmes d’optimisation combinatoire


▪ Chapitre 2: Méthode de résolution par séparation & évaluation (B&B)
▪ Chapitre 3: Méthode de résolution par la programmation dynamique
▪ Chapitre 4: La programmation linéaire en nombres entiers
▪ Chapitre 5: Les problèmes de flots
▪ Chapitre 6: Les métaheuristiques à base de voisinage
▪ Chapitre 7: Les métaheuristiques à base de population
▪ Chapitre 8: Applications réelles de l’optimisation combinatoire

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


2
Références principales

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


3
Chapitre 2
Méthode de résolution par séparation et évaluation
(B&B: Branch & Bound)

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


4
Tables des matières

1) Illustration du B&B sur le problème de sac à dos


2) Illustration du B&B sur le problème du voyageur de
commerce (Algorithme de Little)
3) Exercice 2.1: B&B pour le problème d’affectation
4) Exercice 2.2: B&B pour l’ordonnancement

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


5
1) Illustration du B&B sur le problème de sac à dos

L’idée la plus simple pour résoudre le problème du sac à dos est de générer
(énumérer) toutes les solutions possibles et les évaluer. Par la suite, nous pouvons
trier les solutions selon le profit généré et ainsi détecter la solution optimale.

Ceci est faisable lorsque nous disposons d’un très petit nombre d’objets. A titre
d’exemples, nous disposons de 2 ou 3 objets qui peuvent être mis dans le sac à dos.

Cette méthode s’appelle l’énumération exhaustive et peut être schématisée par un


tout petit arbre comme suit:

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


6
1) Illustration du B&B sur le problème de sac à dos

Que faire si nous disposons d’un grand nombre d’objets?

Elaguer (couper) les branches qui ne mènent pas vers des solutions meilleures
(intéressantes) 🡺 Réduire la taille de l’arbre 🡺 C’est le principe du B&B.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


7
1) Illustration du B&B sur le problème de sac à dos

Algorithme B&B pour le sac à dos


Etape 0:
a) Trier les objets par ordre décroissant selon le ratio (Profit/Poids).
b) Calculer la borne supérieure UB en utilisant une heuristique gloutonne
fractionnaire.
c) Calculer la borne inférieure LB en utilisant une heuristique gloutonne entière
(non-fractionnaire).
d) Initialiser la borne inférieure globale: Global_LB ← LB.

Etape 1:
a) Exécuter la séparation sur la variable ayant une valeur fractionnaire.
b) Pour chaque nœud obtenu, calculer les bornes UB et LB.
c) Déduire la solution obtenue à partir du calcul de la borne UB qui peut être
fractionnaire ou entière (intégrale).

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


8
1) Illustration du B&B sur le problème de sac à dos

Algorithme B&B pour le sac à dos


Etape 2:
a) Exécuter l’élagage de chaque nœud N dans les conditions suivantes:
i. Si (UB(N) < LB(N)) alors il n’est pas intéressant de continuer la
recherche (La direction de la recherche de l’optimum n’est pas
prometteuse).
ii. Si la solution intégrale obtenue est infaisable.
iii. Si on trouve une solution intégrale (entière).
b) Mettre à jour la borne inférieure Global_LB comme suit: Si la borne LB trouvée
à partir de la dernière solution intégrale visitée, dénotée Last_LB, soit
supérieure à Global_LB (Si Last_LB > Global_LB), alors:
Global_LB ← Last_LB.
c) A chaque fois qu’on calcule une borne LB pour un certain nœud N:
Si (LB(N) < Global_LB) Alors LB(N) ← Global_LB.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


9
1) Illustration du B&B sur le problème de sac à dos

Algorithme B&B pour le sac à dos


Etape 3:
a) Répéter les étapes (1) et (2) jusqu’à l’épuisement de tous les nœuds actifs.
b) Une fois il n’y a plus de nœuds actifs, l’algorithme s’arrête et renvoie la
solution optimale qui correspond à la solution intégrale ayant la plus grande
LB.

Remarque générale: Pour toute solution intégrale, les valeurs


calculées des UB et LB sont égales.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


10
1) Illustration du B&B sur le problème de sac à dos
3 + 5 + (4 -2) —> pour avoir w=10 on divise 2/4 nous reste ½

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


11
1) Illustration du B&B sur le problème de sac à dos

Algorithme B&B pour le sac à dos

Comment calculer UB et LB?

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


12
1) Illustration du B&B sur le problème de sac à dos

Algorithme B&B pour le sac à dos

Comment calculer UB (Heuristique gloutonne fractionnaire)?

KP capacity: W = 10

Profit: 60 60 ½ * 40 = 140
UB(F 0) = Weight: 3 5 ½*4 = 10
Item: 1 2 3 4 5 6 7

Si on prend la totalité du Item-3, nous allons dépasser la capacité du sac (3 + 5 + 4 = 12


> 10). Pour cela, nous allons prendre une partie fractionnaire de Item-3. La place
restante dans le sac est égale à (10 – (3+5)) = 2. Pour inclure Item-3 dans le sac, nous
avons besoin d’une capacité égale à ((3+5) + 4) = 12. Donc, nous pouvons mettre (2/4)
= (1/2) de Item-3 dans le sac.
©2021 Dr. Slim BECHIKH Optimisation Combinatoire
13
1) Illustration du B&B sur le problème de sac à dos

Algorithme B&B pour le sac à dos

Comment calculer LB (Heuristique gloutonne intégrale)?

KP capacity: W = 10

Profit: 60 60 0 10 0 0 3 = 133
LB(F 0) = Weight: 3 5 0 1 0 0 1 = 10
Item: 1 2 3 4 5 6 7

Ici, on s’arrête quand on ne peut plus mettre aucun objet dans le sac.
L’objet ici est indécomposable.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


14
1) Illustration du B&B sur le problème de sac à dos

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


15
1) Illustration du B&B sur le problème de sac à dos

Puisque la variable x3 a une valeur fractionnaire, nous allons faire la


séparation suivant l’inclusion ou l’exclusion de Item-3.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


16
1) Illustration du B&B sur le problème de sac à dos

Puisque le nœud F1 correspond à x3 = 1, on a marqué le « 1 » à la


position 3 en gras. Par conséquent, les valeurs UB et LB vont se
calculer maintenant sur la base de l’hypothèse: x3 = 1.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


17
1) Illustration du B&B sur le problème de sac à dos

Solution infaisable avec un


poids total égal à 12 > W =
10. Donc, les bornes
reçoivent moins l’infini.

On a trouvé une solution


intégrale, donc nous
exécutons l’élagage.

Ici, nous avons rencontré la première solution qui ne contient que des zéros et des uns.
Il s’agit de la première solution faisable rencontrée. Sa borne inférieure LB va être
utilisée comme une borne inférieure globale (Global_LB). Ceci veut dire qu’à chaque
fois qu’on trouve une borne LB inférieure à Global_LB, nous remplaçons cette borne par
la valeur de Global_LB.
©2021 Dr. Slim BECHIKH Optimisation Combinatoire
18
1) Illustration du B&B sur le problème de sac à dos

La valeur de la borne supérieure UB du nœud F6 est


inférieure à celle de sa borne inférieure LB: 96 < 110.
Cet évènement active l’élagage du nœud, puisque la
direction de la recherche n’est pas intéressante.

The computed LB value for node F6 is 69.


The latter is less than the current Global_LB
value that is 110. Thus, 69 is replaced by 110.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


19
1) Illustration du B&B sur le problème de sac à dos

Algorithme B&B pour le sac à dos


Quelle est l’utilité des bornes UB et LB?
Borne supérieure UB: C’est une valeur maximum de la fonction objectif. Autrement
dit, c’est une valeur qui est nécessairement supérieure à la valeur de la meilleure
solution possible qui peut être obtenue en suivant la branche considérée.

Borne inférieure LB: C’est une valeur minimum de la fonction objectif. Autrement
dit, c’est une valeur qui est nécessairement inférieure à la valeur de la meilleure
solution possible qui peut être obtenue en suivant la branche considérée.

UB
La valeur de la fonction objectif (profit) de la meilleure
solution possible à partir de la branche considérée est
comprise entre LB et UB.
LB

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


20
1) Illustration du B&B sur le problème de sac à dos

Algorithme B&B pour le sac à dos


Quelle est l’utilité des bornes UB et LB?
UB
La valeur de la fonction objectif (profit) de la meilleure
solution possible à partir de la branche considérée est
comprise entre LB et UB.
LB
Question: Que veut dire: UB ≤ LB ?

UB ≤ LB veut dire qu’on peut pas faire mieux, c.à.d., on ne peut trouver aucune
solution qui soit meilleure à la meilleure solution actuelle. Le scénario parfait va
générer une solution qui a une LB qui soit égale à Global_LB.
🡺 L’objectif du B&B est de maximiser la LB pour maximiser le profit.
©2021 Dr. Slim BECHIKH Optimisation Combinatoire
21
1) Illustration du B&B sur le problème de sac à dos

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


22
1) Illustration du B&B sur le problème de sac à dos

Il n’existe plus de nœuds à parcourir. La meilleure solution est la


solution intégrale ayant la plus grande borne inférieure LB. Donc, la
meilleure solution inclut les objets 1, 2, 4 et 7 qui ont un poids total
égal à 10 et un profit total égal à LB = 133.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


23
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Rappel du problème TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


24
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Rappel du problème TSP

Table illustrative du nombre de nœuds possibles d’un arbre


de recherche B&B en fonction du nombre de villes n.
©2021 Dr. Slim BECHIKH Optimisation Combinatoire
25
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


26
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


27
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


28
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


29
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


30
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


31
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


32
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


33
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


34
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

320 - 320 = 0

750 - 300 = 450

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


35
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


36
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

260 - 60 = 200

300 - 100 = 200

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


37
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

Total lignes + Total colonnes = 1810


©2021 Dr. Slim BECHIKH Optimisation Combinatoire
38
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

60 +70 = 130

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


39
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


40
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


41
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


42
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

1990 = Valeur du père + Regret (NB)


= 1810 + 180

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


43
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


44
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


45
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


46
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


47
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

1990 = 1810 + Total supprimé


= 1810 + 180 = 1990

La recherche des minimums sur lignes


et colonnes ainsi que les soustractions
sont effectuées dans cette matrice.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


48
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

2350 = Valeur du père + Regret maximal


= 1990 + 360
= 2350

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


49
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

Matrice des coûts après élimination de la


ligne P et de la colonne N.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


50
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


51
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

1990 = Valeur du père + Total supprimé


= 1990 + 0
= 1990

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


52
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

Regret = min ligne + min


colonne = 280 + 0 = 280

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


53
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

Regret maximal

2270 = Valeur du père + Regret


maximal = 1990 + 280

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


54
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


55
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

1990 = Valeur du père + Total


supprimé = 1990 + 0

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


56
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

Regret = min ligne + min


colonne = 150 + 200 = 350

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


57
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

Regret maximal = 350

2340 = Valeur du père + Regret


maximal = 1990 + 350

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


58
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

Matrice des coûts après suppression


de la ligne L et de la colonne D.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


59
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


60
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

1990 = Valeur du père + Total


supprimé = 1990 + 0

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


61
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


62
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


63
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


64
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


65
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


66
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


67
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


68
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


69
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


70
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


71
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


72
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


73
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


74
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


75
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


76
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


77
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


78
2) Illustration du B&B sur le problème du voyageur
de commerce (Algorithme de Little)
Algorithme de Little: B&B pour le TSP
Corrigé de l’exercice

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


79
3) Exercice 2.1: B&B pour le problème d’affectation

Enoncé
Soit 4 agents à affecter à 4 tâches. Le coût de l’affectation de l’agent i à la tâche j est
donné par la matrice ci-dessous. Le problème consiste à affecter chaque agent à
une seule tâche de telle manière à minimiser le coût total. Bien entendu, une tâche
ne peut être réalisée que par un seul agent.

Tâche 1 Tâche 2 Tâche 3 Tâche 4


Agent A 9 2 7 8
Agent B 6 4 3 7
Agent C 5 8 1 8
Agent D 7 6 9 4

1) Proposer une borne inférieure pour ce problème.


2) Déterminer la solution optimale en utilisant l’algorithme B&B.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


80
3) Exercice 2.1: B&B pour le problème d’affectation

Corrigé
Tâche 1 Tâche 2 Tâche 3 Tâche 4

Agent A 9 2 7 8
Agent B 6 4 3 7
Agent C 5 8 1 8
Agent D 7 6 9 4

1) Proposer une borne inférieure pour ce problème:


Une borne inférieure est une valeur minimale de la fonction objectif là où aucune
solution réalisable ne peut avoir une valeur qui lui est inférieure. Selon cet exemple,
une solution ne peut pas avoir une valeur qui soit inférieure à la somme des
minimums des lignes: LB = 2 + 3 + 1 + 4 = 10

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


81
3) Exercice 2.1: B&B pour le problème d’affectation

Corrigé
2) Déterminer la solution optimale en utilisant
l’algorithme B&B.
F0
START
LB = 10
LB(F4) = C(A, 4) + Min(Ligne B) +
Min(Ligne C) + Min(Ligne D)
= 8 + 3 + 1 + 6 = 18
F1 F2 F3 F4
A←1 A←2 A←3 A←4
LB = 17 LB = 10 LB = 20 LB = 18

LB(F1) = C(A, 1) + Min(Ligne B) + Min(Ligne C) + Min(Ligne D)


= 9 + 3 + 1 + 4 = 17
Remarque: On écarte les ligne(s) et colonne(s) des tâche(s) affectée(s) et
on effectue le calcul de LB à partir du reste de la matrice.
©2021 Dr. Slim BECHIKH Optimisation Combinatoire
82
3) Exercice 2.1: B&B pour le problème d’affectation

Corrigé
2) Déterminer la solution optimale en utilisant
l’algorithme B&B.
F0
START
LB = 10

F1 F2 F3 F4
A←1 A←2 A←3 A←4
On détaille le nœud ayant la
LB = 17 LB = 10 LB = 20 LB = 18 meilleure LB.

F5 F6 F7
B←1 B←3 B←4
LB = 13 LB = 14 LB = 17

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


83
3) Exercice 2.1: B&B pour le problème d’affectation

Corrigé
F0
START
LB = 10

F1 F2 F3 F4
A←1 A←2 A←3 A←4
LB = 17 LB = 10 LB = 20 LB = 18

Les nœuds F8 et F9 correspondent à des


F5 F6 F7 solutions complètes réalisables. La
B←1 B←3 B←4 solution correspondante au nœud F8 a un
LB = 13 LB = 14 LB = 17 coût égal à 13 qui est inférieur à toutes les
LB des nœuds actifs.
F8 F9
C←3 C←4
D←4 D←3
C = 13 C = 25

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


84
3) Exercice 2.1: B&B pour le problème d’affectation

Corrigé
F0
START
LB = 10

F1 F2 F3 F4
A←1 A←2 A←3 A←4 On doit élaguer tous ces
nœuds ayant des LB (ou
LB = 17 LB = 10 LB = 20 LB = 18
coûts) supérieures à 13.

F5 F6 F7
B←1 B←3 B←4
LB = 13 LB = 14 LB = 17
Solution optimale:
F8 F9 A ← 2, B ← 1, C ← 3, D ← 4
C←3 C←4
D←4 D←3
C = 13 C = 25

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


85
4) Exercice 2.2: B&B pour l’ordonnancement

Enoncé
Supposons que nous avons 4 tâches et 3 machines de sorte que chaque tâche doit
passer par les 3 machines dans l’ordre. Soit ai / bi / ci le temps d’exécution de la
tâche Ti sur la machine M1 / M2 / M3. Nous désirons déterminer la permutation
optimale des tâches sur les machines qui minimise le makespan.

ai bi ci
(sur M1) (sur M2) (sur M3)
Tâche 1 1 8 4
Tâche 2 2 4 5
Tâche 3 6 2 8
Tâche 4 3 9 2

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


86
4) Exercice 2.2: B&B pour l’ordonnancement

Enoncé
Questions:
1) Tracer le diagramme de GANTT de la solution (1, 2, 3, 4).
2) Tracer le diagramme de GANTT de la solution (4, 3, 1, 2).
3) Proposer une borne inférieure LB sur le makespan CMAX en utilisant les variables:
αik = Date de fin de la tâche Ti sur la machine M1 lorsque Ti est exécutée à la kème position;
βik = Date de fin de la tâche Ti sur la machine M2 lorsque Ti est exécutée à la kème position;
γik = Date de fin de la tâche Ti sur la machine M3 lorsque Ti est exécutée à la kème position;
4) Définir une première borne supérieure calculée en évaluant la solution (1, 2, 3, 4).
5) Développer l’arbre de recherche B&B pour trouver la solution optimale.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


87
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé
1) Tracer le diagramme de GANTT de la solution (1, 2, 3, 4).

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


88
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé
2) Tracer le diagramme de GANTT de la solution (4, 3, 1, 2).

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


89
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé
3) Proposer une borne inférieure LB sur le makespan CMAX en utilisant les variables:
αik = Date de fin de la tâche Ti sur la machine M1 lorsque Ti est exécutée à la kème position;
βik = Date de fin de la tâche Ti sur la machine M2 lorsque Ti est exécutée à la kème position;
γik = Date de fin de la tâche Ti sur la machine M3 lorsque Ti est exécutée à la kème position;

Pour proposer une borne inférieure LB, nous suivons les étapes suivantes:

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


90
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé
Etape 0: Exprimer récursivement la façon de calculer chaque variable:

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


91
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé
Etape 0: Exprimer récursivement la façon de calculer chaque variable:

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


92
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé
Etape 0: Exprimer récursivement la façon de calculer chaque variable:

bik

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


93
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé
Etape 0: Exprimer récursivement la façon de calculer chaque variable:

( )

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


94
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé
Etape 1: L’algorithme B&B nécessite de partitionner les tâches en 2 sous-ensembles:
•A: Sous-ensemble des tâches exécutées jusqu’à l’instant (Indices = {1, ..., k});
•U: Sous-ensemble des tâches non encore exécutées (Indices = {k+1, ..., n}).
Pour calculer une borne inférieure, nous allons considérer les 3 situations les plus favorables
qui peuvent se présenter de sorte que nous exprimons le plus court temps d’exécution des
tâches de l’ensemble U (non encore exécutées).

Situation I: L’exécution sur la machine M1 est continuelle, ce qui est un évènement vrai. Soit
Ti(n) la dernière tâche exécutée d’une solution donnée. Le meilleur cas pour Ti(n) est de ne pas
attendre sur les machines M2 et M3 . De cette façon, le makespan sera:

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


95
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé
Situation I:
1) M1 est continuelle.
2) Pas d’attente ni sur M2 ni sur M3 pour Ti(n).
🡺 Quelle que soit la solution, le makespan sera:

M1 est Pas d’attente


continuelle en sur M2.
exécution.

Pas d’attente
sur M3.

( )

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


96
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé

L’opérateur « min » nous a permis de transformer b3 + c3


« = » en « ≥ ». On est certain que CMAX ne peut b4 + c4
pas être inférieur à cette quantité.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


97
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé

Situation II: Similairement, si nous considérons que l’exécution sur la machine M2 est
continuelle et qu’il n’ y a pas d’attente sur M3, le makespan sera:

M2 est continuelle en Temps d’exécution de la


exécution. dernière tâche Ti(n) sur M3.
Pas d’attente sur M3.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


98
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé
Par conséquent, si on choisit le plus court temps d’exécution sur la machine M3, alors que ce
soit la solution, nous aurons:

L’opérateur « min » nous a permis de transformer « = » en « ≥ ». On


est certain que CMAX ne peut pas être inférieur à cette quantité.

Situation III: Similairement, si nous considérons que l’exécution sur la machine M3 est
continuelle, le makespan sera borné comme suit:

C’est un cas
trivial.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


99
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé
Etape 2: En conclusion, que ce soit la solution, son makespan ne peut pas être inférieur au
maximum des 3 expressions des 3 situations:

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


100
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé
Etape 3: Calcul de la borne inférieure LB:

Au début, le sous-ensemble des tâches


exécutées A est vide.

25

On ne peut pas avoir un makespan


inférieur à 25.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


101
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé
4) Définir une première borne supérieure calculée en évaluant la solution (1, 2, 3, 4).

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


102
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


103
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé

= max
2

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


104
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé

La solution est complète, donc:


Borne inférieure = CMAX (Sol = [1, 2, 3, 4]) = 28 = Une première borne supérieure UB.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


105
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


106
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé
5) Développer l’arbre de recherche B&B pour trouver la solution optimale.

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


107
4) Exercice 2.2: B&B pour l’ordonnancement

Corrigé
5) Développer l’arbre de recherche B&B pour trouver la solution optimale.

Chaque nœud ayant une LB


supérieure à UB = 28 est élagué. Les
branches correspondantes à ces
nœuds sont montrées en pointillés.

La permutation optimale est:


1→2→3→4

©2021 Dr. Slim BECHIKH Optimisation Combinatoire


108

Vous aimerez peut-être aussi