Vous êtes sur la page 1sur 27

Université des Sciences et de la Technologie d’Oran

Département Informatique


Travaux Dirigés N°2

Recherche Opérationnelle et Combinatoire
M1 (IAA-RSID-SID)
er
1 Semestre

Des Modèles aux Méthodes de Résolution des POCs

Année Universitaire 2022- 2023


EXERCICE N°1: Algorithme Glouton

l’Algorithme de Glouton est Appliqué aux Problèmes de :

• Sac à dos …………………..(KP)


• Voyageur de Commerce….. (TSP)
• Affectation ………….………(AP)
• Couverture ……….…….…(SCP)
Algorithme Glouton Greedy Algorithm

Un algorithme glouton est un algorithme qui suit le principe de faire,


étape par étape, un choix optimum local, dans l'espoir d'obtenir un
résultat optimum global.
On donne un exemple montrant que l'algorithme glouton n'est pas
optimal pour le Problème du Voyageur de Commerce.
Cet algorithme fait penser à la gloutonnerie des banquiers qui
recherchent le profit à court terme, et finalement à toutes les
politiques à courte vue, qui présentent un choix optimum local
comme devant évidemment mené à un résultat optimum global.
C'est la mode de l'évaluation continue qui relève de l'application de
l'algorithme glouton. On évalue localement pour pouvoir faire un
choix optimum local en tenant pour évident que cela finira par
donner un résultat optimum global.

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.

Suivant le système de pièces, l'algorithme glouton est optimal ou


pas.

Dans le système de pièces européen (en centimes : 1, 2, 5, 10, 20,


50, 100, 200), où l'algorithme glouton donne la somme suivante
pour 37 : 20+10+5+2, on peut montrer que l'algorithme glouton
donne toujours une solution optimale.
Par contre, dans le système de pièces (1, 3, 4), l'algorithme
glouton n'est pas optimal, comme le montre l'exemple simple
suivant.
4 Il donne pour 6 : 4+1+1, alors que 3+3 est optimal.
Greedy Algorithm for KP
1. Algorithme Glouton Problème du Sac à Dos
 

Heuristique gloutonne basée sur les rendements ci/ai


N° ai ci ci/ai
1 3 12 4
2 2 5 2.5
3 4 11.5 2.875
4 2 6 3
Par ordre décroissant, on obtient :
N° ai ci ci/ai Solution gloutonne x = (1 , 0 , 0 ,1)
1 3 12 4 1
4 2 6 3 1 f = 18
3 4 11.5 2.875 0
2 2 5 2.5 0
2. Greedy Algorithm for TSP
2
3
5 4
8
1
Heuristique gloutonne : Le Plus Proche Voisin

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

LA PROCEDURE DE SEPARATION ET D’EVALUATION PROGRESSIVE

• Le Branch & Bound consistant à faire


une énumération implicite en séparant
le problème en sous-problèmes et en
évaluant ceux-ci à l'aide d'une
relaxation (continue ou lagrangienne
principalement) jusqu'à ne plus avoir
que des problèmes faciles à résoudre
ou dont on sait avec certitude qu'ils ne
peuvent pas contenir de solution
optimale ;
9
EXERCICE N°2: Branch & Bound for KP
 
Feasible? Value
0 0 0 0 Yes 0
0 0 0 1 Yes 6
  0 0 1 0 Yes 11,5
0 0 1 1 Yes 17,5
0 1 0 0 Yes 5
0 1 0 1 Yes 11
  0 1 1 0 Yes 16,5
0 1 1 1 No -
1 0 0 0 Yes 12
Dans notre exemple :
1 0 0 1 Yes
Yes 18
  1 0 1 0 No -
1 0 1 1 No -
solutions 1 1 0 0 Yes 17
  réalisables 1 1 0 1 No -
1 1 1 0 No -
1 1 1 1 No -
  ai ci Rdt P P1 P2 P3 P4 P5 P6 P7 P8 P9 P10
1 3 12 4 1 1 2/3 1 1 1 2/3 0 1 0 1
4 2 6 3 1 1 0 1 1/2 0 1 1 ? 1 1
3 4 11.5 2.875 1/4 0 1 0 0 0 0 1 1 0 0
2 2 5 2.5 0 1/2 0 0 1 1 1 0 ? 1 1
b=6
f*=20.875
Sol. Gloutonne P
BEST FIRST x3=0
x3=1
  fsup=20.5 fsup=19.5
P1
P2
  x2=0 x2=1 x1=0 x1=1

P3 fsup=20 P7 P8
P4
x4=1 f=17.5
f=18 x4=0

P5 P6 fsup=19

  f=17 x1=0 x1=1

 
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

- Solution de départ : Utiliser un algorithme glouton


- Stratégie de parcours: Appliquer la stratégie DFS (Deep First Search).
Branch & Bound for TSP

2 Solution gloutonne : a – b – c – d – a de longueur 14


fbest = 12
14

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 BOUND


     
     

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.

L’algorithme se décompose en 4 problématiques :

1. Caractérisation de la structure d’une solution optimale ;

2. Définition récursive de la valeur de la solution optimale.

3. Calcul ascendant de la solution.

4. Construction de la solution à partir du calcul ascendant.

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 :

1. Le problème du Voyageur de Commerce (TSP) suivant (départ : 1)


  1 2 3 4
1 - 5 12 3
2 6 - 8 17
3 18 6 - 11
4 5 10 11 -

2. Le problème du Sac à Dos (KP)


 
Programmation Dynamique de Bellman
1. TSP (départ : 1) S i 1 2 3 4
  1 2 3 4 6 18 5
1 - 5 12 3  
{2} 12 16
2 6 - 8 17
  {3} 26 29
3 18 6 - 11
4 5 10 11 - {4} 22 16
{2,3} 23
     
{2,4} 27
  {3,4} 24
 
{2,3,4} 26
 
   
 
                 
 

 
 
 

 
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

Considérons le problème de l’arbre partiel minimum dans un graphe complet.


 

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.

Ces procédés et systèmes peuvent être des


- Systèmes de transport ou mobilité émergente,
- Télécommunications,
- Systèmes de production/consommation d’énergie,
- Procédés de fabrication.

27

Vous aimerez peut-être aussi