Berapa banyak cara yang berbeda untuk melakukan skakmat di awal permainan?


15

Kita semua tahu bahwa skakmat terpendek yang mungkin adalah 4 lapis:

  1. f3 e5

  2. g4 Qh5 #

Ini bukan satu-satunya urutan pemindahan yang memungkinkan. Sebenarnya, ada 8, tergantung pada apakah putih menggerakkan f atau g pion terlebih dahulu, apakah ia memindahkan f pion ke f3 atau f4, dan apakah hitam memainkan e6 atau e5. Tentu saja, ini hanya merupakan sebagian kecil dari kemungkinan urutan 4 langkah, tetapi ini adalah satu-satunya yang mengakhiri permainan.

Apa yang saya cari adalah, untuk jumlah kecil ply, berapa banyak urutan gerakan diakhiri dengan skakmat vs tidak berakhir pada skakmat. Idealnya apa yang saya suka adalah sesuatu di sepanjang garis

  • 4 ply: X non-skakmat sekuens, 8 skak skak 4-ply
  • 5 ply: Y non-skakmat sekuens, 8 skak skak 4-ply, skak skak 5-ply
  • 6 ply: Z non-skakmat sekuens, 8 skak skak 4-ply, skak skak N 5-ply, skak skak M 6-ply

dan seterusnya sejauh ini masuk akal untuk dilakukan.

Ini terinspirasi oleh pertanyaan Math.SE tentang probabilitas dua pemain membuat gerakan acak yang menghasilkan permainan catur yang sama. Saya menduga permainan pendek sangat mendominasi probabilitas ini, yang seharusnya membuat probabilitas mudah diperkirakan, tetapi alangkah baiknya jika memiliki bilangan real untuk bekerja dengannya.


1
Pertanyaan terkait (tetapi tidak identik) yang mungkin menarik bagi Anda: chess.stackexchange.com/questions/24359/…
itub

2
Berdasarkan konteks pertanyaan Anda, Anda juga mungkin tertarik untuk mengetahui bahwa sebuah permainan dapat berakhir imbang karena pengulangan sekitar 8 ply.
DM

1
Saya tidak berpikir data yang Anda minta di sini cukup untuk memberikan batasan akurat untuk probabilitas dalam pertanyaan Math.SE. Anda memerlukan informasi lebih lanjut tentang struktur pohon permainan. (Sebagai contoh tandingan ilustratif, pertimbangkan permainan di mana ada dua pilihan yang memungkinkan untuk langkah pertama: A dan B. Jika langkah pertama adalah A, ada 1 juta pilihan yang mungkin berbeda untuk langkah kedua, sedangkan jika B, satu-satunya mungkin langkah kedua adalah C. Sekarang permainan memiliki 1.000.001 kemungkinan urutan dua langkah, tetapi kemungkinan seorang pemain acak akhirnya memainkan urutan B, C adalah 50%.)
Ilmari Karonen

@IlmariKaronen Itu benar dan saya memikirkan itu sejak saya memposting pertanyaan. Namun, saya tidak berpikir penyebaran pada rasio percabangan dari pohon permainan meningkat secepat itu, dengan pengecualian garis yang berisi cek. Jika kontribusi total ke probabilitas turun dengan cepat dengan ply, perkiraan masih harus bekerja dengan baik.
eyeballfrog

Jawaban:


26

Tidak ada skakmat dari 0-3 lapis.

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

"Skakmat" adalah jumlah langkah skakmat yang dilakukan pada lapisan terakhir. Jadi untuk 5 lapis, ada 347 sekuens sekuak panjang 5.

Nilai-nilai ini berasal dari: https://www.chessprogramming.org/Perft_Results

Saat ini tidak ada data skakmat untuk 10 lapis ke atas, mungkin karena sumber daya komputasi yang dibutuhkan.

Untuk mendapatkan data yang lebih spesifik (mis. Baris itu sendiri), Anda harus menulis program perft Anda sendiri yang menyimpan baris yang diakhiri dengan skakmat.


13

Urutan bilangan bulat ini dikenal sebagai A079485 dalam On-Line Encyclopedia of Integer Sequences (OEIS) dan angka hingga dan termasuk 13 lapis diketahui dengan berbagai referensi yang tersedia.


REFERENCES Homer Simpson, Chess Review, Jan-Feb 1982. Oke, saya sudah membuat sebagian dari itu, tapi itu akan lucu ...
Michael

OEIS benar-benar memiliki segalanya, bukan?
eyeballfrog

8

Berikut adalah program Python sederhana yang menjawab pertanyaan tetapi lambat, membutuhkan waktu 40 menit untuk menjalankan hingga 5 lapisan pada laptop saya (dan meningkatkan setidaknya 30 kali lipat per lapis tambahan). Suatu hal yang menyenangkan adalah bahwa ia mencetak permainan, jika Anda membutuhkannya. Saya dapat memposting output di sini tetapi tidak ingin membuat jawaban panjang 347-line ... :-)

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

Untuk referensi di masa mendatang, Anda dapat melempar barang seperti itu di pastebin.com; pick tidak pernah kedaluwarsa.
Jason C

Komentar di atas menunjukkan bahwa menjelajahi pohon permainan yang sebenarnya mungkin diperlukan untuk perhitungan ini, sehingga program ini terbukti sangat membantu. Terima kasih.
eyeballfrog

7

Orang teratas yang saya kenal untuk analisis semacam ini adalah François Labelle, yang telah menghitung banyak angka yang terkait dengan catur (termasuk perkiraan tingkat pertumbuhan maksimum jumlah permainan catur sebagai fungsi ply) dan khususnya telah menghitung jumlah skakmat hingga ply 13. Untuk nilai hingga ply 12, lihat gambar di http://wismuth.com/chess/chess.html .

Kemudian di http://wismuth.com/chess/statistics-games.html , ia memberikan angka spesifik hingga 13, yang memiliki 346.742.245.764.219 permainan skakmat tampaknya.

Untuk jumlah total game, ia mengutip hasil dari orang lain yang naik ke level 15 (!) Tapi saya pikir mereka tidak melacak skakmat.

Dari lapisan 5-13 ada sekitar 1 peluang dalam 10.000 yang diberikan pasangan. Tetapi tampaknya secara signifikan lebih mudah untuk dikawinkan sebagai Putih dibandingkan dengan Hitam:

grafik ply versus peluang pasangan

Tingkat pertumbuhan jumlah gim juga lebih besar untuk gerakan Putih di atas gerakan Hitam, tapi itu hanya sekitar 1%, jauh lebih lemah daripada pola yang diidentifikasi di sini.

Saya menikmati permainan catur acak. Terkadang akan menyenangkan untuk menghubungkannya dengan penghasil bilangan acak kuantum online, untuk memiliki program yang memainkan semua permainan catur, jika hipotesis banyak dunia berlaku.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.