Skip to content

fix(search,#18256): Search/Applications -- retirer la promesse DQN-RL absente du contenu - #18491

Merged
myia-ai-01 merged 4 commits into
mainfrom
fix/18256-dqn-promesse-absente
Sep 30, 2026
Merged

myia-ai-01 merged 4 commits into
mainfrom
fix/18256-dqn-promesse-absente

Conversation

@jsboige

@jsboige jsboige commented Sep 29, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/readme -- lane myia-po-2023:CoursIA -- prev: DEEP/genai #18459

Le défaut

Le README de Search/Applications et les deux notes de navigation de
App-14-ConnectFour-Adversarial.ipynb annonçaient un agent DQN-RL :

  • README ligne 44 (nœud mermaid) : ConnectFour, Minimax, MCTS, DQN-RL,
  • README ligne 58 (prose) : « Un premier binôme construit les joueurs (Minimax, MCTS et agent DQN appris) »
  • README ligne 62 (tableau) : App-14b-ConnectFour | Puissance 4 : Minimax, MCTS, **DQN-RL**
  • carnet, cellule nav-header #0 : « Pour une étude complète avec 8 algorithmes (DQN-RL, etc.), voir App-14b »
  • carnet, cellule nav-header feat: add stiegler or tools #1 : même phrase

Aucun de ces contenus n'existe. Le balayage des sources de tous les carnets de
Search/Applications (jamais les sorties, qui portent du base64 PNG — un grep DQN y
matche par hasard) ne rend qu'une seule occurrence de DQN après correctif : la ligne de
crédit de la section Hommage, qui attribue à un étudiant un travail réel du projet source.

Ce qu'App-14b-ConnectFour.ipynb contient réellement, énuméré par ses propres titres :
moteur de jeu, IA 1 aléatoire, IA 2 Minimax α-β, IA 3 MCTS, IA 4 glouton,
tournoi round-robin, puis le framework AIMA de Russell & Norvig (sections 8.1-8.4), et
trois exercices (Negamax, approfondissement itératif, ordonnancement des coups). Zéro
apprentissage par renforcement. Sa seule mention d'RL est un « Pour aller plus loin » qui
renvoie vers une autre série.

D'où venait la promesse

Le DQN a bien existé — dans le projet étudiant source (Groupe 12, EPITA PPC 2025), où
il est explicitement crédité. Il n'a pas été porté dans le carnet CoursIA, mais la
référence est restée dans la documentation. La correction ne touche donc pas la ligne
de crédit : un crédit de travail réel n'est pas une promesse de contenu.

Ce qui change

Surface Avant Après
README l.44 (mermaid) ConnectFour, Minimax, MCTS, DQN-RL ConnectFour, Minimax, MCTS, AIMA
README l.58 (prose) « (Minimax, MCTS et agent DQN appris) » « (aléatoire, Minimax α-β, MCTS, glouton, puis le framework AIMA de Russell & Norvig) »
README l.62 (tableau) Minimax, MCTS, DQN-RL aléatoire, Minimax α-β, MCTS, glouton, framework AIMA (Russell & Norvig), tournoi round-robin
carnet nav-header #0 « 8 algorithmes (DQN-RL, etc.) » liste nommée des joueurs réels
carnet nav-header #1 idem idem

Les deux autres carnets de la sous-série (App-14b, App-14c-ConnectFour-CSharp) portent
déjà une description exacte — le jumeau C# ligne 63 énumère correctement « Minimax +
Alpha-Beta + MCTS (UCB1) + glouton + iterative deepening » : c'est le libellé de la ligne 62
qui était resté en arrière, pas l'inverse.

Preuves

  • Markdown uniquement, aucune cellule de code touchée : git diff = 5 insertions /
    5 suppressions sur 2 fichiers. La ré-exécution n'est pas due (règle C.2, exception
    markdown ; aucun outputs ni execution_count modifié).
  • Parité des jumeaux re-mesurée : check_twin_parity.py rend OK pour
    App-14 ConnectFour Adversarial (aucune modification côté C# — le texte de la note
    décrit le même socle des deux côtés).
  • Compteurs en prose : check_prose_quantitative_claims.py --diff origin/main...HEAD
    → [OK] aucun compteur quantitatif en prose. La formulation retenue nomme les
    joueurs au lieu d'annoncer un nombre, précisément pour ne pas entretenir un total à la
    main (règle E).
  • Balayage DQN sur les sources de Search/Applications/** : 1 occurrence, le crédit
    étudiant (contrôle négatif ci-dessus).

Hors périmètre (voir #18256)

Cette PR ne traite que le finding confirmé de l'audit. Le réexamen des quatre autres
findings est posté sur l'issue, avec ses mesures.

See #18256

🤖 Generated with Claude Code

…e du contenu

Le README de Search/Applications et les deux notes de navigation de
App-14-ConnectFour-Adversarial annonçaient un agent « DQN-RL » et renvoyaient
vers App-14b pour « 8 algorithmes (DQN-RL, etc.) ». App-14b ne contient aucun
code d'apprentissage par renforcement : ses joueurs sont aléatoire, Minimax
alpha-beta, MCTS, glouton, puis le framework AIMA de Russell & Norvig, avec un
tournoi round-robin et des exercices Negamax / approfondissement itératif.

Le DQN a bien existé, mais dans le projet étudiant source (Groupe 12, EPITA
PPC 2025) : il n'a pas été porté dans le carnet. La mention de la section
Hommage qui crédite l'étudiant reste donc intacte -- c'est un crédit de
travail réel, pas une promesse de contenu.

Cinq surfaces corrigées, markdown uniquement :
- README ligne 44 (noeud mermaid) : DQN-RL -> AIMA
- README ligne 58 (prose)      : liste des joueurs réels du premier binôme
- README ligne 62 (tableau)    : contenu réel d'App-14b
- App-14-ConnectFour-Adversarial.ipynb, cellule nav-header #0 (note)
- App-14-ConnectFour-Adversarial.ipynb, cellule nav-header #1 (note)

Aucune cellule de code touchée, aucun output modifié : la ré-exécution n'est
pas due (C.2, exception markdown). Parité des jumeaux re-mesurée : verdict OK
pour App-14 ConnectFour Adversarial (aucune modification du côté C#).

Voir #18256

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

github-actions Bot commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 10.1s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 13.2s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 16.4s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 11.0s
Search-01-StateSpace.ipynb ✅ SUCCESS 7.4s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 6.7s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 48.0s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 5.5s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 18
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

…sarial

Le registre stocke le git blob SHA de chaque jumeau : toute edition le deplace,
y compris markdown-only. La correction de la note de navigation des cellules
nav-header a donc mis la paire en DRIFT au regard de l'organe (#8057), sans rien
changer a la parite semantique -- le cote C# n'est pas touche et les deux cotes
portent toujours le meme socle (moteur, Minimax alpha-beta, MCTS, glouton,
tournoi round-robin).

Sidecar 0014, forme attendue par l'organe (une attestation par rebaseline).
Aucune modification du registre : le verdict reste OK, seule l'attestation SHA
avance.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions github-actions Bot added the variation-tier-inflation declared LIGHT << effective LIGHT-genre (#10020, advisory) label Sep 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2023:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-29) :

  • TIER-INFLATION : declared LIGHT << effective LIGHT-genre (tally : declared=2 genre=7 cap=7)

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 variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@github-actions github-actions Bot added the trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) label Sep 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre readme dans la famille META (docs/guard/ledger/readme/test) + diff de 16 lignes changees (<= 100) + aucune exception ecrite dans le body : le litmus de la trivialite (une douzaine d'instances scannees a la suite) est credible. Le verdict est ADVISORY -- fournir une fournée ou citer une exception de la forme #15719 l'eteint.
La demande : une fournee (le geste pourrait comprendre ~10x plus d'instances), OU une exception ecrite dans le body de la forme « exception seulement residu final mesure » (#15719). Editer le body re-deroule cet organe et retire le label.

jsboige and others added 2 commits September 30, 2026 00:27
…-header duplique)

Le gate `No markdown content loss in changed notebooks` rougissait la PR #18491
sur un TRUNCATED_CELL 2126c -> 1156c (ratio 0.544) a la cellule 0.

Mesure : ce n'est PAS une perte de contenu. Le diff de la PR est de 2 lignes et
le total normalise du carnet AUGMENTE (25068 -> 25219). La cause est un id de
cellule DUPLIQUE : les cellules 0 (titre) et 1 (Hommage) portaient toutes deux
`id: nav-header` -- deja sur main, independamment de cette PR.

L'organe detect_md_content_loss.py apparie les cellules par id quand les
ensembles d'ids sont egaux (l.766-780) ; son `base_by_id` est un dict, donc le
doublon s'ecrase et la cellule 1 (Hommage, 2126c) se retrouve appariee a la
cellule 0 (head, 1156c) : d'ou le faux TRUNCATED_CELL. Un id duplique viole par
ailleurs le spec nbformat (ids uniques dans un carnet).

Fix : cells[1].id -> `hommage-section` (style des ids voisins : intro-section,
imports). Aucun outil ne depend de `nav-header` (grep scripts/, .github/workflows,
.claude/rules = 0 hit). Apres fix : findings=0, rc=0.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Le blob du carnet a bouge avec le fix d'id de cellule (69727e8), donc
l'attestation 0014 ne vaut plus. Sidecar 0015 = etat du carnet a HEAD.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jsboige

jsboige commented Sep 30, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18491
head: 107e54a
complete: true
body: read
comments-reviewed: 7
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 6e41e25d84355bdebf7b3abfd59dbf5635c5d46e9456c8750493199cfadd8560
diff-files: 4
diff-additions: 18
diff-deletions: 6
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit 9dea617 into main Sep 30, 2026
96 of 99 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) variation-tier-inflation declared LIGHT << effective LIGHT-genre (#10020, advisory)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants