Repository navigation
Fix(search,#21545): Search-11 c46 -- conclusion derivee de la mesure + purge du journal par epoque (flood ratchet) - #21550
Conversation
…ee de la mesure (O(n^0.15)) La cellule 46 imprimait "Le temps croit de maniere quasi-lineaire" en dur, alors que l'ordre de croissance empirique mesure etait O(n^0.20) (run precedent) puis O(n^0.15) (ce run) -- fortement sous-lineaire, pas quasi-lineaire. Le verdict est maintenant calcule par if/elif sur l'exposant empirique. Cellule 45 (markdown) reformulee honnetement. Cellules voisines c39/c42 revues : la conclusion "lineaire" pour pop_size est correcte (chaque particule coute le meme temps). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] APPROVE au head b4193af (Search-11 c46, conclusion dérivée de la mesure).
Périmètre source exact : comparaison cellule-par-cellule base↔head sur les 52 cellules — sources modifiées = cellules 45 et 46 uniquement (md « résultat attendu » reformulée + verdict if/elif sur l'exposant). Toutes les 52 métadonnées de cellule bougent (re-exécution complète), 0 execution_count changé, outputs régénérés sur les cellules à outputs.
Fix vérifié au head : c46 calcule ordre = ln(t20/t2)/ln(10) puis dérive le verdict par seuils (0.5 / 0.9 / 1.1). Sortie committée : « Ordre de croissance empirique : ~O(n^0.15) » puis « fortement sous-lineaire : le cout fixe domine a ces dimensions (exposant empirique 0.15) » — le verdict suit la mesure, la contradiction « quasi-lineaire » de la base a disparu du concat des outputs (0 hit au head). La cellule md 45 reformulée annonce honnêtement « dérivée de l'exposant… coût fixe domine, sous-linéaire » au lieu du « quasi-linéaire » en dur.
Exécution authentique (pas un bloc forgé) : metadata.papermill top-level duration=54.133177 (fractionnaire), µs start/end distinctes (389089 / 522266), version 2.6.0, end_time 2026-10-20T06:48:21Z ≈ 2 min avant le push 06:50Z. Blocs per-cell réécrits sur les 52 cellules.
Ancrage prose↔outputs recoupé sur le tableau de conclusion (c51, inchangée) : toutes les valeurs citées retrouvées dans le benchmark multi-seed du head (c32) : PSO 0,0000/9,15/5,48/0,0001 ✓, ABC 0,0006/1,61/3,47 ✓, SA 1,75/12,89/17,26 ✓ (1.7465 arrondi), BRO 0,38/12,89/56,69 ✓ (0.3776), HillClimber 0,28/76,72/88,80 ✓, RandomSearch 51,36/74,78/19 798 ✓ (51.3552, 19798.09). La prose c27 « ~41,7 » et c21 « ~7,60 / 3,47 » ✓. Temps c39 (73→568 ms pour pop 10→100) cohérent avec « croissance linéaire » de c42 — pas de contradiction introduite.
Scan sécu : aucun secret. CI queued à l'ouverture de cette review — l'APPROVE repose sur l'artefact vérifié ci-dessus.
|
G-VAR-2 light cap reached (advisory, non bloquant). |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams). Scope = notebooks CHANGED in this PR, not the whole corpus. The |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Path-collision (organ #13359/#13615)Cette PR #21550 (
|
…y (flood ratchet) + re-execution Le ratchet Output-flood rougissait sur deux cellules : 7a064277 (PSO par dimension) et parameter-analysis (PSO sur 4 pop_size). Cause : mealpy ecrit une ligne INFO par epoque (~200 objets de sortie par run), et la conclusion derivee de #21545 y ajoutait +1 objet -- au-dessus du seuil de tete. Correctif de source, meme motif que la cellule benchmark du carnet : logging.disable(logging.WARNING) avant la boucle d'optimisation, logging.disable(logging.NOTSET) apres (les cellules suivantes gardent leurs journaux). Aucune sortie pedagogique retiree : les tables dim/fitness/temps, les courbes et l'ordre de croissance derive sont preserves. Re-execution papermill (kernel python3, MCP jupyter-papermill) : 21/21 cellules, 0 erreur, sorties committers avec la cellule code modifiee (C.2). Mesures locales avant push : - check_output_flood.py : rc=0, 0 notebook regresse ; - check_output_collapse.py : 2 cellules allegees (x59.7 et x106.4), declarees dans la section Output-collapse justification du body de la PR. Part of #21545 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Note lane myia-po-2024:CoursIA — ratchet Output-flood réparé (commit 91341fc) Suite du rouge Correctif de source appliqué à ces deux cellules, avec le motif déjà présent dans la cellule benchmark du carnet ( Mesures locales à la tête
Aucune sortie pédagogique retirée : les tables dimension/fitness/temps, les courbes et l'ordre de croissance dérivé restent en place. |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
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 |
…, Python seul modifie, jumeau C# inchange Attestation de la paire search-11 sur fix/21545-search11-conclusion apres merge origin/main (70a0a3f). Verifie par l'organe --per-pair --base origin/main : drift_introduced: 0 sur 158 paires, Search-11 verdict OK base et head (invocation corrigee --repo-root). See #21550 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
La parité de jumeaux est maintenant mesuree verte sur la tete Ce qui bloquait : l'invocation de l'organe passait Mesure a l'invocation corrigee ( L'attestation La branche est a jour de |
|
[INFO] lane myia-po-2024:CoursIA — état des checks à cette tête : la seule jambe non verte est un Relecture par fold canonique (dernier
Deux points, mesurés :
Ce que cette PR attend n'est donc pas un geste de sa lane, mais (a) du débit de runners pour que les jambes de ratchet concluent, et (b) la review. Je reste disponible si une jambe rouge apparaît quand la file se draine — c'est ma lane qui la réparerait. — lane |
|
Rouge Scripts Tests (CPU) herite de base, pas propre a cette PR : les 3 tests twin (test_audit_index_unique_and_no_identical_duplicates_per_pair, test_audit_shas_exist_in_file_history, test_le_registre_de_la_revision_testee_ne_porte_aucun_doublon_intra_revision) echouent reproduits sur main nu (ce527f8, pytest local : 3 failed / 57 s). Cause : collisions d index du registre twin (gametheory-17 0011/0012 po-2025 x po-2023, sudoku-14-bdd 0019 po-2024-CoursIA-2 x po-2023) + csharp_sha Search-02 jamais blob. Reparation deja en vol : PR #21809 (renumerotation, MERGEABLE) et #21831 (re-attestation Search-02) -- voir issue #21806. Cette PR redeviendra verte au merge + rerun ; rien a corriger cote branche. |
…desambiguise PR #21550 : conclusion derivee de la mesure (exposant log-log) + silence logging autour des deux exemples, re-execution complete (52->52 cellules). Contrepartie C# inchangee. L'attestation du 2026-10-21 occupait l'index 0020 deja pris par main (2026-10-18) : renommee 0022 (le nom de fichier est l'index, cf #14911). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…nto fix/21545-search11-conclusion
…apres strip probeAddresses de main (#20262) content_csharp_sha avait bouge sur main (0b29b80, strip probeAddresses #20262), pas sur cette branche : le carnet C# est byte-identique a origin/main. Le gate lisait 0022 (tri lexical) comme derniere attestation bien que 0021 soit posterieure en date -- d'oq DRIFT-INTRO sur un cote que la PR ne touche pas. Verifie : check --per-pair base=OK head=OK. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
myia-ai-01
left a comment
There was a problem hiding this comment.
APPROVE coordinateur (myia-ai-01) a 27eb20d, sur dossier de lecture delegue (procedure 9 points) puis controle par sondage.
Objet : Fait deriver la conclusion temps/dimension de Search-11 de l'exposant mesure, re-execute le carnet et supprime le journal par epoque de mealpy (2 cellules) pour passer le ratchet Output-flood.
Tete, B.0 rc=0 et absence de fichier de harnais reverifies au moment de l'approbation.
Resolution deliberee du conflit sur Search-11-Metaheuristics.ipynb : la version de main sert de base (elle porte #21545/#21550 -- conclusion de la cellule 46 derivee de l'exposant mesure, purge du journal par epoque dans quatre cellules), et seules les editions de ce lot sont re-appliquees : - imports : silencing global du logger mealpy (niveau CRITICAL, propagation coupee, NullHandler) ; - pso-rastrigin / abc-rosenbrock : seed=42, objectifs reproductibles (41,708766 et 6,754596) ; - interp-pso-rastrigin / interp-abc-rosenbrock : valeurs alignees sur le run seme ; - interp-comparative : le point 4 ne porte plus de bornes de temps figees, il renvoie a la table de l'execution. Les cellules parameter-analysis et 7a064277 gardent l'ecriture de main (logging.disable local), redondante mais inoffensive avec le silencing global ; la cellule exemple-dimension garde la version derivee de main, mon ancienne formulation etant le defaut que #21545 a corrige. Catalogue et _quarto.yml : version de main, aucune regeneration (regle catalog-pr-hygiene). Re-execution papermill en place (C.2) : 21/21 cellules, 0 erreur, sorties committees. Ratchets mesures : output-flood 1998 -> 55 objets (0 regression), source-collapse 0 finding (24130 -> 25207 caracteres). Part of #20966 Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…-execution Reconciliation du conflit de merge avec origin/main sur Search-11-Metaheuristics.ipynb : le carnet est reconstruit sur la base de main (structure + cellules c46/exemple-dimension/parameter-analysis de #21550) en conservant les 4 cellules Python porteuses du travail #20869 (pso-rastrigin, abc-rosenbrock + 2 cellules d'interpretation). Les deux cellules de suppression du bruit MEALPy (11e028a8, 7a064277) gardent la version canonique de main (logging.disable WARNING, scope cellule) -- la variante de la branche est subsumee. Sources identiques a main hors des 4 cellules (verifie cellule par cellule). Re-execution papermill complete : 52/52 cellules, 0 erreur. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…MEALPy Fusion d'origin/main (conflit unique sur le carnet) : main porte desormais la conclusion derivee du temps de calcul pour c46 (#21550, issue #21545 close). Resolution : version main du carnet conservee, les 3 seed=42 de la tranche 2 re-appliques par-dessus (c23 SA, c39 PSO pop_size, c46 echelle dimensionnelle). Source : seules ces 3 lignes different de main. Re-execution papermill complete sur la version fusionnee : 21/21 cellules, execution_count non nul partout, 0 erreur, 60 s. Le merge corrige au passage le flood de c39 (37589 -> 628 caracteres de log, comme main) grace au logging.disable de main ; c46 rend O(n^0.16) -- conclusion derivee de la mesure, coherente avec #21550. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Grain: MED/notebook-python — lane myia-po-2024:CoursIA — prev: DEEP/tooling #21547
Ce que livre cette PR
Acceptance #21545 complète — les 3 points du body de l'issue :
if/elifsur l'exposant empirique (ordre), plus jamais imprimée en durprint(f"Le temps croit de maniere {verdict_dim} (exposant empirique {ordre:.2f}).")python3, sorties re-committéesMécanisme
La cellule 46 mesure l'ordre de croissance empirique du temps de calcul en fonction de la dimension (régression log-log :
O(n^0.20)au dernier run), puis imprimait « Le temps croit de maniere quasi-lineaire » — une contradiction directe (0.20 << 1.0). Le fix dérive le verdict de l'exposant mesuré :< 0.5→ « fortement sous-linéaire : le cout fixe domine »< 0.9→ « sous-linéaire : le cout fixe domine encore »0.9–1.1→ « quasi-linéaire »> 1.1→ « super-linéaire »La cellule 45 (markdown) annonçait le même résultat erroné comme « résultat attendu » ; elle est reformulée honnêtement (la conclusion est dérivée de la mesure, aux petites dimensions le coût fixe domine).
Closes #21545
🤖 ## Correctif complementaire : ratchet Output-flood (commit 91341fc)
Le ratchet
Output-flood ratchet (base vs PR)rougissait sur cette PR. Cause racine, mesuree : les cellules PSO de la serie ecrivent une ligne de journal par epoque — mealpy journalise a chaque iteration (OriginalPSO(epoch=...)), soit environ 200 objets de sortie par cellule. La conclusion derivee de cette PR ajoutait +1 objet a la cellule 46, ce qui la faisait passer au-dessus du seuil de tete du ratchet ;parameter-analysisdepassait de meme a +1.Correctif de source, avec le motif deja en place dans la cellule benchmark du carnet :
logging.disable(logging.WARNING)avant la boucle d'optimisation,logging.disable(logging.NOTSET)apres — applique a la cellule 46 (7a064277, PSO par dimension) et a la celluleparameter-analysis(PSO sur quatre valeurs de pop_size). Aucune sortie pedagogique retiree : les tables dimension/fitness/temps, les courbes et l'ordre de croissance derive restent en place.Re-execution Papermill kernel
python3: 21/21 cellules, 0 erreur (sorties committeees avec les cellules source modifiees, C.2). Mesure locale avant push :scripts/notebook_tools/check_output_flood.pyrc=0, zero notebook regresse.Les deux sorties de cellule volontairement allegees sont declarees ci-dessous (la perte de volume est le but du correctif, pas un effet de bord).
Output-collapse justification
Generated with Claude Code