Académique Documents
Professionnel Documents
Culture Documents
Département Informatique
Travaux Dirigés N°2
Recherche Opérationnelle et Combinatoire
M1 (IAA-RSID-SID)
er
1 Semestre
http://mathblogger.free.fr/index.php?
m=06&y=09&entry=entry090603-113913
3
Exemple/ Gloutonnerie
Dans le problème du rendu de monnaie (donner une somme avec
le moins possible de pièces), l'algorithme consistant à répéter le
choix de la pièce de plus grande valeur qui ne dépasse pas la
somme restante est un algorithme glouton.
2 3 1 8
a b c d a
Valeur = 2 + 3 + 1 + 8 = 14
Greedy Algorithm for Assignment Problem
3. Algorithme de Glouton / Problème d’Affectation
1 2 3 4
9 2 7 8
6 4 3 7
5 8 1 8
7 6 9 4
Heuristique gloutonne : Cout minimal
- Affecter la personne à une tâche ayant le plus petit cout
- Si cette tâche est déjà affectée, choisir une autre tâche de cout juste supérieur au cout minimal.
Job a ! Person 2
Job b ! Person 3
Job c ! Person 1
Job d ! Person 4
Valeur = 2 + 3 + 5 + 4 = 14
Geedy Algorithm for SCP
4. Algorithme de Glouton/Problème de Couverture
Projets Quartiers Cout
1 couverts
{1 , 4} d’installation
15
2 {1 , 2 , 4} 65
3
I = {1,2,3,4}
{3 , 4} 30
4 {2 , 3} 60
Heuristique gloutonne basée sur les couts d’installation
Projets Quartiers Cout
1 couverts
{1 , 4} d’installation
15 ☑ Projet 1
3 {3 , 4} 30 ☑ Projet 3
4 {2 , 3} 60 ☑ Projet 4
2 {1, 2 , 4} 65
Valeur = 15 + 30 + 60 = 105
BRANCH & BOUND METHOD
P3 fsup=20 P7 P8
P4
x4=1 f=17.5
f=18 x4=0
P5 P6 fsup=19
P9 P10
f=11
EXERCICE N°2: Branch & Bound for TSP
2
P
3
5 4
P1 P2 P3
8
a-b a-c a-d
1
P4 P5 P6 P7 ……………
a-b-c a-b-d a-c-b a-c-d
Hints:
- Branch : Diviser le problème en sous problèmes en choisissant à chaque fois une ville à visiter.
n
- Borne : égale à 1 (
arc − s )
+ arc − s i 2 où arc − s i et arc − s i 2 arcs adjacents au sommet i
2
∑ i1
1 2
i =1
ayant le plus petit poids
Pour P, la borne est : 1/2[(2+5) + (2+3) + (1+3) + (1+4)] = 10.5
3
Mise à jour
5 4
8
1
Solution optimale :
a–b–d–c–a
de longueur 12 P
P1 P2 P3
ab ac ad
BOUND
P4 P5 P6 P7
abcda abdca acbda acdba
S o l u t i o n s e n t i è r e s
EXERCICE N°2: Branch & Bound for AP
1 2 3 4
9 2 7 8
6 4 3 7
5 8 1 8
7 6 9 4
Branch & Bound for Assignement Problem
1 2 3 4 Solution gloutonne :
9 2 7 8 Borne : : :
6 4 3 7 Borne inférieurede
Borne inférieure
inférieure deP
de P5
P3
P4
P7
P1
P2
P6
5 8 1 8
7 6 9 4
Mise à jour
BEST FIRST P
BOUND BOUND
Sol.Complète Sol.Complète
EXERCICE N°2: Branch & Bound for SCP
Projets Couverture Cout
1 {1 , 4} 15
2 {1 , 2 , 4} 65
3 {3 , 4} 30
4 {2 , 3} 60
P
x1=0 x1=1
P1 P2
x2=0 x2=1 x2=0 x2=1
P3 P4 P5 P6
…………………………………………………
Hints:
- Branch : Diviser le problème en sous problèmes en fixant à chaque niveau un projet.
- Borne : égale au cout des projets sélectionnés + le plus petit cout des projets non fixés,
Pour P, la borne est : 0 + min{15 , 65 , 30 , 60} = 15
Pour P2, la borne est : 15 + min{65 , 30 , 60} = 45
- Solution de départ : utiliser un algorithme glouton
- Stratégie de parcours : appliquer la stratégie DFS.
Branch & Bound for Set Covering Problem
Projets Couverture Cout
1 {1 , 4} 15
2 {1 , 2 , 4} 65
Solution Optimale (P12)
3 {3 , 4} 30 x1=x4=1, x2=x3=0 de valeur 75
4 {2 , 3} 60
Solution gloutonne : x1 = x3 = x4 = 1, x2=0 de valeur 105 fbest = 75
105
95
P
x1=0 x1=1
P1 P2
x2=0 x2=1 x2=0 x2=1
P3 P4 P7 P8
x3=0 x3=1 x3=0 x3=1
Non
Bound
réalisable P5 P6 P9 P10
x4=0 x4=1
Bound Solution Bound
P11 P12
Complète
Non
réalisable Solution
Complète
Principe de la Programmation Dynamique
(PrDy)
C’est une méthodologie pour concevoir des algorithmes dans le but de résoudre des problèmes d’optimisation. Étant donné qu’il existe une
multitude de solutions réalisables, l’algorithme doit fournir la meilleure solution possible. Le concept a été introduit au début des années 1950 par
Richard Bellman. A l’époque, le terme “programmation” signifie planification et ordonnancement.
C’est une méthode de résolution, pour les problèmes qui satisfont au principe d’optimalité de Bellman.
Définition 1. Bellman. Un problème possède la propriété de sous-structure optimale si une solution optimale contient la solution optimale des
sous-problèmes.
Pour développer des algorithmes du type PrDy, il faut avoir une collection de sous-problèmes basés sur le
problème d’origine qui satisfait :
. (i) Il y a un nombre polynomial de sous-problèmes,
. (ii) La solution du problème d’origine se calcule à partir des solutions de ces sous-problèmes (par
exemple parce qu’il est l’un des sous-problèmes),
. (iii) Il y a un ordre naturel entre les sous-problèmes, du “plus petit” au “plus grand”, avec un calcul
facile pour calculer la solution d’un sous-problème à partir de solutions de sous-problèmes plus petits.
18
EXERCICE N°3: Programmation Dynamique
Résoudre en utilisant la programmation dynamique les problèmes suivants :
Dynamic Programming
2. Knapsack Problem
N° N°
1 1
2 2
… …
Programmation Dynamique pour KP
2. KP
Solution optimale
X
L’objet 1 ne peut
être disposé dans
un sac de capacité
1
EXERCICE N°4: Mise en œuvre d’une métaheuristique
1 2 1 2 2 3 4 5
1 4 3 6 3
5 5 2 1 7 9
3 11 4
3 4 3 4 4 8
Optimization by Simulated Annealing
• Méta-heuristique : Recuit simulé (Simulated Annealing)
• Problème : Arbre partiel minimum (Minimum Spanning Tree)
31
1 2 30 1 2 2 3 4 5
1 4 3 6 3
5 5 2 1 7 9
4 4 3 11 4
3 3
4 8
25
• Une définition simple du voisinage serait :
▪ Sélectionner un sommet (aléatoire) 24
▪ Supprimer une arête incidente à ce sommet (aléatoire)
▪ Ajouter une arête qui ne forme pas de cycle
1 2 1 2 1 2 1 2
Supprimer (1,2) Supprimer (2,4) Supprimer (3,4)
5 et ajouter (2,5) 5 et ajouter (4,5) 5 et ajouter (3,5)
5
3 4 3 4 3 4 3 4
Optimisation par Récuit Simulé
Critère de Metropolis
Recuit simulé
Distribution de Boltzmann
1 2 1 2
Supprimer (1,2)
5 et ajouter (2,5) 5
3 4 3 4
Température Probabilité p
60 0,92
30 0,84
10 0,60
5 0,36
3 0,18
OPTIMISATION INDUSTRIELLE
- Modèles,
- Algorithmes et
- Logiciels d’Optimisation et
- Programmation Mathématiques
26
Procédés & Systèmes
les problématiques porteuses
- Organisations industrielles,
- Services,
- Procédés ou
- Systèmes complexes.
27