शुरुआती गेम में चेकमेट के कितने अलग-अलग तरीके हैं?


15

हम सभी जानते हैं कि सबसे कम संभव चौकी 4 प्लाई है:

  1. एफ 3 ई 5

  2. g4 Qh5 #

यह केवल संभव कदम आदेश नहीं है। वास्तव में, 8 हैं, इस पर निर्भर करता है कि क्या सफेद पहले च या जी प्यादा को आगे बढ़ाता है, चाहे वह च प्यादा को f3 या f4 की ओर ले जाता है, और क्या काला ई 6 या ई 5 खेलता है। बेशक, यह चालों के संभावित 4-प्लाई अनुक्रमों का केवल एक छोटा सा हिस्सा बनाता है, लेकिन ये गेम को समाप्त करने वाले एकमात्र हैं।

मैं क्या देख रहा हूँ, प्लाई की छोटी संख्या के लिए, चेकमेट में चालों के कितने क्रम समाप्त होते हैं। चेकमेट में समाप्त नहीं होते हैं। आदर्श रूप में मैं जो चाहूंगा, वह कुछ है

  • 4 प्लाई: एक्स नॉन-चेकमेट सीक्वेंस, p ४-प्लाई चैकमेट
  • 5 प्लाई: वाई नॉन-चेकमेट सीक्वेंस, 8 4-प्लाई चेकमेट्स, एन 5-प्लाई चेकमेट्स
  • 6 प्लाई: जेड गैर-चेकमेट अनुक्रम, 8 4-प्लाई चेकमेट्स, एन 5-प्लाई चेकमेट्स, एम 6-प्लाई चेकमेट्स

और इतने पर के रूप में के रूप में गहरे यह करने के लिए उचित है।

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


1
संबंधित (लेकिन समान नहीं) प्रश्न जो आपको रुचि के बारे में मिल सकता है: chess.stackexchange.com/questions/24359/…
itub

2
आपके प्रश्न के संदर्भ के आधार पर, आपको यह जानने में भी रुचि हो सकती है कि एक खेल लगभग 8 मिनट की पुनरावृत्ति के कारण ड्रा में समाप्त हो सकता है।
डीएम

1
मुझे नहीं लगता कि आप यहां जो डेटा पूछ रहे हैं, वह Math.SE प्रश्न में संभावनाओं के लिए सटीक सीमा प्रदान करने के लिए पर्याप्त है। आपको गेम ट्री की संरचना के बारे में अधिक जानकारी चाहिए। (एक उदाहरण के प्रतिरूप के लिए, एक ऐसे खेल पर विचार करें जहाँ पहली चाल के लिए दो संभावित विकल्प हों: A और B. यदि पहली चाल A है, तो दूसरी चाल के लिए 1 मिलियन अलग-अलग संभावित विकल्प हैं, जबकि यदि यह B है, तो केवल संभव दूसरा कदम सी है। अब गेम में 1,000,001 संभावित दो चाल अनुक्रम हैं, लेकिन एक यादृच्छिक खिलाड़ी के अनुक्रम बी, सी 50% खेलने की संभावना है।)
इल्मरी करोनन

@IlmariKaronen यह सच है और मुझे लगा कि जब से मैंने सवाल पोस्ट किया है। हालाँकि, मुझे नहीं लगता कि गेम ट्री के ब्रांचिंग अनुपात में फैलता है कि जल्दी से बढ़ता है, लाइनों के अपवाद के साथ जिसमें एक चेक होता है। यदि संभावना का कुल योगदान प्लाई के साथ जल्दी से गिर जाता है, तो अनुमान अभी भी काफी अच्छी तरह से काम करना चाहिए।
नेत्रगोलक

जवाबों:


26

0-3 प्लाई से कोई चेकमेट नहीं है।

4 ply: 8 checkmates, 197,281 total nodes
5 ply: 347 checkmates, 4,865,609 total nodes
6 ply: 10,828 checkmates, 119,060,324 total nodes
7 ply: 435,767 checkmates, 3,195,901,860 total nodes
8 ply: 9,852,036 checkmates, 84,998,978,956 total nodes
9 ply: 400,191,963 checkmates, 2,439,530,234,167 total nodes

"चेकमेट्स" अंतिम प्लाई पर किए गए चेकमैटिंग मूव की संख्या है। तो 5 प्लाई के लिए, वास्तव में 5 लंबाई के 347 चेकिंग क्रम हैं।

ये मान इस प्रकार हैं: https://www.chessprogramming.org/Perft_Results

वर्तमान में आवश्यक रूप से कम्प्यूटेशनल संसाधनों के कारण 10 प्लाई और उससे अधिक के लिए कोई चेकमेट डेटा नहीं है।

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


13

पूर्णांक के इस अनुक्रम को एंगर सीक्वेंस (ओईआईएस) के ऑन-लाइन इनसाइक्लोपीडिया में A079485 के रूप में जाना जाता है और 13 प्लाई तक के और सहित संख्याओं को उपलब्ध विभिन्न संदर्भों के साथ जाना जाता है।


REFERENCES Homer Simpson, Chess Review, Jan-Feb 1982. ठीक है, मैं उस का हिस्सा बना, लेकिन यह मजाकिया होगा ...
माइकल

OEIS वास्तव में सब कुछ है, है ना?
नेत्रगोलक

8

यहाँ एक साधारण पायथन कार्यक्रम है जो प्रश्न का उत्तर देता है, लेकिन धीमा है, मेरे लैपटॉप पर 5 प्लीज़ तक चलने में 40 मिनट लगते हैं (और कम से कम 30 गुना प्रति अतिरिक्त प्लाई बढ़ाते हैं)। एक अच्छी बात यह है कि अगर आपको जरूरत है तो यह गेम प्रिंट करता है। मैं यहाँ उत्पादन पोस्ट कर सकता है, लेकिन एक 347-लाइन लंबा उत्तर नहीं देना चाहता था ... :-)

import chess
from chess import pgn

def dfs(board, depth):
    global n
    result = board.result(claim_draw=True)
    if result != '*':
        game = pgn.Game.from_board(board)
        print(game.mainline())
    elif depth > 0:
        moves = list(board.legal_moves)
        for move in moves:
            n += 1
            board.push(move)
            dfs(board, depth-1)
            board.pop()

n = 0
try:
    board = chess.Board()
    dfs(board, 4)
except KeyboardInterrupt:
    pass
print(n, 'positions checked')

भविष्य के संदर्भ के लिए आप pastebin.com पर उस आउटपुट की तरह सामान फेंक सकते हैं; उठाओ कभी नहीं समाप्त होता है।
जेसन सी

ऊपर दी गई टिप्पणियां बताती हैं कि इस गणना के लिए वास्तविक गेम ट्री की खोज आवश्यक हो सकती है, इसलिए यह कार्यक्रम काफी मददगार साबित हो सकता है। धन्यवाद।
नेत्रगोलक

7

शीर्ष व्यक्ति जिसे मैं इस तरह के विश्लेषण के लिए जानता हूं, वह फ्रांकोइस लाबेले है, जिसने शतरंज से जुड़े कई नंबरों की गणना की है (जिसमें प्लाई के एक फ़ंक्शन के रूप में शतरंज के खेल की संख्या की अधिकतम वृद्धि दर का अनुमान है) और विशेष रूप से गणना की है प्लाई १० तक चेकमैट्स की संख्या । प्लाई १२ तक के मानों के लिए, http://wismuth.com/chess/chess.html में आंकड़ा देखें

फिर http://wismuth.com/chess/statistics-games.html पर , वह प्लाई 13 तक के विशिष्ट आंकड़े देता है, जिसमें 346,742,245,764,219 चेकमेट गेम स्पष्ट रूप से होते हैं।

खेलों की कुल संख्या के लिए, वह दूसरों से परिणामों को उद्धृत करता है जो कि 15 (!) तक चले गए हैं, लेकिन मुझे लगता है कि उन्होंने चेकमेट्स को ट्रैक नहीं किया था।

मैदान में 5-13 से 10,000 में लगभग 1 मौका है कि एक चाल दोस्त बचाता है। लेकिन ब्लैक की तुलना में व्हाइट के रूप में संभोग करना काफी आसान लगता है:

प्लाई बनाम मेट मौका का ग्राफ

ब्लैक मूव्स पर व्हाइट मूव्स के लिए गेम की संख्या की वृद्धि दर भी अधिक है, लेकिन यह सिर्फ 1% है, जो यहां बताए गए पैटर्न से बहुत कमजोर है।

मुझे शतरंज का बेतरतीब खेल पसंद है। कभी-कभी यह जोड़ना अच्छा होगा कि एक ऑनलाइन क्वांटम यादृच्छिक संख्या जनरेटर के साथ, एक कार्यक्रम है जो शतरंज के सभी खेल खेल रहा है, अगर कई दुनिया की परिकल्पना होती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.