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

5.1 KiB
Raw Blame History

PREREG — проверка двух сильнейших вариантов: абляция и новый корпус

Составлено до прогона, ветка signfix-and-gates. Валерий: «результат сильный и уже достоин статьи»; «давай проверим оба сильнейших варианта».

Зачем

Все решения сегодня принимались на тех же 199 задачах (APS 154 + Chandrupatla 45). Предрегистрация защищает каждый шаг, но не цепочку: итоговые ячейки отобраны по этим наборам. Нужны (1) абляция каждой составляющей и (2) задачи, на которых ничего не разрабатывалось.

Варианты (проекция, tent, трёхточечный масштаб)

  • A = Г2 + contra+flatanalogmempt+exp+half (APS 2559, CHA 2047)
  • B = defect+flatanalogmempt+exp, без Г2 (APS 2531, CHA 1972)
  • справочно: предложенный метод без добавок; соперники — библиотечные Чандрупатла (elementwise.find_root), Брент (brentq), TOMS748.

Часть 1 — новый корпус (corpus_new.py, зерно 20260921, закоммичен до прогона)

206 задач, не использованных в разработке: C0 — набор SciPy original (6); C1–C5 по 40, параметры из заранее заданных распределений: C1 гладкий простой корень, C2 трансцендентный простой (atan/tanh/expm1/sinh), C3 кратный/плоский корень |x−r|^p, p ~ U(2, 20), C4 экспоненциальный склон, C5 почти сокращающиеся члены (как у fun9, параметры случайные). Корень известен по построению. Учёт тот же: XTOL 10⁻¹², MAXFEV 200, решено при |x − r| ≤ 10⁻⁶, неудача = 200.

Для каждого варианта V ∈ {A, B}:

# ПРОЙДЕНО, если
O1 сумма вызовов V на корпусе меньше, чем у Чандрупатлы
O2 по задачам против Чандрупатлы побед больше, чем поражений, знаковый тест p < 0.05
O3 гарантия: 0 нарушений (≤ 2⌈log₂(w/xtol)⌉ + 4 на решённых); решено не меньше, чем у Чандрупатлы
O4 сумма V меньше, чем у предложенного метода без добавок (добавки переносятся)

Вывод «переносится на новые задачи» — только при O1, O2, O3 одновременно. Сообщается всё, по каждому классу отдельно, против всех трёх соперников. Никаких изменений метода после этого прогона в рамках этой проверки; корпус и критерии не меняются.

Классы C3–C5 близки к тому, на чём мы искали (плоские, экспонента, сокращение); C0–C2 — нейтральны и выгодны модели Чандрупатлы. Вывод сообщается и отдельно по C0–C2.

Часть 2 — абляция (APS, CHA и новый корпус)

Снимается по одной составляющей, Δ = (без неё) − (с ней), плюс = составляющая заслужена:

  • A: Г2; contra; half; exp; точка (flatanalogmempt → flatanalogmem); весь плоский режим (снять flatanalogmempt и exp).
  • B: defect; exp; точка; весь плоский режим.

Составляющая с Δ ≤ 0 на всех трёх наборах не заслужена и из предложения убирается.

Дополнение (после двух прогонов, до сервера) — воспроизводимость

Задача C0.05 = SciPy original.05.00 — случайная ступенчатая функция (random() без зерна, значения в общем кэше модуля, разделяемом всеми прогонами процесса). Два локальных прогона без зерна разошлись только на ней (на 2–9 вызовов у каждого метода, включая соперников) и дали одинаковые вердикты (A: O1–O3 ✓; B: O2 ✗). Поправка: перед каждым прогоном кэш очищается, зерно 20260921 — все методы встречают одну и ту же функцию, прогон воспроизводим. Задача остаётся в корпусе; критерии и остальной корпус не меняются.