An operator who did not write the software must be able to prepare an evening alone. GUIDE-USAGE.md follows an evening step by step on the published captures, with the seed and stop count that reproduce them, and explains why two searches give two placements and how the ranking picks the best one. GUIDE-WINDOWS.md covers installation and the portable mode. README.md carries the generated contrast and constant tables, and a delivery build fails when a generated region differs. Checked: the guide's numbers are bounded in the tests; 3699 node and 101 long tests green from the index alone. --- FR --- [ADD] docs : guides d'usage et Windows, fonctionnement de la recherche Une personne qui n'a pas écrit le logiciel doit pouvoir préparer une soirée seule. GUIDE-USAGE.md suit une soirée pas à pas sur les captures publiées, avec la graine et le compte d'arrêt qui les reproduisent, et explique pourquoi deux recherches donnent deux placements et comment le classement choisit le meilleur. GUIDE-WINDOWS.md couvre l'installation et le mode portable. README.md porte les tableaux engendrés des contrastes et des constantes, et une construction de livraison échoue quand une région diffère. Vérifié : les nombres du guide sont bornés dans les épreuves ; 3699 node et 101 longues vertes depuis l'index seul. Assisted-by: Claude Opus 5.5
604 lines
31 KiB
Markdown
604 lines
31 KiB
Markdown
# Gestion table tournante Libre — le guide d’usage
|
||
|
||
Ce guide suit une soirée du début à la fin : ouvrir un événement, y mettre les
|
||
participants et les tables, laisser le logiciel chercher des placements, en
|
||
retenir un, l’ajuster, puis imprimer. Il s’adresse à la personne qui prépare la
|
||
soirée ; il ne suppose rien de la façon dont le logiciel est écrit.
|
||
|
||
Les écrans montrés ici se reproduisent. Le parcours crée un événement nommé
|
||
« Soirée d’essai », y importe le fichier `exemples/participants_cas_limites.csv`
|
||
livré avec le logiciel, pose deux tables, désigne un animateur et génère avec la
|
||
graine 4242 et un compte d’arrêt de 300, les autres réglages de génération
|
||
gardant leur valeur par défaut ; les étapes où la taille compte chargent la
|
||
« Grande démonstration » depuis le premier écran. Suivez les mêmes gestes, avec
|
||
les mêmes réglages, et vous verrez les mêmes écrans.
|
||
|
||
Les étapes sont **un ordre de lecture, pas un assistant** : le logiciel
|
||
n’enchaîne rien et ne vous oblige jamais à revenir au début. Une faute de
|
||
saisie découverte au moment d’imprimer se corrige à l’endroit où elle se trouve.
|
||
|
||
Pour installer et lancer le logiciel sous Windows, et savoir où vont vos
|
||
fichiers, lisez `GUIDE-WINDOWS.md`.
|
||
|
||
## Avant de commencer : lecture, écriture, et trois garanties
|
||
|
||
**Tout événement s’ouvre en lecture.** Rien ne s’y modifie tant que vous n’avez
|
||
pas cliqué sur « Modifier », toujours à la même place, en haut de l’écran. Un
|
||
cadre autour du plan et le bandeau disent dans quel mode vous êtes. Après un
|
||
moment d’inactivité, le logiciel revient seul en lecture, entre deux gestes et
|
||
jamais au milieu de l’un d’eux.
|
||
|
||
**Un plan bloqué** refuse toute modification, import compris, jusqu’à ce que
|
||
vous le débloquiez. L’état du plan — « Brouillon », « Proposé », « Retenu »,
|
||
« Bloqué » — se lit et se change en haut de l’événement.
|
||
|
||
Tout geste qui modifie l’événement suit trois règles :
|
||
|
||
1. une fois achevé, il est **à la fois** dans l’historique et sur le disque ;
|
||
il n’y a jamais rien à enregistrer ;
|
||
2. il se reprend : « Défaire » et « Refaire » remontent et redescendent
|
||
l’historique, qui ne perd jamais rien ;
|
||
3. s’il est refusé, le refus dit pourquoi et, quand un geste le lève, lequel —
|
||
à l’endroit même où vous avez agi : sur la place, sur la ligne de l’aperçu
|
||
d’import, sur le champ. Seul un geste qui détruit de la saisie ouvre une
|
||
fenêtre de confirmation.
|
||
|
||
Lire le diagnostic et comparer les propositions ne modifient rien : ces écrans
|
||
restent utilisables en lecture.
|
||
|
||
## Étape 1 — Ouvrir ou créer l’événement
|
||
|
||
Le premier écran est la liste des événements. Quand elle est vide, elle n’est
|
||
jamais une page blanche : elle offre de créer un événement et de charger l’une
|
||
des démonstrations livrées. Elle affiche aussi le dossier de travail, avec la
|
||
commande qui l’ouvre dans l’explorateur.
|
||
|
||

|
||
|
||
*Regardez la partie « Démonstrations » : chacune se charge comme un nouvel
|
||
événement, ouvert en lecture, sans toucher aux autres. Sous « Créer un
|
||
événement », seul le nom est exigé ; la date est facultative.*
|
||
|
||
Ouvrir un événement existant ne réécrit jamais son fichier. Créer un événement,
|
||
ou charger une démonstration, en écrit un nouveau.
|
||
|
||
## Étape 1b — Passer en écriture
|
||
|
||
L’événement s’ouvre en lecture. Tentez un geste qui modifie, par exemple
|
||
« Ajouter une table ronde » dans la section « Tables et tours » : le refus
|
||
s’affiche à côté du bouton, et propose « Modifier ».
|
||
|
||

|
||
|
||
*Le refus apparaît là où vous avez cliqué, sans fenêtre. Le mot « Lecture »
|
||
figure dans le bandeau et sur le cadre de l’événement.*
|
||
|
||
Cliquez sur « Modifier » : le cadre passe en écriture, et le même geste
|
||
réussit. « Revenir en lecture » fait l’inverse.
|
||
|
||
## Étape 2 — Importer la liste des participants
|
||
|
||
Cette étape est facultative : la liste peut aussi se saisir à la main
|
||
(étape 3). Dans la section « Import », choisissez un fichier CSV ou déposez-le
|
||
sur la fenêtre. **Rien ne s’importe avant l’aperçu.**
|
||
|
||

|
||
|
||
*L’aperçu nomme l’encodage et le séparateur que le logiciel a reconnus, dit ce
|
||
que devient chaque colonne — « Organisation » devient l’appartenance, « Rôle »
|
||
le titre pressenti — et signale une colonne non reconnue, ignorée. Vérifiez ces
|
||
trois lignes avant d’importer.*
|
||
|
||
Le mode de l’import se choisit au même endroit : « Ajouter » ajoute des
|
||
personnes, « Mettre à jour » met à jour celles que le fichier reconnaît sans
|
||
effacer les champs qu’il ne porte pas, « Remplacer » remplace la liste et
|
||
annonce d’abord ce qu’il détruit.
|
||
|
||
Un fichier enregistré par un tableur sous Windows n’est souvent pas en UTF-8.
|
||
Le logiciel le reconnaît et le dit :
|
||
|
||

|
||
|
||
*Ici l’encodage lu est « windows-1252 » et le séparateur la virgule. Vérifiez
|
||
un nom accentué : « Givrecœur » et « Héloïse » doivent s’afficher tels quels. Un
|
||
prénom écrit « Héloïse » au lieu de « Héloïse » trahit un encodage mal lu, et
|
||
rien d’autre ne vous en avertirait.*
|
||
|
||
Après l’import, le rapport compte ce qui est entré :
|
||
|
||

|
||
|
||
*Le rapport compte les personnes ajoutées, mises à jour, inchangées ou
|
||
retirées, regroupe les orthographes d’une même appartenance qu’il a fondues, et
|
||
liste les lignes refusées avec leur motif. « Enregistrer les lignes refusées »
|
||
les écrit dans un fichier, pour les corriger dans un tableur et les réimporter.
|
||
L’import entier compte pour un seul geste : « Défaire » le reprend d’un coup.*
|
||
|
||
Un import est refusé sur un plan bloqué ; le message nomme la commande qui
|
||
débloque.
|
||
|
||
## Étape 3 — Compléter la liste à la main
|
||
|
||
Dans la section « Participants », la grille se modifie directement. Seul le nom
|
||
est exigé ; le logiciel n’invente aucune valeur manquante. La ligne « Ajouter
|
||
une personne » ajoute quelqu’un ; une plage de cellules copiée d’un tableur et
|
||
collée dans la grille passe par l’aperçu d’import.
|
||
|
||

|
||
|
||
*Le compte des participants égale celui de l’import. La personne marquée
|
||
« exclue » reste dans la liste mais n’est plus placée, et ne compte plus dans
|
||
aucune statistique : « Réintégrer » la remet. Cliquez sur un en-tête de colonne
|
||
pour trier, tapez dans « Filtrer » pour réduire la liste.*
|
||
|
||
« Exporter la liste » écrit la grille dans un fichier CSV. L’export écrit
|
||
chaque valeur telle qu’elle a été saisie, sans rien y ajouter : un tableur qui
|
||
l’ouvre peut prendre pour une formule une cellule qui commence par « = »,
|
||
« + », « - » ou « @ ». Si une valeur commence ainsi, ouvrez le fichier par la
|
||
commande d’import de texte du tableur, colonnes en texte.
|
||
|
||
## Étape 4 — Préparer les tables
|
||
|
||
Dans la section « Tables et tours », fixez d’abord les **places par défaut**,
|
||
puis ajoutez les tables, rondes ou carrées. Chaque table suit le défaut, ou
|
||
porte son propre nombre de places : on dit alors qu’elle est surchargée.
|
||
|
||

|
||
|
||
*Les deux tables ont le même nombre de places, mais l’une « Suit le défaut » et
|
||
l’autre est « Surchargée » : seule la première suivra un changement du défaut.
|
||
« Réaligner » ramène une table surchargée au défaut.*
|
||
|
||
Changer le défaut ne s’applique pas tout de suite : le logiciel annonce d’abord
|
||
la conséquence, chiffrée.
|
||
|
||

|
||
|
||
*L’annonce dit combien de tables suivent le défaut et ce qu’elles deviennent,
|
||
lesquelles, surchargées, ne changent pas, et le total des sièges contre le
|
||
nombre de participants. Choisissez « Appliquer », « Appliquer et réaligner la
|
||
surchargée » ou « Garder le défaut actuel ». Une baisse qu’une seule table
|
||
refuse est refusée en entier.*
|
||
|
||
La section « Plan » montre les tables à l’échelle :
|
||
|
||

|
||
|
||
*Chaque table se dessine à sa taille réelle, avec ses sièges numérotés. Tant
|
||
qu’aucune dimension de salle n’est saisie, la mention « disposition relative »
|
||
rappelle que l’encombrement dans la salle n’est pas vérifié. Faites glisser une
|
||
table pour la déplacer ; « Ajuster » cadre le plan entier.*
|
||
|
||
Sur un grand plan, le dessin s’adapte au zoom. Zoomé, chaque siège se vise :
|
||
|
||

|
||
|
||
*À ce zoom, un clic ou un dépôt vise le siège sous le pointeur.*
|
||
|
||
Au zoom qui montre toute la salle, les sièges deviennent trop petits pour être
|
||
visés un par un, et c’est la table entière qui reçoit le geste :
|
||
|
||

|
||
|
||
*Ici, un dépôt vise la table ; zoomez pour choisir un siège précis.*
|
||
|
||
## Étape 5 — Fixer le nombre de tours
|
||
|
||
Le nombre de tours se règle dans la même section. Retirer un tour puis le
|
||
remettre retrouve intactes les réservations valables à tous les tours. En
|
||
revanche, retirer le tour *r* détruit les réservations posées sur ce seul tour,
|
||
et le logiciel le dit **avant** d’appliquer :
|
||
|
||

|
||
|
||
*L’annonce nomme chaque réservation détruite, avec sa personne, sa table et
|
||
son tour. « Annuler » ne change rien.*
|
||
|
||
Les placements déjà générés ne sont pas tronqués : ils restent entiers, mais ne
|
||
décrivent plus la soirée, et le logiciel nomme ceux que le changement touche.
|
||
|
||
## Étape 6 — Désigner les animateurs, table par table
|
||
|
||
Cette étape est facultative : une soirée sans animateur est valide. Le
|
||
logiciel ne répartit pas les animateurs : vous désignez vous-même **quelle
|
||
personne anime quelle table**.
|
||
|
||
Choisissez la personne — dans la « Réserve » du plan, ou par « Voir sur le
|
||
plan » depuis la grille —, puis la place : « Désigner » pose d’un seul geste une
|
||
réservation valable à tous les tours et un titre de place, par exemple
|
||
« animation ». Les deux ensemble font l’animateur. « Réserver » pose une
|
||
réservation seule, pour un tour ou pour tous ; « Donner un titre » pose un
|
||
titre seul, que personne n’occupe encore.
|
||
|
||

|
||
|
||
*À la table 1, le siège 1 porte un cadenas fermé et un anneau : réservé à tous
|
||
les tours, à l’animateur. À la table 2, le siège 1 est hachuré avec un cadenas
|
||
ouvert : un titre « animation » attend son titulaire. La liste des sièges
|
||
énonce les deux en toutes lettres. À droite, les « Listes de travail » montrent
|
||
ce qui reste à faire : les titres de place non pourvus, et les personnes au
|
||
titre pressenti qui ne sont réservées nulle part.*
|
||
|
||
Une table peut avoir zéro, un ou plusieurs animateurs, mais jamais plus
|
||
d’animateurs que de sièges. Une table dont tous les sièges sont réservés est
|
||
acceptée et signalée : elle ne tourne plus. Quand les sièges ne sont pas
|
||
attribués, « la place » est la table entière, qui porte un compte de titres.
|
||
|
||
## Étape 7 — Placer des participants à la main
|
||
|
||
Les mêmes gestes posent des réservations ordinaires, pour un tour ou pour tous.
|
||
Le logiciel refuse de déposer quelqu’un sur une place réservée à un autre, et
|
||
dit pourquoi sur la place même :
|
||
|
||

|
||
|
||
*Le refus s’affiche sur le siège visé, nomme sa cause — le siège est réservé à
|
||
une autre personne à tous les tours — et le geste qui la lève : déplacer cette
|
||
réservation. Aucune fenêtre ne s’ouvre, rien ne s’écrit.*
|
||
|
||
Déplacer une réservation est un geste à part : « Déplacer sa réservation »,
|
||
dans le menu de la personne.
|
||
|
||
## Étape 8 — Lire le diagnostic
|
||
|
||
Le diagnostic se calcule seul, avant toute recherche : il n’y a rien à
|
||
demander. Il dit ce que la configuration rend inévitable, combien, et ce qui le
|
||
rendrait évitable.
|
||
|
||

|
||
|
||
*Sur la grande démonstration, le diagnostic donne le **plafond a priori** — le
|
||
plus de personnes qu’on puisse rencontrer, ici différent pour les animateurs des
|
||
petites tables et pour les autres —, les **retours imposés** par les
|
||
réservations, comptés à part de ceux que choisit la recherche, et le
|
||
**plancher de l’écart d’itinéraire**. Chaque ligne dit ce qui la ferait bouger,
|
||
et ce qu’aucune relance ne changera.*
|
||
|
||
Le même diagnostic s’affiche à côté du plan, pendant que vous préparez les
|
||
tables : chaque appartenance trop nombreuse pour ses tables y annonce les
|
||
retrouvailles qu’elle imposera.
|
||
|
||
## Étape 9 — Générer
|
||
|
||
Dans la section « Génération », réglez au besoin la **graine**, le nombre de
|
||
**propositions par génération** et le **compte d’arrêt**, puis cliquez sur
|
||
« Générer ». Les réservations des étapes 6 et 7 sont honorées ; la recherche
|
||
place les autres personnes autour.
|
||
|
||
Les propositions montrées ci-dessous, et les écrans qui en découlent aux
|
||
étapes 10 et 11, viennent d’une génération faite avec la graine 4242 et un
|
||
compte d’arrêt de 300 ; les autres réglages gardent leur valeur par défaut.
|
||
Le compte d’arrêt par défaut, bien plus grand, cherche plus longtemps et donne
|
||
d’autres propositions : écrivez ces deux valeurs pour retrouver les mêmes.
|
||
|
||
Les **cœurs de calcul** sont automatiques par défaut, un par processeur
|
||
logique du poste ; vous pouvez aussi en fixer le nombre. Ce réglage vaut pour la
|
||
séance, sur ce poste, et ne s’enregistre pas dans l’événement. Le logiciel
|
||
affiche la durée du dernier calcul et estime celle de la prochaine génération ;
|
||
une génération qui s’annonce longue demande d’abord confirmation.
|
||
|
||
Chaque génération **ajoute** ses propositions aux précédentes, et un seul
|
||
classement les ordonne toutes. Le logiciel marque dans l’historique l’instant
|
||
qui précède chaque génération, pour y revenir.
|
||
|
||

|
||
|
||
*Le tableau range les propositions selon l’ordre écrit au-dessus de lui :
|
||
d’abord l’écart au plafond a priori, puis l’excédent de collisions, et ainsi
|
||
de suite, chaque critère au plus faible d’abord. Les colonnes donnent, pour
|
||
chacune, le moins de personnes distinctes rencontrées, les collisions entre
|
||
personnes d’une même appartenance, les rencontres répétées et la diversité des
|
||
appartenances rencontrées.*
|
||
|
||
## Étape 10 — Comparer, et retenir
|
||
|
||
Comparer se fait dans le [tableau classé](doc/captures/11-propositions.png) de
|
||
la section « Propositions ». La première ligne est la meilleure selon le
|
||
classement ; les colonnes du **manque** — « Plus grand manque », « Personnes à
|
||
qui il en manque », « Écart d’itinéraire maximal » — permettent de comparer deux
|
||
propositions même quand des tables sont incomplètes (voir « Comment le logiciel
|
||
cherche », plus bas). « Imposé par les réservations » sépare ce que vos
|
||
réservations imposent de ce que la recherche a choisi.
|
||
|
||
« Voir sur le plan » montre une proposition sur le plan, sans rien écrire.
|
||
« Retenir » en fait le **placement retenu** : l’état du plan passe à
|
||
« Retenu », et les autres propositions restent dans la liste. Retenir une autre
|
||
proposition alors que le retenu a été ajusté à la main détruit ces ajustements :
|
||
une fenêtre le dit avant.
|
||
|
||
La liste des événements résume ensuite le retenu par ses collisions cumulées et
|
||
par l’écart de sa somme de redondance d’appartenance à la cible de la soirée.
|
||
|
||
Retenir n’est pas obligatoire, mais tout ce qui s’imprime sans placement retenu
|
||
porte la mention BROUILLON (étape 12).
|
||
|
||
## Étape 11 — Ajuster à la main
|
||
|
||
Sur le placement retenu, le geste de l’étape 7 déplace maintenant une personne
|
||
réelle, au tour affiché. **Le geste est le même, ce qu’il change ne l’est pas,
|
||
et l’interface le dit** pendant que vous faites glisser :
|
||
|
||

|
||
|
||
*Pendant le glissement, l’étiquette qui suit le pointeur dit « déplace dans le
|
||
placement retenu » : la personne change de place dans le plan qui sera
|
||
imprimé, sans poser de réservation. Le titre du plan, « Placement retenu »,
|
||
dit quel placement vous regardez.*
|
||
|
||
Les indicateurs du tableau des propositions suivent l’ajustement.
|
||
|
||
En lecture, aucun de ces gestes ne passe :
|
||
|
||

|
||
|
||
*Le cadre et le libellé « Lecture » entourent le plan, et le bandeau le répète.
|
||
Glisser une personne ou une table, tirer une poignée, poser une réservation :
|
||
chaque geste est refusé avec « Modifier » pour remède, et rien ne change sur le
|
||
disque.*
|
||
|
||
## Étape 12 — Imprimer
|
||
|
||
La commande « Imprimer… », en haut de l’événement, ouvre l’**aperçu
|
||
d’impression**, qui montre les pages telles qu’elles sortiront : le **plan**
|
||
de salle, la **liste d’accueil** et la **feuille par table**. Le plan se
|
||
découpe en pages quand il ne tient pas lisiblement sur une seule ; chaque page
|
||
porte son repère et ses voisines. Au premier aperçu, le logiciel demande le
|
||
format du papier, A4 ou Lettre, puis le garde pour ce poste ; il se change
|
||
ensuite à tout moment.
|
||
|
||
La **planche de badges** est le seul document produit en PDF : quatre badges
|
||
par feuille A4, deux par feuille Lettre, avec leurs traits de coupe. Sa
|
||
première page est une **feuille de contrôle** : mesurez son échelle sous une
|
||
règle avant d’imprimer toute la rame, pour vérifier que l’imprimante n’a pas
|
||
réduit la page. Les badges se tirent du placement retenu, ou d’une proposition
|
||
choisie.
|
||
|
||
Imprimer et produire la planche ne modifient pas l’événement : ces commandes
|
||
restent disponibles en lecture et sur un plan bloqué. Le logiciel n’interdit
|
||
pas d’imprimer un plan qui n’est pas retenu, mais il le marque **BROUILLON**
|
||
en filigrane ; une planche tirée d’une proposition l’est toujours. Chaque page
|
||
imprimée porte en pied le nom et la date de l’événement, le tour, l’instant où
|
||
le placement a pris sa forme, et la version du logiciel.
|
||
|
||
Une fois le plan imprimé, bloquez-le : choisissez l’état « Bloqué » en haut de
|
||
l’événement. Plus rien ne le modifie, jusqu’à « Débloquer ».
|
||
|
||
**Ce qui doit avoir eu lieu.** Il faut des tables (étape 4) et au moins une
|
||
personne (étape 2 ou 3) avant de générer ; il faut avoir retenu un placement
|
||
(étape 10) pour qu’une impression ne sorte pas en brouillon. Tout le reste est
|
||
facultatif, et se reprend dans n’importe quel ordre.
|
||
|
||
## Comment le logiciel cherche
|
||
|
||
Cette section répond à deux questions : pourquoi deux propositions issues du
|
||
même plan diffèrent, et pourquoi relancer aide parfois, et parfois jamais.
|
||
|
||
### Le problème
|
||
|
||
Asseoir chacun, à chaque tour, de sorte que la personne la plus mal servie
|
||
rencontre le plus de monde possible.
|
||
|
||
### Pourquoi il n’a pas de réponse évidente
|
||
|
||
Prenez les douze personnes de la petite démonstration et ses quatre tables
|
||
numérotées de trois places. Pour un seul tour, il y a 369 600 façons de les
|
||
répartir : on compte toutes les façons d’aligner les douze personnes, puis on
|
||
cesse de distinguer l’ordre des trois personnes d’une même table. Sur quatre
|
||
tours, le nombre dépasse 10²². Le logiciel n’essaie donc pas toutes les
|
||
combinaisons — et la petite démonstration est déjà le plus petit cas qu’il
|
||
livre.
|
||
|
||
### Comment la recherche avance
|
||
|
||
Le logiciel part d’un placement complet, dont le point de départ dépend de la
|
||
**graine**. Il **échange** des personnes entre les tables, garde ce qui ne
|
||
dégrade pas le placement, et s’arrête après un **compte** de mouvements
|
||
essayés — le compte d’arrêt de la section « Génération » —, ou plus tôt s’il
|
||
ne reste rien à améliorer.
|
||
|
||
D’où la réponse à la première question : deux recherches parties de deux
|
||
points différents s’arrêtent sur deux placements différents, et aucun des deux
|
||
n’est « le bon ». La même graine, sur la même configuration et les mêmes
|
||
réglages, redonne exactement les mêmes propositions ; une autre graine en donne
|
||
d’autres. Cette phrase est vérifiée par une épreuve du logiciel.
|
||
|
||
### Ce que font les contraintes
|
||
|
||
« Séparer les appartenances », « Nouveaux voisins à chaque tour », « Nouvelle
|
||
table à chaque tour », « Varier les appartenances rencontrées » sont des
|
||
**objectifs**, pas des interdits. Quand ils ne tiennent pas tous ensemble, le
|
||
logiciel produit le meilleur compromis et dit lequel, au lieu de refuser et de
|
||
ne rien montrer.
|
||
|
||
### Le plafond
|
||
|
||
Dans la petite démonstration, chacun a deux voisins par tour : en quatre tours,
|
||
il rencontre au plus 8 personnes, sur onze personnes qu’il pourrait rencontrer.
|
||
Personne ne peut faire mieux, et ce n’est pas un défaut du logiciel. À une
|
||
table de huit, chacun a sept voisins : en quatre tours, 28 rencontres au plus.
|
||
Dans la grande démonstration, les quatre animateurs des tables de sept restent
|
||
à leur table toute la soirée, et leur plafond vaut 24. Le diagnostic affiche
|
||
ces plafonds avant toute recherche
|
||
([le diagnostic de la grande démonstration](doc/captures/10-diagnostic.png)) :
|
||
**la relance ne déplace jamais un plafond.**
|
||
|
||
### Ce que « minimum atteint » veut dire
|
||
|
||
La colonne « Certificat » du tableau des propositions écrit « minimum atteint »
|
||
quand chaque personne rencontre autant de monde que son plafond a priori le
|
||
permet : personne ne peut faire mieux, et relancer ne sert plus à rien. Le
|
||
minimum se mesure contre le plafond a priori, pas contre ce qu’un placement
|
||
donné rendait possible. C’est pourquoi la grande démonstration ne l’obtient
|
||
jamais : son diagnostic prouve, avant toute recherche, que des personnes
|
||
finiront sous leur plafond a priori — c’est le plancher de l’écart
|
||
d’itinéraire.
|
||
|
||
Son absence ne dit pas qu’un meilleur placement existe. « Atteignabilité
|
||
inconnue » dit que le logiciel ne sait pas si mieux est possible.
|
||
|
||
### Ce que relancer ne peut pas
|
||
|
||
Relancer n’efface pas les collisions que le diagnostic annonce comme
|
||
inévitables — les « au moins » de chaque appartenance trop nombreuse pour ses
|
||
tables —, et ne crée pas une table qui n’existe pas. Le diagnostic dit **avant**
|
||
la recherche ce qui est hors d’atteinte, et quel changement de configuration le
|
||
lèverait : une table de plus, un tour de moins, une appartenance mieux
|
||
répartie.
|
||
|
||
### Comparer deux propositions
|
||
|
||
Comparez par le **manque** : pour chaque personne, l’écart entre ce que son
|
||
placement lui permettait de rencontrer et ce qu’elle rencontre. Les nombres
|
||
bruts ne se comparent plus dès qu’une table est incomplète : qui s’assied à
|
||
cette table rencontre moins de monde, et cela change d’une proposition à
|
||
l’autre.
|
||
|
||
Trois colonnes le disent ([le tableau classé](doc/captures/11-propositions.png)).
|
||
« Plus grand manque » : de combien la personne la plus privée l’est-elle, compte
|
||
tenu de là où ce placement l’a assise. « Personnes à qui il en manque » : une
|
||
seule personne, ou quarante ? Les deux appellent des décisions opposées —
|
||
déplacer quelqu’un, ou ajouter une table. « Écart d’itinéraire maximal » : la
|
||
proposition a-t-elle perdu avant même que chacun s’asseye, en envoyant
|
||
quelqu’un à des tables incomplètes ou trop souvent aux mêmes tables ?
|
||
|
||
C’est la troisième colonne qui évite le contresens : une personne laissée en
|
||
réserve pendant presque toute la soirée a un manque nul, puisqu’elle n’avait
|
||
presque personne à rencontrer. Un manque nul sur un itinéraire bas n’est pas
|
||
une bonne nouvelle.
|
||
|
||
### L’écart entre les propositions d’une génération
|
||
|
||
Quand la meilleure et la moins bonne proposition d’une même génération
|
||
atteignent le même minimum, c’est le plus souvent qu’une borne le tient, et
|
||
relancer n’y changera rien. C’est **un indice, pas une preuve**. Le plafond a
|
||
priori, que le diagnostic affiche, le dit d’un coup d’œil : quand le minimum
|
||
d’une proposition l’égale, c’est la borne qui le tient, et aucune relance ne
|
||
fera mieux.
|
||
|
||
## Annexe A — Les réglages et leurs valeurs par défaut
|
||
|
||
Les réglages que l’événement enregistre, l’écran qui les montre et leur valeur
|
||
à la création d’un événement. Les cœurs de calcul n’y figurent pas : c’est un
|
||
réglage du poste, pour la séance, automatique par défaut (étape 9).
|
||
|
||
<!-- engendre:debut reglages -->
|
||
|
||
| Réglage | Écran | Valeur par défaut |
|
||
|---|---|---|
|
||
| Propositions par génération (nombre de propositions) | Génération | 5 |
|
||
| Compte d'arrêt (mouvements évalués par proposition) | Génération | 200 000 |
|
||
| Historique d'acceptation (longueur, en mouvements) | Génération | 1 000 |
|
||
| Séparer les appartenances | Génération | cochée |
|
||
| Nouveaux voisins à chaque tour | Génération | cochée |
|
||
| Nouvelle table à chaque tour | Génération | cochée |
|
||
| Varier les appartenances rencontrées | Génération | cochée |
|
||
| Attribuer les sièges | Génération | décochée |
|
||
| Cible de la somme de redondance | Propositions | 1 000 |
|
||
|
||
<!-- engendre:fin reglages -->
|
||
|
||
## Annexe B — Les colonnes reconnues à l’import
|
||
|
||
Chaque colonne que l’import reconnaît, sous son en-tête d’export, et les autres
|
||
intitulés qu’il accepte pour elle. Les intitulés se comparent sans égard aux
|
||
majuscules ni aux accents.
|
||
|
||
<!-- engendre:debut colonnes-csv -->
|
||
|
||
| Colonne | Synonymes reconnus |
|
||
|---|---|
|
||
| `nom` | — |
|
||
| `prenom` | — |
|
||
| `appartenance` | `organisation`, `entreprise`, `équipe` |
|
||
| `courriel` | — |
|
||
| `titre_pressenti` | `titre`, `rôle` |
|
||
| `exclu` | — |
|
||
| `notes` | — |
|
||
|
||
<!-- engendre:fin colonnes-csv -->
|
||
|
||
## Annexe C — Les commandes et leur trace dans l’historique
|
||
|
||
Chaque geste qui modifie l’événement, et la ligne qu’il laisse dans
|
||
l’historique ; les noms des exemples sont inventés.
|
||
|
||
<!-- engendre:debut commandes -->
|
||
|
||
| Commande | Libellé d'historique (exemple) |
|
||
|---|---|
|
||
| `ajouterParticipant` | Ajouté Iris Ombrelle |
|
||
| `modifierParticipant` | Modifié Ondine Lacasse : courriel |
|
||
| `exclureParticipant` | Exclu Théo Pervenche |
|
||
| `reintegrerParticipant` | Réintégré Théo Pervenche |
|
||
| `supprimerParticipant` | Supprimé Ondine Lacasse |
|
||
| `importerParticipants` | Importé 12 participants |
|
||
| `changerEtat` | Plan passé à l'état « Bloqué » |
|
||
| `debloquer` | Plan débloqué, état « Retenu » |
|
||
| `enregistrerGeneration` | Généré 5 propositions (n° 3 à 7) |
|
||
| `retenirProposition` | Retenu la proposition n° 3 |
|
||
| `effacerPropositions` | Effacé 4 propositions, gardé la retenue (n° 2) |
|
||
| `creerTable` | Ajouté la table 3 |
|
||
| `supprimerTable` | Supprimé la table 2 ; retirés : 2 réservations et 1 titre |
|
||
| `deplacerTable` | Déplacé la table 3 |
|
||
| `changerPlacesTable` | Table 5 : 10 places |
|
||
| `realignerTable` | Table 5 : suit le défaut (8 places) |
|
||
| `changerDefaut` | Sièges par défaut : 10 ; 4 tables réalignées |
|
||
| `changerTours` | Nombre de tours : 3 ; 2 réservations retirées |
|
||
| `modifierReglage` | Séparer les appartenances : désactivé |
|
||
| `changerCibleRedondance` | Cible de la somme de redondance : 1200 |
|
||
| `reserver` | Réservé Théo Pervenche à la table 4, siège 2, tour 2 |
|
||
| `retirerReservation` | Réservation retirée : Théo Pervenche, table 4, tous les tours |
|
||
| `deplacerReservation` | Réservation déplacée : Théo Pervenche, de la table 4 à la table 7, tour 2 |
|
||
| `poserTitre` | Posé le titre « accueil » à la table 3, siège 1 |
|
||
| `retirerTitre` | Retiré le titre « accueil » de la table 3, siège 1 |
|
||
| `designer` | Désigné Iris Ombrelle à la table 3, siège 1 : « accueil » |
|
||
| `convertirEnTous` | Converti en « tous les tours » : Iris Ombrelle, table 3 |
|
||
| `deplacerDansRetenu` | Déplacé Iris Ombrelle de la table 4 à la table 7, tour 2 |
|
||
| `echangerDansRetenu` | Échangé Iris Ombrelle (table 4) et Théo Pervenche (réserve), tour 2 |
|
||
| `retirerDuTour` | Retiré Iris Ombrelle de la table 4, tour 2 |
|
||
|
||
<!-- engendre:fin commandes -->
|
||
|
||
## Annexe D — Les raccourcis clavier
|
||
|
||
<!-- engendre:debut raccourcis -->
|
||
|
||
| Où | Touches | Effet |
|
||
|---|---|---|
|
||
| Plan | → | Passe à la table voisine à droite, ou au siège suivant. |
|
||
| Plan | ↓ | Passe à la table voisine en dessous, ou au siège suivant. |
|
||
| Plan | ← | Passe à la table voisine à gauche, ou au siège précédent. |
|
||
| Plan | ↑ | Passe à la table voisine au-dessus, ou au siège précédent. |
|
||
| Plan | Entrée ou Espace | Descend dans les sièges de la table, ou choisit la place. |
|
||
| Plan | Échap | Remonte du siège à sa table ; sur une table, oublie le choix. |
|
||
| Grille des participants | → | Passe à la cellule de droite. |
|
||
| Grille des participants | ↓ | Passe à la cellule du dessous. |
|
||
| Grille des participants | ← | Passe à la cellule de gauche. |
|
||
| Grille des participants | ↑ | Passe à la cellule du dessus. |
|
||
| Grille des participants | Tab | Valide la saisie en cours et passe à la cellule suivante. |
|
||
| Grille des participants | Maj+Tab | Valide la saisie en cours et revient à la cellule précédente. |
|
||
| Grille des participants | Entrée ou F2 | Ouvre la saisie de la cellule, ou bascule l'exclusion. |
|
||
| Grille des participants | Échap | Efface le refus affiché sous la cellule. |
|
||
| Champ de saisie | Entrée | Valide la saisie. |
|
||
| Champ de saisie | Échap | Rend la valeur d'avant la saisie. |
|
||
| Bouton de commande | Entrée ou Espace | Exécute la commande une fois, même maintenue. |
|
||
| Geste en cours | Échap | Annule le geste en cours : la table revient où elle était. |
|
||
| Panneau ou infobulle | Échap | Ferme le panneau ou l'infobulle. |
|
||
|
||
<!-- engendre:fin raccourcis -->
|
||
|
||
## Annexe E — Les démonstrations livrées
|
||
|
||
Les démonstrations que le premier écran offre, lues dans leurs fichiers : leur
|
||
taille et l’étendue de leur plafond a priori.
|
||
|
||
<!-- engendre:debut demonstrations -->
|
||
|
||
| Démonstration | Effectif | Tables | Tours | Plafond a priori, minimum | Plafond a priori, maximum |
|
||
|---|---|---|---|---|---|
|
||
| Grande démonstration | 260 | 33 | 4 | 24 | 28 |
|
||
| Grande démonstration sans exception | 260 | 33 | 4 | 28 | 28 |
|
||
| Petite démonstration | 12 | 4 | 4 | 8 | 8 |
|
||
| Petite démonstration, conflit inévitable | 12 | 4 | 4 | 8 | 8 |
|
||
|
||
<!-- engendre:fin demonstrations -->
|