2. L’optimisation combinatoire : Qu’est ce que c’est ?
Pour quels problèmes ?
En pratique ça donne quoi ?
Génial ! Du coup P = NP ?
Comment tu vois ça en ingénierie ?
4. Branche des mathématiques et de
l’informatique.
Recherche d’une « meilleure »
solution dans un ensemble discret de
solution réalisable.
Cet ensemble contient généralement
un très grand nombre d’éléments.
Problèmes de
minimisation/maximisation sous
contraintes.
Un problème d’optimisation
combinatoire est donc composé de
quatre objets essentiels :
Des paramètres
Des variables
Un fonction objectif
Un ensemble de contraintes
11. Travaille avec des livreurs de
journaux
Voudrait organiser de façon
automatique leurs tournées.
Aime bien faire des économies.
Voudrait que tout soit fait pour hier.
12. On travaille avec des livreurs de journaux et on aimerait pouvoir leur proposer
des tournées clé en main pour satisfaire nos clients !
16. Livreur L1
Distance parcourue 6
Nombre de clients satisfaits 4
Livreur L2
Distance parcourue 9,5
Nombre de clients satisfaits 6
Livreur L3
Distance parcourue 13
Nombre de clients satisfaits 2
Distance totale : 28,5
NB Clients satisfaits : 12
17. Nous avons décidé de réduire nos émissions de CO2 en limitant la distance
parcourue par nos livreurs.
On fera aussi des économies mais attention : ça ne doit pas se faire au détriment
de la satisfaction de nos clients !
18.
19. Livreur L1
Distance parcourue 0
Nombre de clients satisfaits 0
Livreur L2
Distance parcourue 8
Nombre de clients satisfaits 8
Livreur L3
Distance parcourue 2,5
Nombre de clients satisfaits 4
Distance totale : 10,5
NB Client satisfaits : 12
20. Tout compte fait on souhaiterait pouvoir contrôler le nombre de clients qu’on
s’autorise a ne pas livrer dans les temps Vous pouvez rendre votre algorithme
paramétrable ?
21.
22. La grève fait rage ! Il semblerait qu’on ne répartisse pas suffisamment la charge
de livraison et nos livreurs sont en colère !
Oubliez un peu (mais pas trop) l’écologie et faites en sorte que tout le monde
puisse travailler « équitablement » !
Quoi que… Vous pouvez rendre ça paramétrable pour qu’on puisse jouer un peu
avec après la grève ?
23.
24. Livreur L1
Distance parcourue 6
Nombre de clients satisfaits 4
Livreur L2
Distance parcourue 12,5
Nombre de clients satisfaits 4
Livreur L3
Distance parcourue 8,5
Nombre de clients satisfaits 4
Distance totale parcourue : 27
Nb Clients satisfaits : 12
25. Le meilleur des deux monde dans l’optimisation multi-objectif ?
26. Livreur L1
Distance parcourue 3
Nombre de clients satisfaits 4
Livreur L2
Distance parcourue 7
Nombre de clients satisfaits 4
Livreur L3
Distance parcourue 2,5
Nombre de clients satisfaits 4
Distance totale parcourue 12,5
Nb Clients satisfaits : 12
28. Une complexité qui croit avec le nombre de variables entières (ou binaires).
Attention aux solutions équivalentes. (preuve d’optimalité).
Certaines contraintes sont plus difficiles que d’autres.
Les techniques de décomposition ont un intérêt limité.
Et… Il n’est pas possible de tout exprimer avec elle.
29.
30. Temps de développement réduit.
Tests fonctionnels puissants.
Plateforme de communication avec le client.
Mock fonctionnel dans l’application le temps de
développer un algorithme d’approximation. (Ou une
heuristique…).
31. AMPL
4000$ pour la licence mono machine.
Si on ajoute un solveur payant il faut
compter 9000 euros de plus.
Aucun intérêt
Les alternatives
Pyomo pour Python avec un solveur
gratuit comme LpSolve.
Julia (Jump) avec LpSolve : peut être
appelé depuis Python, Java et bien
sur C++.