Google OR-Tools
La suite d'optimisation combinatoire open-source de Google. En clair : le moteur de calcul de Planopti est un composant public, éprouvé et vérifiable, pas une boîte noire.
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 (logiciel, modélisation des contraintes opérationnelles, interfaces) reste la propriété exclusive de Planopti. 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)
- L'interface 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 un logiciel de planification du personnel, en local ou hébergé, au choix. Le solveur CP-SAT (Google OR-Tools) est embarqué dans l'application : en mode local, il fonctionne sans connexion 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)
- CP-SAT compte parmi les solveurs les plus titrés du MiniZinc Challenge, la compétition internationale de référence en programmation par contraintes, avec des médailles d'or dans plusieurs catégories la plupart des années depuis 2013
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.
Pourquoi ce moteur plutôt qu'un développement maison
Écrire un solveur de contraintes performant demande des années de recherche. Les techniques qui font la différence, propagation, apprentissage de clauses, recherche parallèle, redémarrages, représentent des dizaines d'années-hommes de travail et sont le sujet de publications scientifiques permanentes.
Construire un moteur maison reviendrait à réinventer, moins bien, ce qu'une équipe de chercheurs entretient à plein temps. Notre valeur n'est pas là. Elle est dans la traduction de votre métier en un modèle mathématique correct : comprendre qu'une règle de convention collective est un interdit et une autre un objectif, savoir quel poids donner à l'équité par rapport à la couverture, et vérifier que le résultat correspond à ce que votre exploitation attend.
C'est ce travail de modélisation qui fait la différence entre un planning théoriquement optimal et un planning que votre équipe accepte.
Ce qu'OR-Tools ne fait pas
OR-Tools est un moteur, pas une application. Il ne connaît ni vos agents, ni vos qualifications, ni votre convention collective. Il ne sait pas ce qu'est un repos de onze heures, un week-end garanti ou un contrat étudiant.
Il ne propose pas non plus d'interface, d'import de fichiers, de gestion des absences ni d'export vers la paie. Fourni seul, il ne sert à rien à un planificateur.
Tout ce qui rend l'outil utilisable au quotidien, la traduction de vos règles, la saisie des besoins, la relecture du planning, les retouches manuelles revérifiées, les exports, est le travail que nous réalisons et que nous vous livrons. OR-Tools en est le moteur, pas le produit.
Pérennité de la solution
La question se pose légitimement : que se passe-t-il si Google cesse de maintenir OR-Tools ?
La licence Apache 2.0 répond en partie. Le code source est public, librement utilisable et modifiable, sans redevance ni condition de renouvellement. Une version publiée reste utilisable indéfiniment, même si le projet s'arrêtait. Aucune licence à renouveler, aucun serveur d'éditeur à interroger pour lancer un calcul.
À cela s'ajoute le fait que votre application vous appartient et fonctionne chez vous. Elle ne dépend d'aucun service en ligne pour calculer un planning. Si notre relation s'arrête, votre outil continue de fonctionner exactement comme le dernier jour.
Documentation officielle
Ressources pour approfondir :