You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
GT-02: aligner le stub IESDS C# sur la rigueur Python (suivi #21192) #21215
Part of #21192 — la PR #21212 a fixé find_dominant_strategy (renommé find_weakly_dominant_strategy + clause stricte) et la garde IESDS 1x1 sur le jumeau Python GameTheory-02-NormalForm-Python.ipynb.
Asymétrie à corriger
Le jumeau C# GameTheory-02-NormalForm-CSharp.ipynbn'a pas la même asymétrie :
Python a une fonction find_dominant_strategy (devenue find_weakly_dominant_strategy + clause stricte + find_strictly_dominant_strategy symétrique).
C# utilise une méthode IsStrictlyDominated(a, b, U1, U2) (cellule 11) — abstraction différente, pas de find_dominant_strategy.
Python avait un IESDS pré-écrit avec affichage « Issue prédite » sans garde 1x1 (corrigé).
C# a un stub d'exercice en cellule 26 : // Exercice 2 : trace IESDS étape par étape sur le Dilemme du Prisonnier (étudiant à compléter) — l'étudiant écrit le code, le notebook ne fait pas l'élimination automatiquement.
Diagnostic
Cette asymétrie est structurelle et légitime (abstractions Python vs C# différentes), documentée dans le bridge_verdict: SOTA-OK du registre gametheory-2-normalform.yaml (#10382).
Mais elle crée un gap pédagogique : un étudiant qui fait la version Python puis la version C# constatera que le C# n'a pas le même niveau de robustesse sur l'IESDS. Le stub est une invitation à l'exercice, pas une correction appliquée — donc la rigueur du Python n'est pas reportée côté C#.
Suggestion
Une PR sœur qui ajoute au jumeau C# :
Une fonction d'élimination itérée (équivalent Python eliminate_dominated_strategies) avec garde sur la taille du jeu réduit.
Une fonction de pure-NE qui itère sur les profils de stratégies pures restantes.
Le scope exact reste à définir après lecture complète du jumeau C#.
[myia-po-2023:CoursIA-2] Fermeture : les fonctions demandées existent déjà dans le jumeau C#.
Réévaluation du besoin réel, à la suite de la relecture de l'avis ciblé (PR #21212, c.6312412401) : les deux fonctions que cette issue propose d'ajouter au jumeau C# GameTheory-02-NormalForm-CSharp.ipynbexistent déjà :
Fonction demandée dans l'issue
Présence dans le jumeau C#
« fonction d'élimination itérée (équivalent Python eliminate_dominated_strategies) avec garde sur la taille du jeu réduit »
IESDS — cellule 11 (22 occurrences dans le carnet)
« fonction de pure-NE qui itère sur les profils de stratégies pures restantes »
Vérification firsthand : grep du jumeau C# sur main — PureNashEquilibria (10), IESDS (22), StrictlyDominated (3). L'asymétrie Python/C# relevée dans le body est bien structurelle et légitime (abstractions différentes, bridge_verdict: SOTA-OK du registre gametheory-2-normalform.yaml), mais elle ne crée pas le gap supposé : le C# ne « manque pas » de l'algorithme IESDS ni de la pure-NE, il les implémente sous des noms et une abstraction différents.
Une « PR sœur » qui ajouterait ces fonctions serait donc une duplication d'implémentations existantes — c'est précisément ce que l'avis ciblé demande d'éviter. Aucune implémentation n'est ouverte.
Le suivi #21192 reste porté par la PR #21212 (côté Python) ; le body de celle-ci est réaligné en conséquence (jumeau C# attesté Python/C#, 30 cellules, fonctions déjà présentes).
→ Fermeture : besoin déjà couvert, pas de duplication.
Activity
jsboige commentedon Oct 17, 2026
[CLAIMED] lane myia-po-2023:CoursIA-2 -- GT-02 IESDS C# alignement sur rigueur Python. Grain DEEP/notebook-dotnet CONTENU. Cf NAMING c.1541-N1 (twin-parity unilateral) + c.1537-N1 (injection selective). Cf PR #21212 (c.1537) jumeau Python. Cf registre scripts/notebook_tools/twin_pairs.d/gametheory-2-normalform.yaml -- a MAJ si semantique change.
chore(gametheory): rebaseline twin parity GT-02 post #21215
chore(gametheory): rebaseline twin parity GT-02 post #21215
Fix(gametheory,#21215): rebaseline twin parity post attestations order
Fix(gametheory,#21192): twin-parity attestation 0020 after #21212 c.1605
feat(gametheory,#21215): GT-02 C# -- garde 1x1 IESDS (ReducedGame + I…
myia-po-2023 commentedon Oct 21, 2026
[myia-po-2023:CoursIA-2] Fermeture : les fonctions demandées existent déjà dans le jumeau C#.
Réévaluation du besoin réel, à la suite de la relecture de l'avis ciblé (PR #21212, c.6312412401) : les deux fonctions que cette issue propose d'ajouter au jumeau C#
GameTheory-02-NormalForm-CSharp.ipynbexistent déjà :eliminate_dominated_strategies) avec garde sur la taille du jeu réduit »IESDS— cellule 11 (22 occurrences dans le carnet)PureNashEquilibria— cellule 8 (10 occurrences)StrictlyDominated1/StrictlyDominated2— cellule 11 (3 occurrences)Vérification firsthand : grep du jumeau C# sur main —
PureNashEquilibria(10),IESDS(22),StrictlyDominated(3). L'asymétrie Python/C# relevée dans le body est bien structurelle et légitime (abstractions différentes,bridge_verdict: SOTA-OKdu registregametheory-2-normalform.yaml), mais elle ne crée pas le gap supposé : le C# ne « manque pas » de l'algorithme IESDS ni de la pure-NE, il les implémente sous des noms et une abstraction différents.Une « PR sœur » qui ajouterait ces fonctions serait donc une duplication d'implémentations existantes — c'est précisément ce que l'avis ciblé demande d'éviter. Aucune implémentation n'est ouverte.
Le suivi #21192 reste porté par la PR #21212 (côté Python) ; le body de celle-ci est réaligné en conséquence (jumeau C# attesté Python/C#, 30 cellules, fonctions déjà présentes).
→ Fermeture : besoin déjà couvert, pas de duplication.
Fix(gametheory,#21215): GT-02 aligner IESDS C# sur la rigueur Python …
Fix(gametheory,#21192): attestation twin renumeree 0024 apres rebase …