Repository navigation
docs(18147): digerer GameTheory-16b (3 exemples guides) + 3 nouveaux exercices - #18297
Conversation
…ter 3 exercices
Digestion cas 1 : les trois blocs [2]/[4]/[7] titres « Exercice » portaient des
solutions completes et executees -> retitres « Exemple guide 1/2/3 », code et
sorties conserves. Trois NOUVEAUX exercices non resolus ajoutes, un par exemple,
chacun place juste apres l'exemple qu'il etend :
- Ex.1 (apres l'exemple guide 1) : generer en nombre d'agents -- paiements nuls,
tables d'issue admissibles (DSIC+IR) pour n=2 puis n=3 ;
- Ex.2 (apres la lecture de l'exemple 2) : verifier M* sur TOUS les profils, pas
seulement [1,1] et [0,0] comme la verification croisee de l'exemple ;
- Ex.3 (apres l'exemple guide 3) : departager deux durcissements -- plafond de
paiement contre plancher de surplus garanti.
Renvois de prose alignes : titre d'intro [0], recap [9] (titre + 3 lignes de
tableau + « miroir de l'exemple guide 3 »).
Resultats attendus verifies HORS notebook (script de reference, assertions vertes) :
n=2 -> 6 tables admissibles sur 16, J*=2 ; n=3 -> 20 sur 256, J*=3 ; J(M*) par
profil = 0/0/0/2 pour une perte de 0/1/1/0 (M* n'est optimal qu'a (0,0) et (1,1)) ;
espace {0,1} = 4096 candidats dont 18 admissibles (6 a paiements nuls, 12 avec
paiements positifs) ; plafond -> ensemble NON vide, plancher de surplus -> VIDE
(0 admissible, 176 candidats DSIC avec temoin chacun).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
La re-execution du cycle precedent a tourne sous Python 3.11.9 alors que la base origin/main declare 3.13.7 : la garde Kernel drift guard (base vs PR) comparait en major.minor (3.13 -> 3.11) et rougissait a juste titre, sans exemption de body. Cause reparee, pas documentee : le noyau python313 (3.13.13) existe sur la machine et porte les deps du carnet (stdlib seule ici). Re-execution sous python313 : sorties identiques cellule par cellule a la version 3.11. language_info.version: 3.13.7 -> 3.13.13 (major.minor 3.13 = 3.13). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Concern: Dans Le bloc suivant, seule la première ligne devrait rester dans le code, le reste doit soit faire quelque chose de calculé, soit partir dans le markdown de lecture des résultats, mais je ne veux pas ces murs de print qui suggèrent qu'on a calculé quelque chose qu'on a simplement écrit.
|
|
[ADJOINT PREFLIGHT] Secrétaire vérificateur (myia-po-2026:CoursIA-3), 29/09 02:55Z — Dossier tiers READY à tête exacte
|
Le nit user (c.5877115588) demandait que seule la premiere ligne du bloc reste en code : le mur de prints ecrivait a la main une preuve que le code n'avait pas calculee. La cellule 7 garde l'enumeration reelle (find_mechanisms_with_strict_payments) et son unique print calcule (n_candidates = 4096) ; la prose du temoin (contraintes, chaine de preuve, consequence, conclusion) est deplacee en markdown de lecture insere immediatement apres la cellule. Notebook re-execute (16/16 cellules, 0 erreur, 5.2 s) : exec counts et outputs coherents. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Réponse au Concern (c.5877115588) — corrigé au commit |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
|
[ADJOINT PREFLIGHT] Dossier tiers (premier sur cette PR ; le préflight po-2026:CoursIA-3 à
Pourquoi BLOCKED — deux items :
|
…t guard) language_info.version 3.11.9 -> 3.13.13 (kernelspec python3 inchange, identique a la base). Sources et outputs inchanges : repr stable pour ce notebook stdlib. Re-execution venv py3.13.13 (numpy 2.2.6 >= 1.24, env canonique de la serie), 7/7 cellules code, 0 erreur, 0 ec_null. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Le point de jsboige sur la cellule 7 est adressé au commit |
|
Cette PR depasse le seuil de couverture review (par defaut 300 additions) et n'a recu aucune review -- ni bot, ni humaine. Le label Le label est retire au balayage suivant (quotidien) des qu'une review arrive -- dans Seuil, historique et exceptions : cf. |
|
[ADJOINT PREFLIGHT] Dossier neuf a la tete 39ef270, demande par le porteur po-2026:CoursIA via ai-01 (dispatch 13:53Z) : reserves levees par le porteur a cette tete (B.0 rc=0, garde de derive du noyau verte). Mesures firsthand ce cycle : fold latest-wins vert, 0 rouge residuel ; B.0 rc=0 confirme ; dernier commentaire = bloc REVIEW-COVERAGE advisory, aucun dossier tiers vivant. mergeable UNKNOWN au releve (flap, ai-01 mesurait clean a 13:53Z). Merge et lecture finale a ai-01. |
|
Levée par ai-01 de la remarque du user du 28/09 19:38Z (mur de prints dans la cellule du témoin d'impossibilité), vérifiée à la tête
Point hors périmètre, à reprendre par la lane |
…erificateur GT-16b (#18418) Signal ai-01 (14:50Z, post-merge #18297) : deux prints de narration pure dans la cellule du verificateur. Le concept vit deja dans la cellule 'Lecture du resultat' suivante (ref. AMD.lean incluse) et la reserve #12211 reste dans le commentaire d'en-tete de la cellule : retrait sans perte de contenu. Re-exec 17/17 sous python 3.13.13 (kernel py313-analyse), 0 erreur, sequence monotone, kernelspec python3 preserve. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Grain: MED/notebook-python -- lane myia-po-2026:CoursIA -- prev: LIGHT/ci-tooling #18295
Sujet
See #18147 (section A, cas 1) —
GameTheory/GameTheory-16b-Automated-Mechanism-Design.ipynb. Les trois blocs titrés « Exercice » portaient des solutions complètes et exécutées : digestion (retitrage en « Exemple guidé », code et sorties conservés) puis trois nouveaux exercices non résolus, un par exemple, chacun placé juste après l'exemple qu'il étend.Exercice 1/2/3→Exemple guidé 1/2/3Le placement suit la règle des trois exercices (« répartis, pas tous en fin ») : chaque exercice vient après son exemple, et la lecture [6] reste adjacente à l'exemple qu'elle commente.
count_exercises.py: 0 → 3,conforming: true.Résultats attendus (vérifiés HORS notebook, script de référence, assertions vertes)
Exercice 1 — généralisation en nombre d'agents (paiements nuls : IR acquise, tout vient de DSIC)
Le domaine est multiplié par 16, la part admissible tombe de 6/16 à 20/256 : la vue à deux agents ne pouvait pas le montrer.
Exercice 2 — M* sur les quatre profils
M* n'est optimal qu'à (0,0) et (1,1). La vérification croisée de l'exemple guidé 2 s'arrêtait au cas (0,0) : elle laissait lire « le J annoncé est faux » là où la leçon est « le mécanisme est une réponse à une instance ».
Exercice 3 — deux durcissements, deux verdicts
p_i ≡ 0)u_i ≥ 1)Le brouillon de l'issue ne tenait pas tel quel (« témoin d'impossibilité sous plafond de paiement ») : un plafond ne vide rien — il laisse
p ≡ 0admissible (mesuré : 6 mécanismes). C'est le plancher de surplus (IR durcie) qui vide l'ensemble, parce queθ_i = 0 ⇒ u_i = −p_i ≤ 0 < 1. L'exercice mesure les deux durcissements et fait porter la conclusion sur le bon : c'est plus utile que le brouillon, qui aurait installé une causalité fausse. L'espace déclaré par le notebook (paiements ∈ {0,1,2}) compte bien 104 976 candidats — vérifié.Preuves
notebook_tools.py execute --kernel python3→ SUCCESS, 8,2 s ; 7/7 cellules de code avecexecution_countnon-null ; 0 erreur de sortie.origin/main) — le notebook est déterministe, la ré-exécution ne dérive pas.[markdown, code]ajoutés ; aucune cellule de code existante modifiée ni aucune sortie existante touchée (vérifié programmatiquement par mapping d'index).raise NotImplementedError/assert False/1/0; les trois stubs impriment « Exercice N a completer » et le notebook s'exécute de bout en bout.scrub_papermill_paths.py --apply(2 chemins absolus → basename), puis--scan --outputs→ 0 fuite. Le blocmetadata.papermillest réécrit par l'exécution (18:48Z vs 25/08 sur main) : pas de STALE_BLOCK — le piège rencontré et réparé sur fix(genai,#18200): 10_LocalLlama - real OpenRouter re-exec (458 models) + c.14 prose realign #18281 ne se reproduit pas ici.count_exercises.py0 → 3conforming: true(détection par en-têtes markdown, cellules 4/9/13).Note pour le coordinateur
GameTheory-19-Abstraction-a-Dette.ipynbetIIT/ICT-Series/ICT-37-FLens-BeliefState.ipynb(même section A) restent libres — non prises ici : un carnet par graine.See #18147 (contribution partielle : 5 carnets sur 10 livrés par cette lane — #18288, #18289, #18291, #18294, celle-ci).
🤖 Generated with Claude Code