64 lines
6.3 KiB
Markdown
64 lines
6.3 KiB
Markdown
# PREREG — два пробела базового шага: закрытие скобки и корни порядка < 1; проверка на 4-м корпусе
|
||
|
||
Составлено до кода и до прогона, ветка `signfix-and-gates`. Валерий: «пред-регистрируй и чини оба
|
||
пробела, проверка на четвёртом корпусе».
|
||
|
||
## Основание (`c2b0eea`, прикладной корпус)
|
||
|
||
1. **Нет закрытия скобки.** sin[3, 4]: корень достигнут за 7 вызовов (|f| ≈ 10⁻¹⁶), дальний конец
|
||
остался в 1.3·10⁻⁷ — ещё 17 делений до 10⁻¹². Чандрупатла ставит точку на допуск за корень.
|
||
2. **Корень порядка m < 1** (√|x|·sgn x): шаг перелетает и качается (+0.15, −0.10, +0.066 …,
|
||
сжатие ≈ 0.8), 84 против 4. Флаг видит только недолёт без смены знака; режим — только m ≥ 2.
|
||
|
||
## Правки (составляющие `close` и `sub` составного `prestep`)
|
||
|
||
**`close` — ЗАИМСТВОВАНО (Деккер 1969, Брент 1973), в статье называется так.** Если шаг модели
|
||
короче xtol/2, он заменяется шагом ровно xtol/2 в сторону дальнего конца: если модель права и
|
||
корень ближе xtol/2, новая точка оказывается за корнем и скобка сжимается до допуска.
|
||
xtol — допуск пользователя, ½ — константа деления; других констант нет.
|
||
|
||
**`sub` — вторая ветвь того же неравенства.** Касательный шаг на подходе порядка m уменьшает ошибку
|
||
по x в |1 − 1/m| раз; он проигрывает делению пополам при |1 − 1/m| > ½, т.е. при **m > 2** (недолёт —
|
||
уже используется) **или m < 2/3** (перелёт). `sub` добавляет вторую ветвь: плоский режим входит и
|
||
тогда, когда аналогичная пара читает **m ≤ 2/3**, а флаг — шаг модели с |f_new/f_old| ≥ ¼ **со сменой
|
||
знака** (перелёт; для недолёта флаг прежний). В режиме точка из порядка
|
||
t = |FA|^(1/m)/(|FA|^(1/m) + |FB|^(1/m)) — при m = ½ точна для чистой степени. Выход — прежний.
|
||
|
||
Правки добавляются к варианту **A** (Г2 + `contra+flatanalogmempt+exp+half`) → **A′** =
|
||
Г2 + `contra+flatanalogmempt+exp+half+close+sub`.
|
||
|
||
## Разработка — только на увиденных корпусах
|
||
|
||
Реализация, отладка и смоук — на APS, CHA, новом корпусе 1, Roots.jl и прикладном. Итоговый код A′
|
||
**коммитится до** прогона на четвёртом корпусе; после — никаких изменений.
|
||
|
||
## Проверка — четвёртый корпус (`corpus_fourth.py`, зерно 20260922, закоммичен сейчас)
|
||
|
||
240 задач, новые семейства по 40: D1 случайный многочлен (простой корень), D2 многочлен с кратным
|
||
корнем 3–9, **D3 дробная степень |x − r|^p, p ~ U(0.15, 0.95) — целевой для `sub`**, D4 суммы экспонент
|
||
и синусов, D5 композиции tanh/atan/log1p от кубики, **D6 нечётные относительно корня (sin, x + ax³,
|
||
arcsinh) — целевой для `close`**. Успех — смена знака в пределах 10⁻⁶; XTOL 10⁻¹², MAXFEV 200.
|
||
|
||
| # | ПРОЙДЕНО, если |
|
||
|---|---|
|
||
| **F1** | сумма A′ на корпусе 4 меньше, чем у Чандрупатлы |
|
||
| **F2** | по задачам против Чандрупатлы побед больше, чем поражений, знаковый тест p < 0.05 |
|
||
| **F3** | гарантия: 0 нарушений; решено не меньше, чем у Чандрупатлы |
|
||
| **F4** | правки заслужены: A′ дешевле A на корпусе 4; абляция — снять `close`, снять `sub` по одной, Δ сообщается |
|
||
|
||
«A′ переносится» — F1, F2, F3 одновременно. Сообщается также вывод **без целевых классов**
|
||
(D1, D2, D4, D5), против Брента и TOMS748, и A′ на всех увиденных корпусах (описательно).
|
||
|
||
## Поправка из разработки (до прогона на корпусе 4)
|
||
|
||
1. **`close` только для достоверного обещания:** шаг на xtol/2 делается, лишь если предыдущий шаг
|
||
модели сдержал своё обещание (|f| упала ниже порога флага ¼). Без этого на x¹⁹ из увиденного
|
||
набора в начале прогона наклон, в котором доминирует f(100) = 10³⁸, обещает корень в x = −10, и
|
||
закрытие заменяло середину почти повторными точками (23 → 32). Новой константы нет — тот же ¼.
|
||
2. ~~**Выход снимает и пологую память**~~ — **ОТМЕНЕНО** той же разработкой: правило выхода («ближе к
|
||
прямой, чем к нулю») отличает плоский корень от простого, но у корня порядка m < 1 f далеко от
|
||
нуля с обеих сторон — выход срабатывает ложно; сохранённая пологая память возвращает режим на
|
||
ближайшем перелёте (√|x|·sgn: 19 с памятью, 65 без). Пологая память выходом НЕ снимается.
|
||
|
||
Обе поправки сделаны на увиденных корпусах; корпус 4 ещё не запускался.
|