Files
sim-numerics/PREREG_similarity_per_slot_2026-09-21.md

84 lines
7.5 KiB
Markdown
Raw Permalink 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-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`
из списка остаётся тем же изъяном, что жёсткая константа, и отчёт обязан называть его выбором.