Skip to content

fix(search,g71): lectures dupliquées/désancrées reprises sur sorties imprimées — App-13b-TSP / CSP-7-Soft - #17149

Closed
jsboige wants to merge 2 commits into
mainfrom
wt/vibe-g71-search-20
Closed

jsboige wants to merge 2 commits into
mainfrom
wt/vibe-g71-search-20

Conversation

@jsboige

@jsboige jsboige commented Sep 21, 2026

Copy link
Copy Markdown
Owner

g71-search-20 — relais Vibe (A + B)

Base f57c35fb4 · grain 87c5391cf · correctif 87814149d (ce PR)

App-13b-TSP-Metaheuristics-CSharp.ipynb (26→34 cellules, densité 1232→1306)

  • Duplication ×4 : la lecture « matrice 6 villes / tournée 309.75 » était recopiée à l'identique après les cellules force brute, NN et 2-opt. Chaque copie est réécrite sur la sortie imprimée de sa cellule d'ancrage : force brute 293.19 en 1.0 ms (5,040 = 7!, tournée [0,5,4,7,1,6,2,3], croissance N=15 = 8.7e10) ; NN 344.77 / gap 17.6% ([0,5,2,3,4,7,1,6]) ; 2-opt 4 inversions / gap 0.00%.
  • Désancrages : la lecture NN suivait la cellule recuit simulé (→ réécrite : 293.19 / 2056 moves / gap -0.00%, acceptation de Metropolis) ; la lecture force brute suivait le benchmark (→ table complète : NN 328.09/344.77/365.98 vs optimum 278.24/293.19/314.41 ; N≥30 SA bat 2-opt : 461.97/475.12 et 792.55/803.45) ; elle suivait aussi la cellule OR-Tools (→ parité 278.24/293.19/314.41 OK en ~1 s, Prong-B 750.22 vs 792.55 à N=100 +5.3%, RoutingModel = GLS, pas un solveur exact).

CSP-7-Soft.ipynb (53→67 cellules, densité 1202→1266)

  • Duplications levées : [6]=[10] (semi-anneaux) et [32]=[53] (pénalités). [10] devient le contrat de la classe SoftCSP (semi-anneau injecté = sémantique de combinaison/ordre) ; [32] décrit le planning imprimé (OPTIMAL, pénalité totale 140, 7 matins + 7 nuits à pénalité 0) ; [53] reste sur la figure et cite les vecteurs réels ([30,0,0,40,0,0] → [30,0,20,20,0,0]).
  • Désancrages : [29] revendiquait un planning optimal après une cellule qui ne fait que définir la fonction (→ contrat de fonction) ; [16] citait une « solution optimale trouvée par le solveur » jamais imprimée (→ les 3 panneaux réels : mois 0.4/1.0/0.7, destinations 0.3/0.8/1.0, budget flou 1000→1500 EUR) ; [42] parlait de « distribution des solutions optimales » (→ optimum unique Paris | train | airbnb, 547 EUR décomposés).
  • Enrichissements chiffrés : créneau 9h / coût total 1 (salle 5 l'après-midi), menu fuzzy 0.800 + répartition {viande 0, poisson 4, végétarien 3}, équité spread 40→30 dès fw=5 (total constant 70), config PC 815 EUR / budget 820 / score 145 / objectif 3.

Contrôles (6/6)

# Contrôle Résultat
C1 Multiset full-JSON base ⊆ final 0 perdues (26/26, 53/53)
C2 Anti-dup 4 niveaux 0 (8 + 14 ajoutées)
C3 Ancrage verbatim (token → cellule précédente ±4) 0 échec
C4 Densité ≥ 1200 1306 / 1266
C5 Grammaire relue
C6 Sources (listes
, marqueur unique, normalisation 4 cellules grain) 0 échec

🤖 Generated with Claude Code

jsboige and others added 2 commits September 20, 2026 15:08
- App-13b-TSP-Metaheuristics-CSharp.ipynb: +8 lectures ancrées (1125→1300+)
- CSP-7-Soft.ipynb: +14 lectures ancrées (1056→1200+)
- Convention respectée: 1-2 phrases FR, citation outputs commités, DEMO only
- Garde-fous: UTF-8, source liste, markdown-only, pas d'exercice

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
…es imprimées — App-13b-TSP-Metaheuristics-CSharp / CSP-7-Soft

App-13b (8 lectures) :
- duplication x4 de la lecture « matrice 309.75 » ([4]=[7]=[10]=[13]) : chaque
  copie réécrite sur la sortie de SA cellule d'ancrage — force brute 293.19 en
  1.0 ms (5,040 = 7!, tournée [0,5,4,7,1,6,2,3], croissance N=15 = 8.7e10),
  NN 344.77 / gap 17.6% ([0,5,2,3,4,7,1,6]), 2-opt 4 inversions / gap 0.00% ;
- désancrages : [16] (contenu NN après la cellule SA → recuit 293.19 / 2056
  moves / gap -0.00%), [19] (force brute après le benchmark → table complète :
  NN 328.09/344.77/365.98 vs optimum 278.24/293.19/314.41 ; N>=30 SA bat
  2-opt : 461.97/475.12, 792.55/803.45), [25] (force brute après OR-Tools →
  parité 278.24/293.19/314.41 OK ~1 s, Prong-B 750.22 vs 792.55 à N=100,
  RoutingModel = GLS, pas un solveur exact).

CSP-7-Soft (14 lectures) :
- duplications [6]=[10] (semi-anneaux) et [32]=[53] (pénalités) levées :
  [10] → contrat de la classe SoftCSP (semi-anneau injecté), [32] → planning
  imprimé (OPTIMAL, pénalité 140, 7 matins + 7 nuits à pénalité 0), [53]
  conservée sur la figure et réécrite ([30,20,20] vs [30,40] baseline) ;
- désancrages : [29] claim de planning optimal après une simple définition →
  contrat de fonction ; [16] « solution optimale trouvée par le solveur »
  (jamais imprimée) → les 3 panneaux réels (0.4/1.0/0.7 ; 0.3/0.8/1.0 ;
  budget 1000-1500 EUR) ; [42] « distribution des solutions optimales » →
  optimum unique Paris|train|airbnb 547 EUR ;
- enrichissements chiffrés : [22] créneau 9h / coût 1 / salle 5 l'après-midi,
  [25] idem sur le diagramme, [37] score 0.800 + répartition {0,4,3},
  [47] contrat fairness_weight, [50] spread 40→30 à fw=5, total constant 70,
  [58] config 815 EUR / budget 820 / score 145 / objectif 3 ;
- normalisation du \n final des 4 cellules du grain conservées.

Densités : 1232→1306 (App-13b), 1202→1266 (CSP-7-Soft). Contrôles 6/6.

Grain: g71-search-20
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 github-actions Bot added the variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) label Sep 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 2
  • Code cells validated: 31
  • 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

Grain tag obligatoire (#10045, bloquant).

Grain tag absent (no Grain: / in body).

Pour passer ce gate, le body doit porter en tete une ligne de la forme :

Grain: <DEEP|MED|LIGHT>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<GENRE> #<PR>

Le <genre> doit figurer dans l'enumeration §1 de variation-protocol.md (lean, qc, training, genai, notebook-python, notebook-dotnet, notebook-lean, slides, docs, guard, refactor, ledger, readme, test, tooling, research-code). Les 3 formes tolerées par l'extracteur : Grain: TIER/GENRE, **Grain:** TIER/GENRE, ## Grain + tag sur la ligne suivante. La lane doit suivre le format <machine>:<workspace> (cf. lane-claim-protocol.md).

@github-actions

Copy link
Copy Markdown
Contributor

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

@github-actions

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 4.8s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.7s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.4s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.7s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.8s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.4s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 15.8s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.8s

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

@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #17149 (fix(search,g71): lectures dupliquées/désancrées reprises sur sorties imprimées — App-13b-TSP / CSP-7-Soft) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@myia-ai-01

Copy link
Copy Markdown
Collaborator

Fermée au titre du veto #17040 (campagne de densité #13410 gelée). Face à main, cette PR ajoute des cellules de lecture en solde net, et n'en retire aucune. ai-01 l'a mesuré firsthand le 23/09, en comparant les cellules markdown de la merge-base à celles de la tête. Le titre parle de repositionnement, mais le diff n'est qu'additif.

Elle avait échappé au filtre du gel parce que ni son titre ni son body ne citent #13410 : c'est un relais g-XX de la campagne.

La branche est conservée, donc la PR peut être rouverte. Une lecture qui apporte une information qu'aucune cellule existante ne porte peut revenir hors campagne, réécrite et placée juste après sa cellule (point 4 de #17040).

@myia-ai-01 myia-ai-01 closed this Sep 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants