Google OR-Tools
La suite d'optimisation combinatoire open-source de Google
Présentation
Google OR-Tools est une suite logicielle d'optimisation combinatoire développée et maintenue par Google. Elle fournit des solveurs pour résoudre des problèmes de planification, de routing, d'affectation et de scheduling à grande échelle.
OR-Tools n'est pas un produit commercial de Google Cloud. C'est un projet open-source, publié sous licence Apache 2.0, développé par l'équipe Google Research. Le code source est intégralement disponible sur GitHub.
La suite inclut plusieurs solveurs spécialisés. Planopti utilise spécifiquement CP-SAT, le solveur de programmation par contraintes avec satisfaisabilité booléenne.
Licence Apache 2.0
OR-Tools est distribué sous licence Apache 2.0, une licence open-source permissive qui autorise :
- L'utilisation commerciale sans frais de licence ni redevance
- La modification et l'intégration dans des produits propriétaires
- La redistribution sous forme binaire ou source
- L'utilisation privée sans obligation de publication
La licence Apache 2.0 n'impose pas de divulgation du code propriétaire qui utilise la bibliothèque. Le code de Planopti (dashboard, modélisation des contraintes opérationnelles, interfaces) reste la propriété exclusive de Planopti SA. Seul le composant OR-Tools est open-source.
Pour le client, cela signifie que le moteur d'optimisation intégré à Planopti est publiquement auditable. N'importe quel développeur ou auditeur peut inspecter le code source de CP-SAT sur le dépôt officiel de Google.
Domaines d'application
OR-Tools couvre plusieurs familles de problèmes d'optimisation :
- Programmation par contraintes (CP-SAT) : scheduling, affectation, planification sous contraintes. C'est le solveur utilisé par Planopti
- Programmation linéaire et entière (GLOP, PDLP) : optimisation de fonctions linéaires avec variables continues ou entières
- Routing (véhicules) : tournées de véhicules, problème du voyageur de commerce, livraisons
- Bin packing : rangement optimal d'objets dans des conteneurs
- Flots de réseau : optimisation sur des graphes (transport, allocation)
Google utilise OR-Tools en interne pour ses propres problèmes d'optimisation : scheduling de datacenter, planification logistique, allocation de ressources.
OR-Tools dans Planopti
Planopti utilise exclusivement le solveur CP-SAT d'OR-Tools pour générer les plannings mensuels. Voici comment les composants s'articulent :
- CP-SAT reçoit le modèle mathématique (variables, contraintes, objectif) et calcule la solution optimale
- Planopti traduit vos données opérationnelles (staff, qualifications, shifts, besoins, absences) en un modèle CP-SAT, puis interprète le résultat en planning lisible
Concrètement, Planopti est responsable de :
- La modélisation des contraintes opérationnelles (qualifications, repos réglementaires, couverture des postes, équité intra-groupe)
- Le dashboard de gestion (saisie du staff, des shifts, des besoins, des contraintes)
- La traduction des données en variables et contraintes mathématiques
- L'interprétation du résultat CP-SAT en grille de planning
- L'export en Excel et PDF
CP-SAT ne sait rien de votre métier. C'est un solveur générique. Toute l'expertise métier est dans le code Planopti, qui le déploie en parallèle de votre système.
Langages et plateformes
OR-Tools est disponible en 4 langages :
- Python : le langage le plus utilisé avec OR-Tools. Installation en une commande :
pip install ortools. Planopti utilise Python - C++ : langage natif du solveur, performances maximales
- Java : via Maven
- C# (.NET) : via NuGet
Plateformes supportées :
- Linux (Ubuntu, Debian, Fedora, Alpine, 64-bit)
- macOS (Intel et Apple Silicon)
- Windows (64-bit)
Planopti est déployé on-premise sur votre infrastructure. Le solveur CP-SAT (Google OR-Tools) fonctionne nativement sans accès internet.
Maturité et communauté
Quelques chiffres sur le projet OR-Tools :
- 13 200+ stars sur GitHub
- 150+ contributeurs
- 15 800+ commits
- 52 releases (version actuelle : v9.15, janvier 2026)
- Médaille d'or au concours international de programmation par contraintes (MiniZinc Challenge) chaque année depuis 2018
OR-Tools est un projet activement maintenu par Google avec des releases régulières. La communauté inclut des chercheurs, des développeurs industriels et des universitaires.
Documentation officielle
Ressources pour approfondir :