Dobutsu shogi'deki civciv tanıtım kuralı gerçekten önemli mi?


9

In Dobutsu shogi , civciv (Japonca piyon) bir tavuk (Altın general) için teşvik etmektedir. Tecrübelerime göre bu promosyon nadiren gerçekleşiyor ve çok fazla blundering yapmasından şüpheleniyorum.

Dobutsu shogi'deki civciv tanıtım kuralı gerçekten önemli mi? Yani, civciv promosyonu düşürülürse oyun gerçekten değişir mi (ve civcivler son sıraya yapışırsa)?

Gerçekten değişmekle, bir pozisyonun (kazanan, kaybeten ya da çizim) değişen sınıflandırmasını ya da kazanan bir pozisyondan kazanmayı maddi olarak değiştirmeye zorlamak için kesin hamle dizisini kastediyorum.

Yanıtlar:


6

Tanıtım kuralı aslında çok önemlidir. Mükemmel oyun ile promosyon kuralını düşürürseniz oyun beyaz / gote kazanmak yerine berabere biter. Aslında, başlangıç ​​pozisyonundaki dört hareketin tümü bu şekilde değişir.

Uygulamalarımda hata olup olmadığını iki kez kontrol etmek için bu sonucu elde etmek için iki bağımsız yöntem kullandım:

  1. Alfa-beta aramalı bir motor, yani peri satranç varyantları (shogi varyantları dahil) için Stokish çatalım kullanarak , promosyon kuralını devre dışı bırakmadan önce ve sonra derin aramalar yaptım (~ 1 saat) , aşağıdaki sonuçlara bakın.
  2. Yana bir çözüldü oyun Dobutsu shogi , bunun için tablebase jeneratörler vardır. Açık kaynaklı bir tablo tabanı oluşturucu kullandım ve promosyonları devre dışı bırakmak için değiştirdim (bu kod tabanına çok aşina değilim, ancak iki yöntemin sonuçları tutarlı olduğundan, değişikliğim düzgün çalışıyor gibi görünüyor). Her iki kural kümesiyle de tablo tabanı oluşturmayı çalıştırdım ve sonuçları aşağıda bulabilirsiniz.

1. Arama sonuçları

giriş:

setoption name multipv value 4
setoption name hash value 4096
setoption name UCI_Variant value dobutsu
position startpos
go depth 90

promosyon kuralı ile çıktı:

info depth 90 seldepth 87 multipv 1 score mate -43 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv c1c2 a4a3 c2c1 b3b2 a1b2 c4b3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3
info depth 90 seldepth 87 multipv 2 score mate -43 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv b1c2 b3b2 a1b2 c4b3 c2b1 a4a3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3
info depth 90 seldepth 87 multipv 3 score mate -43 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv b1a2 a4a3 a2b1 b3b2 a1b2 c4b3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3
info depth 90 seldepth 85 multipv 4 score mate -42 nodes 2423491649 nps 889420 hashfull 338 tbhits 0 time 2724798 pv b2b3 c4b3 a1b2 a4a3 C@a1 C@a2 c1c2 a2a1+ b2a1 b3c2 b1c2 a3b3 c2b1 b4a3 E@b2 a3b4 b2c1 b3a3 a1b2 a3a4 b1c2 b4c4 b2c3 a4a3 c3b2 a3a2 C@a1 a2b2 c2b2 G@b3 b2b1 E@a3 G@c2 C@c3 c2b2 c4b4 b2a2 b4a4 a2a3 a4a3 a1a2 a3b4 b1a1 G@c2 a1b1 b4c4 E@a1 b3b4 a1b2 c4b3 a2a3 b4c4 b1a1 c2c1 b2c1 b3a3 G@a2 a3b3 a2b2 b3a4 b2a2 C@a3 c1b2 a3a2 a1a2 c3c2 C@b3 E@c3 b2c3 c4c3 b3b4+ a4b4 E@b2 c3b3 a2b1 b3b2 b1b2 E@a3 b2a1 E@b2 a1b1 G@a1 b1c2 C@c3

promosyon kuralı olmadan çıktı:

info depth 90 seldepth 52 multipv 1 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv b1a2 a4a3 a2b1 b3b2 a1b2 c4b3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3b4 E@b3
info depth 90 seldepth 52 multipv 2 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv b1c2 b3b2 a1b2 c4b3 c2b1 a4a3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3b4 E@b3
info depth 90 seldepth 50 multipv 3 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv b2b3 c4b3 a1b2 a4a3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3b4 E@b3
info depth 90 seldepth 59 multipv 4 score cp 0 nodes 2745548262 nps 965315 hashfull 244 tbhits 0 time 2844199 pv c1c2 a4a3 c2c1 b3b2 a1b2 c4b3 C@a1 b4a4 c1c2 b3c2 b1c2 G@b3 b2c3 C@c4 c3b2 a4b4 E@a2 c4c3 c2c1 b3b2 c1b2 E@b3 b2b1 b3a4 G@b2 b4c4 b1c1 a4b3 a2b3 a3b3 b2b3 c4b3 G@b2 b3c4 E@b3 c4b4 c1b1 G@a3 b3a2 b4c4 b1c1 E@a4 c1b1 a4b3 b2b3 a3b3 a2b3 c4b3 G@b2 b3a4 E@b3 a4b4 b1c1 G@a3 b3a2 b4c4 c1b1 E@b3

Giriş ve çıkışın anlamı hakkında ayrıntılar için UCI protokolü açıklamasına bakın .

2. Tablo tabanı sonuçları

giriş:

show lines

promosyon kuralı ile çıktı:

Gc4-c3 : #-78  (25.00%)
Lb4-c3 : #-78  (25.00%)
Lb4-a3 : #-78  (25.00%)
Cb3xb2 : #-76  (24.99%)

promosyon kuralı olmadan çıktı:

Cb3xb2 : 0     (25.00%)
Gc4-c3 : 0     (25.00%)
Lb4-c3 : 0     (25.00%)
Lb4-a3 : 0     (25.00%)

Lütfen aklınızda bulundurun:

  • Montaj ilişkisi mesafeleri iki nedenden dolayı farklılık gösterir:
    • Stokish, tam hareketlerde montaj ilişkisi mesafesini sayar (USI protokolünü etkinleştirmediğiniz sürece), oysa tablo tabanı üreteci kat olarak sayılır (yarım hareket).
    • Arama, çiftleşmenin en kısa yolunu bulmak zorunda değildir, oysa tablo tabanı sonucu doğru olmalıdır.
  • İki yazılım ayrıca kareleri tanımlamak için farklı koordinat sistemleri kullanır (sıralamaların sırası ters çevrilir), bu nedenle hareket dizelerini karşılaştırırken bunları karıştırmamaya dikkat edin.

1
Ne ilginç ve beklenmedik bir sonuç! Ben masa tabanı jeneratör biraz çalıştım ama böyle küçük bir değişiklik hedefime ulaşmak olacağını fark etmemişti. Her neyse, peri balığının çıktısını biraz daha açıklayabilir misiniz? (Neden) "cp 0" berabere demektir?
hkBst

1
Evet, benim için de şaşırtıcıydı. Geri bildiriminiz için teşekkürler, UCI protokolü açıklamasına bir bağlantı ekledim. Özel sorunuza: Evet, cp 0 berabere anlamına gelir, çünkü tarafın kırkayak biriminde hareket etmesinin avantajı anlamına gelir (bir satranç piyonunun 1 / 100'ü).
Fabian Fichter

1

Şimdi Fabian Fichter'in cevabının doğru olduğuna ikna oldum . Fabian'ın cevabına ilişkin aşağıdaki yorum, başkalarını ikna etmeye yardımcı olabilir.

1. Civciv tanıtımının kaldırılmasından etkilenmiş gibi görünen pozisyon

Değiştirilmiş Stockish'ten gönderilen sonuçları analiz ederek, tüm oyunlar aşağıdaki pozisyonda oldukça hızlı bir şekilde birleşir: S / -l- / ge - / - E - / - LG / cC.

$ ./dobutsu -vs900
Loading tablebase... done
1. setup S/-l-/ge-/-E-/-LG/cC
1. show board
  ABC 
 +---+
1| l | c
2|ge |
3| E |
4| LG| *C
 +---+
1. show lines
Eb3xa2 : #-72  (67.13%)
C  *a4 : #-70  (32.87%)   <---  apparently quite strong
Gc4-c3 : #-46  ( 0.00%)
C  *c2 : #-36  ( 0.00%)
C  *c1 : #-28  ( 0.00%)
Eb3-a4 : #-26  ( 0.00%)
Lb4-a4 : #-26  ( 0.00%)
C  *a1 : #-24  ( 0.00%)
C  *c3 : #-22  ( 0.00%)
C  *a3 : #-20  ( 0.00%)
Eb3-c2 : #-12  ( 0.00%)
Lb4-c3 : #-2   ( 0.00%)
Lb4-a3 : #-2   ( 0.00%)

Sente sonra C*a4piliçlerini sol alt köşeye bırakarak oynuyor . Başlangıçta bu oldukça savurgan bir damla düşündüm ama masa tabanına göre aslında hiç de kötü değil.

1. C  *a4
  ABC 
 +---+
1| l | *c
2|ge |
3| E |
4|CLG| 
 +---+

Şimdi ilginç bir şey oluyor. Masa tabanı, Aslan'ı yana doğru çekmenin bir beraberlik olduğunu düşünüyor, ama bir piliçle savaşmak için bir piliç bırakmaya ne dersiniz?

2. show lines
C  *a3 : #69   (99.57%)   <---  winning chick drop
C  *c2 : #91   ( 0.21%)
C  *c1 : #91   ( 0.21%)
C  *a1 : 0     ( 0.00%)
Ga2-a1 : 0     ( 0.00%)
Eb2-c1 : 0     ( 0.00%)
Eb2-a1 : 0     ( 0.00%)
Lb1-a1 : 0     ( 0.00%)   <---  draws the game
C  *c3 : #-28  ( 0.00%)
Lb1-c1 : #-22  ( 0.00%)
Eb2-c3 : #-20  ( 0.00%)
Eb2-a3 : #-20  ( 0.00%)
Ga2-a3 : #-18  ( 0.00%)
Lb1-c2 : #-2   ( 0.00%)
2. C  *a3
  ABC 
 +---+
1| l | 
2|ge |
3|cE |
4|CLG| *
 +---+

Şimdi piliç, a3terfi etmekten bir adım uzakta ve dahası, Sente aslanını almaya zorlayacak olan terfi konusunda kontrol verecekti. Tek sorun, en iyi hareketin civcivini kaybetmeyi içermesi a3ve aynı zamanda hala bir şahmattan oldukça uzak olduğumuzdur. Bu nedenle biraz daha kısa bir yol alacağız, böylece daha hızlı kaybedeceğiz, ancak malzemeyi gereksiz yere vermek gibi başka nedenlerle kaybetmeden.

3. show lines
Ca4xa3 : #-68  (92.84%)   <---  catches chick about to promote
Gc4-c3 : #-62  ( 7.16%)
Eb3xa2 : #-32  ( 0.00%)   <---  shortcut
Eb3-c2 : #-8   ( 0.00%)   <---  give away elephant
Lb4-c3 : #-2   ( 0.00%)   <---  stupid
Lb4xa3 : #-2   ( 0.00%)   <---  stupid
3. Eb3xa2
  ABC 
 +---+
1| l | *
2|Ee |
3|c  |
4|CLG| G
 +---+
4. show lines
Lb1xa2 : #31   (100.00%)
Lb1-c2 : #-10  ( 0.00%)
Lb1-c1 : #-6   ( 0.00%)
Lb1-a1 : #-6   ( 0.00%)
Ca3xa4+: #-2   ( 0.00%)
Eb2-c3 : #-2   ( 0.00%)
Eb2-c1 : #-2   ( 0.00%)
Eb2-a1 : #-2   ( 0.00%)
4. Lb1xa2
  ABC 
 +---+
1|   | e
2|le |
3|c  |
4|CLG| *G
 +---+

Kurbanı teşvik eden civciv tehdidini korumayı başardık gibi görünüyor, o yüzden devam edelim!

5. show lines
G  *b3 : #-30  (100.00%)
G  *a1 : #-24  ( 0.00%)
G  *c3 : #-20  ( 0.00%)
Gc4-c3 : #-18  ( 0.00%)
G  *c2 : #-14  ( 0.00%)
G  *c1 : #-10  ( 0.00%)
G  *b1 : #-10  ( 0.00%)
Ca4xa3 : #-8   ( 0.00%)
Lb4-c3 : #-2   ( 0.00%)
Lb4-b3 : #-2   ( 0.00%)
Lb4xa3 : #-2   ( 0.00%)
5. G  *b3
  ABC 
 +---+
1|   | *e
2|le |
3|cG |
4|CLG| 
 +---+
6. show lines
Ca3xa4+: #29   (100.00%)   <---  sacrificial promoting chick check
E  *c3 : #-30  ( 0.00%)
E  *c1 : #-28  ( 0.00%)
Eb2-c1 : #-28  ( 0.00%)
Eb2-a1 : #-28  ( 0.00%)
La2-b1 : #-28  ( 0.00%)
La2-a1 : #-28  ( 0.00%)
E  *c2 : #-26  ( 0.00%)
E  *a1 : #-24  ( 0.00%)
E  *b1 : #-12  ( 0.00%)
Eb2-c3 : #-12  ( 0.00%)
La2xb3 : #-2   ( 0.00%)

Ve işte, en iyi hamle olarak kurban teşvik eden civciv! Bakalım ne olacak.

6. Ca3xa4+:
  ABC 
 +---+
1|   | ce
2|le |
3| G |
4|rLG| *
 +---+
7. show lines
Lb4xa4 : #-28  (100.00%)   <---  take chick (forced if promoted)
Gc4-c3 : #-2   ( 0.00%)
Gb3-c3 : #-2   ( 0.00%)
Gb3-a3 : #-2   ( 0.00%)
Gb3xb2 : #-2   ( 0.00%)
Lb4-c3 : #-2   ( 0.00%)
Lb4-a3 : #-2   ( 0.00%)

Şimdi o horozu bir piliç olarak değiştirirsek ne olacağını görelim:

7. setup S/---/le-/-G-/cLG/ec
1. show board
  ABC 
 +---+
1|   | ce
2|le |
3| G |
4|cLG| *
 +---+
1. show lines
Gc4-c3 : #-90  (100.00%)
Gb3xb2 : #-30  ( 0.00%)
Lb4xa4 : #-28  ( 0.00%)
Gb3-c3 : #-10  ( 0.00%)
Gb3-a3 : #-8   ( 0.00%)
Lb4-c3 : #-2   ( 0.00%)
Lb4-a3 : #-2   ( 0.00%)

Bu pozisyonda en iyi hamle, checkmate 88 (90-2) hareketini uzaklaştırır, bu da checkmate'den başlangıç ​​pozisyonundan daha uzaktır, bu da analiz edildiğinde civciv gücünü teşvik etmeden aniden çok daha ileri bir pozisyona yol açmasının makul olmasını sağlar eskisinden daha yakın (ad infinitum). Eğer doğruysa , pozisyon G / --- / le- / cG- / CLG / e (aşağıya bakınız) piliç promosyonu olmadan kazanma yerine berabere kalır .

  ABC 
 +---+
1|   | *e
2|le |
3|cG |
4|CLG| 
 +---+

2. Kapsamlı aramanın doğruluğu

Kullanılan tablo tabanı üretecinin doğru kapsamlı bir arama olduğu varsayılarak, dosya kullanılan moves.ctek yer POS_FLAGS( validation.ckonum yapılarını kontrol etmek için bir kullanım hariç) olduğu için Fabian'ın yamasının civciv promosyonlarını devre dışı bırakmada başarılı olması gerektiği ve aslında amaca yönelik olduğu görülüyor. promosyonları devre dışı bırakmak için.

/* clear promotion bits for pieces that can't be promoted */
status &= POS_FLAGS;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.