Files
sim-numerics/PREREG_extrapolation_gates_2026-09-21.md
T

54 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PREREG — где удлинение уместно: Г1, Г2, Г3
Составлено до кода и до прогона. Валерий: «надо сравнить несколько предыдущих шагов и по этому
сравнению сделать вывод, где удлинение уместно» → «а если сравнивать не только шаги, но и результаты
на каждом из шагов?» → «пред-регистрируй и прогоняй Г3 вместе с Г1 и Г2».
## Основание
A (`extrapolate="steps"`, коммит `99be33a`) удлиняет шаг в 1/(1−S_шаг) по похожести двух последних
шагов. В методе: CHA 3220 → 2925, плоские 1823 → 1524, но APS 2806 → 2967 — A срабатывает и на
простых корнях. Нужно условие, отличающее ползание (удлинять) от сходимости (не трогать).
## Три режима (все без констант; ограничение дальним концом и предохранитель — как у A)
Обозначения: dₙ — предложенный шаг, dₙ₋₁ = x − x_prev, dₙ₋₂ = x_prev − x_prev2 — прошлые
перемещения; результаты rₙ = fₙ/fₙ₋₁, rₙ₋₁ = fₙ₋₁/fₙ₋₂ **со знаком**.
**Г1 `confirmed` — подтверждённый геометрический ряд.** Три шага одного направления, отношения
q₁ = |dₙ₋₁|/|dₙ₋₂|, q₂ = |dₙ|/|dₙ₋₁|, оба < 1. Подтверждение S_q = min(q₁,q₂)/max(q₁,q₂).
Шаг ← dₙ / (1 − q₂·S_q): удлинение по последнему отношению ровно в той мере, в какой ряд подтверждён.
Если направления разные или какое-то q ≥ 1 — шаг не меняется.
**Г2 `pattern` — повтор рисунка шагов, период из данных.** По истории прогона — отношения длин
соседних перемещений qⱼ. Период p — лаг из 2…⌊k/2⌋ (k — длина истории, нужно два повтора), при
котором средняя похожесть min/max(qⱼ, qⱼ₋ₚ) наибольшая; S_R — эта наибольшая похожесть. Удлинение A
(1/(1−S_шаг)) применяется, только если **S_R > ½**. ½ — константа деления, как в
`PREREG_empty_step_2026-09-21.md`.
**Г3 `steps+results` — шаги и результаты.** S_шаг — как у A. S_рез = min(rₙ,rₙ₋₁)/max(rₙ,rₙ₋₁),
если оба результата положительны (знак f не менялся — перескока не было), иначе 0.
Шаг ← dₙ / (1 − min(S_шаг, S_рез)): удлинение настолько, насколько подтверждают и шаги, и
результаты (выбор более осторожного — правило корпуса «выбор, а не взвешивание»).
## Сетка
Та же, что для A, каждая ячейка — пятёркой режимов `none / steps / confirmed / pattern /
steps+results`: tent, три точки, 7 предохранителей × чтения (без, `slope`, `shape`+`slope`,
`dissimilar`+`slope`, `defect`); восемь остальных функций × 7 предохранителей без чтений. Результаты —
в свой файл `sweep_extrap2.json` (файл A не перезаписывается).
## Критерии — для каждого режима отдельно, на предложенном методе (tent, три точки, проекция)
| # | что | ПРОЙДЕНО, если |
|---|---|---|
| **Y1** | CHA | < 3220 |
| **Y2** | APS | ≤ 2806 — главный: именно здесь A провалилась |
| **Y3** | гарантия в семействе (project/safe/credit) | 0 нарушений, решено ≥ 193 |
| **Y4** | плоские fun3–6, сумма | меньше, чем без удлинения |
| **Y5** | по задачам против Чандрупатлы на APS | сообщается: сохраняется ли значимый перевес (без удлинения 87/24/42, p = 9·10⁻⁵) |
| **Y6** | лучшая ячейка по обоим наборам среди режимов | сообщается против 5404 (A), 5511, 5228 (Чандрупатла) |
**Правило остановки:** режим принимается в предложенный метод, только если Y1, Y2 и Y3 выполнены
одновременно. Иначе результат записывается как есть. Нарушение Y3 — стоп.