CyberChess / CPI
v0.1 · DRAFT · 2026-05-12
AEVION CPI Chess Performance Index
Новая система рейтинга для CyberChess. Принципиально отличается от FIDE Elo, Lichess Glicko-2 и chess.com Glicko: даёт баллы за каждую партию независимо от результата, на основе композитной оценки качества игры.
Зачем нужна новая система
Все три топа (FIDE/Lichess/chess.com) считают рейтинг только по результату партии. Это:
- грубо — один блестящий ход в проигранной партии = 0 баллов
- демотивирует тренировку — упорная игра без победы = минус
- скрывает реальный прогресс — можно расти качественно, но падать в рейтинге
Сравнение с конкурентами
Формула ΔCPI
ΔCPI = w_E · E_score ← 30 (eval-loss)
+ w_T · T_score ← 5 (time-mgmt)
+ w_O · O_score ← 10 (opening book)
+ w_B · B1_score ← 20 (best line)
+ w_B2 · B2_score ← 5 (2nd line)
+ w_B3 · B3_score ← 2 (3rd line)
+ w_M1 · M1_score ← 8 (mate-in-1)
+ w_M2 · M2_score ← 15 (mate-in-2)
+ w_M3 · M3_score ← 20 (mate-in-3)
− w_H · H_count ← −25 (hangs)
+ w_Br · Br_count ← +30 (brilliancies)
+ R_bonus ← +10/+5/0 (W/D/L)
CPI_new = clamp(CPI_old + ΔCPI, 0, 4000)Веса предварительные. Финальные будут подобраны после симуляции на 100+ исторических партиях разного уровня.
11 факторов
🎯Eval-loss
+30EСредний centipawn-loss за партию (точность)
max(0, 1 − CPL/200)Stockfish 18⏱Time-mgmt
+5TРавномерность затрат времени на ход
1 − stddev/avgClock state📖Opening book
+10O% ходов в TOP-10 базы до 10-го хода
hits / first_10openingExplorer.ts①Best line
+20B1% ходов = #1 engine choice
best / totalStockfish multiPV=3②Second line
+5B2% ходов = #2 (частичный кредит)
second / totalStockfish multiPV=3③Third line
+2B3% ходов = #3 (слабый кредит)
third / totalStockfish multiPV=3💀Mate-in-1
+8M1% найденных матов в 1 ход
found / availableStockfish💀💀Mate-in-2
+15M2% найденных матов в 2 хода
found / availableStockfish💀💀💀Mate-in-3
+20M3% найденных матов в 3 хода
found / availableStockfish💥Hangs
-25HЗевки фигур (−300+ cp swing)
−counteval diff💎Brilliancies
+30BrЖертвы и неочевидные сильные ходы
+countbrilliancy.tsПримеры — CPI vs Elo
🥈Проиграл, но качество отличное
ΔCPI
+88
result: LCPL: 25B1pct: 0.45M1: 2/2M2: 1/1hangs: 0brilliancies: 1В Elo было бы −15. У нас даже за проигрыш — большой плюс.
🪙Выиграл, но с зевком
ΔCPI
+10
result: WCPL: 80B1pct: 0.34M1: 0/0M2: 0/0hangs: 1brilliancies: 0В Elo было бы +15. У нас победа есть, но качество посредственное — маленький плюс.
🤝Идеальная ничья
ΔCPI
+50
result: DCPL: 8B1pct: 0.75M1: —M2: —hangs: 0brilliancies: 0В Elo было бы ≈ 0. У нас — большой плюс за технику.
Roadmap
- F1 — spec doc + preview page (этот экран — текущая фаза ✓)
- F2 — Stockfish multiPV integration в game loop
- F3 —
cpi.tsфункцияcomputeGameCPI()+ unit tests - F4 —
/cyberchess/cpi/dashboardс SVG-графиками - F5 — Coach by CPI — автоподборка упражнений по слабому фактору
Открытые вопросы
- Weighting — симуляция на 100+ партий разного уровня
- CPI ↔ FIDE mapping — показывать ли «эквивалент по FIDE»?
- Anti-cheat — сильный игрок может симулировать ошибки. Считать только в режимах против AI?
- Decay — должен ли CPI «затухать» если не играешь?
- Glass ceiling — потолок 4000 — может ли быть мало для топов?
Версия 0.1 · 2026-05-12 · subject to revision