क्या डबस्त्सू शोगी में चिक प्रमोशन नियम वास्तव में मायने रखता है?


9

में dobutsu shogi , लड़की (जापानी प्यादा) एक चिकन (गोल्ड सामान्य) के लिए बढ़ावा देता है। मेरे अनुभव में यह पदोन्नति केवल शायद ही कभी होती है और मुझे बहुत विस्फोट के बाद संदेह होता है।

क्या डबस्त्सू शोगी में चिक प्रमोशन नियम वास्तव में मायने रखता है? यही है, क्या खेल वास्तव में बदल जाता है अगर चिक प्रमोशन छोड़ दिया जाता है (और चूजों को इसके बजाय अंतिम पंक्ति पर अटक जाता है)?

वास्तव में परिवर्तन से, मेरा मतलब है कि स्थिति बदलने (जीतने, हारने या खींचने) या किसी भौतिक रूप से जीतने की स्थिति से जीत को मजबूर करने के लिए चालों का सटीक क्रम।

जवाबों:


6

पदोन्नति नियम वास्तव में बहुत मायने रखता है। अगर आप प्रमोशन नियम को छोड़ देते हैं, तो परफेक्ट प्ले के साथ गेम सफेद / गोट के लिए जीत की बजाय ड्रॉ में समाप्त होता है। वास्तव में, प्रारंभिक स्थिति में सभी चार चालों का मूल्यांकन इस तरह से बदलता है।

मैंने इस परिणाम को प्राप्त करने के लिए दो स्वतंत्र तरीकों का उपयोग किया है ताकि यह जांचा जा सके कि मेरे कार्यान्वयन में कोई बग नहीं है:

  1. अल्फा-बीटा खोज के साथ एक इंजन का उपयोग करना, अर्थात् परी शतरंज वेरिएंट (शोगी वेरिएंट सहित) के लिए मेरा स्टॉकफिश कांटा , मैंने पदोन्नति नियम को अक्षम करने से पहले और बाद में गहरी खोज (~ 1h) की , नीचे दिए गए परिणाम देखें।
  2. चूंकि डोबटसू शोगी एक सुलझा हुआ खेल है , इसलिए इसके लिए टेबलबेस जनरेटर हैं। मैंने एक ओपन-सोर्स टेबलबेस जनरेटर का उपयोग किया है और इसे प्रोन्नति को अक्षम करने के लिए संशोधित किया है (मैं इस कोड आधार से बहुत परिचित नहीं हूं, लेकिन चूंकि दो तरीकों के परिणाम सुसंगत हैं, मेरा परिवर्तन ठीक काम करता है)। मैंने दोनों नियम सेटों के साथ टेबलबेस पीढ़ी को चलाया और परिणामों की जांच की, जो आप नीचे पा सकते हैं।

1. खोज परिणाम

इनपुट:

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

पदोन्नति नियम के साथ उत्पादन:

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

पदोन्नति नियम के बिना उत्पादन:

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

इन और आउटपुट के अर्थ पर विवरण के लिए UCI प्रोटोकॉल विवरण देखें ।

2. टेबलबेस परिणाम

इनपुट:

show lines

पदोन्नति नियम के साथ उत्पादन:

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

पदोन्नति नियम के बिना उत्पादन:

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

कृपया ध्यान दें:

  • संभोग दूरी दो कारणों से भिन्न होती है:
    • स्टॉकफिश मेट को पूर्ण चालों में गिनता है (जब तक आप यूएसआई प्रोटोकॉल को सक्षम नहीं करते हैं), जबकि टेबलबेस जनरेटर प्लाई (आधी चाल) में गिना जाता है।
    • खोज के लिए जरूरी नहीं कि सबसे कम रास्ता खोजा जाए, जबकि टेबलबेस का परिणाम सटीक होना चाहिए।
  • वर्गों का वर्णन करने के लिए दो सॉफ्टवेअर विभिन्न समन्वय प्रणालियों का उपयोग करते हैं (रैंकों का क्रम उलटा होता है), इसलिए सावधान रहें कि चाल तारों की तुलना करते समय उन्हें मिश्रण न करें।

1
क्या एक दिलचस्प और अप्रत्याशित परिणाम! मैंने उस टेबलबेस जेनरेटर का थोड़ा अध्ययन किया लेकिन इतने छोटे बदलाव का एहसास नहीं था। वैसे भी, क्या आप परी-स्टॉकफिश आउटपुट को थोड़ा और समझा सकते हैं? (क्यों) "cp 0" का मतलब ड्रा है?
hkBst

1
हां, यह मेरे लिए भी आश्चर्यजनक था। प्रतिक्रिया के लिए धन्यवाद, मैंने यूसीआई प्रोटोकॉल विवरण के लिए एक लिंक जोड़ा है। आपके विशिष्ट प्रश्न के लिए: हां, cp 0 का अर्थ है, चूंकि यह सेंटीपॉवन्स की इकाई में स्थानांतरित होने के पक्ष का लाभ उठाने के लिए है (1/100 शतरंज शतरंज का)।
फेबियन फिशर

1

मुझे अब विश्वास हो गया है कि फैबियन फिशर का जवाब सही है। फैबियन के जवाब पर निम्नलिखित टिप्पणी उसी के अन्य लोगों को समझाने में मदद कर सकती है।

1. ऐसी स्थिति जो चिक प्रमोशन को दूर करने से प्रभावित होती है

संशोधित स्टॉकफ़िश से पोस्ट किए गए परिणामों का विश्लेषण करते हुए, सभी गेम निम्न स्थिति पर बहुत जल्दी से अभिसरण करते हैं: 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%)

सिंटे फिर C*a4बायें कोने में अपनी लड़की को गिराता है । मैंने शुरू में यह एक बहुत बेकार ड्रॉप सोचा था लेकिन टेबल बेस के अनुसार यह वास्तव में बिल्कुल भी बुरा नहीं है।

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

अब कुछ दिलचस्प होता है। टेबल बेस स्टॉकफिश से सहमत है कि शेर को पक्ष में लाना एक ड्रॉ है, लेकिन एक लड़की से लड़ने के लिए एक लड़की को छोड़ने के बारे में क्या?

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| *
 +---+

अब चूजा a3प्रचार करने से एक कदम दूर है और इसके अलावा बढ़ावा देने के लिए चेक दिया जाएगा, जो कि सेंत शेर को लेने के लिए मजबूर करेगा। एकमात्र समस्या यह है कि सबसे अच्छी चाल में चिक को खोना शामिल है a3और यह भी कि हम अभी भी एक चेकमेट से बहुत दूर हैं। इसलिए हम थोड़ा-बहुत कटौती करने जा रहे हैं, जैसे कि हम तेजी से खोते हैं, लेकिन बिना किसी अन्य कारणों के खोने के बिना जैसे कि अनावश्यक रूप से दूर करना।

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
 +---+

हमें लगता है कि बलि को बढ़ावा देने वाले मुर्गे के खतरे को बचाए रखने में सफलता मिल गई है, तो चलिए जारी रखते हैं!

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%)

और वहाँ यह है, सबसे अच्छा कदम के रूप में बलिदान को बढ़ावा देने वाली लड़की! चलिए देखते हैं क्या होता है।

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%)

अब देखते हैं कि अगर हम उस मुर्गा को मुर्गे में बदल दें तो क्या होगा:

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%)

इस स्थिति में सबसे अच्छा कदम चेकमेट 88 (90-2) को दूर ले जाता है, जो शुरुआती स्थिति की तुलना में चेकमेट से दूर है, यह प्रशंसनीय बनाता है कि जब विश्लेषण किया जाता है तो यह एक और स्थिति की ओर ले जाएगा जो बिना चिक पॉवर को बढ़ावा दिए अचानक से बहुत आगे है पहले की तुलना में (विज्ञापन infinitum)। अगर यह सच है कि स्थिति जी / --- / ले- / सीजी- / सीएलजी / ई (नीचे देखें) एक स्थान पर एक स्थान पर बिना चिकोटी पदोन्नति के जीतेगी

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

2. संपूर्ण खोज की शुद्धता

यह मानते हुए कि प्रयुक्त टेबल बेस जनरेटर एक सही संपूर्ण खोज है, ऐसा लगता है कि फैबियन के पैच को चिक प्रमोशन को अक्षम करने में सफल होना चाहिए क्योंकि फ़ाइल moves.cएकमात्र स्थान POS_FLAGSहै जिसका उपयोग किया जाता है ( validation.cस्थिति संरचनाओं की जांच के लिए उपयोग के अलावा ) और वास्तव में उद्देश्य से बनाया गया लगता है पदोन्नति को निष्क्रिय करने के लिए।

/* clear promotion bits for pieces that can't be promoted */
status &= POS_FLAGS;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.