πŸŽ“ KCP-Ρ„ΠΈΡ‡Π° β€” Ρ‚Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ поиска

О Ρ‡Ρ‘ΠΌ это

ΠœΡ‹ усилили ΠΎΡ†Π΅Π½ΠΊΡƒ Π΄Π΅ΡˆΡ‘Π²Ρ‹ΠΌΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ Ρ„ΠΈΡ‡Π°ΠΌΠΈ (ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ короля) β€” ΠΈ oracle-3 взял Π³Π΅ΠΉΡ‚: 2-ply + rich = 57.8% ΠΏΡ€ΠΎΡ‚ΠΈΠ² aggressive (План усилСния value-ΠΌΠΎΠ΄Π΅Π»ΠΈ). Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Ρ‹Ρ‡Π°Π³ β€” KingCaptureProbability (KCP): Ρ„ΠΈΡ‡Π°, ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ само условиС ΠΏΠΎΠ±Π΅Π΄Ρ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Она дорогая, поэтому Π΅Ρ‘ нСльзя Π² Π»ΠΈΡΡ‚ΡŒΡ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ поиска β€” Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° 1 ΠΏΠ»Π°ΠΉ. ΠžΡ‚ΡΡŽΠ΄Π° красивый экспСримСнт: ΠΏΠΎΠ±Π΅ΠΆΠ΄Π°Π΅Ρ‚ Π»ΠΈ богатая тактичСская ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° ΠΌΠ°Π»ΠΎΠΉ Π³Π»ΡƒΠ±ΠΈΠ½Π΅ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π΄Π½ΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ Π½Π° большСй Π³Π»ΡƒΠ±ΠΈΠ½Π΅? ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅, дальшС β€” инТСнСрия ΠΈ ΠΊΠ°ΠΊ это ΠΏΡ€ΠΎΠ³Π½Π°Ρ‚ΡŒ (Π½Π°ΠΊΠΎΠ½Π΅Ρ† ΠΏΠΎ Π΄Π΅Π»Ρƒ β€” Π½Π° Oracle).

БвязанныС: План усилСния value-ΠΌΠΎΠ΄Π΅Π»ΠΈ Β· πŸŽ“ 2-ply Expectimax ΠΏΠΎΠ²Π΅Ρ€Ρ… value-ΠΌΠΎΠ΄Π΅Π»ΠΈ Β· Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ LightGBM Β· Oracle Cloud β€” Ρ€Π°Π½Π½Π±ΡƒΠΊ Β· 03 ИдСи ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²


1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ KCP

Π’ Dice Chess ΠΏΠΎΠ±Π΅ΠΆΠ΄Π°ΡŽΡ‚ Π·Π°Ρ…Π²Π°Ρ‚ΠΎΠΌ короля (Π½Π΅Ρ‚ ΠΌΠ°Ρ‚Π° β€” короля Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π±ΡŒΡŽΡ‚). KCP измСряСт эту ΡƒΠ³Ρ€ΠΎΠ·Ρƒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π₯ΠΎΠ΄ = бросок Ρ‚Ρ€Ρ‘Ρ… костСй (каТдая 1–6 β†’ Ρ‚ΠΈΠΏ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹) ΠΈ Π΄ΠΎ Ρ‚Ρ€Ρ‘Ρ… ΠΌΠΈΠΊΡ€ΠΎ-Ρ…ΠΎΠ΄ΠΎΠ²; всСго 216 = 6Β³ исходов броска. Для ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ KCP ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ эти 216 бросков ΠΈ считаСт, Π² ΠΊΠ°ΠΊΠΎΠΉ Π΄ΠΎΠ»Π΅ сторона ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π΄ΠΎ враТСского короля (DFS ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ ΠΌΠΈΠΊΡ€ΠΎ-Ρ…ΠΎΠ΄ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ броска):

Π’ΠΎ Π΅ΡΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ сторона c Π·Π°Ρ…Π²Π°Ρ‚ΠΈΡ‚ короля сопСрника этим Ρ…ΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΈ случайном броскС. Π‘Ρ‡ΠΈΡ‚Π°Π΅ΠΌ с ΠΎΠ±Π΅ΠΈΡ… сторон ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄Π²Π° (ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈ) числа для ΠΌΠΎΠ΄Π΅Π»ΠΈ:

ЀичаБмысл
kcp_attack = насколько уязвим ΠΊΠΎΡ€ΠΎΠ»ΡŒ сопСрника ΠΊ ΠΌΠΎΠ΅ΠΌΡƒ броску
kcp_danger = насколько уязвим ΠΌΠΎΠΉ ΠΊΠΎΡ€ΠΎΠ»ΡŒ ΠΊ Π΅Π³ΠΎ броску
kcp_diff = attack βˆ’ dangerΠ½Π΅Ρ‚Ρ‚ΠΎ-пСрСвСс ΠΏΠΎ прямой ΡƒΠ³Ρ€ΠΎΠ·Π΅ ΠΊΠΎΡ€ΠΎΠ»ΡŽ

Π’Π°ΠΆΠ½ΠΎ: KCP dice-aware β€” усрСдняСт ΠΏΠΎ всСм броскам, Π° Π½Π΅ смотрит ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ.


2. ΠŸΠΎΡ‡Π΅ΠΌΡƒ прямая Ρ„ΠΈΡ‡Π° сильнСС прокси

Всё, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄ΠΈΡ‚ модСль сСйчас, β€” это прокси ΠΏΠΎΠ±Π΅Π΄Ρ‹:

  • ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» β€” Β«ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρƒ ΠΊΠΎΠ³ΠΎ большС, Ρ‚ΠΎΡ‚ ΠΈ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚Β»;
  • mobility / king_safety β€” эвристики ΠΏΡ€ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ.

KCP ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ само условиС ΠΏΠΎΠ±Π΅Π΄Ρ‹. ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎΠΉ ΠΏΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρƒ ΠΈ «спокойной» ΠΏΠΎ эвристикС, Π½ΠΎ Ссли Ρ‚Π²ΠΎΠΉ ΠΊΠΎΡ€ΠΎΠ»ΡŒ захватываСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ броском β€” Ρ‚Ρ‹ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Π΅ΡˆΡŒ. ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» этого Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚; king_safety Π²ΠΈΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ (Π°Ρ‚Π°ΠΊΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ рядом с ΠΊΠΎΡ€ΠΎΠ»Ρ‘ΠΌ); KCP считаСт это Ρ‚ΠΎΡ‡Π½ΠΎ ΠΈ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ костСй.

Бвязь с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ сработало

mobility_diff стала Ρ„ΠΈΡ‡Π΅ΠΉ β„–1 ΠΏΠΎ ваТности, king_safety_diff Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³Π»Π°. KCP β€” ΠΈΡ… Β«ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π΅Π»Β» ΠΏΠΎ Π»ΠΈΠ½ΠΈΠΈ короля: Π½Π΅ «сколько Ρ„ΠΈΠ³ΡƒΡ€ рядом», Π° «с ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΡ€ΠΎΠ»ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ ΠΏΠ°Π΄Ρ‘Ρ‚Β». Вопрос лишь Π² Ρ†Π΅Π½Π΅.


3. Π—Π°Π³Π²ΠΎΠ·Π΄ΠΊΠ° β€” Ρ†Π΅Π½Π° (ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ экспСримСнт устроСн ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ)

KCP дорогая: 216-DFS β‰ˆ миллисСкунды Π½Π° ΠΎΠ΄Π½Ρƒ ΠΎΡ†Π΅Π½ΠΊΡƒ. А Ρ†Π΅Π½Π° Ρ„ΠΈΡ‡ΠΈ платится Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ листС поиска, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Ρ‘ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚:

Π“Π΄Π΅ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΡ†Π΅Π½ΠΊΡƒΠ›ΠΈΡΡ‚ΡŒΠ΅Π² Π½Π° Ρ…ΠΎΠ΄KCP Γ— это
2-ply expectimax~360 000❌ тысячи сСкунд/Ρ…ΠΎΠ΄ β€” Π½Π΅Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ
1-ply~сотни ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ²βœ… дСсятки–сотни мс/Ρ…ΠΎΠ΄ β€” годится для ΠΆΠΈΠ²ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹

ΠžΡ‚ΡΡŽΠ΄Π° Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄: KCP нСльзя Π² Π»ΠΈΡΡ‚ΡŒΡ 2-ply, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π² 1-ply. Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Β«Π³Π»ΡƒΠ±ΠΆΠ΅ = сильнСС»: Ρ‚ΡƒΡ‚ Π³Π»ΡƒΠ±ΠΈΠ½Π° ΠΈ богатство ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‚ Π·Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ΠžΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΈΠ· План усилСния value-ΠΌΠΎΠ΄Π΅Π»ΠΈ

Π”Π΅ΡˆΡ‘Π²Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ (ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ, king-safety) β€” ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π² Π»ΠΈΡΡ‚ΡŒΡ 2-ply. Π”ΠΎΡ€ΠΎΠ³ΠΈΠ΅ (KCP) β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΌΠ΅Π»ΠΊΠΎΠΉ Π³Π»ΡƒΠ±ΠΈΠ½Π΅. ЭкспСримСнт провСряСт, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π³ΠΎΠ΄Π½Π΅Π΅ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚: Π½Π° лишний ΠΏΠ»Π°ΠΉ ΠΈΠ»ΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡƒΠΌΠ½ΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ.


4. ЭкспСримСнт: 1-ply + KCP vs 2-ply + ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»

Он сталкиваСт Π΄Π²Π° способа Β«ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊΡ‚ΠΈΠΊΡƒΒ»:

  • 2-ply + ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» β€” Π²ΠΈΠ΄ΠΈΡ‚ ΠΎΡ‚Π²Π΅Ρ‚ сопСрника Ρ‡Π΅Ρ€Π΅Π· Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ, Π½ΠΎ ΠΎΡ†Π΅Π½ΠΊΠ° листа слСпа ΠΊ ΠΊΠΎΡ€ΠΎΠ»ΡŽ (ΡƒΠ³Ρ€ΠΎΠ·Ρƒ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ поиском, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ броскС Π² ΡƒΠ·Π»Π΅).
  • 1-ply + KCP β€” Π±Π΅Π· заглядывания Π²ΠΏΠ΅Ρ€Ρ‘Π΄, Π½ΠΎ ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ содСрТит Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π·Π°Ρ…Π²Π°Ρ‚Π° короля, ΡƒΡΡ€Π΅Π΄Π½Ρ‘Π½Π½ΡƒΡŽ ΠΏΠΎ броскам β†’ Β«Π²ΠΈΠ΄ΠΈΡ‚Β» ΡƒΠ³Ρ€ΠΎΠ·Ρƒ Π·Π° ΠΎΠ΄ΠΈΠ½ слой.

Π‘ ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… чисСл ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° такая:

ΠžΡ†Π΅Π½ΠΊΠ° \ Π“Π»ΡƒΠ±ΠΈΠ½Π°1-ply2-ply
ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»41.5%~55%
+ rich (mobility, king-safety)48%57.8% βœ…
+ KCP← этот ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚βœ— (KCP Π½Π΅ΠΏΠΎΠ΄ΡŠΡ‘ΠΌΠ½Π° Π² Π»ΠΈΡΡ‚ΡŒΡΡ…)

Π“ΠΈΠΏΠΎΡ‚Π΅Π·Π°: Ссли 1-ply + KCP окаТСтся β‰ˆ ΠΈΠ»ΠΈ > 2-ply + rich (57.8%) β€” это ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: Π±ΠΎΡ‚ дСшСвлС Π² ΠΆΠΈΠ²ΠΎΠΉ ΠΈΠ³Ρ€Π΅ (Π½Π΅Ρ‚ 2-ply-Π²Π·Ρ€Ρ‹Π²Π°) ΠΈ прямСС ΠΏΠΎ сути ΠΈΠ³Ρ€Ρ‹. Если ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π΅Ρ‚ β€” 2-ply+rich остаётся Ρ‡Π΅ΠΌΠΏΠΈΠΎΠ½ΠΎΠΌ, Π° KCP отправляСтся Π² Β«Π΄ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ Π½Π΅ ΠΎΠΊΡƒΠΏΠΈΠ»ΠΎΡΡŒΒ».


5. Как это лоТится Π½Π° наш ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€

ΠœΠ΅Ρ…Π°Π½ΠΈΠΊΠ° β€” Ρ€ΠΎΠ²Π½ΠΎ Ρ‚Π°, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„ΠΈΡ‡Π°Ρ… (План усилСния value-ΠΌΠΎΠ΄Π΅Π»ΠΈ), Π½ΠΎ шаг обогащСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ тяТёлый:

flowchart LR
    A["training_data.csv.gz<br/>(1.3M строк)"] --> B["EnrichTrainingDataApp<br/>+ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° kcp (216-DFS)"]
    B -->|"часы Γ— ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅Ρ€Π½ΠΎΡΡ‚ΡŒ"| C["Oracle CPU<br/>(Π½Π°ΠΊΠΎΠ½Π΅Ρ† ΠΏΠΎ Π΄Π΅Π»Ρƒ)"]
    C --> D["training_data_kcp.csv.gz"]
    D --> E["LightGBM ΠΏΠ΅Ρ€Π΅ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅<br/>--features rich+kcp"]
    E --> F["ONNX (dice-free)"]
    F --> G["OnnxEvalSearch<br/>Π’ΠžΠ›Π¬ΠšΠž 1-ply"]
    G --> H["Π°Ρ€Π΅Π½Π° vs aggressive"]
  1. ΠžΠ±ΠΎΠ³Π°Ρ‰Π΅Π½ΠΈΠ΅. Π”Π²ΠΈΠΆΠΎΠΊ ΡƒΠΆΠ΅ ΡƒΠΌΠ΅Π΅Ρ‚ KingCaptureProbability β€” Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ EnrichTrainingDataApp, дописываСм ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ kcp_*. Π­Ρ‚ΠΎ 216-DFS Γ— 1.3M β‰ˆ часы Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ… ядрах β†’ пСрвая Π·Π°Π΄Π°Ρ‡Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ΅Π½ Oracle CPU. ΠŸΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ Π±Ρ‹Π»ΠΈ Π΄Ρ‘ΡˆΠ΅Π²Ρ‹ ΠΈ ΠΏΡ€ΠΎΡˆΠ»ΠΈ локально Π·Π° ΠΌΠΈΠ½ΡƒΡ‚Ρ‹; KCP β€” Π½Π΅Ρ‚. Π—Π΄Π΅ΡΡŒ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Β«ΠΏΠΎ Π΄Π΅Π»ΡƒΒ» задСйствуСтся Oracle Cloud β€” Ρ€Π°Π½Π½Π±ΡƒΠΊ.
  2. ΠŸΠ΅Ρ€Π΅ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ LightGBM с KCP-Ρ„ΠΈΡ‡Π°ΠΌΠΈ (Π² ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠΌ EV-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Ρ„Π»Π°Π³ Π½Π°Π±ΠΎΡ€Π° Ρ„ΠΈΡ‡ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ) β€” сСкунды.
  3. Serving Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° 1-ply Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ OnnxEvalSearch (Π½Π°Π±ΠΎΡ€ Ρ„ΠΈΡ‡ выбираСтся Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ). 2-ply Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ Π½Π΅ Ρ‚Ρ€ΠΎΠ³Π°Π΅ΠΌ β€” KCP Ρ‚Π°ΠΌ Π½Π΅ΠΏΠΎΠ΄ΡŠΡ‘ΠΌΠ½Π°.
  4. АрСна 1-ply+KCP vs aggressive (сид фиксирован, воспроизводимо β€” см. Arena), ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с 57.8%.

6. Π§Ρ‚ΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

  • Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ прямая тактичСская Ρ„ΠΈΡ‡Π° своСй Ρ†Π΅Π½Ρ‹.
  • Π›ΡƒΡ‡ΡˆΠΈΠΉ live-Π±ΠΎΡ‚ ΠΏΠΎ «сила Γ— ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΒ»: 1-ply+KCP ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΈ быстрым, ΠΈ ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌ β†’ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ Π² oracle-4.
  • Π“ΠΈΠ±Ρ€ΠΈΠ΄ (Ссли Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π·Π°ΠΉΠ΄Ρ‘Ρ‚). KCP слишком Π΄ΠΎΡ€ΠΎΠ³Π° для Π»ΠΈΡΡ‚ΡŒΠ΅Π² 2-ply, Π½ΠΎ Π² ΠΊΠΎΡ€Π½Π΅ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ² Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ (сотни) β€” ΠΌΠΎΠΆΠ½ΠΎ 2-ply+rich Π² Π»ΠΈΡΡ‚ΡŒΡΡ… плюс KCP ΠΊΠ°ΠΊ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ сигнал. Π”Ρ‘ΡˆΠ΅Π²ΠΎ ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ складываСтся с Π³Π»ΡƒΠ±ΠΈΠ½ΠΎΠΉ.

7. ЧСстныС ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠΈ

  • Π­Ρ‚ΠΎ настоящий экспСримСнт, Π½Π΅ гарантия. KCP ΠΌΠΎΠΆΠ΅Ρ‚ частично Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ king_safety_diff (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ ΠΏΠΎΠΌΠΎΠ³) β€” Ρ‚ΠΎΠ³Π΄Π° прирост Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ°Π»; Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ сигнал (точная Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ vs ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ эвристика) β€” Ρ‚ΠΎΠ³Π΄Π° Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΉ.
  • Основная ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ β€” ΠΎΠ±ΠΎΠ³Π°Ρ‰Π΅Π½ΠΈΠ΅ (Oracle-ΠΏΡ€ΠΎΠ³ΠΎΠ½). ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π°Ρ€Π΅Π½Π° Π΄Ρ‘ΡˆΠ΅Π²Ρ‹, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ†Π΅Π½Π° ошибки β€” часы CPU, Π½Π΅ Π΄Π½ΠΈ.
  • KCP считаСтся Π½Π° ΠΊΠΎΡ€Π½Π΅/1-ply β€” ΠΎΠ½Π° ΠΏΡ€ΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡƒΡŽ ΡƒΠ³Ρ€ΠΎΠ·Ρƒ ΠΊΠΎΡ€ΠΎΠ»ΡŽ. ΠžΡ‚Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ (Ρ‡Π΅Ρ€Π΅Π· нСсколько Ρ…ΠΎΠ΄ΠΎΠ²) ΡƒΠ³Ρ€ΠΎΠ·Ρ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π»ΠΎΠ²ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ поиск; поэтому Π³ΠΈΠ±Ρ€ΠΈΠ΄ Β«Π³Π»ΡƒΠ±ΠΈΠ½Π° + KCPΒ» ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ сильнСС чистого 1-ply+KCP.

8. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Ρ€Π°Π±ΠΎΡ‚ (ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌΡΡ)

Issue-Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° Π² Π΄ΡƒΡ…Π΅ ΠΏΠ»Π°Π½Π°:

  1. Π Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ EnrichTrainingDataApp ΠΏΠΎΠ΄ kcp_* (Π΄Π²ΠΈΠΆΠΎΠΊ β†’ KingCaptureProbability); тСст Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅.
  2. ΠžΠ±ΠΊΠ°Ρ‚Π°Ρ‚ΡŒ Oracle Π½Π° этом ΠΏΡ€ΠΎΠ³ΠΎΠ½Π΅ (ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ использованиС Π³Ρ€Π°Π½Ρ‚Π°; Oracle Cloud β€” Ρ€Π°Π½Π½Π±ΡƒΠΊ).
  3. ΠŸΠ΅Ρ€Π΅ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ, ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ offline-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ (ΠΊΠ°ΠΊ Π² шагС 4a ΠΏΠ»Π°Π½Π°).
  4. 1-ply-Π°Ρ€Π΅Π½Π°; ΠΏΡ€ΠΈ успСхС β€” oracle-4 ΠΈ/ΠΈΠ»ΠΈ Π²Π΅Ρ‚ΠΊΠ° Β«KCP Π² ΠΊΠΎΡ€Π½Π΅ 2-plyΒ».