Aller au contenu
Accord
Menu

Méthodes de planning · 9 min de lecture

Optimiser un planning sous contraintes : dures, souples, pondération

Optimiser un planning, c'est respecter toutes les contraintes dures puis minimiser les pénalités des souples. Pondération, barème et exemples chiffrés.

Par , concepteur d'AccordMis à jour le

L'essentiel

  • Optimiser un planning sous contraintes consiste à respecter toutes les contraintes dures, qui définissent ce qui est possible, puis à choisir parmi les plannings possibles celui qui viole le moins les contraintes souples.
  • Les contraintes souples sont pondérées : chaque écart retire un nombre de points fixé à l'avance, et c'est ce barème, plus que l'algorithme, qui détermine le planning retenu.
  • Trop de contraintes dures rendent le problème impossible ; la bonne pratique est de garder en dur l'impossible physique ou légal, et de pondérer tout le reste.

Optimiser un planning sous contraintes, c'est d'abord respecter toutes les contraintes dures (ce qui est impossible ou interdit), puis choisir, parmi les plannings qui les respectent, celui qui viole le moins les contraintes souples (ce qui est souhaitable). Les contraintes souples sont pondérées : chaque écart coûte un nombre de points fixé à l'avance. C'est ce barème, bien plus que l'algorithme, qui décide du planning retenu.

Contraintes dures et contraintes souples

La distinction est universelle en planification. La littérature sur la planification des infirmiers, problème de référence, la formule ainsi : les contraintes dures doivent être satisfaites pour que le planning soit valide, les contraintes souples sont souhaitables sans être obligatoires.

TypeExemples dans une associationSi elle n'est pas respectée
DureUne personne n'est pas à deux endroits en même tempsPlanning invalide
DureLa salle de danse a 12 places, le cours en a 15Planning invalide
DureKarim ne travaille jamais le mercrediPlanning invalide
DureUn cours de piano exige une salle avec pianoPlanning invalide
SoupleLes maths de préférence avant 18 hPénalité
SoupleÉviter les créneaux « si nécessaire »Pénalité
SoupleLimiter les temps morts entre deux coursPénalité
SoupleÉquilibrer la charge entre bénévolesPénalité

Une même règle peut être dure ou souple selon votre choix. « Pas plus de 4 h par semaine pour un bénévole » est dure si c'est un engagement pris envers lui, souple si c'est une simple intention.

Le principe de la pondération

Chaque contrainte souple reçoit un poids. Le planning part d'un score de 100 (ou de 0 pénalité), et chaque écart retire son poids. L'outil cherche le planning qui garde le meilleur score. La documentation de Google OR-Tools le résume : plutôt que d'énumérer toutes les solutions, il vaut mieux optimiser une fonction objectif. Dans son exemple de planification d'infirmiers, la meilleure solution satisfait 13 demandes sur 20 : l'optimum n'est pas la perfection, c'est le meilleur compromis possible.

Un exemple de barème

Voici un barème de départ, à adapter. Les valeurs sont illustratives.

ÉcartPénalité
Séance non placée20 points
Séance posée sur un créneau « si nécessaire »2 points
Préférence forte non tenue3 points
Préférence légère non tenue1 point
Heure de temps mort entre deux séances d'une même personne0,5 point
Heure d'écart de charge au-delà de 1 h entre le plus et le moins chargé1 point

Un exemple chiffré : deux plannings, deux barèmes

Une école de musique associative compare deux plannings de la même semaine, tous deux sans violation de contrainte dure.

  • Planning A : toutes les séances placées ; 3 séances sur des « si nécessaire » ; 2 préférences fortes non tenues ; 4 heures de temps mort cumulées ; 3 heures d'écart de charge entre professeurs.
  • Planning B : une séance non placée (l'atelier jazz) ; aucun « si nécessaire » ; 1 préférence forte non tenue ; 1 heure de temps mort ; 1 heure d'écart de charge.

Avec le barème ci-dessus

Planning APlanning B
Séance non placée020
« Si nécessaire »60
Préférences fortes63
Temps morts20,5
Écart de charge20
Score sur 1008476,5

Le planning A l'emporte : il a plus de petits défauts, mais il place tout.

Avec une séance non placée à 10 points seulement

Le planning B passe à 86,5 et dépasse A (84). L'outil choisirait alors de sacrifier l'atelier jazz pour économiser quelques « si nécessaire ». Même algorithme, même semaine, décision inverse : le barème est une décision politique de l'association, pas un détail technique. Il doit être écrit, discuté et stable.

Comment fixer les poids

  1. Classez vos souhaits par importance. Demandez au bureau : « entre un cours non placé et un professeur mécontent de son horaire, que préférez-vous ? ».
  2. Espacez les niveaux. Une échelle de type 1, 2, 5, 10, 20 évite qu'une accumulation de petits écarts ne l'emporte sur un gros.
  3. Testez sur une semaine connue. Si le planning obtenu vous choque, c'est le barème qu'il faut corriger, pas le planning à retoucher à la main.
  4. Gardez le barème stable d'une semaine à l'autre, sinon les comparaisons de score n'ont plus de sens.

Notre guide pour mesurer la qualité d'un planning détaille les indicateurs, et celui sur l'équité de charge explique comment mesurer l'écart entre intervenants.

Le piège des contraintes dures en trop

Chaque contrainte dure réduit l'espace des plannings possibles. Ajoutez-en trop, et il n'en reste aucun. Exemple : un club de basket déclare en dur « les U13 le mardi », « l'entraîneur des U13 seulement le jeudi » et « le gymnase B fermé le mardi ». Aucune solution n'existe, et l'outil ne peut que le signaler.

La bonne pratique :

  • En dur : l'impossible physique (une salle, une personne, une capacité), le légal (repos, durées maximales pour les salariés), les engagements pris envers une personne.
  • En souple, avec un poids élevé : tout le reste, même ce qui vous paraît très important. Un poids de 20 se comporte presque comme une contrainte dure, mais laisse une issue quand tout est bloqué.

Un bon outil, face à un problème impossible, indique quelle contrainte bloque et ce qu'il faudrait assouplir. Les guides sur l'écriture des règles et les exemples de règles de planning aident à les formuler au bon niveau.

Ce que fait l'algorithme, en bref

Un solveur explore les plannings possibles en deux temps : il construit une première solution valide en plaçant d'abord les séances les plus contraintes, puis l'améliore par petites modifications (déplacer une séance, échanger deux personnes) en gardant celles qui réduisent les pénalités. Le détail est expliqué dans notre guide sur le solveur de contraintes. Dans Accord, ce principe s'applique avec des contraintes strictes (disponibilités, compétences, capacité et équipement des salles, doubles réservations, charge maximale, règles strictes) et des contraintes souples (« si nécessaire », préférences, équité, temps morts, changements de salle), et le score sur 100 affiche le détail des points retirés ; voir la page produit.

Les erreurs fréquentes

  • Tout mettre au même poids. Dix préférences légères finissent par peser plus qu'une séance non placée.
  • Changer le barème à chaque plainte. Le planning devient imprévisible et personne ne comprend pourquoi.
  • Optimiser l'invisible. Un écart de 0,5 point n'a souvent aucune importance pratique : visez un bon planning, pas un score parfait.
  • Oublier la stabilité. Un planning légèrement meilleur qui déplace la moitié des séances par rapport à la semaine dernière est souvent pire pour l'équipe. Verrouillez ce qui fonctionne.

Questions fréquentes

Quelle est la différence entre une contrainte dure et une contrainte souple ?

Une contrainte dure doit être respectée pour que le planning soit valide : si elle est violée, le planning est rejeté. Une contrainte souple exprime un souhait : si elle est violée, le planning reste valide mais perd des points.

Comment pondérer les contraintes d'un planning ?

Classez vos souhaits par importance, attribuez des poids nettement espacés (par exemple 1, 2, 5, 10, 20), testez le barème sur une semaine connue et ajustez-le jusqu'à ce que le planning choisi corresponde à vos priorités. Gardez-le ensuite stable.

Pourquoi mon logiciel ne trouve-t-il aucune solution ?

Parce que vos contraintes dures se contredisent, souvent sans que ce soit visible. Transformez les moins indispensables en contraintes souples à poids élevé, ou demandez à l'outil quelle règle bloque.

Un planning optimal est-il un planning parfait ?

Non. C'est le meilleur compromis possible entre des souhaits incompatibles, selon votre barème. Un planning optimal laisse presque toujours quelques préférences insatisfaites.

Sources

  1. 1.Google OR-Tools : planification des employés (fonction objectif)
  2. 2.Google OR-Tools : optimisation des contraintes
  3. 3.Wikipedia : Nurse scheduling problem

L'auteur

Enys conçoit Accord à Villeurbanne. Développeur full stack et intégrateur IA, il a commencé par un agent de planning pour une association de soutien scolaire. Ses guides partent de situations concrètes d'associations, d'écoles et de clubs, et sont mis à jour quand les règles ou le calendrier changent.

Passer à la pratique

Chacun dit quand il peut. Accord fait le reste.

Disponibilités recueillies par un lien, règles écrites en français, semaine composée et expliquée. La démonstration est déjà remplie : ouvrez-la en un clic.