# PREREG — функция похожести ПО МЕСТУ, а не одна на метод Составлено до прогона. Основание — два замечания Валерия 2026-09-21, идущие подряд: 1. «просто функция похожести подобрана неверно» — про провал `derived3_cap`; 2. «в принципе функция похожести может быть разной в разных местах… В какой-то статье упоминалось, что функция похожести может подбираться по домену. В нашем случае это не домен, а **место параметра**». ## 1. Что было не так в четырёх предыдущих попытках Все четыре (`cbrt`, логарифм, `derived3_m`, `derived3_cap`) меняли **масштаб** `σ`, оставляя **одну** функцию `S` на весь метод. Измеренная причина разрыва при этом ни разу не была затронута: недолёт **линейной модели**, 0.93 против 2.26 половинений на пробу. ## 2. Прочитанное до прогона (корпус экономит замер) `article/sim_numerics.tex`, Предложение 4: чтение похожести **по концам скобки** с рациональной похожестью `S = 1/(1+z)` **тождественно false position** — 127/154, 10560 оценок. То есть слот «масштаб = значение на дальнем конце» **уже закрыт при `m = 1`**. Гипотеза ниже — ровно про то, почему он закрыт: стойло false position трёхвековой давности есть чтение похожести **на порядке 1** там, где подход имеет порядок `m`. ## 3. Слот 1 — длина шага: показатель = ИЗМЕРЕННЫЙ порядок Для `f ≈ K·e^m` (`e = |x − r|`) отношение остатков безразмерно и не требует наклона: z = |f(x)| / |f(far)| = (e/E)^m ⇒ z^(1/m) = e/E а доля шага до дальнего конца при обратной интерполяции есть `t/(1+t)`, `t = z^(1/m)`. При `m = 1` это **в точности false position** (Предложение 4), при `m > 1` — обратная интерполяция **порядка m**, которая для чистой степени попадает в корень **за один шаг**. Показатель `1/m` **не выбирается**: `m = 1/(1 − f·f''/f'²)` считается `_local_order` по трём уже сделанным оценкам и равен 1, когда степенная модель не применима. **Почему это не повторение `derived3_m`.** Там `m` стоял **делителем масштаба** в чтении по наклону, где, как доказано в docstring, показатель схлопывается в множитель. Здесь `m` стоит **показателем над безразмерным отношением**, и схлопывания нет. Плюс структурное свойство: `t/(1+t) < 1` всегда, то есть шаг **никогда не выходит за скобку** — ложное `m > 1` (27.9% шагов на APS) ограничено дальним концом, а не проецируется предохранителем. **Режимы:** новая шкала `scale="far"` (σ = |f| на том конце, к которому шаг) и новый ключ `exponent="none"|"order"`. По умолчанию `"none"` — опубликованное поведение бит-в-бит. ### Сетка (контроль внутри самой сетки) Внутри каждой тройки (`S`, шкала, предохранитель) меняется **ровно одно** — показатель. Если `order` не бьёт `none` в паре `far`+`rational`, гипотеза мертва без толкований. ## 4. Слот 2 — решение предохранителя (объявляется здесь, гоняется ПОСЛЕ слота 1) Чандрупатла выигрывает не шагом, а **полосой приёма**: `1−√(1−ξ) < φ < √ξ`. В наших терминах это **другая функция похожести в другом месте** — похожесть конфигурации на линейную (`|φ − ξ|`), читаемая не для длины шага, а для решения «модель или деление». Сейчас у нас в этом месте похожести нет вовсе: знаковый гейт и проекция. Гоняется **отдельной сеткой после слота 1**, чтобы не смешать два изменения. ## 5. Точка отсчёта и цели | величина | текущее | цель | |---|---|---| | APS-154 | 2726 (лучшее 2527) | **≤ 2527** | | CHA-45 по-наборно | 2683 | **< 2683** (Chandrupatla 2423) | | два набора | 5511 | **< 5511** | | решено | 193/199 | ≥ 193 | | гарантия `over2x` | 0 | **0** | ## 6. Предсказания и фальсификаторы | # | Предсказание | ФАЛЬСИФИКАТОР → вывод | |---|---|---| | **L1** | `exponent="order"` улучшает `far`-чтение против `none` в той же тройке | не улучшает → порядок как показатель над отношением остатков не лечит стойло false position; слот 1 закрыт | | **L2** | лучшая конфигурация слота 1 даёт CHA < 2683 | не даёт → измеренная причина не устраняется и местом похожести тоже | | **L3** | APS не хуже 2726 | хуже → снова обмен «широкие за счёт узких», пятый раз | | **L4** | гарантия цела (`over2x = 0`) | нарушена → немедленное закрытие | | **L5** | шаг ни разу не выходит за скобку в режиме `far` (проекция предохранителя не срабатывает) | срабатывает → вывод `t/(1+t) < 1` неверно реализован, это баг, а не результат | **Правило остановки:** L1 ложна ⇒ слот 1 закрывается, слот 2 гоняется всё равно (это другое место). L1 верна, L2 ложна ⇒ улучшение записывается как есть, без заявки на Chandrupatla. L4 ложна ⇒ стоп. 🔴 **Запрет на подбор:** «своя `S` в каждом месте» не даёт права перебрать меню `S` и объявить победителя. Показатель в слоте 1 **измеряется** (`_local_order`), а не выбирается. Любой выбор `S` из списка остаётся тем же изъяном, что жёсткая константа, и отчёт обязан называть его выбором.