Guide pilote PowerSolver — le manuel de terrain du consultant
Pour qui : tout consultant, même junior, qui rencontre un client pour comprendre son problème de planification, recueillir ses données, préparer le classeur PowerSolver, le valider et conduire le pilote. Comment l'utiliser : lisez une fois les §1 à §3. En réunion client, suivez le §4 (le script d'entretien) avec le §6 ouvert sur le type de problème du client. Avant toute résolution, passez le §9 (validation) et le §12 (portes d'acceptation). Après le pilote : transférez l'outil avec le guide de passation client.
Tout ce qui suit décrit ce que PowerSolver fait aujourd'hui (assistant, classeur, moteur, version d'octobre 2026). Ce qu'il ne fait pas est écrit comme tel (§2.4, §13). Ne promettez jamais rien qui ne figure pas dans ce guide.
Les libellés de l'interface sont donnés tels qu'ils apparaissent en français. Les noms techniques du classeur (feuille Setup, colonnes Part, Rule, Kind…) restent en anglais : c'est ce que l'import lit.
Sommaire
- PowerSolver en une page
- Ce qu'il faut dire des limites
- Le pilote, étape par étape
- L'entretien client — script
- Arbres de décision
- Types de problème — quoi demander et recueillir pour chacun
- Découverte des données et inventaire Excel
- Remplir le classeur
- Valider les données avant de planifier
- Exceptions et cas limites
- Dépannage
- Portes d'acceptation
- Manques connus et escalade
1. PowerSolver en une page
Un planning est décrit par un classeur Excel (ou le fichier problem.json équivalent). Le travail du consultant est de le remplir correctement. Six notions suffisent :
| Notion | Sens | Exemple (atelier) | Exemple (collège) | Où dans le classeur |
|---|---|---|---|---|
| Éléments à planifier | Ce qui est planifié, une ligne chacun | opérations | cours | ligne Setup Items to plan + la feuille des éléments (étape 2) |
| Décision | Ce que PowerSolver décide pour chaque élément. Type resource (qui / où), time (quand) ou sequence (dans quel ordre sur une ressource, ex. une tournée) | machine (resource), créneau (time) | créneau (time), salle (resource) | lignes Setup Decision |
| Liste d'options | Parmi quoi une décision choisit, une ligne chacune | machines, créneaux | créneaux, salles | une feuille par liste (étape 3) |
| Liste de référence | Données lues par les règles, jamais décidées par PowerSolver | — | enseignants (déjà attribués par le principal) | ligne Setup Reference list + sa feuille (étape 3) |
| Règle | Obligatoire (jamais enfreinte : un planning qui l'enfreint est inutilisable) ou Souhait (suivi autant que possible, avec un poids) | « une machine fait une opération à la fois » | « une matière au plus une fois par jour » | feuille Rules (étape 4) |
| Épingle | Une décision déjà prise pour certains éléments (ex. déjà réalisés) ; PowerSolver planifie le reste autour | opérations déjà en cours | examens déjà passés | colonnes pinned + les valeurs décidées sur l'élément (étape 5) |
Épingle ou liste de référence ? Une épingle fixe les décisions de certains éléments ; une liste de référence contient quelque chose qui n'est jamais décidé, pour aucun élément. Détails et exemples : CONCEPTS_GUIDE.md §5b. Une épingle fixe toutes les décisions de l'élément à la fois (machine et créneau).
Le classeur (fourni pour chaque démo dans powersolver-demos/*/input/*.xlsx ; à l'étape 1 de l'assistant, Télécharger le modèle de classeur donne le planning en cours ou un exemple commenté) :
| Feuille | Étape | Contenu |
|---|---|---|
| Setup | 1 | type de problème, nom du planning, liste des éléments, décisions, listes de référence, limite de temps |
| une feuille par liste, nommée exactement comme la liste dans Setup | 2, 3 | une ligne par élément / option, colonne id en premier |
| Rules | 4 | une ligne par règle |
| How to fill | — | ce que contient chaque feuille et colonne ; jamais importée |
L'assistant (https://planning.planningpowertools.com, connexion requise) : étape 1 Charger un planning depuis Excel, puis Remplir toutes les étapes (ou étape par étape), étape 7 Est-ce réalisable ? (vérifie les données avant de planifier), Planifier, puis la page Résultats (À vérifier avant utilisation, Règles & score, tous les éléments, Changements, Exporter vers Excel).
Les 19 règles (réglages exacts : RULE_REFERENCE.md) :
| Type (nom à l'étape 4) | Identifiant moteur | Phrase client typique |
|---|---|---|
| Tout reçoit une valeur | unassigned_count | « chaque intervention doit être planifiée » |
| Pas de double réservation | no_conflict | « une machine fait une chose à la fois », « une classe n'a qu'un cours à la fois » |
| La compétence doit correspondre | skill_match | « seulement des techniciens habilités », « les sciences en labo » |
| Les options spécialisées sont réservées | resource_exclusivity | « gardez les labos pour les sciences » |
| Équilibrer la charge | load_balance | « répartir le travail équitablement » |
| Pas de répétition le même jour | no_subject_repeat_per_day | « les maths au plus une fois par jour par classe » |
| Les éléments groupés partagent une valeur | same_value_in_group | « les deux membres d'une équipe commencent ensemble », « les groupes de langue en même temps » |
| Ne jamais utiliser les options protégées | protected_slot | « jamais à midi », « pas sur un serveur en panne » |
| Respecter l'indisponibilité | resource_unavailable | « pas quand la personne est en congé », « pas quand la salle est fermée » |
| Respecter la capacité | capacity | « 40 heures maximum », « CPU non surréservé » |
| Dans la fenêtre horaire autorisée | time_window | « pas avant l'arrivée de la matière, pas après la date promise » |
| Les prérequis d'abord | precedence | « la visite technique avant l'installation », « op 1 avant op 2 » |
| Minimiser le coût | cost | « le personnel le moins cher d'abord » |
| Respecter les préférences | preference | « garder le technicien habituel », « pas de nuits pour ceux qui l'ont demandé » |
| Minimiser un nombre | minimize_property | « le moins d'heures supplémentaires possible » |
| Repos minimum | min_rest | « 11 heures entre deux postes », « 1 h de pause entre deux opérations d'un chirurgien » |
| Limite par période | period_limit | « 10 heures par jour au plus », « 48 heures par semaine au plus », « 2 nuits par semaine au plus » |
| Jours consécutifs | max_consecutive_days | « pas plus de 5 jours d'affilée » |
| Effectif minimum par créneau | min_coverage | « 3 caissiers à midi », « 2 infirmiers chaque heure » (le planning place les postes là où est la demande) |
2. Ce qu'il faut dire des limites
Dites-le dès la première réunion. Ce sont des faits du produit, pas des excuses.
2.1 Ce que fait PowerSolver
- Décide une à quatre choses par élément (qui, quand, où, avec qui) ou l'ordre des éléments sur une ressource (tournées).
- Vérifie les données avant de planifier (Est-ce réalisable ?) et dit, en mots simples, quand un planning valide est impossible et pourquoi (pas assez de salles, une chaîne d'opérations qui ne tient pas avant sa date promise, un enseignant à qui l'on donne plus d'heures que son service…).
- Replanifie : garde ce qui est fait (épingles), bouge le moins possible (souhaits sur les valeurs précédentes), montre exactement ce qui a changé (Résultats → Changements ; Comparer les solutions pour plusieurs plannings successifs).
2.2 Limites de fonctionnement
| Limite | Valeur | Au-delà |
|---|---|---|
| Lignes par liste | 5 000 | le moteur refuse le planning (« Une liste est trop grande pour le planificateur ») |
| Limite de temps par planning | 600 s | refusé (« Un réglage du planificateur n'est pas valide ») |
| Plannings calculés en même temps sur un serveur | 4 | le 5ᵉ reçoit « Le planificateur est occupé par d'autres plannings » (réessayer dans une minute) |
| Temps typiques | quelques centaines d'éléments : de quelques secondes à une minute ; 500 à 1 000 éléments : 2 à 5 minutes pour un planning abouti |
2.3 Discours honnête
- PowerSolver trouve un très bon planning, pas un optimum prouvé. Promettez : valide, au moins aussi bon de façon mesurable, beaucoup plus rapide à produire et à modifier.
- Deux exécutions peuvent donner deux plannings différents, également valides (la recherche s'arrête au temps imparti).
- « Aucun planning valide trouvé en 20 s » ne veut jamais dire impossible : seul un verdict rouge de Est-ce réalisable ? le dit.
2.4 Besoins non couverts aujourd'hui — vérifiez chaque règle du client contre cette liste
| Besoin client | Statut | Ce que l'on peut faire |
|---|---|---|
| Périodes consécutives (un cours de 2 h sur deux créneaux d'1 h, une intervention sur plusieurs créneaux) | non pris en charge | faire des créneaux aussi longs que l'élément (créneaux de 2 h), ou découper l'élément en acceptant un placement séparé |
| Maximum par jour / par semaine et par personne (« 6 h par jour max », « 2 nuits par semaine max ») | pris en charge | period_limit (période de 1 ou 7 jours ; un mois n'a pas un nombre fixe de jours : prendre 28 ou 31, ou capacity sur tout le planning) |
| Repos minimum, « pas plus de 3 d'affilée » | pris en charge | min_rest (heures entre deux éléments), max_consecutive_days (jours d'affilée) |
| Trous dans la journée (temps morts entre deux cours) | non pris en charge | — |
| Comparer deux nombres (places ≥ élèves, charge ≤ volume du camion par tournée) | seulement par catégorie | coder les catégories en compétences (seats_200, seats_400) et skill_match ; ou un total via capacity |
| Temps de trajet entre deux affectations | seulement dans les plannings en séquence (tournées) avec temps calculés | — |
| Plusieurs personnes qui planifient en même temps | jusqu'à 4 plannings simultanés par serveur | |
| Choisir un remplaçant dans un vivier et en garder d'autres fixés avec une épingle sur une seule décision | une épingle fixe toutes les décisions de l'élément | faire du choix ouvert une décision, épingler les éléments dont le choix est fait |
Toute règle qui ne rentre pas est notée dans le rapport de pilote comme une limite, jamais abandonnée en silence.
3. Le pilote, étape par étape
| # | Étape | Durée | Qui | Livrable |
|---|---|---|---|---|
| 0 | Appel de qualification | 45 min | commercial + consultant | go / no-go : le problème entre-t-il dans le §2 ? une vraie période passée avec ses données existe-t-elle ? |
| 1 | Démo sur leur métier | 30 min | consultant | un classeur de démo de leur type (§6) chargé avec Remplir toutes les étapes, résolu, Résultats montrés |
| 2 | Atelier d'entretien (§4) | 2 × 2 h | planificateur + décideur | fiche d'entretien complète ; liste des règles (obligatoires / souhaits / classement) ; critères de succès signés |
| 3 | Demande de données et inventaire (§7) | 3 à 5 jours | contact données du client | tous les fichiers reçus, tableau d'inventaire rempli |
| 4 | Construction du classeur (§8) | 1 à 3 jours | consultant | classeur complet ; contrôles du §9 passés ; porte 1 (§12.1) |
| 5 | Premier planning | ½ journée | consultant | Est-ce réalisable ? vert ou orange ; premier planning valide |
| 6 | Revue 1 | 2 h | planificateur | chaque remarque classée : correction de données, règle, poids, limite |
| 7 | Itérations | 3 à 5 jours | consultant | second planning ; comparaison avec le planning du client |
| 8 | Séance de replanification en direct | 2 h | planificateur + décideur | un vrai changement (absence, panne, commande urgente) replanifié en direct ; onglet Changements montré |
| 9 | Revue des résultats et passation | 1 à 2 h | décideur | rapport de pilote ; liste de contrôle du guide de passation |
Critères de succès — en fixer 3 ou 4 par écrit à l'étape 2 : (1) toutes les règles obligatoires tiennent sur la vraie période (0hard) ; (2) sur leurs souhaits les mieux classés, le planning PowerSolver est au moins aussi bon que le leur ; (3) planning complet en moins de N minutes, replanification en moins de M ; (4) le planificateur le publierait avec moins de K corrections manuelles.
Rapport de pilote : le problème dans leurs mots et les volumes ; chaque règle telle que modélisée (phrase + type de règle) et les règles non modélisables ; résultats par critère ; leur planning contre celui de PowerSolver, règle par règle ; limites rencontrées ; proposition.
4. L'entretien client — script
Menez-le avec la personne qui fait le planning aujourd'hui, et avec le décideur pour les parties A et J. Notez les réponses dans la fiche d'entretien (§4.11). Chaque question dit pourquoi elle compte et ce qu'elle devient dans le classeur.
4.1 Partie A — le problème (15 min)
| # | Demandez | Pourquoi | Une bonne réponse ressemble à | Devient |
|---|---|---|---|---|
| A1 | « Quel planning faites-vous aujourd'hui ? Montrez-moi le dernier. » | Tout s'ancre sur le réel, pas sur un idéal | « le planning machines de la semaine, voici l'Excel de la semaine dernière » | type de problème (§5.1), planning de référence |
| A2 | « À quelle fréquence, et pour quelle période ? » | Définit l'horizon et la grille de temps | « chaque vendredi, pour le lundi-vendredi suivant, par créneaux de 2 h » | la liste des créneaux |
| A3 | « Qui le fait, combien de temps cela prend, qu'est-ce qui est pénible ? » | La douleur devient le critère de succès | « Paul, une journée par semaine ; les urgences obligent à tout refaire » | critères de succès |
| A4 | « Qu'est-ce qui fait un bon planning ? Un planning inacceptable ? » | Sépare tôt obligatoire et souhait | « un retard de livraison est inacceptable ; les heures sup sont mauvaises mais possibles » | obligatoire / souhait |
| A5 | « Qu'est-ce qui change après publication, et à quelle fréquence ? » | Besoin de replanification | « une machine tombe en panne une fois par semaine ; deux urgences par semaine » | scénario de replanification, épingles |
| A6 | « Que faites-vous aujourd'hui quand tout ne rentre pas ? » | Dit quoi faire des éléments non planifiés | « on sous-traite », « on reporte à la semaine suivante » | priorités / règles souples |
4.2 Partie B — les éléments à planifier (20 min)
| # | Demandez | Pourquoi | Devient |
|---|---|---|---|
| B1 | « Qu'est-ce qu'une "chose" que vous placez dans le planning ? Une intervention, un cours, un poste, une opération, une visite ? » | La granularité : une ligne par chose placée une fois | Setup Items to plan |
| B2 | « Comment identifiez-vous chacune ? Cet identifiant est-il stable d'une semaine à l'autre ? » | Les ids doivent être uniques et stables (épingles et comparaisons en dépendent) | colonne id |
| B3 | « De quoi chacune a-t-elle besoin ? Une compétence, un type de machine, un équipement, un type de salle ? » | Alimente La compétence doit correspondre | une colonne de besoins (texte ou liste) |
| B4 | « Combien de temps cela prend-il ? Toujours la même durée ? » | Durée ; si un élément est plus long qu'un créneau, voir §2.4 | duration (ISO PT2H ou l'unité du modèle) |
| B5 | « Quand peut-elle commencer au plus tôt, et quand doit-elle être finie ? » | Fenêtres de temps | earliest, due (date-heure) |
| B6 | « Dépend-elle d'un autre élément fait avant ? » | Chaînes de précédence | depends_on (un id ou une liste d'ids) |
| B7 | « Certains éléments vont-ils ensemble (même équipe, même classe, même commande) ? » | Groupes pour pas de double réservation ou valeur partagée | colonne(s) de groupe |
| B8 | « Certains sont-ils plus importants ? Que se passe-t-il si l'un n'est pas planifié ? » | Priorité, règles souples | priority, poids |
| B9 | « Quelque chose est-il déjà décidé ou déjà fait ? » | Épingles | pinned + valeurs décidées |
| B10 | « Qui ou quoi est déjà fixé pour chaque élément et jamais choisi par le planning ? » | Listes de référence (enseignant déjà attribué, technicien promis) | une colonne nommant la ressource fixée + une liste de référence |
4.3 Partie C — les décisions (10 min)
| # | Demandez | Pourquoi | Devient |
|---|---|---|---|
| C1 | « Pour chaque élément, que faut-il décider : qui, quand, où, avec qui ? » | Une décision par réponse, de 1 à 4 | lignes Setup Decision |
| C2 | « Est-ce l'ordre sur une ressource qui compte (une tournée, une séquence sur une machine), ou seulement l'affectation ? » | Séquence ou ressource/temps | Kind sequence ou resource/time |
| C3 | « Parmi elles, l'une est-elle déjà décidée pour tous les éléments ? » | C'est une liste de référence, pas une décision | Setup Reference list |
4.4 Partie D — les listes d'options (20 min)
Pour chaque décision : « Listez toutes les options possibles. » Puis, pour chaque option :
| # | Demandez | Pourquoi | Devient |
|---|---|---|---|
| D1 | « Que sait-elle faire / qu'offre-t-elle ? » | Compétences | skills / capabilities / offers (liste séparée par des virgules) |
| D2 | « Quand n'est-elle pas disponible ? Congés prévus, maintenance, fermetures ? » | Indisponibilité | une liste de codes de créneaux indisponibles, ex. Mon-AM, Tue-PM |
| D3 | « Combien peut-elle prendre sur la période ? » | Capacité | un nombre (capacity, max_shifts, cpu) |
| D4 | « Est-elle réservée à certains éléments ? » | Les options spécialisées sont réservées | la même colonne de compétences |
| D5 | « A-t-elle un coût par élément ou par heure ? » | Règle de coût | rate / hourlyRate |
| D6 | (options de temps) « Quels sont les créneaux : début, fin, jour, créneaux à ne jamais utiliser (midi) ? » | Grille de temps | startTime, endTime, day, une colonne oui/non de créneau protégé |
4.5 Partie E — listes de référence (10 min, seulement si C3 ou B10 = oui)
« Pour chaque personne ou chose fixée : quand est-elle absente ? Que sait-elle faire ? Combien peut-elle prendre ? » Ces colonnes sont lues par Respecter l'indisponibilité, La compétence doit correspondre et Respecter la capacité via resource_property. Si les données elles-mêmes enfreignent l'une d'elles (un enseignant à qui l'on donne plus d'heures que son service), Est-ce réalisable ? le dit avant de planifier.
4.6 Partie F — les règles (40 min)
- Demandez : « Listez chaque règle qu'un planning doit respecter — ce que vous ne publieriez jamais. » Notez-les dans leurs mots.
- Demandez : « Listez ce qui rend un planning meilleur — vos souhaits. »
- Pour chaque règle, relisez-la sous forme de phrase PowerSolver avec son type (tableau du §1) : « Pas deux opérations sur la même machine en même temps — c'est bien cela ? »
- Pour chaque règle obligatoire, posez le test de publication : « Publieriez-vous un planning qui l'enfreint une fois ? » Si oui, c'est un souhait.
- Pour chaque règle, demandez quelle colonne porte l'information. Une règle sans données ne peut pas être vérifiée : ajoutez la colonne à la demande de données.
- Pour les règles qui n'entrent dans aucun type : vérifiez le §2.4 ; notez-les comme limite avec le client, ne les abandonnez jamais.
4.7 Partie G — classer les souhaits (10 min)
« Si deux souhaits s'opposent, lequel gagne ? » Classez-les ; puis donnez des poids qui gardent l'ordre avec de la marge (ex. 1, 3, 10). C'est le planificateur qui décide de l'ordre, pas le consultant. En replanification, les souhaits « garder la valeur précédente » reçoivent en général 2 à 5 (démo 18 : garder la machine 3, garder le créneau 2).
4.8 Partie H — exceptions (15 min)
Utilisez le §10 comme liste de contrôle : jours fériés, disponibilités partielles, sous-traitance, heures supplémentaires, urgences, éléments que l'on peut laisser de côté, événements ponctuels.
4.9 Partie I — volumes et périodes (5 min)
Nombre d'éléments, d'options par décision, de lignes de référence ; horizon de planification ; fréquence des replanifications. À comparer avec le §2.2.
4.10 Partie J — le planning de référence et les critères de succès (10 min, avec le décideur)
« Donnez-nous le planning que vous avez réellement fait pour cette période. » Il devient la comparaison (§11.4). Puis écrivez les 3 ou 4 critères de succès (§3).
4.11 La fiche d'entretien (à recopier dans les notes de réunion)
| Champ | Réponse |
|---|---|
| Type de problème (§5.1) | |
| Période de planification et durée des créneaux | |
| Éléments à planifier (nom de la liste), nombre, source des ids | |
| Décisions (id, type, liste d'options), nombres | |
| Listes de référence | |
| Règles obligatoires (mots du client → type de règle → colonnes) | |
| Souhaits, dans l'ordre, avec leurs poids | |
| Épingles / déjà décidé | |
| Exceptions (§10) | |
| Règles non modélisables (§2.4) | |
| Planning de référence reçu ? | |
| Critères de succès (signés) | |
| Contact données, date de livraison |
5. Arbres de décision
5.1 Quel type de problème ?
Les éléments sont-ils placés dans un ORDRE sur chaque ressource (tournées, séquence de travaux d'une machine avec trajets/réglages) ?
├── oui → vehicle-routing (décision de type "sequence")
└── non → Que décide-t-on ?
├── un créneau ET une salle/un lieu pour chaque élément, des groupes qui ne doivent pas se chevaucher
│ → school-timetabling ou conference-scheduling
│ (un collège : classes, enseignants, matières ; une conférence : sessions, orateurs, parcours)
├── une personne pour chaque poste/vacation (les postes sont donnés) → employee-rostering
├── une machine ET un créneau pour chaque opération, ordre de gamme → job-shop-scheduling
├── un technicien ET un créneau pour chaque intervention sur site → maintenance-scheduling
├── un serveur/hôte pour chaque charge, des capacités → cloud-optimization
├── une personne (et éventuellement un créneau) pour chaque tâche, des compétences → task-assignment
└── aucun ne convient → generic (même moteur, sans champs de formulaire propres au type)
Le type de problème ne change que les champs et libellés du formulaire de l'assistant ; les règles et le moteur sont les mêmes pour tous.
5.2 Ressource, temps ou séquence ?
La décision est « quand » ? → Kind = time (la liste d'options a startTime, endTime)
Elle est « qui / quoi / où » (sans ordre) ? → Kind = resource
Elle est « dans quel ordre sur chaque véhicule/machine » ? → Kind = sequence (une seule par planning ; options = véhicules/machines)
5.3 Décision, épingle ou liste de référence ?
Pour une colonne comme « technicien » ou « enseignant » :
Est-elle choisie par le planning pour au moins certains éléments ?
├── non, jamais choisie, pour aucun élément → liste de référence (+ une colonne sur l'élément qui la nomme)
└── oui
├── pour tous les éléments → décision
└── pour la plupart, certains déjà fixés → décision + épingler ces éléments (une épingle fixe TOUTES leurs décisions)
5.4 Obligatoire ou souhait ?
Le client publierait-il un planning qui l'enfreint une fois ?
├── jamais → Obligatoire (hard). Puis vérifier : les données le permettent-elles ? (§9.3)
└── oui, s'il le faut → Souhait (soft), avec un poids tiré du classement (§4.7)
5.5 Une règle est-elle modélisable ?
Trouver au §1 le type dont la phrase correspond → la colonne nécessaire est-elle dans les données ?
├── oui → écrire la ligne Rules (§8.4)
└── pas de colonne → l'ajouter à la demande de données
Aucun type ne correspond → §2.4 → contournement convenu avec le client, ou limite notée
6. Types de problème — quoi demander et recueillir pour chacun
L'assistant propose 9 types de problème. Pour chacun : les colonnes demandées par son modèle de formulaire (obligatoires en gras : un import sans elles est refusé avec « La colonne obligatoire … est manquante »), un modèle vérifié sur une démo, les questions spécifiques, les règles habituelles et les pièges. Toute colonne supplémentaire est acceptée et conservée (colonne « nouvelle ») — les règles peuvent l'utiliser.
Les colonnes des modèles viennent de PowerAdmin (étape 2 = éléments, étape 3 = options). Le formulaire libelle
durationen heures ; le moteur lit nativement les durées ISO (PT2H,PT55M) et l'import les accepte. Utilisez les durées ISO pour éviter toute ambiguïté (§13).
6.1 Atelier (job shop) — job-shop-scheduling (démos 09, 18)
| Contenu | |
|---|---|
| Colonnes du modèle | éléments : id, name, duration, skills · options : id, name, capacity, skills |
| Modèle vérifié (démo 18) | éléments operations (order, part, customer, operation, needs, duration, earliest, due, depends_on, ship_early_by) ; décisions machine (machines : capabilities, down_slots) et slot (slots : startTime, endTime, code) |
| Demandez | la gamme de chaque pièce (opérations ordonnées) ; quelles machines font quelles opérations ; créneaux de maintenance et de panne ; arrivée matière ; dates promises ; grands comptes ; organisation des équipes |
| Règles habituelles | Tout reçoit une valeur ×2 ; Pas de double réservation (machine + créneau) ; La compétence doit correspondre (needs → capabilities) ; Respecter l'indisponibilité (down_slots de la machine) ; Les prérequis d'abord (depends_on, startTime du créneau) ; Dans la fenêtre horaire autorisée (earliest → due, obligatoire) ; idem avec ship_early_by (souhait) |
| Pièges | une opération plus longue qu'un créneau (§2.4) ; un depends_on qui nomme un id inexistant ; des dates promises avant l'arrivée matière (Est-ce réalisable ? : EMPTY_WINDOW) ; des gammes qui ne tiennent pas (CHAIN_TOO_LONG) |
6.2 Emploi du temps scolaire — school-timetabling (démos 01, 12)
| Contenu | |
|---|---|
| Colonnes du modèle | éléments : id, name, duration, skills, priority · options : id, name, capacity ; créneaux : id, name, startTime, endTime |
| Modèle vérifié (démo 12) | éléments lessons (class, level, subject, teacher, pupils, room_need, daily_group, lv2_block) ; décisions slot (time) et room ; liste de référence teachers (teaches, service_hours, unavailable, wished_off) |
| Demandez | la grille horaire par classe ; la répartition des services (fixée ou à décider ?) ; les groupes de langue enseignés en parallèle ; les salles et ce qu'elles offrent ; les absences et vœux des enseignants ; la pause de midi et les créneaux protégés |
| Règles habituelles | Pas de double réservation par groupe d'élèves, par enseignant, par salle ; Respecter l'indisponibilité (enseignant fixé) ; La compétence doit correspondre (room_need → offers ; subject → teaches) ; Respecter la capacité (service_hours) ; Les éléments groupés partagent une valeur (barrette de langues) ; Pas de répétition le même jour ; souhaits : salle de la classe, demi-journées libres souhaitées |
| Pièges | un enseignant à temps partiel présent moins de jours que les heures d'une matière à une fois par jour ; des groupes parallèles confiés au même enseignant ; une classe entière et un demi-groupe en même temps (utiliser des groupes d'élèves 6A:all, 6A:esp) |
6.3 Conférence — conference-scheduling (démo 14)
| Contenu | |
|---|---|
| Colonnes du modèle | éléments : id, name, duration, skills, priority · options : id, name, capacity |
| Modèle vérifié | éléments sessions (track, speaker, kind, needs, earliest, latest) ; décisions slot, room (offers, closed) ; liste de référence speakers (unavailable) |
| Demandez | les parcours et ceux qui ne doivent pas se chevaucher ; les plénières ; les jours de présence des orateurs ; équipement et places des salles ; ateliers en plusieurs parties |
| Règles habituelles | Pas de double réservation (salle + créneau ; orateur ; parcours) ; La compétence doit correspondre (needs → offers) ; Respecter l'indisponibilité (orateur fixé ; salle fermée) ; fenêtre horaire (la plénière ouvre la journée) ; précédence (partie 1 avant partie 2) ; souhaits : le parcours garde sa salle, le jour demandé par l'orateur |
| Pièges | un parcours avec autant de sessions que de créneaux (AT_RISK, 100 %) ; une colonne closed vide pour toutes les salles (désormais conservée vide) |
6.4 Planning du personnel — employee-rostering (démos 05, 15)
| Contenu | |
|---|---|
| Colonnes du modèle | éléments : id, name, startTime, endTime, duration, skills, priority, deadline, location, demand · options : id, name, availability, skills, capacity, hourlyRate, location |
| Modèle vérifié (démo 15) | éléments positions (ward, role, shift, date, needs, groups, staffing) ; décision staff (role, qualifies, contract, max_shifts, on_duty, leave, asked_off, prefers) |
| Demandez | chaque poste à pourvoir par jour et par vacation (une ligne par personne nécessaire) ; qualifications ; contrats (nombre maximum de vacations sur la période) ; congés ; demandes ; règles d'intérim ; repos après les nuits |
| Règles habituelles | Chaque poste pourvu ; Compétence (rôle/service/compétences ; en poste ce jour-là) ; Repos minimum (11 h entre deux vacations) ; Limite par période (48 h par semaine) ; Jours consécutifs (3 au plus) ; Respecter la capacité (max_shifts) ; souhaits : personnel de l'hôpital avant l'intérim, jours de repos demandés, pas de nuit pour ceux qui l'ont demandé |
| Pièges | une vacation qui demande 3 personnes = 3 lignes ; maxima par jour / par semaine (§2.4) ; le modèle demande availability sur les personnes — si le client donne des dates de congés, convertir dans les codes de créneau/jour que compare la règle |
6.5 Maintenance — maintenance-scheduling (démos 07, 13)
| Contenu | |
|---|---|
| Colonnes du modèle | éléments : id, name, location, duration, skills, priority, deadline, startTime, endTime · options : id, name, location, skills, capacity, availability, hourlyRate |
| Modèle vérifié (démo 13) | éléments jobs (client, zone, skill, type, duration, priority, latest, target_by, preferred_tech) ; décisions technician, slot (demi-journées) ; techniciens : zones, skills, status, absent |
| Demandez | les interventions de la période (préventives et pannes) ; compétences et zones des techniciens ; absences ; fenêtres d'accès client ; visites techniques avant installation ; technicien préféré des grands comptes ; sous-traitants |
| Règles habituelles | Pas de double réservation (technicien par demi-journée) ; Compétence (compétence ; zone) ; Respecter l'indisponibilité (absent) ; fenêtre horaire (accès, délai) ; précédence (visite d'abord) ; souhaits : pannes tôt, technicien habituel, salariés avant sous-traitants |
| Pièges | des absences du lundi qui rendent la semaine impossible (NOT_ENOUGH_PLACES sur « un technicien fait une intervention par demi-journée ») ; des interventions plus longues qu'une demi-journée |
6.6 Optimisation cloud — cloud-optimization (démos 08, 17)
| Contenu | |
|---|---|
| Colonnes du modèle | éléments : id, name, duration, skills, priority · options : id, name, capacity, skills |
| Modèle vérifié (démo 17) | éléments vms (service, tier, vcpu, memory_gb, needs) ; décision server (cpu, memory_gb, features, down) |
| Demandez | CPU et mémoire de chaque charge ; fonctions requises (GPU, conformité) ; réplicas qui doivent être sur des serveurs différents ; serveurs en panne ou en maintenance |
| Règles habituelles | capacité ×2 (cpu, memory_gb avec colonnes de charge) ; Compétence (features) ; Pas de double réservation par service (réplicas séparés) ; Ne jamais utiliser les options protégées (serveur en panne) ; souhait : garder libres les serveurs spéciaux |
| Pièges | plus de réplicas que de serveurs offrant la fonction (impossible) ; unités mélangées (Go / Mo) |
6.7 Affectation de tâches — task-assignment (démos 04, 11, 16)
| Contenu | |
|---|---|
| Colonnes du modèle | éléments : id, name, duration, priority, skills, deadline, startTime, endTime, location, demand · options : id, name, skills, capacity, hourlyRate, availability, location |
| Modèle vérifié (démo 16) | éléments packages (workstream, phase, needs, home_squad, depends_on, earliest, latest) ; décisions squad, week ; équipes : skills, off_weeks |
| Demandez | les lots de travail et leurs compétences ; dépendances ; jalons ; équipes, leur capacité et leurs congés ; équipe préférée par chantier |
| Règles habituelles | Pas de double réservation (équipe par semaine) ; Compétence ; Respecter l'indisponibilité ; précédence ; fenêtre horaire ; souhait : le chantier garde son équipe pilote |
| Pièges | une équipe demandée par plus de lots qu'elle n'a de semaines ; des dépendances en boucle (DEPENDENCY_LOOP) |
6.8 Tournées — vehicle-routing (démo 06)
| Contenu | |
|---|---|
| Colonnes du modèle (mode séquence) | éléments : id, name, location, duration, priority, demand · options : id, name, startTime, capacity, location |
| Modèle vérifié | éléments visits (location, required_skill, service_duration, fenêtres horaires, priority) ; décision itinerary (type sequence) sur vehicles (skills, startTime, endTime, capacity) ; valeurs calculées position, startTime, endTime le long de la tournée (lignes Setup Computed value) |
| Demandez | visites et temps de service ; fenêtres horaires ; horaires et capacité des véhicules ; compétences nécessaires chez le client |
| Limites | les temps de trajet ne sont pas calculés à partir des adresses ; la démo enchaîne les visites avec leurs seules durées de service. Les règles applicables aux plannings en séquence sont limitées (Tout reçoit une valeur, Minimiser un nombre) ; vérifiez le §2.4 avant de promettre une optimisation de tournées |
6.9 Générique — generic
À utiliser quand aucun type ne convient. Colonnes du modèle : éléments id, name, duration, priority, skills · options id, name, skills, capacity, hourlyRate, availability, location. Tout le reste est identique. Les démos 19 (examens : 3 décisions) et 20 (bloc opératoire : 4 décisions) utilisent leurs propres noms de type et montrent des modèles à 3 et 4 décisions.
7. Découverte des données et inventaire Excel
7.1 Le tableau d'inventaire (une ligne par donnée, avant de construire quoi que ce soit)
| Donnée | Sens métier | Système source | Propriétaire | Format actuel | Granularité | Mise à jour | Obligatoire ? | Feuille.colonne du classeur |
|---|---|---|---|---|---|---|---|---|
| Id opération | une étape de gamme d'un ordre de fabrication | ERP | planificateur de production | texte PO-4102-1 | par opération | quotidienne | oui | operations.id |
| Besoin | capacité machine requise | gamme ERP | méthodes | texte milling | par opération | à chaque modification | oui (règle) | operations.needs |
| Arrêts machine | créneaux de maintenance prévus | outil de maintenance | responsable maintenance | dates | par demi-journée | hebdomadaire | si la règle est utilisée | machines.down_slots |
Marquez chaque donnée obligatoire (une règle ou le modèle en a besoin), facultative (améliore le planning) ou inutile.
7.2 Questions sur les fichiers existants
- « Où vit cette information aujourd'hui ? Excel, ERP, outil RH, papier ? » — demandez à voir le fichier.
- « Qui la met à jour, et à quelle fréquence ? » — ce propriétaire devient le contact de passation pour cette feuille.
- « Y a-t-il une ligne par élément, ou une ligne par autre chose ? » — ex. une ligne par commande avec « 3 opérations » dans une cellule doit devenir 3 lignes.
- « Les ids sont-ils stables ? Deux fichiers utilisent-ils les mêmes ids ? » — les rapprochements échouent sur des ids écrits différemment (
T01/T1). - « Y a-t-il des lignes masquées, des cellules fusionnées, des codes couleur qui portent un sens ? » — couleurs et fusions sont perdues à l'import ; transformez-les en colonnes.
- « Le fichier est-il complet pour la période, ou une partie est-elle dans la tête de quelqu'un ? » — écrivez la partie manquante maintenant.
7.3 Réutiliser les fichiers du client
- Une feuille du client peut être importée telle quelle aux étapes 2-3 si sa première ligne contient les noms de colonnes et si chaque ligne est un élément. Les noms de colonnes peuvent être les noms ou libellés des champs du modèle (casse et espaces ignorés) ; les colonnes inconnues sont gardées comme propriétés supplémentaires.
- Préférez copier les colonnes dans le classeur PowerSolver (une feuille par liste, nommée comme la liste) : un seul fichier porte alors tout le planning et Remplir toutes les étapes fonctionne.
- Gardez intact le fichier d'origine du client ; notez dans l'inventaire quelles colonnes ont été copiées et transformées.
8. Remplir le classeur
Partez de Télécharger le modèle de classeur (étape 1 de l'assistant) — il donne un exemple commenté (3 interventions, 2 techniciens, 2 créneaux, 5 règles) quand aucun planning n'est chargé — ou du classeur de la démo du type du client (§6), et remplacez les données.
8.1 Feuille Setup, ligne par ligne
Colonnes : Part, Name, Label, Decision, Kind, From, Formula. Première ligne = ces en-têtes. Les valeurs de Part restent en anglais.
| Part | Name | Label | Decision | Kind | Obligatoire | Notes |
|---|---|---|---|---|---|---|
| Problem type | job-shop-scheduling | oui | un des types du §6 ; une autre valeur fonctionne mais affiche sa propre carte | |||
| Plan name | Planning usinage S48 | non | ||||
| Items to plan | operations | Opérations | oui (une ligne) | Name = le nom de la feuille des éléments ; lettres, chiffres, _, commençant par une lettre | ||
| Decision | machines | Machines | machine | resource | oui (1 à 4 lignes) | Name = feuille des options ; Decision = l'id utilisé par les règles ; Kind resource / time / sequence |
| Decision | slots | Créneaux | slot | time | ||
| Reference list | teachers | Enseignants | non | |||
| Computed value | startTime | séquence seulement | From previous, host ; Formula previous?.endTime ?? host.startTime (copier la démo 06) | |||
| Time limit | 120 | recommandé | secondes, de 1 à 600 | |||
| Construction / Search / Sort items by | FIRST_FIT … | non | à omettre sauf avis contraire |
Mauvais : Items to plan | Liste opérations (espace : refusé) ; deux lignes Items to plan ; une Decision sans Kind (lue comme resource — faux pour une décision de temps : les vues calendrier ont besoin de time).
8.2 Feuilles de listes (étapes 2 et 3)
- Nommez la feuille exactement comme la liste dans Setup (
operations, pasOpérations 2026). - Première ligne = noms de colonnes ; première colonne =
id, unique dans la feuille, jamais vide. - Une ligne par élément / option. Pas de cellules fusionnées, pas de lignes de sous-total, pas de lignes vides au milieu.
Formats de valeurs (l'import convertit exactement comme le moteur lit) :
| Type de valeur | Écrire | Bon | Mauvais |
|---|---|---|---|
| Texte | tel quel | milling | Milling (espace final et majuscule : ne correspond pas à milling) |
| Nombre | une cellule nombre ou 7.5 / 7,5 | 40 | 40 h |
| Oui / non | TRUE / FALSE (aussi yes/no, oui/non, 1/0) | TRUE | x sur certaines lignes, vide sur d'autres |
| Date-heure | 2026-11-23T06:00 ou une cellule date Excel | 2026-11-23 06:00 | 23/11 (sans année ni heure) |
| Durée | ISO-8601 | PT2H, PT55M | 2h, 120 sans préciser l'unité |
| Liste | séparée par des virgules dans une cellule | milling, turning | une valeur par colonne (skill1, skill2) |
| Référence à une autre ligne | son id | MA-2 | le nom de la personne Mme Roux |
Cellules vides : une cellule vide veut dire « pas de valeur » — un needs vide = aucune exigence ; un unavailable vide = toujours disponible. Une colonne nommée mais sans aucune valeur est conservée, vide, sur chaque ligne (une règle peut la lire).
8.3 Épingles et colonnes de replanification
Pour un élément déjà décidé : pinned = TRUE et une colonne par id de décision avec l'id de l'option décidée (ex. machine = F2, slot = Mon-3). Toutes les décisions d'un élément épinglé doivent être remplies. Pour limiter les changements en replanification, ajoutez previous_machine, previous_slot et des souhaits Respecter les préférences (entity_property previous_machine, value_property code) — comme dans la démo 18 problem.wednesday.
8.4 Feuille Rules (étape 4)
Colonnes : Rule, Must / Wish, Weight, Kind, puis une colonne par réglage. Écrivez les règles dans l'assistant (étape 4) puis Télécharger les règles (Excel), ou copiez la feuille Rules de la démo correspondante. Must / Wish accepte aussi Obligatoire / Souhait ; Kind accepte le nom français affiché à l'étape 4. Exemple (atelier) :
| Rule | Must / Wish | Weight | Kind | variable_field | fields | entity_property | value_property | slot_field | slot_property | unavailable_property |
|---|---|---|---|---|---|---|---|---|---|---|
| Chaque opération a une machine | Must | 100 | Tout reçoit une valeur | machine | ||||||
| Une opération par machine à la fois | Must | 100 | Pas de double réservation | machine, slot | ||||||
| La machine sait faire l'opération | Must | 100 | La compétence doit correspondre | machine | needs | capabilities | ||||
| Machine hors maintenance | Must | 100 | Respecter l'indisponibilité | machine | slot | code | down_slots | |||
| Grands comptes livrés un jour plus tôt | Wish | 3 | Dans la fenêtre horaire autorisée | slot | startTime |
Chaque réglage nomme un id de décision ou une colonne des feuilles des étapes 2-3. Le sens de chaque réglage est dans la feuille How to fill du classeur et dans RULE_REFERENCE.md.
8.5 Chargement
Étape 1 → Charger un planning depuis Excel → la fenêtre liste ce que chaque étape va importer → Remplir toutes les étapes (tout ou rien ; chaque problème listé par feuille, ligne et colonne) → étape 7. Ou Parcourir les étapes une par une et cliquer Importer sur le bandeau de chaque étape (utile devant le client).
9. Valider les données avant de planifier
Faites 9.1 à 9.3 dans Excel, 9.4 et 9.5 dans l'assistant. Ne lancez rien avant la porte 1 (§12.1).
9.1 Contrôles de structure (Excel)
| # | Contrôle | Comment | Si faux |
|---|---|---|---|
| 1 | Chaque feuille nommée comme sa liste Setup | comparer les noms | renommer la feuille |
| 2 | id unique dans chaque feuille | Supprimer les doublons sur une copie, ou NB.SI(A:A;A2)>1 | demander au propriétaire quelle ligne est juste |
| 3 | Aucun id vide | filtrer les vides | compléter ou supprimer la ligne |
| 4 | Chaque référence existe | NB.SI(machines!A:A; x) pour chaque depends_on, teacher, valeur épinglée | corriger l'id ; le moteur refuse les ids inconnus |
| 5 | Même orthographe partout | trier côte à côte les valeurs uniques de needs et de capabilities | aligner (5-axis / 5ax) |
| 6 | Pas de cellules fusionnées / lignes de sous-total | inspecter | défusionner, supprimer |
9.2 Contrôles de valeurs
| # | Contrôle | Erreur typique |
|---|---|---|
| 1 | Dates : toutes AAAA-MM-JJTHH:MM, même fuseau, dans la période | dates de l'an dernier ; jour/mois inversés |
| 2 | earliest ≤ due sur chaque élément | colonnes inversées → EMPTY_WINDOW |
| 3 | Durées : une seule unité, en ISO | minutes et heures mélangées |
| 4 | Les nombres sont des nombres | 40 h, N/A |
| 5 | Listes séparées par des virgules | ; ou retours à la ligne |
| 6 | Les codes de créneau des listes d'indisponibilité correspondent à la colonne code des créneaux | Mon AM / Mon-AM |
9.3 Arithmétique — est-ce seulement possible ? (avant Est-ce réalisable ?, à discuter avec le client)
| Contrôle | Formule | Exemple |
|---|---|---|
| Demande / capacité par compétence | éléments qui ont besoin de X ≤ (options offrant X) × (créneaux où chacune est disponible) | 42 examens demandent des amphis de 220 places et plus ; 9 amphis × 4 créneaux libres = 36 → impossible |
| Par ressource limitée | somme des charges des éléments fixés sur elle ≤ sa capacité | enseignant de 12 h de service à qui l'on donne 15 h |
| Chaînes | somme des durées le long d'une chaîne depends_on ≤ due − earliest | 4 opérations de 2 h dues 4 h après l'arrivée |
| Groupes | éléments d'un groupe qui ne peuvent pas se chevaucher ≤ créneaux disponibles pour le groupe | un parcours de 22 sessions pour 21 créneaux |
Si la demande dépasse la capacité, dites-le dès le premier jour : le bon planning laisse des éléments non planifiés, et le client doit décider (ajouter de la capacité, transformer une règle en souhait, accepter des éléments non planifiés).
9.4 Contrôles à l'import dans l'assistant
Chaque import liste les problèmes par ligne et colonne ; Importer reste désactivé tant que le fichier n'est pas corrigé. Exemples : « La colonne obligatoire « duration » est manquante » (§6), « L'ID est vide : chaque ligne doit avoir un ID unique », « L'ID « … » est déjà dans la liste », « La colonne 7 contient des valeurs mais n'a pas de nom dans la première ligne ».
9.5 Est-ce réalisable ? (étape 7)
| Verdict | Sens | Action |
|---|---|---|
| Rouge — Aucun planning valide n'est possible avec ces données | certain : une règle obligatoire ne peut pas tenir | lire chaque constat ; corriger les données ou transformer la règle en souhait ; vérifier à nouveau |
| Orange — Possible, mais certaines ressources sont presque pleines | une ressource est utilisée à 85 % ou plus | prévoir de la marge ; utiliser Essayer un planning rapide (20 s) |
| Vert — Aucun problème trouvé | les contrôles n'ont rien trouvé ; pas une garantie | planifier |
| « Le problème ne peut pas être lu » | une erreur de données (mauvaise colonne, id inconnu…) | chaque message indique l'étape, la règle et le réglage à corriger |
Constats et corrections :
| Constat | Cause typique | Correction |
|---|---|---|
| Des éléments doivent commencer après X et avant Y, mais X est plus tard | dates inversées ou fausses | corriger les dates |
| Des éléments s'attendent mutuellement en boucle | cycle de depends_on | supprimer une dépendance |
| Les éléments épinglés enfreignent déjà une règle obligatoire | deux éléments épinglés sur la même machine et le même créneau | désépingler ou corriger |
| Des éléments n'ont plus d'option | aucune option n'a la compétence requise, ou toutes sont indisponibles | ajouter une option ou corriger le besoin |
| Toutes les options qui conviennent sont indisponibles à tous les moments possibles | indisponibilités trop larges | libérer un moment ou ajouter une option |
| Des éléments ne peuvent utiliser que N places ; il en faut M | demande > capacité (§9.3) | ajouter de la capacité, élargir les options, déplacer des éléments |
| La chaîne ne tient pas dans sa fenêtre | gamme trop longue pour la date promise | élargir la fenêtre, raccourcir la chaîne |
| Les données elles-mêmes enfreignent une règle obligatoire | la ressource fixée d'un élément n'a pas ce qu'il faut, ou dépasse sa capacité | corriger l'attribution ou la capacité |
| Une ressource est presque pleine (orange) | utilisée à 85 % ou plus | marge, ou accepter une recherche plus longue |
10. Exceptions et cas limites
Posez chaque question ; notez la réponse et le choix de modélisation.
| Sujet | Demandez | Modèle |
|---|---|---|
| Jours fériés, fermetures | « Quels jours sont fermés sur la période ? » | retirer ces créneaux, ou les déclarer indisponibles pour toutes les options |
| Disponibilités partielles | « Qui travaille à temps partiel, quelles demi-journées ? » | liste d'indisponibilités par personne |
| Intérimaires, sous-traitants | « Pouvez-vous ajouter des personnes ? À quel coût ? » | options supplémentaires avec un souhait « salariés d'abord » (démo 13) |
| Heures supplémentaires | « Peut-on dépasser le contrat ? » | capacité en souhait, ou capacité plus haute avec un coût |
| Urgences | « Que se passe-t-il pour une commande urgente ? » | priorité + fenêtre horaire ; replanification avec épingles (§11.5) |
| Éléments pouvant rester non planifiés | « Est-il acceptable d'en laisser de côté ? » | Tout reçoit une valeur en souhait avec un poids élevé |
| Personnes fixées par élément | « L'enseignant / le technicien est-il déjà décidé ? » | liste de référence (§5.3) |
| Plusieurs personnes par élément | « Une intervention demande-t-elle deux techniciens ? » | une ligne par place, avec une colonne de groupe commune + Les éléments groupés partagent une valeur sur le créneau (les places sont au même moment) |
| Éléments plus longs qu'un créneau | « Une intervention dépasse-t-elle le créneau ? » | §2.4 |
| Trajets | « Les temps de trajet comptent-ils ? » | zones en compétences (démo 13) ; tournées (§6.8) |
| Équité | « Le travail doit-il être réparti équitablement ? » | Équilibrer la charge |
| Préférences | « Les personnes expriment-elles des vœux ? » | preference / skill_match en souhaits |
| Semaines exceptionnelles | « Cette semaine est-elle particulière ? » | la planifier comme une période à part |
Questions à poser avant d'avancer (ne construisez rien sans réponse) : qui tranche quand deux souhaits s'opposent ; que faire des éléments non planifiés ; le planning peut-il changer une fois publié, et de combien ; quel propriétaire de données corrige les erreurs.
11. Dépannage
11.1 Reconnaître une exigence floue
| Signal | Demandez |
|---|---|
| « D'habitude », « normalement », « si possible » | « Et quand ce n'est pas possible, que faites-vous ? » → souhait |
| « Ça dépend » | « De quoi ? Montrez-moi deux cas » → une colonne ou une exception |
| Une règle sans donnée derrière | « Où est-ce écrit aujourd'hui ? » |
| Deux personnes donnent des règles différentes | arrêtez ; faites arbitrer par le décideur |
| « Comme la dernière fois » | demandez le fichier de la dernière fois |
11.2 Le planning n'est pas valide (rouge sur Résultats)
- Lisez À vérifier avant utilisation : quelle règle obligatoire est enfreinte, combien de fois, pour quels éléments.
- Relancez Est-ce réalisable ? (étape 7) : les constats rouges nomment la cause dans les données.
- S'il est vert et que le planning n'est toujours pas valide : donnez plus de temps (étape 6), ou utilisez Essayer un planning rapide pour voir si un planning valide existe.
- Toujours pas valide : transformez une règle obligatoire à la fois en souhait (étape 4) pour trouver celle qui ne peut pas tenir, puis les lignes de données en cause ; remettez ensuite la règle en obligatoire.
11.3 Erreurs de données au chargement (Le problème ne peut pas être lu)
Chaque message a un titre clair, la phrase exacte du moteur et l'endroit où corriger (« Corrigez-le dans étape 4 : Règles › règle « No clash » › réglage « group_property », puis vérifiez à nouveau »). Exemples : une règle nomme une colonne qu'aucun élément n'a (orthographe), une valeur n'a pas le bon type (texte dans une colonne nombre), un id est utilisé deux fois, une décision n'a pas d'options.
11.4 Comparer avec le planning du client
Mettez leur planning dans le classeur sous forme d'épingles (chaque élément épinglé avec leurs valeurs) et planifiez : le score est celui de leur planning mesuré par nos règles. Puis planifiez sans épingles. Comparez dans Résultats → Règles & score, et avec Comparer les solutions.
11.5 Replanifier après un changement
Recopiez les décisions du planning publié dans la feuille des éléments (Résultats → Exporter vers Excel donne chaque élément avec ses décisions) : épinglez ce qui est fait, ajoutez les colonnes previous_* et les souhaits « garder » pour le reste, appliquez le changement (absence = indisponibilité, panne = créneaux d'arrêt, urgence = nouvelle ligne), chargez, planifiez. Résultats → Changements compare avec le planning précédent (même onglet du navigateur, ou chargez les fichiers problème et solution de référence). L'assistant n'a pas encore de bouton « replanifier depuis ce planning » (§13).
11.6 Performances
Itérez avec 30 à 60 s ; gardez la limite longue pour le planning final. Au-delà d'environ 1 000 éléments, testez d'abord le temps.
12. Portes d'acceptation
12.1 Porte 1 — données prêtes à planifier (tout doit être coché)
- ☐ Fiche d'entretien complète (§4.11), signée par le planificateur du client.
- ☐ Chaque règle obligatoire associée à un type de règle et à ses colonnes ; chaque règle non modélisée listée comme limite.
- ☐ Tableau d'inventaire complet ; chaque donnée obligatoire a une source et un propriétaire.
- ☐ Classeur : Setup complet ; chaque feuille nommée comme sa liste ; ids uniques et non vides.
- ☐ §9.1 et §9.2 passés ; arithmétique du §9.3 discutée avec le client.
- ☐ Remplir toutes les étapes importe sans aucun problème.
- ☐ Est-ce réalisable ? est vert ou orange, ou chaque constat rouge est compris et accepté par le client.
- ☐ Le planning réel du client pour la période est en main.
12.2 Porte 2 — planning prêt pour la revue
- ☐ Résultats : « Prêt à l'emploi », ou chaque point rouge expliqué.
- ☐ Chaque règle obligatoire à 0 (Règles & score).
- ☐ Souhaits comparés avec le planning du client.
- ☐ Problème, solution et classeur enregistrés avec la date dans leur nom (guide de passation §7).
13. Manques connus et escalade
13.1 Manques relevés en écrivant ce guide (à vérifier avant de promettre)
| Manque | Impact | Contournement |
|---|---|---|
Les noms de types diffèrent : l'assistant propose job-shop-scheduling, cloud-optimization ; les démos et les modèles IA utilisent job-shop, cloud-capacity, workorder-assignment, … | une démo chargée affiche sa propre carte ; les modèles IA de l'étape 0 peuvent ne pas correspondre à la carte de l'assistant | utiliser les noms de l'assistant dans les nouveaux classeurs |
| Pas de bouton « ajouter une liste de référence » à l'étape 3 | les listes de référence ne viennent que d'un classeur ou d'un fichier problème | les déclarer dans la feuille Setup |
| Pas de création de replanification en un clic | les fichiers de replanification se préparent à la main (§11.5) | recopier les décisions depuis Exporter vers Excel |
| Une épingle fixe toutes les décisions de l'élément | impossible de fixer seulement le technicien et de laisser le créneau libre | faire du choix ouvert une décision |
duration : le formulaire dit heures ; la page Résultats compte un nombre simple en minutes | affichage incohérent des durées en nombre simple | utiliser des durées ISO (PT2H) |
| Familles de règles du §2.4 | certaines règles client ne sont pas modélisables | convenir d'un contournement ou noter une limite |
| Les rôles utilisateur (admin, user, analyst, viewer) existent dans PowerAdmin, mais l'assistant ne restreint aucune action selon le rôle | tout utilisateur connecté peut planifier | convenir de règles d'usage avec le client |
13.2 Escalade
Escaladez vers l'équipe produit PowerSolver quand : le moteur répond « erreur interne » ; un constat rouge semble faux au regard des données ; une résolution ne se termine jamais ; une règle client est essentielle et absente des §1 / §2.4. Envoyez : le classeur, les fichiers problem_*.json et solution_*.json téléchargés par l'assistant, une capture du message et l'étape où vous étiez. N'envoyez jamais de données personnelles du client hors du canal convenu.