Skip to content

enrich(search,#13410): densite adversarial + dancing links C# — lectures de sorties chiffrees (tranche markdown + twin audits) - #16406

Merged
jsboige merged 3 commits into
mainfrom
feature/13410-density-b21
Sep 21, 2026
Merged

jsboige merged 3 commits into
mainfrom
feature/13410-density-b21

Conversation

@jsboige

@jsboige jsboige commented Sep 16, 2026

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-dotnet -- lane myia-po-2026:CoursIA -- prev: DEEP/notebook-python #16343

See #13410 (tranche densite Search C# Part1-Foundations — couple 06-Adversarial/08-DancingLinks remonte au-dessus du plancher). See et non Closes : l'epic couvre encore ~370 notebooks sous plancher.

Livrable

Deux notebooks C# de la famille Search/Part1-Foundations enrichis de lectures de sorties chiffrees — markdown uniquement (exception C.2 : aucune cellule code modifiee, outputs et execution_count intacts, diff 130 insertions / 0 suppression au total) :

  • Search-06-AdversarialSearch-Csharp (898 → 1322) : 5 lectures — le verdict minimax (Valeur 0 = la valeur du jeu Tic-Tac-Toe en jeu optimal, pas un echec de recherche ; meilleure action 0 = premiere des actions equivalentes) ; le speedup alpha-beta (0,2095 s vs 0,0061 s, 34,1x, « meme valeur -> decision identique » = la garantie de correction de l'elagage ; temps machine-dependants, seul le rapport fait la lecon) ; l'iterative deepening (profondeur atteinte=9 = arbre complet, valeur 0,00 converge vers l'exact) ; la table de transposition (1565 hits / 3010 misses, temps du meme ordre que l'alpha-beta pur sur 9 cases — le cache est un investissement pour arbres profonds, et valeur identique = invariance de decision) ; l'echelle des 4 exercices stubbes (transfert Connect Four, move ordering, negamax, tournoi — invites a completer lues comme contrat C.1).
  • Search-08-DancingLinks-Csharp (898 → 1327) : 5 lectures — l'exemple canonique (univers 7 elements, 6 sous-ensembles, solution {S2, S4, S6} verifiee par le vecteur colonne [1,1,1,1,1,1,1] = la definition de l'exactitude lue sur la sortie) ; l'algorithme X naif (3,231 ms, solution attendue imprimee a cote = protocole de confrontation ; le warning CS8632 temoigne d'une vraie compilation) ; le DLX (1,697 ms, meme solution, Verification : CORRECT par le verificateur independant) ; le pavage (encodage 12 placements x 6 cases-contraintes -> solution 2 triominos verticaux, aucun pavage code a la main) ; la comparaison finale (0,017 ms vs 0,455 ms sur 28 placements x 9 contraintes, rapport ~27x contre ~1,9x sur la petite instance — le gain croit avec la taille = signature d'un avantage structurel).

Valeurs lues exclusivement sur les sorties commitees ; convention #9434 (temps machine-dependants, seuls ordre/rapports font la lecon) ; aucun chiffre invente.

Critere de lacune (nomme)

Interpretation-apres-mesure non chiffree : les MD preexistants des deux notebooks expliquent les concepts (interface du jeu, minimax, elagage, heuristique ; couverture exacte, algorithme X, DLX, pavage) mais aucune cellule ne lit les nombres imprimes — valeur du jeu, speedup et invariance de decision, profondeur atteinte, hits/misses du cache, vecteur de verification colonne, temps naif vs DLX, taille des matrices de pavage, rapport croissant DLX/backtracking. Les 10 cellules ajoutees couvrent ces lectures chiffrees.

Validation

  • Densite re-mesuree live post-commit : 1322 et 1327 (seuil 1200) ; baseline non touchee (canon des tranches).
  • detect_markdown_rendering --check : 0 nouvelle violation sur chaque chemin.
  • Diff : 130 insertions, 0 suppression — 10 cellules markdown ajoutees, 0 cellule code touchee (0 execution_count modifie, outputs intacts) ; round-trip canonique (fichiers sans whitespace legacy).
  • Hooks pre-commit : Passed sur les deux commits (notebooks + audits).
  • Twin registry : paires enregistrees « Search-06 AdversarialSearch » et « Search-08 DancingLinks » (semantic) — rebaseline --update --pair apres commit notebooks, audits 0007/0009-2026-09-16-myia-po-2026-CoursIA.yaml (2e commit, meme PR), csharp_shas verifies = blobs du commit notebook, python_shas inchanges.
  • Cohabitation exemples + exercices preservee (regle [Epic transverse] Convention 3 exercices par notebook #2161) : les 4 exercices de chaque notebook restent stubbes.

Deconflit

Census PRs ouvertes verifie au claim ET au commit par fichiers : 0 PR contenant les 2 chemins ; ma #16352 ouverte porte 03b/03c/11-Csharp uniquement (fichiers disjoints, verifie par files[]) ; comments #13410 : 0 mention des 2 chemins avant mon [CLAIMED] (5697913579). ls-tree origin/main : les 2 chemins existent.

G-VAR-3

Genre declare : notebook-dotnet ; prev merge #16343 = notebook-python : adjacence non adjacente (cross-genre). Substance distincte : #16343 = tranche DoWhy (causalite) ; ce couple = recherche adversariale (minimax/alpha-beta/transposition) et couverture exacte (algorithme X/DLX) — famille commune seule etiquette.

See #13410

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

🤖 Generated with Claude Code

jsboige and others added 2 commits September 16, 2026 15:07
…/1327)

10 lectures de sorties chiffrees (md uniquement, 0 cellule code touchee) :
verdict minimax 0 = nul garanti, speedup alpha-beta 34,1x meme valeur,
iterative deepening profondeur 9, cache 1565/3010 invariance de decision ;
couverture exacte verifiee colonne par colonne, algorithme X 3,231 ms vs DLX
1,697 ms, pavage 12 placements x 6 contraintes, rapport DLX/backtracking
croissant avec la taille (1,9x -> 27x).

See #13410

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…arch-08 DancingLinks

Attestations unilaterales post-enrichissement densite (csharp_shas = blobs
commit 864780d, python_shas inchanges). See #13410.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@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

Copy link
Copy Markdown
Contributor

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

@github-actions

github-actions Bot commented Sep 16, 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 5.1s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 5.4s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 10.0s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 9.1s
Search-01-StateSpace.ipynb ✅ SUCCESS 7.3s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 5.6s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 53.8s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 6.7s

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: 2
  • Code cells validated: 20
  • 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)

@github-actions

Copy link
Copy Markdown
Contributor

[stale-guard-red] Scripts Tests (CPU) -- rouge date de la base 9401db4897d4, ANTERIEURE au fix fcf0e6a7c7e2 du garde sur main (garde vert a sa version courante).
Remede : gh pr update-branch 16406 (recalcule la base). NE PAS gh run rerun : gh run rerun rejouerait la base gelee 9401db4 (le fix fcf0e6a n'y est PAS) et rendrait le meme rouge ; seul gh pr update-branch recalcule la base.
Re-mesure non concluante : log du run 35100076266 indisponible (gh run view 35100076266... -> 1: log not found: 104806969194) -- le dating ci-dessus reste la reference.

@github-actions github-actions Bot added the stale-guard-red Rouge datant d'une base anterieure au fix du garde (sweep #13321) label Sep 17, 2026
@jsboige

jsboige commented Sep 18, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT] PR #16406 -- verdict: PREFLIGHT_HOLD

Ancrage origin/main c.32 21:27Z : 7885a69
Pool c.32 21:27Z : 138/138 PRs ouvertes, 97/138 sans reviewDecision, 5/138 APPROVED

Titre : enrich(search,#13410): densite adversarial + dancing links C# — lectures de sort
4 surfaces lues : mss=BLOCKED, mergeable=MERGEABLE, reviewDecision=vide ; 0 review(s), states=aucune
Marks Hermes/reviewers : aucune
Checks CANCELLED (Tell c.32-L1) : 0 check CANCELLED
Diff : 142/+0 sur 4 fichiers

Motif verdict : mss=BLOCKED (review en attente)

Verdict = diagnostic mechanique uniquement. Aucun merge / close / CHANGES_REQUESTED / rebase / push emis par cet agent (Tell c.1502 strict). Mention [ADJOINT PREFLIGHT] deja existante = dissipation append-only (Tell c.974 strict).

@jsboige

jsboige commented Sep 20, 2026

Copy link
Copy Markdown
Owner Author

Levée de mon propre commentaire d'attestation interim (issuecomment 5736408515, 2026-09-18T21:29:22Z) : snapshot de preflight Phase pré-gate, périmé depuis plusieurs heads — il n'engage plus rien au head courant. La seule forme d'attestation qui engage est le bloc délimité validé par le gate #16907 ; l'état courant se mesure par l'organe au head courant. Rien de ce commentaire périmé ne demande d'action.

@jsboige

jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

[AUDIT CONTENU — amendement user 21/09]

Verdict : MERGE

Audit cellule-par-cellule des 9 md ajoutés vs ancre de sortie la plus proche (2 notebooks, base f57c35f → head 682ee00 ; organ check_duplicate_sections 0/0 aux deux bouts).

Search-06-AdversarialSearch-Csharp (4 cellules) : la valeur minimax 0 lue comme théorème (valeur du jeu : nulle garantie à jeu optimal) et non comme échec de l'algorithme — correcte ; « toutes les actions mènent à 0, l'algorithme rend la première » = lecture exacte du tie-breaking ; speedup 34,1x avec la convention du registre (les rapports font la leçon, pas les temps absolus) et la parenthèse « meme valeur -> decision identique » lue comme garantie de correction de l'élagage — c'est exactement ce qu'elle est ; iterative deepening profondeur 9 = arbre complet, convergence vers le minimax exact bien lue ; table de transposition 1565 hits / 3010 misses ≈ un peu plus d'un tiers (1565/4575 = 34,2 %), avec la lecture honnête « le cache ne paie pas sur 9 cases — investissement pour les arbres profonds » et le contrat d'invariance (valeur identique = cache transparent pour la décision).
Search-08-DancingLinks-Csharp (5 cellules) : la solution canonique {S2,S4,S6} re-vérifiée sur la matrice ancre — S2∪S4∪S6 = {1,4}∪{3,5,6}∪{2,7} = {1..7}, chaque élément exactement une fois : couverture exacte authentique, et le vecteur [1,1,1,1,1,1,1] lu comme définition du problème ; naïf 3,231 ms vs DLX 1,697 ms = 1,9× sur 6 lignes, puis 0,455/0,017 = 26,8 ≈ 27× sur 28 placements — la progression 1,9×→27× lue comme signature d'un avantage structurel qui croît avec la taille (complexité par nœud, pas effet constant) : correcte ; warning CS8632 lu comme bénin (réel, attesté dans la sortie) ; pavage 2×3 : les deux I verticaux = l'unique pavage par I de la grille (aucun horizontal possible sur 2 colonnes) — bien vu, et « seul la matrice change, zéro modification du solveur » = la bonne lecture de la réduction ; double impression solution trouvée/attendue lue comme protocole de confrontation indépendante.

@jsboige

jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 16406
head: 682ee00
complete: true
body: read
comments-reviewed: 8
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: e2fdcfd4c0402beef2402f3d9117fd35ba7a13855a1dbb74189c59aa38182379
diff-files: 4
diff-additions: 142
diff-deletions: 0
checks: BLOCKED
b0: clear
scope: pass
domain: pass
verdict: BLOCKED
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 16406
head: 682ee00
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 43fbe1685399cd2be297f3991f042dc080595a18733b12cd1f8d9db20f3eee10
diff-files: 4
diff-additions: 142
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Re-estampillage demande par ai-01 (DM msg-20260921T191659-oiq0y1) : le dossier du matin portait checks bloques sur une mesure anterieure au retablissement du quota. Au head 682ee00 : 83 check-runs dedupliques (started_at, id), pages fusionnees, 0 pending, 0 non-vert. b0 rc=0 (organe origin/main 068a739e). Porteur myia-po-2026:CoursIA, distinct de la lane emettrice. MERGE.
mergeable=true.

@jsboige
jsboige merged commit 7203914 into main Sep 21, 2026
84 of 86 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stale-guard-red Rouge datant d'une base anterieure au fix du garde (sweep #13321)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant