2. Plan
• Définition et modélisation.
• Exemples d’applcation.
• Méthodes de résolution.
• Exemple 1 : Sac à dos
(méthode : Brunch and Bound )
• Exemple 2 : Problème du voyageur de commerce
( méthode dynamique )
3. Programmation binaire :
Un problème d’optimisation en nombres binaires est un problème d’optimisation
dont toutes les variables sont contraintes à ne prendre que des valeurs binaires (0/1).
Définition :
Modélisation :
Sous contraintes :
4. Exemples d’application
Sac à dos (Knapsack Problem)
Découpage de matière première
Allocation de fréquences pour les réseaux radio-mobiles
Positionnement d'antennes pour les réseaux radio-mobiles
Routage dans les réseaux télécom
Ordonnoncement de tâches dans un atelier de production
(Jobshop Scheduling) (Airbus)
Affectation de personnel (Air France)
répartition des charges dans les camions/conténaires (Bin Packing)
...
6. Exemple : Sac à dos ( Cas général )
• Données : sac à dos vide, n objets ayant chacun un poids et une valeur
• Objectif : maximiser la valeur totale des objets dans le sac
• Contrainte : poids maximal autorisé dans le sac
7. Exemple 1 : Sac à dos
Objet Valeur ($) Poids (kg) Valeur / Poids ($/kg)
1 45 3 15
2 30 5 6
3 45 9 5
4 10 5 2
Max P = 16
10. Exemple 2 : Problème du voyageur de commerce
• Données : n villes, une matrice de distances D = (dij)
• Objectif : trouver un chemin passant une fois et une seule par chaque ville
et minimisant la distance totale parcourue
• Variantes :
• Orientation
• Symétrie
• Complexité :
• Temps pour parcourir tous les chemins possible
n Temps de calcul²
5 12 microsecondes
15 12 heures
2 - un trajet évalué en une microseconde
11. Exemple 2 : Problème du voyageur de commerce
B
E
D
A
C
A B C D E
A - 7 6 8 4
B 7 - 8 5 6
C 6 8 - 9 7
D 8 5 9 - 8
E 4 6 7 8 -
• Données : Soient 5 villes : A, B, C, D et E. Les distances entre les villes sont décrites
dans la matrice de distances suivante.
• Objectif : Calculer le plus court chemin passant une et une seule fois par toutes ces
villes.
12. Exemple 2 : Problème du voyageur de commerce
1 A B C D E
A - 7 6 8 4 4
B 7 - 8 5 6 5
C 6 8 - 9 7 6
D 8 5 9 - 8 5
E 4 6 7 8 - 4
2 A B C D E
A - 3 2 4 0
B 2 - 3 0 1
C 0 2 - 3 1
D 3 0 4 - 3
E 0 2 3 4 -
3 A B C D E
A - 3 2 4 0
B 2 - 3 0 1
C 0 2 - 3 1
D 3 0 4 - 3
E 0 2 3 4 -
0 0 2 0 0
4 A B C D E
A - 3 0 4 0
B 2 - 1 0 1
C 0 2 - 3 1
D 3 0 2 - 3
E 0 2 1 4 -
13. Exemple 2 : Problème du voyageur de commerce
4 A B C D E
A - 3 0 4 0
B 2 - 1 0 1
C 0 2 - 3 1
D 3 0 2 - 3
E 0 2 1 4 -
5 A B C D E
A - 3 01 4 01
B 2 - 1 04 1
C 01 2 - 3 1
D 3 04 2 - 3
E 01 2 1 4 -
B D
14. Exemple 2 : Problème du voyageur de commerce
6 A B C E
A - 3 0 0
C 0 2 - 1
D 3 - 2 3
E 0 2 1 -
7 A B C E
A - 3 0 0
C 0 2 - 1
D 3 - 2 3 2
E 0 2 1 -
2
8 A B C E
A - 1 0 0
C 0 0 - 1
D 1 - 0 1
E 0 0 1 -
9 A B C E
A - 1 00 01
C 00 00 - 1
D 1 - 01 1
E 00 00 1 -
A E
15. Exemple 2 : Problème du voyageur de commerce
10 A B C
C 0 0 -
D 1 - 0
E - 0 1
11 A B C
C 01 00 -
D 1 - 02
E - 01 1
11 A B
C 0 0
E - 0
12 A B
C 00 00
E - 00
E A est impossible
E B
D C
C A
16. Exemple 2 : Problème du voyageur de commerce
B
E
D
A
C
B D
A E
D C
E B
C A
17. Heuristique constructive : Gloutonne
Un algorithme glouton (greedy) est un algorithme qui, à chaque étape de la
résolution d'un problème, fait un choix optimal dans l'espoir que le résultat final
soit optimal.
Définition :
B
E
D
A
C
A B C D E
A - 7 6 8 4
B 7 - 8 5 6
C 6 8 - 9 7
D 8 5 9 - 8
E 4 6 7 8 -
B D
A E
D C
E B
C A
18. Exemple 2 : Problème du voyageur de commerce
B
E
D
A
C
B D
A E
D C
E B
C A
19. Bibliographie
• Cours : Introduction à l’optimisation combinatoire
– S. Ben Ismail
• Cours : Optimisation en nombres entiers
– Michel Bierlaire
• Wikipedia
• Youtube : Travelling Salesman Problem - Minimizing Distance
– Happy Learning
• Livre : la recherche opérationnelle par l’exemple tome 1.