Files
sim-numerics/PREREG_controls_2026-09-22.md
T
vvsandClaude Opus 5 77312bedcf PREREG_controls_2026-09-22: the controls, written before code and run.
K1 (point 5): library Chandrupatla and Brent on sign(f)|f|^(1/m*) with the true order m* - an upper
bound for "transform and interpolate". K2 (point 6): A' with only the flat detector swapped -
Lagouanelle with the same memory (hysteresis), Chandrupatla's band, and no detector at all.
Decisive corpus: corpus 4; criteria C1-C5 and what the paper says under every outcome, including
withdrawing the claim that the analogy carries the gain if any control matches A'.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-22 07:30:48 +01:00

99 lines
10 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 — контроли: классическое преобразование и простые детекторы плоскости
Составлено 2026-09-22 до кода и до прогона, ветка `release`. Валерий: «помечай и начинай
предрегистрацию контролей».
## Вопрос
Выигрыш A′ может нести разбиение (7) — ложное положение на sign(f)|f|^{1/m}, классика
Шрёдера и Трауба — **плюс любой разумный детектор плоскости**, а не распознавание по аналогии
(повторяемость безразмерной конфигурации последних трёх точек). Пока это не сравнено, утверждение §8.6
«решающий слой по подобию прогона своему прошлому несёт выигрыш» не доказано.
Два контроля:
- **К1 (замечание 5): классическое преобразование с известной кратностью.** Библиотечные Chandrupatla
и Brent, применённые к g(x) = sign(f(x))·|f(x)|^{1/m*}, где m* — истинный порядок корня. Это
**верхняя граница** подхода «преобразовать и интерполировать»: кратность дана даром, методу её
оценивать не нужно. Недостижимо на практике, но отделяет вклад преобразования от вклада оценки порядка.
- **К2 (замечание 6): A′ с другим детектором.** Всё в A′ остаётся как есть — флаг невыполненного
обещания, память на прогон, разбиение (7), суждение выхода, шаг допуска, половина, противоречие
знаков, паттерн шага, ветвь перелёта. Меняется **только то, откуда берутся решение «режим плоский»
и порядок m для разбиения**.
## К1 — определения
**m\*.** Наклон ln|f| по ln|x−r| в самом корне r, известном по построению:
m\* = (ln|f(r+2h)| − ln|f(r+h)|)/ln 2, среднее по двум сторонам (±h), h = 10⁻⁵·max(1, |r|).
Если значение не определено или не конечно, m\* = 1 (преобразование не применяется). h — точность
измерения оракула, не параметр метода; объявлено здесь и не меняется по результату.
**Где.** Только корпуса с известным корнем: APS (154), Chandrupatla (45), новый корпус 1 (206),
корпус 4 (240). Для Roots.jl и прикладного корпуса корень известен не везде, там К1 не считается.
**Счёт.** Вызов g — ровно один вызов f, считается та же обёртка, бюджет 200, критерий успеха —
единый: смена знака **f** в пределах 10⁻⁶ или f = 0. Допуски библиотек те же, что везде.
## К2 — определения детекторов
Во всех трёх вариантах: состояние режима, память, вход по флагу, выход по суждению «ближе к прямой,
чем к нулю» и разбиение (7) — код A′ без изменений. Компонента «предел трансляции» (exp) принадлежит
чтению по аналогии и в контролях отсутствует; её роль (m = ∞) берёт на себя формула Лагуанеля при
θ ≥ 1.
m_L — оценка Лагуанеля по трём последним точкам (производные параболы), **без отказа за пределами
(0, 1)**: θ = f·f''/f'², m_L = 1/(1 − θ) при θ < 1 (так m_L ∈ (0, 1) при θ < 0 — ветвь дробного
порядка), m_L = ∞ при θ ≥ 1; не определена, если f' = 0 или не конечна.
| вариант | «крутой» (m ≥ 2, вход по флагу недовыполнения) | «пологий» (вход по флагу перелёта) | m для разбиения |
|---|---|---|---|
| **К2-Л: Лагуанель с гистерезисом** | m_L ≥ 2, запоминается на прогон до выхода | 0 < m_L ≤ ⅔, запоминается | последнее m_L, давшее «крутой»/«пологий» |
| **К2-П: полоса Chandrupatla** | полоса отвергает текущую тройку (1−√(1−ξ) < φ < √ξ нарушено), запоминается | полоса отвергает, запоминается | m_L текущего состояния (∞, если не определена) |
| **К2-Ф: без детектора** | всегда (режим с первого флага) | всегда | m_L текущего состояния (∞, если не определена) |
К2-Ф — нижняя граница: сколько даёт разбиение (7) с выходом вообще без распознавания.
«Гистерезис» у К2-Л — ровно тот же механизм памяти, что у A′: признак, раз увиденный, держится до
суждения выхода. Ни одного нового числа: ½, ¼, 2 и ⅔ — те же, что в A′.
**Известно заранее (не результат).** В §10, п. 5 та же оценка Лагуанеля по трём точкам, поставленная
в масштаб шага, ошибалась: m > 1 на 27.9% шагов канонического набора. Здесь она решает только при
невыполненном обещании и снимается суждением выхода — это другое употребление, и исход не предрешён.
## Критерии и правило вывода
Сравнение на шести корпусах §9, единый критерий; **решающий — корпус 4** (как в M1 для ModAB): это
корпус, на котором A′ проверен один раз после заморозки. Контроли не настраиваются ни на каком
корпусе: их определение выше окончательное.
| # | сообщается / ПРОЙДЕНО, если |
|---|---|
| **C1** | для каждого варианта К2 на корпусе 4: сумма A′ меньше **и** по задачам побед больше, чем поражений, знаковый тест p < 0.05 |
| **C2** | шесть корпусов: суммы, w/t/l, p для A′ против К2-Л, К2-П, К2-Ф — сообщается |
| **C3** | К1: на задачах с m\* ≥ 2 или m\* < 1 и отдельно на остальных — суммы A′, Chandrupatla(g), Brent(g), Chandrupatla(f); по задачам A′ против Chandrupatla(g) — сообщается |
| **C4** | гарантия: нарушения границы 2⌈log₂(w/xtol)⌉ + 4 у всех вариантов К2 — сообщается (ожидается 0: проекция не тронута) |
| **C5** | по семействам (единица независимости): A′ против лучшего из К2 на корпусе 4 по шести классам — сообщается |
**Что пишется в статье — при любом исходе:**
- C1 пройден для всех трёх вариантов → «детектор по аналогии заработан против Лагуанеля с
гистерезисом, полосы Chandrupatla и режима без детектора» с числами; иначе.
- C1 не пройден хотя бы для одного → утверждение §8.6 о том, что выигрыш несёт распознавание по
аналогии, **снимается** в пользу «разбиение (7) с детектором плоскости; наш детектор — один из
работающих, с такими-то числами». Заголовок и аннотация следуют за этим.
- К1: если Chandrupatla(g) с известной кратностью дешевле A′ на кратных корнях, пишется прямо: при
известной кратности классическое преобразование лучше, вклад A′ — оценка порядка без знания его, и
разрыв с К1 — цена этой оценки. Если дороже — так же прямо, с числами.
**Стоп-правило.** Один прогон всех вариантов на всех корпусах. После него определения не меняются;
любая новая идея — отдельная предрегистрация. A′ заморожен: его код и результаты не трогаются, в
прогоне он воспроизводится бит в бит (проверяется: суммы A′ = таблица 10).
## Реализация (план, до кода)
- `simroot/pure.py`: три новых варианта плоского режима — `flatlagmempt`, `flatbandmempt`,
`flatflagmempt` — в том же месте, где `flatanalogmempt`; составной prestep A′ и все прежние режимы
не меняются (тест бит-в-бит против `simbracket` и против сохранённых сумм A′).
- `sweep_controls.py`: К2 через обвязку `sweep_fourth.evaluate`, К1 отдельной функцией с оракулом m\*.
- Проверка до прогона: смоук ×2 локально, смоук на сервере, затем полный прогон (`setsid nohup`, лог
с прогрессом, 40% свободных ядер).