3.4 KiB
PREREG — плоский режим: несбывшееся обещание ВМЕСТЕ с ползанием
Составлено до кода и до прогона, ветка signfix-and-gates. Валерий: «пред-регистрируй и проверяй
несбывшееся обещание вместе с ползанием».
Основание
- Одиночный флаг
flat(r ≥ ¼ после шага модели без перескока) срабатывает в правильный момент цикла — после первого недолёта, заменяя второй, бесполезный. Но ложно поднимается на 21.6% шагов APS: 2806 → 3029, не принят. - «Дважды подряд» (
flat2) убрал ложные срабатывания на APS (2803), но срабатывает перед перескоком и заменяет самый полезный шаг цикла: CHA 3220 → 3341, не принят. - Нужен второй независимый признак того же шага, а не повтор во времени.
Правило (новых констант нет)
Режим prestep="flatcreep": следующий шаг — деление пополам, если одновременно
- последний шаг был шагом самой модели, знак f не сменился и r = f/f_prev ≥ ¼ (как у
flat); - ползание: последнее перемещение x − x_prev того же знака, что предыдущее x_prev − x_prev2 (итерация второй шаг подряд идёт в одну сторону, к корню с одной стороны).
Ожидаемый механизм: в цикле плоской функции после первого недолёта предыдущее перемещение (почти пустой шаг) идёт в ту же сторону — флаг срабатывает и заменяет второй недолёт. На простом корне однократная неудача обычно не сопровождается движением в одну сторону два раза подряд.
Проверка
Сразу полная сетка — урок двух прошлых опытов: частота срабатываний не предсказывает цену прогона.
Доля срабатываний сообщается для справки, но ничего не решает. Пары «без / flatcreep» для
предложенного метода и для него же с Г2, все 7 предохранителей; девять функций без чтений.
| # | ПРОЙДЕНО, если |
|---|---|
| V1 | CHA ниже, чем без флага (3220; с Г2 — 3169) |
| V2 | APS не выше, чем без флага (2806; с Г2 — 2782) |
| V3 | гарантия: 0 нарушений в семействе, решено ≥ 193 |
| V4 | плоские fun3–6 дешевле |
| V5 | сообщается: по задачам против Чандрупатлы на APS; оба набора против 5228 |
Правило остановки: принимается, только если V1, V2, V3 выполнены одновременно.