pre-step gate MEASURED: repairs 77.5% -> 15.9%, CHA hits the ITP target for the first time (2851 <= 2857), two sets 7440 (best of the line) — but APS grows 2806 -> 4449, so by the pre-registered stop rule the mode is NOT accepted. Cause named: my gate refuses on BRACKET PROGRESS, and this project had already measured that currency to be wrong (a secant step collapses the error while barely moving the bracket: 150 vs 86). Chandrupatla refuses on the SHAPE of the configuration. Next candidate derived, not borrowed: slope-stability gate
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Findings — предшаговый гейт (пред-регистрация `PREREG_prestep_gate_2026-09-21.md`)
|
||||
|
||||
Числа только с Linux. Свип гейта — в своём `sweep_gate.json`; опубликованный `sweep_full.json` не
|
||||
тронут (проверено git-статусом; один раз смоук всё же записался в `sweep_smoke.json`, файл восстановлен
|
||||
из истории — ровно для этого git и заводился).
|
||||
|
||||
## 1. Результат: механизм подтверждён, режим НЕ принимается
|
||||
|
||||
Та же конфигурация `ratio.derived3.credit` на 45 задачах CHA, инструмент `explain_chandrupatla.py --gate`:
|
||||
|
||||
| предсказание | цель | измерено | вердикт |
|
||||
|---|---|---|---|
|
||||
| **P1** доля ремонтов сторожем | ≤40 % | **15.9 %** (было **77.5 %**) | 🟢 PASS |
|
||||
| **P2** цена на CHA падает | <2073 | **2000** | 🟢 PASS |
|
||||
| **P3** цена на APS-154 не растёт | ≤2806 | **4449** | 🔴 **FAIL** (×1.58) |
|
||||
| **P4** гарантия `2⌈log₂(w/xtol)⌉+3` | `over2x=0` | 0 во всех конфигурациях | 🟢 PASS |
|
||||
| **P5** качество пробы | ≥2.0 половинок/вызов | **1.633** (было 1.422; Chandrupatla 2.310) | 🔴 FAIL |
|
||||
| цель ITP на CHA (из линии логарифма) | ≤2857 | **2851** (`gate.ratio_soft.derived.safe`) | 🟢 **PASS, впервые за линию** |
|
||||
|
||||
Два набора вместе: **7440** против 12 312 у x-пространства и 10 414 у логарифмического — лучшее
|
||||
значение линии, но всё ещё выше цели <6026.
|
||||
|
||||
**По правилу остановки (P3 ложна) режим не принимается как рабочий.** Диагноз §3
|
||||
`FINDINGS_logarithmic.md` при этом подтверждён: ремонты были главным расходом, и убрать их можно —
|
||||
77.5 % → 15.9 %, CHA 4516 → 2851.
|
||||
|
||||
## 2. 🔴 Почему он платит на каноническом наборе — и это проект уже знал
|
||||
|
||||
Мой гейт сравнивает **прогресс по скобке**: «обещает ли шаг снять не меньше, чем деление пополам».
|
||||
В докстринге `simroot/pure.py` про сторожа `"bracket"` записано измерение, сделанное до меня:
|
||||
|
||||
> секущий шаг обычно обрушивает ошибку, почти не двигая доказанную скобку, поэтому сторож срабатывает
|
||||
> на шагах, которые на самом деле были отличными — **150 против 86** вызовов.
|
||||
|
||||
Я воспроизвёл ровно эту ошибку в форме гейта: **прогресс по скобке — неверная валюта отказа**, потому
|
||||
что на хорошо обусловленных задачах отличный шаг по скобке почти не двигается. Отсюда рост APS в 1.58
|
||||
раза, и отсюда же качество пробы 1.633 вместо 2.310: мы стали отказываться часто, но не там, где надо.
|
||||
|
||||
**Гейт Чандрупатлы отказывает по ДРУГОМУ признаку** — не по обещанному прогрессу, а по **форме
|
||||
конфигурации** (`ξ`, `φ` — два безразмерных отношения; полоса есть окрестность линейного случая), то
|
||||
есть по вопросу «достоверна ли модель здесь». Перевод §3 был верен как объяснение; реализован был не
|
||||
тот гейт.
|
||||
|
||||
## 3. Что следует пред-регистрировать дальше (если линию продолжать)
|
||||
|
||||
**Гейт на ФОРМЕ, а не на прогрессе, и выведенный для НАШЕГО шага, а не взятый напрокат.** Наш шаг
|
||||
доверяет локальному наклону, значит вопрос доверия — устойчивость наклона: сравнить две последние его
|
||||
оценки, что даёт безразмерное отношение (похожесть последовательных оценок), и отказываться в пополам
|
||||
только когда оно говорит «наклон не установился». Это беспараметрично, это чтение отношений, и оно не
|
||||
наследует ни одной константы из вывода для обратной квадратичной интерполяции.
|
||||
|
||||
Цели остаются прежними: APS ≤ 2806 (не расти), CHA ≤ 2857 (достигнуто гейтом прогресса — значит
|
||||
планка реальна), гарантия `over2x = 0`, и качество пробы ≥2.0.
|
||||
|
||||
🔴 **Не повторять:** гейт по прогрессу скобки (эта запись), логарифмическая замена переменной
|
||||
(`FINDINGS_logarithmic.md` §2), переключение на `cbrt` по набору и три детектора режима
|
||||
(`NEXT_PAPER_logarithmic.md`). Шесть попыток, один и тот же трейд: широкие скобки покупаются ценой
|
||||
узких — пока не изменён **признак отказа**, а не шкала шага.
|
||||
@@ -97,8 +97,9 @@ def chandrupatla_traced(f, a, b, xtol, maxfev):
|
||||
return float("nan"), g.n, False, trace
|
||||
|
||||
|
||||
def main():
|
||||
def main(prestep="none"):
|
||||
probs = [p for p in load_problems() if p[0] == "CHA"]
|
||||
print(f"ours: prestep={prestep!r}")
|
||||
print(f"CHA problems: {len(probs)} metric: halvings per evaluation "
|
||||
f"= log2(w0/xtol)/nfev (bisection = 1.0)\n")
|
||||
print(f"{'problem':<16} {'CH nfev':>8} {'CH h/ev':>8} {'gate ok%':>9} "
|
||||
@@ -119,7 +120,8 @@ def main():
|
||||
|
||||
stats = {}
|
||||
x_o, n_o, ok_o = pure_root(f, a, b, XTOL, MAXFEV, similarity="ratio",
|
||||
scale="derived3", guard="credit", stats=stats)
|
||||
scale="derived3", guard="credit", stats=stats,
|
||||
prestep=prestep)
|
||||
forced = 100.0 * stats.get("forced", 0) / max(n_o, 1)
|
||||
|
||||
ch_h = decades / n_ref if n_ref else float("nan")
|
||||
@@ -146,4 +148,5 @@ def main():
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
import sys
|
||||
main("progress" if "--gate" in sys.argv else "none")
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
sweep: 126 configurations x 199 problems (FULL)
|
||||
10/126 done, 0s elapsed
|
||||
20/126 done, 1s elapsed
|
||||
30/126 done, 1s elapsed
|
||||
40/126 done, 1s elapsed
|
||||
50/126 done, 1s elapsed
|
||||
60/126 done, 1s elapsed
|
||||
70/126 done, 1s elapsed
|
||||
80/126 done, 1s elapsed
|
||||
90/126 done, 2s elapsed
|
||||
100/126 done, 2s elapsed
|
||||
110/126 done, 2s elapsed
|
||||
120/126 done, 2s elapsed
|
||||
126/126 done, 2s elapsed
|
||||
|
||||
wrote sweep_gate.json (2s total)
|
||||
|
||||
====================================================================================
|
||||
APS: 154 problems (top 20 of 126)
|
||||
====================================================================================
|
||||
configuration solved total fev over 2x
|
||||
------------------------------------------------------------------------------------
|
||||
gate.ratio.derived.bracket 153/154 4265 0
|
||||
gate.ratio.derived.both 153/154 4268 0
|
||||
gate.ratio.derived.none 153/154 4449 0
|
||||
gate.ratio.derived.project 153/154 4449 0
|
||||
gate.ratio.derived.safe 153/154 4454 0
|
||||
gate.ratio.derived.step 153/154 4454 0
|
||||
gate.ratio.derived.credit 153/154 4917 0
|
||||
gate.ratio.derived3.credit 153/154 6272 0
|
||||
gate.ratio_soft.derived3.step 153/154 6441 0
|
||||
gate.ratio_soft.derived3.safe 153/154 6441 0
|
||||
gate.ratio_soft.derived3.both 153/154 6452 0
|
||||
gate.ratio_soft.derived3.none 153/154 6456 0
|
||||
gate.ratio_soft.derived3.project 153/154 6456 0
|
||||
gate.ratio_soft.derived3.credit 153/154 6499 0
|
||||
gate.ratio_soft.derived.step 153/154 6500 0
|
||||
gate.ratio_soft.derived.safe 153/154 6500 0
|
||||
gate.ratio_soft.derived3.bracket 153/154 6509 0
|
||||
gate.ratio_soft.derived.none 153/154 6538 0
|
||||
gate.ratio_soft.derived.project 153/154 6538 0
|
||||
gate.ratio_soft.derived.bracket 153/154 6587 0
|
||||
|
||||
====================================================================================
|
||||
CHA: 45 problems (top 20 of 126)
|
||||
====================================================================================
|
||||
configuration solved total fev over 2x
|
||||
------------------------------------------------------------------------------------
|
||||
gate.ratio_soft.derived.step 40/45 2851 0
|
||||
gate.ratio_soft.derived.safe 40/45 2851 0
|
||||
gate.ratio_soft.derived.bracket 40/45 2867 0
|
||||
gate.ratio_soft.derived.both 40/45 2874 0
|
||||
gate.ratio_soft.derived.none 40/45 2878 0
|
||||
gate.ratio_soft.derived.project 40/45 2878 0
|
||||
gate.ratio_soft.derived.credit 40/45 2880 0
|
||||
gate.ratio_soft.derived3.none 40/45 2929 0
|
||||
gate.ratio_soft.derived3.project 40/45 2929 0
|
||||
gate.ratio.derived.credit 40/45 2936 0
|
||||
gate.ratio_soft.derived3.step 40/45 2936 0
|
||||
gate.ratio_soft.derived3.bracket 40/45 2936 0
|
||||
gate.ratio_soft.derived3.safe 40/45 2936 0
|
||||
gate.ratio_soft.derived3.credit 40/45 2947 0
|
||||
gate.exp_abs.derived.step 40/45 2949 0
|
||||
gate.exp_abs.derived.safe 40/45 2949 0
|
||||
gate.exp_abs.derived.none 40/45 2951 0
|
||||
gate.exp_abs.derived.project 40/45 2951 0
|
||||
gate.ratio_soft.derived3.both 40/45 2952 0
|
||||
gate.exp_abs.derived.bracket 40/45 2953 0
|
||||
|
||||
====================================================================================
|
||||
THE STAGE-0C LAW ACROSS THE GRID
|
||||
====================================================================================
|
||||
scale=derived slope c=1 (linear) mean total 9439 mean solved 193.0/199
|
||||
scale=derived slope c=0 (quadratic) mean total 10571 mean solved 193.0/199
|
||||
scale=derived3 slope c=1 (linear) mean total 10922 mean solved 193.0/199
|
||||
scale=derived3 slope c=0 (quadratic) mean total 10533 mean solved 193.0/199
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user