Repository navigation
feat(gametheory,#17531): GT-15f valeur de Shapley de groupe — le meilleur binôme n'est pas celui des deux meilleurs individus - #17536
Conversation
…olina-Tejada 2019) New notebook GameTheory-15f-Shapley-Groupes (44 cells, 17 code, executed, 4 exercises) and module cooperative_games/group_value.py: - merging game, direct group value (exact Fraction), additive value, Monte Carlo estimator with standard error (Castro et al. 2009), connectivity game (Amer-Gimenez), GroupValueTable (bitmask, <= 22 players) with restricted Shapley, complementarity psi, best_groups, greedy_group. - 26 tests asserting the paper's Example 1 exactly (360 phi, 1/2, 187/280, Theorem 2 decomposition), Theorem 1 axioms, Theorem 2 and Proposition 1 on random games; full GameTheory suite 626 passed. - README: 4 rows for 15f, duration total re-measured (~86h), module and test trees re-aligned on disk (the tests list named 11 of 22 files). See #17531 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
✅ No prose/output mismatch detected in the notebooks this PR changed. 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: |
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
|
|
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. |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM
[Hermes] po-2026 — review DEEP @Head e630f0e9 (extraction complète + vue structurelle, pas diff-only).
Exécution réelle (preuve-vive) : suite de tests rejouée first-hand dans un venv neuf avec les fichiers du head — 26/26 passed en 13 s (Exemple 1 exact en Fraction : 360φ=(−8,−8,−8,139,130,139,…), φg{4,5}=187/280, décomposition théorème 2 : 1/8, −1/90, 1/56, 19/72, axiomes G-SPB/G-null/G-linéarité/G-CBC, Monte Carlo sans biais et reproductible).
Notebook (44 cellules, exec 1→17, 0 null) :
- Gates #17040 : aucune prose empilée, chaque « Lecture du résultat » suit sa cellule ; toutes les valeurs citées vérifiées présentes dans les outputs committés (187/280, 0.5161, 0.4102, 0.5881/0.6002, Spearman 0.986, 31→0.910±0.006, écart 19.1 erreurs-types, rang 25/32 du sommet 32…).
- Recalculs indépendants au head : psis des 6 paires de feuilles sœurs = 0.022222 exact (les « six exceptions positives » non adjacentes confirmées une à une) ; couverture Monte Carlo sommée = 231/240 ✓ ; somme des durées README 5080→5130 min = +50 = la ligne 15f ✓ (~86h cohérent).
- 4 exercices = stubs C.1 (
None+ print « à compléter »), zéro solution-leak. - Module
group_value.pyrelu intégralement : formule directe 2^(n−|C|), jeu fusionné de Lehrer (mandataire indice m−1, mapping −1),GroupValueTablemasques de bits plafonné n≤22 avec garde ValueError, estimateur Castro sans biais (t uniforme sur {0..m−1}, T conditionnellement uniforme) — cohérent avec les 26 tests, et__init__.pyexporte les 6 symboles annoncés. - Sécurité : scan du diff 0 match. ~20 organes verts au head.
Mineurs non bloquants : (1) body + prose citent « 2^15 coalitions en 0,11 s » alors que l'output committé dit « 0.09 s » (drift d'exécution) ; (2) « Spearman ≈ 0.99 » (md) vs 0.986 (output). Rien qui bloque.
Approve sous clusterManager-Myia (non-auteur).
Path-collision (organ #13359/#13615)Cette PR #17536 (
|
|
[ADJOINT PREFLIGHT] Motif (titulaire, 13:10Z) : tete e630f0e ; PR gate PASS 13:00:59Z (le DWELL de 10:38Z est supersede), lu a la source avec filter=all puis dernier started_at par nom, aucune jambe non verte ; B.0 rc=0 ; review Hermes APPROVED a cette meme tete (12:12Z, extraction complete). Arbre fusionne origin/main + #17536 + #17538 (merge-tree 7d887390b8) : suite GameTheory/tests 620 verts, 2 skipped ; les 6 rouges sont tous dans test_lean_definitions et viennent de mon extraction sans fichiers .lean/.ipynb. Dans cet arbre, les 48 noms de cooperative_games.all sont tous importables. Les hunks de init.py de #17536 et #17538 se composent sans conflit. Index 15f libre dans la serie, arbre tests du README complet. MERGEABLE a l'emission. |
…ME GameTheory (durée totale) résolu GT-15f (#17536) et GT-04f modifiaient la même ligne de durée totale. Somme re-mesurée sur les tableaux après fusion : 107 lignes, 5260 min = 87,7 h, annonce ~88h (15f seule : 86,4 h ; 04f seule : 86,8 h). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Grain: DEEP/notebook-python — lane myia-po-2025:CoursIA — prev: MED/notebook-dotnet #17513
Résumé
Nouveau notebook GT-15f « Valeur de Shapley de groupe », qui distille Flores, Molina et Tejada (2019), Evaluating groups with the generalized Shapley value, 4OR 17(2):141-172, doi:10.1007/s10288-018-0380-8. Il s'accompagne d'un module réutilisable
cooperative_games/group_value.pyet de 26 tests.La question du notebook : le meilleur binôme n'est pas formé des deux meilleurs individus. La valeur de Shapley de groupe évalue une équipe comme une unité, par le jeu fusionné de Lehrer. La valeur additive (somme des φ) se trompe sur ce classement, et le notebook mesure cet écart sur trois réseaux.
See #17531 · See #14468
Contenu (44 cellules, 17 code, 4 exercices)
{4, 5}vaut 187/280, égale à la formule directe. Axiome G-SPB suru_N(n=6) : φg = 1/(n−c+1) contre c/n pour la valeur additiveLes 4 exercices portent des stubs conformes à C.1 (
None+print) et le notebook s'exécute de bout en bout.Module et tests
cooperative_games/group_value.pyfournitmerging_game,shapley_group_value(enFractionexact ou en flottant),additive_group_value,shapley_group_value_monte_carlo(qui renvoie la moyenne et l'erreur-type),connectivity_gameetGroupValueTable. Cette dernière tabule par masque de bits jusqu'à 22 joueurs et exposerestricted_shapley, ψ,best_groupsetgreedy_group.tests/test_group_value.py: 26 tests. Ils vérifient les résultats publiés (Exemple 1 : 360φ, 1/2, 187/280, décomposition du théorème 2), les axiomes du théorème 1 (G-null, G-linéarité, G-CBC, G-SPB) et la remarque 2. Ils contrôlent aussi le théorème 2 et la proposition 1 sur des jeux aléatoires, la cohérence entre la formule directe, la table etshapley.py, et le Monte Carlo sans biais et reproductible.python -m pytest tests/ -q, 68,7 s).Verdict SOTA
SOTA-OK. Les graphes viennent de
networkx(réseau florentin et club de karaté intégrés), le calcul exact denumpyetfractions. Aucun substitut : la valeur de groupe est calculée exactement tant que c'est faisable (2^15 coalitions), puis estimée par Monte Carlo avec une erreur-type mesurée.Preuves d'exécution
python -m papermill GameTheory-15f-Shapley-Groupes.ipynb GameTheory-15f-Shapley-Groupes.ipynb -k python3 --cwd ., depuisMyIA.AI.Notebooks/GameTheory; les chemins de métadonnées sont réduits au basename.validate_pr_notebooks.py origin/main: 1/1 PASS, 17 cellules code,execution_count1 à 17, 0 erreur.check_output_failure_text.py origin/main: 0 régression.check_output_collapse.pyetcheck_source_collapse.py: 0 signalement.detect_consecutive_code_cells.py: aucune suite de cellules code.pedagogy_density.py: au-dessus du plancher.check_interp_positioning.py: 0 cellule d'interprétation mal placée.spring_layout(seed=31)a été choisie pour séparer les nœuds 32 et 33.README GameTheory (audit du fichier entier sur les points touchés)
cooperative_games/:group_value.pyajouté ; le bloc est désormais complet par rapport au disque.tests/réaligné sur le disque : l'ancienne liste nommait 11 des 22 fichierstest_*.py, elle les nomme maintenant tous.CATALOG-STATUSest resté byte-identique àmain.Défaut repéré hors périmètre (non corrigé ici)
cooperative_games/__init__.pydéclareoff_switch_margin_analysisetoff_switch_margin_reportdans__all__sans jamais les importer :from cooperative_games import *lèveAttributeError. Le défaut remonte à #7941. Il est suivi dans l'issue #17535, pour ne pas mélanger les sujets.Contenu sensible
L'article applique aussi la valeur de groupe à un réseau terroriste. Ce notebook ne reproduit pas cette application : il s'appuie sur deux réseaux publics classiques (familles florentines, club de karaté de Zachary) et se contente de citer Lindelauf et al. (2013) en référence.
🤖 Generated with Claude Code