♚Открыть в приложении

Асимметричные расстановки: методология

Автор методологии: Роман Морозов. Об авторе

CC BY 4.0 Методология и данные: CC BY 4.0 — свободное использование со ссылкой на автора.

Пространство пар

Пара (w, b) означает: белые начинают с расстановки w по Шарнаглю, чёрные — с расстановки b, 0–959 каждая. Зеркальное отражение пары (mirror(w), mirror(b)) — НЕ та же позиция: рокировка в Chess960 всегда заканчивается на колонках c/d или g/f, которые не являются отражениями друг друга, поэтому у позиции и её отражения разные возможности рокировки (BBQNRKRN может рокировать сразу, её зеркало NRKRNQBB — нет). Поиск считал эти две позиции одним классом и оценивал только лексикографически меньшую пару, так что он охватывает 460 800 представителей, по одному из каждой зеркальной пары, то есть половину из 921 600 упорядоченных пар. Опубликованные пары — те, что действительно посчитаны; зеркальный близнец указывается только как ссылка, его оценка не выводится. Симметричные пары (w = b) — обычные старты Chess960, покрытые Индексом Морозова. Здесь они служат контролем: проходят те же стадии, но в рейтинг асимметричных пар не входят.

Зеркальные близнецы

Насколько различаются позиция и её зеркало? Все 960 симметричных стартов Chess960 оценены по отдельности на 400M узлов для Индекса Морозова, и это даёт 480 пар зеркальных близнецов, измеренных тем же движком с тем же бюджетом. Близнецы различаются в среднем на 9,8 cp; у 61 % разница больше 5 cp, у 37 % — больше 10 cp; корреляция между близнецами всего r = 0,50. Классический старт 518 читается +11 cp, а его зеркало 534 — +49 cp. Для сравнения: рост бюджета с 400M до 1,2G узлов меняет оценку одной и той же позиции в среднем на 5,3 cp — близнецы различаются вдвое сильнее, чем утроение бюджета. Поэтому классы зеркал в поиске считаются покрытием половины пространства, а не эквивалентностью, и зеркала опубликованных пар оцениваются отдельно.

Стадии и пороги

Стадия 0 просеивает каждую пару малым бюджетом. Пара переходит на стадию k+1, только если |cp| на стадии k не превышает предел стадии. Окна не придуманы: контрольный прогон 147 симметричных позиций Chess960 через все стадии вне окон показал, что мелкий поиск читает позицию в среднем на +18 cp в пользу белых с разбросом ±12 cp при 100k узлов, а при 128M — +7 ± 7 cp; внутри полосы почти ровных позиций мелкие оценки почти не коррелируют с глубокими, поэтому ранние стадии способны лишь отсечь явный перевес, а кто ровнее — решает только глубина. Окно стадии — 95-й процентиль |cp| среди контрольных позиций, ровных в глубине (|cp| ≤ 10 по Индексу Морозова при 400M узлов): так каждую стадию переживают не менее 95 % по-настоящему ровных пар. Последняя регулярная стадия — 128M узлов; дальше проверенные пары углубляются с 400M узлов (бюджет Индекса Морозова) удвоением. С 26 сентября 2026 года большая часть счёта идёт на углубление, а не на просеивание новых пар; фактическая доля записана в паспорт прогона. Порядок обхода стадии 0 — фиксированная перестановка с сидом (20260918). Волны идут «глубина прежде ширины»: первой обслуживается самая глубокая стадия с ожидающими кандидатами, внутри стадии — самые ровные.

S0: 100 000 / ≤ 50; S1: 500 000 / ≤ 40; S2: 2 000 000 / ≤ 41; S3: 8 000 000 / ≤ 32; S4: 32 000 000 / ≤ 30; S5: 128 000 000 / ≤ 35

Воспроизведение

Та же сборка Stockfish (sha256 в паспорте), Threads=1, фиксированный хэш по стадии, лимит узлами, ucinewgame на позицию, последняя завершённая итерация. Команды:

python tools/asym/asym_search.py --status
python tools/asym/asym_search.py --run --workers 10
python tools/asym/asym_dataset.py

Ограничения

  1. Оценка движка — утверждение о лучшей игре, а не о человеческой практике; самоигра, опубликованная для пар энциклопедии, проверяет практическую игру при скромном бюджете и оценку не заменяет.
  2. Мелкие стадии шумят: пара, отсеянная при 100k узлов с |cp| чуть выше окна, на самом деле может быть ровной. Окна на ранних стадиях намеренно широкие.
  3. Поиск продолжается: числа, места и стадии на этих страницах меняются по мере углубления; время генерации данных указано на хабе.
  4. «Ровно ноль» — свойство бюджета не меньше, чем позиции: при каждом удвоении бюджета примерно одна пара из десяти уходит с 0,00, а разброс всего набора при этом сжимается (3,6 → 2,1 → 1,7 cp от 4 до 16 млрд узлов). Защищаемое утверждение — баланс в пределах нескольких сантипешек с остатком по обе стороны от нуля. Поэтому правило допуска в энциклопедию — коридор (|cp| ≤ 5 на четырёх бюджетах, без одностороннего сноса), подтверждённый двумя другими движками, Berserk и Lc0, каждый ниже своей медианы на симметричных позициях.

Предшественники

Сама схема 960 × 960 не нова: она известна как Double Fischer Random Chess (DFRC, она же FRD), и движки играют её на TCEC с 2022 года. В репозитории книг Stockfish лежит сплошной прогон всех 921 600 стартов DFRC движком Stockfish 17.1 на глубине 22 с отбором по модельной доле ничьих для тестирования движков (Р. Нюрнберг, 2025). Есть и движковые исследования 960 симметричных стартов (Sesse, 2018; Barthelemy, 2025). Этот проект добавляет поиск баланса по оценке на классах зеркал, ступенчатую лестницу бюджетов с калиброванными окнами, проверку до 16 млрд узлов, правило согласия движков и открытый воспроизводимый набор пар.

Morozov R. Asymmetric Chess960 balance rating. ch960.com/asym, 2026. CC BY 4.0.

Все асимметричные расстановки