Repository navigation
Exercice 4 : tournoi entre stratégies - #22577
MathisGramaglia wants to merge 1 commit into
Conversation
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] Review (TP) — Exercice 4 : tournoi entre stratégies
Merci pour cette contribution — l'Exercice 4 est résolu de bout en bout, avec une exécution authentique du carnet (sorties .NET interactives datées d'aujourd'hui 14:09Z). Points forts :
JouerPartiegénérique bien séparé du tournoi : la fonction prend les deux politiques en argument, exactement l'indice de l'énoncé, et renvoie l'utilité du point de vue de MAX.- Lecture correcte du match retour : quand B commence, le résultat est lu à l'envers (
r2 == 1→ victoire B) — c'est le piège classique de l'exercice et il est évité. - Chronométrage par stratégie via le wrapper
Chrono(temps total / nombre de coups) plutôt qu'unStopwatchad hoc par partie : propre et réutilisable. - Résultats sémantiquement justes : Minimax vs Alpha-Beta = 10 nuls sur 10 (morpion résolu, deux joueurs optimaux → nul forcé), Aléatoire perd 0-7 et 0-8 contre les joueurs optimaux. La seed
Random(42)rend le tournoi reproductible.
Observations factuelles pour votre encadrant (rien à changer de votre côté pour le TP) :
- Le carnet est ajouté à la racine du dépôt, alors que le squelette de l'exercice vit dans
MyIA.AI.Notebooks/Search/Part1-Foundations/Search-06-AdversarialSearch-CSharp.ipynb— l'intégration au bon endroit sera arbitrée par l'encadrant. - Les cellules Exercices 1-3 (Connect Four, ordonnancement, negamax) du squelette ont été retirées du carnet livré ; seule la section Exercice 4 est complétée, conformément au titre de la PR.
Bien joué pour le cadre de tournoi et la lecture croisée des deux sens de jeu.
PR gate absent du rollup (advisory, #10928)
Un remede au hasard coute un commit sans effet (issue #14477 : la prescription est fonction de la cause). Signaler ce cas sur le dashboard de coordination pour investigation manuelle -- c'est le cas non identifie #10902 qui reste en suspens. Cause mesuree : mergeable_state=blocked, pas de base_ref_changed, sujet sans [skip ci], auteur MathisGramaglia |
…6-CSharp (ids deplaces + cellules neuves) Les cellules c7a3beaf et 75215c34 ont ete re-ajoutees sous de nouveaux ids (2554ce3b, cc3daa85) : lignes remappees, puis extract_cells_to_csv.py --update (3 lignes rafraichies, 4 ajoutees, 0 orpheline pour ce carnet). Les autres derives signalees par check_translation_sync (Search-10 etc.) preexistent sur main et ne sont pas touchees. Part of #22577 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…oduction des exercices La cellule de lecture, reecrite par l'integration, suivait directement le stub de l'exercice 4 : le cliquet Split-reading la comptait comme lecture d'exercice ajoutee (EXERCISE_READING). Son texte rejoint l'introduction « ## Exercices », ou l'etudiant voit l'echelle avant de commencer ; deux coquilles corrigees au passage. CSV de traduction resynchronise. Part of #22577 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…s committees Les cellules markdown 1d9db755 et dce59eaa citaient les temps d'une execution anterieure (0,2095 s / 0,0061 s / 34,1x ; 0,0091 s) alors que les sorties committees bd843e03 et d0a4ea60 donnent 0,5677 s / 0,0204 s / 27,8x et 0,0099 s. Lectures alignees sur les sorties, sans toucher aux outputs, et formulees en ordre de grandeur (les temps absolus dependent de la machine). CSV search-part1 resynchronise (2 lignes rafraichies). Part of #22577 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…gration de l'exemple guide Le jumeau C# porte desormais l'exemple guide 1 (tournoi algorithmique, contribution etudiante creditee) et un exercice 4 sur la profondeur limitee ; cote Python le tournoi reste l'exercice 6. L'asymetrie est consignee dans known_differences, puis la paire est re-attestee (check_twin_parity.py --update --pair "Search-06 AdversarialSearch"). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…mique) + nouvel Exercice 4 (#22587) * Feat(search,#22577): exercice 4 du TP integre en Exemple guide 1 (tournoi) + nouvel exercice 4 non resolu Digestion TP etudiant : le cadre de tournoi (ResultatMatch, JoueurAleatoire, JouerPartie, aller-retour 5 manches, ms/coup) devient l'Exemple guide 1, credite sans nom ; l'ancien exercice 4 (resolu par le TP) est remplace par un exercice comparable non resolu (MinimaxLimite + heuristique, compromis victoires/temps). Re-execution complete .NET Interactive 12/12, 0 erreur, sortie fraiches. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Fix(translation,#22577): resynchroniser search-part1.csv sur Search-06-CSharp (ids deplaces + cellules neuves) Les cellules c7a3beaf et 75215c34 ont ete re-ajoutees sous de nouveaux ids (2554ce3b, cc3daa85) : lignes remappees, puis extract_cells_to_csv.py --update (3 lignes rafraichies, 4 ajoutees, 0 orpheline pour ce carnet). Les autres derives signalees par check_translation_sync (Search-10 etc.) preexistent sur main et ne sont pas touchees. Part of #22577 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Fix(search,#22577): replier « Lire les quatre exercices » dans l'introduction des exercices La cellule de lecture, reecrite par l'integration, suivait directement le stub de l'exercice 4 : le cliquet Split-reading la comptait comme lecture d'exercice ajoutee (EXERCISE_READING). Son texte rejoint l'introduction « ## Exercices », ou l'etudiant voit l'echelle avant de commencer ; deux coquilles corrigees au passage. CSV de traduction resynchronise. Part of #22577 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Fix(search,#22577): aligner les deux lectures de temps sur les sorties committees Les cellules markdown 1d9db755 et dce59eaa citaient les temps d'une execution anterieure (0,2095 s / 0,0061 s / 34,1x ; 0,0091 s) alors que les sorties committees bd843e03 et d0a4ea60 donnent 0,5677 s / 0,0204 s / 27,8x et 0,0099 s. Lectures alignees sur les sorties, sans toucher aux outputs, et formulees en ordre de grandeur (les temps absolus dependent de la machine). CSV search-part1 resynchronise (2 lignes rafraichies). Part of #22577 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Fix(search,#22577): re-attestation de la paire Search-06 apres l'integration de l'exemple guide Le jumeau C# porte desormais l'exemple guide 1 (tournoi algorithmique, contribution etudiante creditee) et un exercice 4 sur la profondeur limitee ; cote Python le tournoi reste l'exercice 6. L'asymetrie est consignee dans known_differences, puis la paire est re-attestee (check_twin_parity.py --update --pair "Search-06 AdversarialSearch"). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Merci pour ce tournoi : l'exercice 4 est résolu de bout en bout et le contenu est juste. Ce qui a été intégré, et où. Votre travail est entré dans le carnet canonique Pourquoi cette PR est fermée plutôt que fusionnée, et comment faire la prochaine fois. Seule la forme empêchait une fusion directe :
Avec ces deux gestes, la PR montre seulement votre exercice et peut être fusionnée telle quelle. Bonne présentation demain matin ! |
Grain (agents internes uniquement — variation-protocol) — première ligne du body, format :
Grain: <TIER>/<GENRE> — lane <machine:workspace> — prev: <TIER>/<GENRE> #<PR>Summary
Contribution publique
Changes
Review Checklist
?clicks=99for slidesAnti-regression
sorryintroduced in Lean/Coq certified modules (run:grep -c sorryon touched.leanfiles)@pytest.skiporassert Trueadded to bypass failing testsNotebook-specific
raise NotImplementedError/assert False/1/0in any cell (usepassorprint("Exercice a completer"))execution_count: <int>+ coherentoutputsTest plan