SlideShare une entreprise Scribd logo
1  sur  32
Pourquoi l’optimisation combinatoire c’est cool ;)
 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 ?
Introduction
 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
Ça résoudra quoi ?
 Ordonnancement
 Découpes optimales
 Localisation (entrepôts, antennes)
 Emploi du temps
 Affectation de taches
 Mélanges
 Fiabilité de réseaux
 Production
 Simple à utiliser
DATA #Programme Solveurs
Txt, Bdd,
XML…
C++, C#, Java,
Python… Gurobi, Cplex,
LpSolve…
API
 Le modèle peut se perdre dans le
code applicatif.
 Chacun a sa propre API.
 Les performances peuvent varier
selon les problèmes.
DATA #Programme
Gurobi
Cplex
LpSolve
AMPL
API
Oh oui une histoire !
 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.
 On travaille avec des livreurs de journaux et on aimerait pouvoir leur proposer
des tournées clé en main pour satisfaire nos clients !
1 2
3
4 5
 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
 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 !
 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
 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 ?
 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 ?
 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
 Le meilleur des deux monde dans l’optimisation multi-objectif ?
 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
Génial !!! Du coup P = NP ???
 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.
 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…).
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++.
Decrire pour mieux resoudre

Contenu connexe

Similaire à Decrire pour mieux resoudre

Usable software design - code utilisable
Usable software design - code utilisableUsable software design - code utilisable
Usable software design - code utilisablemartinsson
 
Nbs System - Benchmark des solutions e-commerce
Nbs System - Benchmark des solutions e-commerceNbs System - Benchmark des solutions e-commerce
Nbs System - Benchmark des solutions e-commercepolenumerique33
 
Benchmark des solutions e-commerce pour la France par NBS System
Benchmark des solutions e-commerce pour la France par NBS SystemBenchmark des solutions e-commerce pour la France par NBS System
Benchmark des solutions e-commerce pour la France par NBS SystemChristian Radmilovitch
 
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Ametys
 
Jérémy Héritier - Comment Index Exchange a gagné la course au Header Bidding
Jérémy Héritier - Comment Index Exchange a gagné la course au Header BiddingJérémy Héritier - Comment Index Exchange a gagné la course au Header Bidding
Jérémy Héritier - Comment Index Exchange a gagné la course au Header BiddingWeb à Québec
 
Polarion webinaire valeur(s) 2018 10 18
Polarion webinaire valeur(s) 2018 10 18Polarion webinaire valeur(s) 2018 10 18
Polarion webinaire valeur(s) 2018 10 18Olaf de Hemmer Gudme
 
Introduction à l'agilité
Introduction à l'agilitéIntroduction à l'agilité
Introduction à l'agilitéJonas Vonlanthen
 
Internet et Relation client
Internet et Relation clientInternet et Relation client
Internet et Relation clientjmplanche
 
Ce qui compte c'est les valeurs ! Introduction à la programmation fonctionnelle
Ce qui compte c'est les valeurs ! Introduction à la programmation fonctionnelleCe qui compte c'est les valeurs ! Introduction à la programmation fonctionnelle
Ce qui compte c'est les valeurs ! Introduction à la programmation fonctionnelleRaphaël Bacconnier
 
Comment j'ai amélioré mon Kanban grâce à Bison futé - KanbanDay FR 2015
Comment j'ai amélioré mon Kanban grâce à Bison futé - KanbanDay FR 2015Comment j'ai amélioré mon Kanban grâce à Bison futé - KanbanDay FR 2015
Comment j'ai amélioré mon Kanban grâce à Bison futé - KanbanDay FR 2015Cyrille Deruel
 
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...DC CONSULTANTS
 
Legal Risks In Erp Projects Paris 2007
Legal Risks In Erp Projects Paris 2007Legal Risks In Erp Projects Paris 2007
Legal Risks In Erp Projects Paris 2007Andre Meillassoux
 
Support Formation Samsung - Python - Session 2 - 2022.pptx
Support Formation Samsung - Python - Session 2 - 2022.pptxSupport Formation Samsung - Python - Session 2 - 2022.pptx
Support Formation Samsung - Python - Session 2 - 2022.pptxbpmana
 
Introduction NoSQL 201401 - Ensim
Introduction NoSQL 201401 - EnsimIntroduction NoSQL 201401 - Ensim
Introduction NoSQL 201401 - EnsimLaurent Broudoux
 
meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23Frederic Leger
 
La solution-a-la-dette-technique
La solution-a-la-dette-techniqueLa solution-a-la-dette-technique
La solution-a-la-dette-techniqueFabrice Aimetti
 
La solution-a-la-dette-technique
La solution-a-la-dette-techniqueLa solution-a-la-dette-technique
La solution-a-la-dette-techniqueFabrice Aimetti
 
Observatoire de l'agile : Controlez vous ce que vous mesurez ?
Observatoire de l'agile : Controlez vous ce que vous mesurez ?Observatoire de l'agile : Controlez vous ce que vous mesurez ?
Observatoire de l'agile : Controlez vous ce que vous mesurez ?Jonathan Scher
 

Similaire à Decrire pour mieux resoudre (20)

Usable software design - code utilisable
Usable software design - code utilisableUsable software design - code utilisable
Usable software design - code utilisable
 
Nbs System - Benchmark des solutions e-commerce
Nbs System - Benchmark des solutions e-commerceNbs System - Benchmark des solutions e-commerce
Nbs System - Benchmark des solutions e-commerce
 
Running lean meetup 18 mai 2017
Running lean   meetup 18 mai 2017Running lean   meetup 18 mai 2017
Running lean meetup 18 mai 2017
 
Benchmark des solutions e-commerce pour la France par NBS System
Benchmark des solutions e-commerce pour la France par NBS SystemBenchmark des solutions e-commerce pour la France par NBS System
Benchmark des solutions e-commerce pour la France par NBS System
 
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
Refonte intranet du Conseil Général de la Drôme avec le CMS open source Amety...
 
Jérémy Héritier - Comment Index Exchange a gagné la course au Header Bidding
Jérémy Héritier - Comment Index Exchange a gagné la course au Header BiddingJérémy Héritier - Comment Index Exchange a gagné la course au Header Bidding
Jérémy Héritier - Comment Index Exchange a gagné la course au Header Bidding
 
Polarion webinaire valeur(s) 2018 10 18
Polarion webinaire valeur(s) 2018 10 18Polarion webinaire valeur(s) 2018 10 18
Polarion webinaire valeur(s) 2018 10 18
 
Introduction à l'agilité
Introduction à l'agilitéIntroduction à l'agilité
Introduction à l'agilité
 
Internet et Relation client
Internet et Relation clientInternet et Relation client
Internet et Relation client
 
Forum PHP 2014 day 1
Forum PHP 2014 day 1Forum PHP 2014 day 1
Forum PHP 2014 day 1
 
Ce qui compte c'est les valeurs ! Introduction à la programmation fonctionnelle
Ce qui compte c'est les valeurs ! Introduction à la programmation fonctionnelleCe qui compte c'est les valeurs ! Introduction à la programmation fonctionnelle
Ce qui compte c'est les valeurs ! Introduction à la programmation fonctionnelle
 
Comment j'ai amélioré mon Kanban grâce à Bison futé - KanbanDay FR 2015
Comment j'ai amélioré mon Kanban grâce à Bison futé - KanbanDay FR 2015Comment j'ai amélioré mon Kanban grâce à Bison futé - KanbanDay FR 2015
Comment j'ai amélioré mon Kanban grâce à Bison futé - KanbanDay FR 2015
 
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
 
Legal Risks In Erp Projects Paris 2007
Legal Risks In Erp Projects Paris 2007Legal Risks In Erp Projects Paris 2007
Legal Risks In Erp Projects Paris 2007
 
Support Formation Samsung - Python - Session 2 - 2022.pptx
Support Formation Samsung - Python - Session 2 - 2022.pptxSupport Formation Samsung - Python - Session 2 - 2022.pptx
Support Formation Samsung - Python - Session 2 - 2022.pptx
 
Introduction NoSQL 201401 - Ensim
Introduction NoSQL 201401 - EnsimIntroduction NoSQL 201401 - Ensim
Introduction NoSQL 201401 - Ensim
 
meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23
 
La solution-a-la-dette-technique
La solution-a-la-dette-techniqueLa solution-a-la-dette-technique
La solution-a-la-dette-technique
 
La solution-a-la-dette-technique
La solution-a-la-dette-techniqueLa solution-a-la-dette-technique
La solution-a-la-dette-technique
 
Observatoire de l'agile : Controlez vous ce que vous mesurez ?
Observatoire de l'agile : Controlez vous ce que vous mesurez ?Observatoire de l'agile : Controlez vous ce que vous mesurez ?
Observatoire de l'agile : Controlez vous ce que vous mesurez ?
 

Decrire pour mieux resoudre

  • 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
  • 6.  Ordonnancement  Découpes optimales  Localisation (entrepôts, antennes)  Emploi du temps  Affectation de taches  Mélanges  Fiabilité de réseaux  Production
  • 7.  Simple à utiliser DATA #Programme Solveurs Txt, Bdd, XML… C++, C#, Java, Python… Gurobi, Cplex, LpSolve… API
  • 8.  Le modèle peut se perdre dans le code applicatif.  Chacun a sa propre API.  Les performances peuvent varier selon les problèmes.
  • 10. Oh oui une histoire !
  • 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 !
  • 13.
  • 14.
  • 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
  • 27. Génial !!! Du coup P = NP ???
  • 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++.