Aujourd’hui nous avons le plaisir de donner la parole à deux de nos experts afin de (re)découvrir ce qu’est la Recherche Opérationnelle (en abrégé RO) ! En cette occasion, nous avons interviewé Pierre Graber et Guillaume Maran, tous deux développeur en Recherche Opérationnelle. Ensemble nous avons appréhendé ce domaine, échangé sur leur métier et leur quotidien. Découvrons ensemble les coulisses d'une fonction primordiale dans l'entreprise et encore parfois trop méconnue !
Pierre Graber (Développeur en Recherche Opérationnelle) : La RO est une discipline à la frontière entre les mathématiques et l’informatique et qui a pour objectif de résoudre les problèmes d’optimisation.
Ces problèmes sont réputés dur à résoudre, on ne peut pas les résoudre de manière instantanée avec notre ordinateur, et donc pour lesquels il faut avoir des stratégies et algorithmes permettant d’avoir des résolutions de bonne qualité en un temps acceptable.
Guillaume Maran (Développeur en Recherche Opérationnelle) : Pour les gens qui aiment la technique on peut aussi dire que ce sont des problèmes qui ont la particularité de provoquer des explosions combinatoires : il y a énormément de solutions potentielles à ce problème, et quand je dis énormément c’est dans des mesures inimaginables pour l’esprit humain.
La recherche opérationnelle, c'est réfléchir à des problèmes de logistiques concrets que peuvent rencontrer les entreprises, par exemple concevoir le meilleur chemin pour la livraison de colis ou créer des circuits électroniques.
Le but est de concevoir ce qu'on appelle des algorithmes pour résoudre ces problèmes de façon automatique, notamment grâce à la géométrie !*
La recherche opérationnelle (RO) propose des modèles conceptuels pour analyser des situations complexes et permet aux décideurs de faire les choix les plus efficaces.
PG : L’optimisation existe depuis que les mathématiques existent j’ai envie de dire ou depuis que l’on fait des études de fonctions. Le terme RO est apparu pendant la seconde guerre mondiale, “Operation Research” en anglais. Les Anglais avaient besoin d’optimiser les endroits où ils allaient poser des radars de manière à intercepter le plus d’avions allemands (l'implantation optimale de radars de surveillance).
GM : C’est le genre de discipline née lors de la guerre, elle est très récente. Les premières traces remontent à la naissance de l’informatique, justement car ce sont des problèmes très difficilement solvables à la main.
Les origines de la recherche opérationnelle ne sont pas nettement établies, même si on attribue souvent à Charles Babbage (1791/1871) le titre de père de la RO en raison de ses études sur le prix du transport et le tri du courrier, qui ont conduit à l'introduction du Penny Post en Angleterre en 1840.
Un siècle après, la seconde Guerre mondiale, en raison de son envergure, a créé un besoin pressant de gérer efficacement les ressources limitées pour les différentes opérations militaires et les activités au sein de chaque opération. Plus précisément, l'armée britannique puis américaine ont mobilisé de nombreux scientifiques pour superviser ces répartitions et traiter d'autres problèmes stratégiques et tactiques.
Ce faisant, ils furent appelés à poursuivre des recherches sur des opérations (militaires), et constituèrent les premières équipes de RO, notamment celle dirigée par Patrick Blackett, prix Nobel de physique en 1948. Leurs efforts furent significatifs dans la marche vers la victoire, par exemple en ce qui concerne l’utilisation du radar, nouvellement développé. Ces succès encouragèrent la poursuite de l’utilisation de la RO dans d’autres domaines.
PG : La RO c’est le cœur du réacteur, ce qui nous différencie par rapport à d’autres entreprises. Lorsque l’on réalise de la planification ou de la logistique comme la solution Mapo peut le faire pour les tournées de véhicule, la RO permet d’avoir des algorithmes qui vont vite, qui permettent de trouver les tournées qui sont les plus optimisées et donc d’optimiser les coûts pour le client, du temps pour les planificateurs et de fournir un outil d’aide à la décision en trouvant des solutions de bonne qualité.
Le problème de tournées de véhicule est très connu en RO et plus particulièrement chez Mapo. Le besoin de développeurs ou d’ingénieurs en RO est primordial pour pouvoir sans cesse améliorer les algorithmes que l’on a, intégrer de nouvelles contraintes et donc se calquer sur toutes les contraintes métier du client.
GM : C’est le cœur technologique de la solution Mapo pour l’optimisation de tournées. Il n’y a pas d’optimisation de tournées sans Recherche Opérationnelle, c’est absolument essentiel.
PG : La RO est utilisée sous forme d’API, aussi bien par notre solution Mapo que par des clients qui viennent utiliser uniquement l’API d’optimisation car ils n’ont pas d’équipes de RO mais disposent de leurs propres outils pour visualiser les données et afficher la carte et les tournées.
GM : Au travers de l’écriture d’algorithmes, et si on veut entrer dans le détail de métaheuristiques, permettant de résoudre les problèmes. Ces algorithmes sont interfacés avec des API, ces dernières sont utilisées au travers de Mapo ou en direct par nos clients.
PG : Au quotidien, les clients qui ont besoin d’optimiser leurs tournées vont faire appel à l’API indirectement en passant par Mapo Web et parfois un client peut avoir un souci sur ses tournées (pourquoi un client n’a pas été assigné à une tournée, pourquoi mon camion est vide…) souvent ce sont des problèmes de paramétrages sur des contraintes ou autres (ex : il souhaite transporter 100 palettes mais le camion ne peut en contenir que 50) alors on explore et on explique le souci.
Parfois cela peut être plus compliqué car on doit calculer une matrice pour connaître les distances entre chaque point car le client ne comprend pas pourquoi il n’arrive pas à un certain point, on leur explique alors : s’il part du dépôt, le point est à 2 heures de distance et il est donc en dehors de la “Time Window” or il y a des contraintes horaires à respecter sur les tournées. Ces contraintes peuvent être dures à respecter donc nous allons analyser la tournée, calculer les temps de passage et lui expliquer d’où vient le problème.
En général, le support peut répondre aux anomalies mais sinon nous sommes appelés pour résoudre les problèmes.
GM : En plus du support, du développement de notre outil d’optimisation, je réfléchis à la structuration du produit : identifier les besoins qui ne sont pas encore intégrés, comment les intégrer, faire des tests, constater que ça ne marche pas (rires) et trouver des solutions pour que ça fonctionne. Ensuite je valide que cela ne nuit pas à la cohérence globale de l’outil et que ça ne va pas créer des effets de bord (en gros, si je touche la pile de dominos à un endroit, je vérifie que tout ne va pas s’écrouler).
PG : Je code sur VS Code et notre API est écrite en Ruby faisant appel à des solvers que l’on a intégrés en C++.
GM : Feuille de papier, crayon, ordinateur et des outils de développement : Visual Studio Code et nous avons une API d’optimisation qui fonctionne en langage Ruby et C++.
GM : (rire) En vérité, c’est une question intéressante ! C’est une discipline qui se base beaucoup sur la nature et le fonctionnement des phénomènes naturels. Typiquement, si vous prenez le fonctionnement d’une colonie de fourmis, elles ont des logiques qui ont inspiré très, très fortement les algorithmes qui aujourd’hui sont utilisés pour résoudre les problèmes de recherche opérationnelle.
Si l’on regarde les algorithmes standards de nos jours, on va entendre parler de “phéromones” par exemple. Les phéromones sont utilisées par les fourmis afin d’optimiser leur recherche de nourriture. Quant à nous, on adapte exactement ce principe-là à des problèmes logistiques au travers de nos algorithmes.
Plus largement, au travers d’algorithmes dits Évolutionnaires, on s’inspire beaucoup du monde animal en s’inspirant des mêmes mécanismes que ceux que l’on retrouve dans l'Évolution ; avec des mutations, des mélanges, on fait des populations qui font des enfants, des enfants qui ont eux-mêmes des mutations pour s’adapter à leur milieu… Il faut alors voir une tournée de véhicules comme étant un individu d’une population qu’on essaye de rendre le plus efficace possible.
Si on était un animal on serait un peu tous les animaux à la fois car on se base sur le principe de fonctionnement de l’évolution du règne du vivant de manière globale.
Envie de tester Mapo en conditions réelles ? Vous pouvez l’essayer gratuitement durant 7 jours, sans limitation fonctionnelle !
* Source : cite-sciences.fr