Moteur d'optimisation
Optimisation par contraintes pour la planification du personnel. En clair : vous saisissez vos règles, vos absences et vos besoins, le moteur de calcul construit le planning du mois en quelques minutes.
Notre approche
Planopti résout des problèmes d'optimisation combinatoire. Nous modélisons les contraintes opérationnelles de nos clients sous forme mathématique, puis un solveur explore l'espace des solutions possibles pour trouver la meilleure configuration qui respecte l'ensemble des règles définies.
Ce n'est pas de l'intelligence artificielle, ni du machine learning, ni de l'heuristique approximative. C'est de l'optimisation par contraintes : le moteur applique les règles que vous lui donnez, sans rien apprendre ni deviner. Le processus est transparent et auditable.
Nous distinguons deux types de règles :
- Contraintes dures : les règles inviolables. Si une solution ne les respecte pas, elle est rejetée
- Contraintes souples : les objectifs à optimiser. Le solveur minimise les écarts par rapport à l'idéal. Chaque objectif a un poids configurable selon les priorités du client
Le résultat est un score d'optimisation mesurable : plus le score est bas, meilleure est la solution. Le client sait exactement ce que le solveur a priorisé et pourquoi.
Le moteur d'optimisation
Planopti s'appuie sur Google OR-Tools, une suite d'optimisation combinatoire développée par Google Research. Le composant que nous utilisons est CP-SAT (Constraint Programming with Boolean Satisfiability).
CP-SAT combine deux techniques :
- Programmation par contraintes : on déclare les règles que la solution doit respecter, et le solveur cherche les affectations valides
- Satisfaisabilité booléenne (SAT) : le problème est encodé en clauses logiques. Le solveur utilise des techniques avancées (apprentissage de clauses, propagation, redémarrages) pour éliminer efficacement les solutions impossibles
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. C'est un projet open-source avec plus de 13 000 stars sur GitHub, 150+ contributeurs et des releases régulières.
Après chaque exécution, le solveur retourne un statut clair : OPTIMAL (meilleure solution prouvée), FEASIBLE (solution valide, temps limite atteint), ou INFEASIBLE (aucune solution possible avec les contraintes données).
Déploiement
Planopti est un logiciel de planification du personnel, utilisé dans votre navigateur. Il s'installe chez vous, en local (on-premise), ou s'héberge en ligne, au choix. En mode local, le solveur fonctionne sans connexion internet.
- Installation : mise en place par nos équipes, en local ou en ligne, opérationnelle en moins d'une journée
- Isolation : aucune donnée n'est envoyée à un service externe pour le calcul. Pas de télémétrie, pas de callback. En mode local, le système fonctionne en totale autonomie
- Mises à jour : en local, nouvelle version à installer en quelques minutes sur le poste ou le serveur qui fait tourner l'application ; en ligne, mise à jour faite pour vous
Prérequis matériels
- Processeur : le solveur CP-SAT parallélise sa recherche sur les cœurs du processeur (paramètre
num_workersd'OR-Tools, réglé pour utiliser tous les cœurs disponibles). 4 cœurs au minimum, 8 cœurs physiques recommandés. Aucune carte graphique : OR-Tools ne calcule pas sur GPU. - Mémoire : 8 Go au minimum, 16 Go recommandés. OR-Tools plafonne par défaut un calcul à 10 Go.
- Disque : quelques Go (base SQLite, historiques, exports).
- Système : Windows 10/11 ou Windows Server, Linux ou macOS, avec Python 3.12 installé par nos soins. Les planificateurs n'ont besoin que d'un navigateur récent.
- Durée du calcul : une limite de temps réglable, quelques minutes par planning mensuel, pendant lesquelles le processeur est utilisé à plein.
Le client est propriétaire de ses données et de l'application. En mode local, aucune donnée ne quitte son réseau. En ligne, les conditions d'hébergement (emplacement, sauvegardes, accès) sont fixées par écrit avec lui avant la mise en ligne.
Pour aller plus loin
Trois pages détaillent les technologies utilisées :
Optimisez votre planification
Parlez-nous de votre exploitation. Nous vous montrerons comment la programmation par contraintes peut résoudre vos défis spécifiques.