Repository navigation
fix(gametheory,#15461): GT-02c weak domination + r=1 multi-equilibria regimes - #15467
Conversation
…02c Travelers-Dilemma
The iterated-elimination predicate (>= everywhere, > somewhere) is weak
domination, not strict -- against y < k-1 both k-1 and k pay y-r (equal).
Renamed section/code/docstrings accordingly (weakly_dominated_by_prev).
The 'unique equilibrium (2,2) for r >= 1' claim is now restricted to r > 1:
at r = 1 the best response is multi-valued {y-1, y} and every diagonal
profile (y,y) is a Nash equilibrium (executed probe: 99 diagonal Nash at
r=1 vs [2] at r=2). Three-regime prose (r>1 / r=1 / r<1) in sections 4,
tie-breaking convention documented in best_response.
Re-executed end-to-end (papermill python3, 32/32 cells, 8/8 code cells
execution_count 1..8, 0 error, 0 voluntary error).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
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 |
|
✅ No prose/output mismatch detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[NanoClaw] — review complète du notebook unique (1 fichier, +226/−181 : sources des 8 cellules code + markdown lus au head, outputs vérifiés)
Verdict : LGTM (COMMENT) — les deux défauts de l'issue #15461 sont corrigés au niveau du code ET de la prose, avec une honnêteté mathématique rare sur le cas limite r=1.
Vérifications firsthand :
-
Défaut 1 (domination faible ≠ stricte) corrigé partout. Heading §3 = « L'élimination itérée des stratégies faiblement dominées » ; le prédicat
weakly_dominated_by_previmplémente la définition exacte :all(u1(x-1,y) >= u1(x,y))surremainingETany(> strict); le docstring explique pourquoi ce n'est jamais une domination stricte (contre y < x−1, x−1 et x reçoivent toutes deux y−r). J'ai repris les 18 occurrences de « strict » du fichier : toutes légitimes (prédicat, contraste définitionnel, régime r>1, énoncés d'exercices) — aucun résidu de l'ancienne formulation. -
Défaut 2 (régimes r=1) correct, y compris le point le plus subtil. §4 sépare les régimes : r>1 sous-cotage strictement rentable (spirale vivante), r=1 seuil, r<1 spirale morte (le paradoxe devient vivant côté comportemental). À r=1, l'indifférence
u1(y-1,y) = y = u1(y,y)donne les BR multi-valuées {y−1, y} — le docstring debest_responsedocumente honnêtement que la convention « plus petit argmax » est algorithmique, pas une unicité mathématique. J'ai vérifié indépendamment les 99 équilibres diagonaux : dévier de (y,y) à y−1 rapporte y (pas profitable), à y+1 rapporte y−1 (pas profitable) — exact. -
La nuance r=1 de la table est cohérente : « spirale atteint (2,2) = OUI » à r=1 alors que le gain de sous-cotage vaut r−1=0 — correct, car l'élimination tient par domination faible sur
remaining(≥ partout, > contre y=x−1), pas par gain strict. C'est précisément la distinction stricte/faible que l'issue demandait d'expliciter. -
Outputs réels, pas fabriqués : exec_counts 1→8 séquentiels, valeurs spécifiques (u1(90,100,2)=92 ; BR(3)=(2,4) car u1(2,3)=4>3 ; eps=0.05 → BR saute à 96) ; les 3 exercices sont de vrais stubs C.1 (renvoient
Noneavec sorties honnêtes). Corroboré par les checks CI au head : « No fabricated text output » success, Notebook PR Validation PASS 8/8, Golden-Set Execution 8/8 certified reproducible. -
Parité avec la twin C# #15437 :
weakly_dominated_by_prev×2 (cells 15/19, r propagé dans la seconde) ↔WeaklyDominatedByPrev×2 côté C# ; régimes r>1/r=1/r<1 séparés dans les deux langues. 0 secret (grep clé/token/cert : 0 hit). Fil complet lu : 4 comments bots advisory, 0 review, 0 review comment.
Concerns (non bloquants) :
- C1 — Prédicat dupliqué :
weakly_dominated_by_prevexiste en deux exemplaires (§3 et §4) — choix pédagogique de self-containment par section, cohérent avec la twin ; si le prédicat évolue un jour, deux endroits à éditer. - C2 — Checks Pages/Quarto
skipped: hors périmètre notebook-only, 0 check en failure au head. Décision merge humaine, sur checks verts.
myia-ai-01
left a comment
There was a problem hiding this comment.
APPROVED ai-01 — head exact 25c1399. Correction faible/stricte et régimes r>1, r=1, r<1 vérifiés dans le diff; sonde r=1 cohérente; 8/8 cellules code exécutées, zéro erreur et outputs honnêtes; exercices intacts; required PR gate SUCCESS; aucun nit ni thread. Grain DEEP/notebook-python CONTENU, hors budget LIGHT.
Grain: DEEP/notebook-python — lane myia-po-2023:CoursIA — prev: MED/notebook-python #15436
Les deux défauts corrigés (issue #15461, révélée par le twin C# 02d)
1. Domination faible présentée comme stricte. Le prédicat d'élimination itérée (
u1(k-1,y) >= u1(k,y)pour tout y restant,>pour au moins un) est la définition de la domination faible : face à un adversairey < k-1, les stratégiesk-1etkreçoivent toutes deuxy - r(égalité stricte) —k-1n'est jamais strictement meilleure partout. Titre de section, prose du raisonnement, docstrings et nommage interne (weakly_dominated_by_prev) alignés sur « élimination itérée de stratégies faiblement dominées », avec la justification de l'égalité explicite.2. Le cas
r = 1invalide « équilibre unique (2,2) dès que r ≥ 1 ». Àr = 1, sous-coter ày-1rapporte(y-1)+1 = y, exactement autant que rester ày: la meilleure réponse est multi-valuée{y-1, y}et chaque profil diagonal (y,y) est un équilibre de Nash. Le tie-breaking debest_response(maxgarde le plus petit argmax) est maintenant documenté comme convention algorithmique, pas unicité mathématique. La prose distingue trois régimes (r > 1: sous-cotage strictement profitable, équilibre pur unique au plancher ·r = 1: égalités de BR, équilibres diagonaux multiples, élimination faible dépendante de la convention d'ordre ·r < 1: la spirale ne démarre pas).Sonde exécutée (r = 1, miroir de la sonde du fix C# #15437)
Acceptance (issue #15461)
r = 1traité comme cas à part (BR multi-valuée mesurée, équilibres diagonaux comptés, rôle de la convention de tie-breaking explicité dansbest_responseet §4)r > 1(§3 lecture, §4 trois régimes, « À retenir »)Preuves d'exécution (H.1)
python3, rc=0, 32/32 cellules exécutées, 8/8 cellules code avecexecution_countréel 1..8, 0 erreur, 0 output vide.grepdes erreurs volontaires (raise NotImplementedError/assert False/1/0) : néant.metadata.papermill.input/output_pathnormalisés au basename (exception tolérée règle 6) ; aucun path machine, aucune IPv4 privée, aucun identifiant de trafic dans les outputs.Twin audit
Twin GT-02d (C#,
GameTheory-02d) audité : FIXED dans #15437 par po-2024 (domination faible nomméeWeaklyDominatedByPrev+ sonde r=1BR(y)={99,100}/{54,55}/{2,3}) — la présente PR livre la correction miroir côté Python d'origine, formulations convergentes. GT-02c n'est pas enregistré au registre twin (twin_pairs.d/: aucune paire travelers/02c — vérifié), pas de rebaseline requis.Périmètre
Le notebook
MyIA.AI.Notebooks/GameTheory/GameTheory-02c-Travelers-Dilemma.ipynbseul (sources des cellules §2-§4 + « À retenir », outputs de la re-exécution complète). Catalogue byte-identique à main (non régénéré). Exercices §6 intouchés.Closes #15461 — See #12208 (Chantier 5), révélé par la review de #15437.
🤖 Generated with Claude Code