Mengapa mesin catur terkadang ketinggalan gerakan yang baik (atau butuh selamanya untuk dikenali)?

17

Ini bukan pertama kalinya saya menemukan gerakan yang jauh lebih unggul daripada mesin catur, bahkan butuh beberapa saat untuk memahami gerakan ini setelah Anda membuatnya.

Misalnya, langkah 15 ... Bf2dalam permainan di bawah ini:

NN - NN, 0-1
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. OO Ng4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 Qh4 9. Qh3 Qxh3 10. gxh3 dxc6 11. Re1 Bxh3 12. f3 Bc5 + 13. Kh2 Bf1 + 14. Kg3 Rh3 + 15. Kg4 Bf2 16. Rxf1 Rg3 + 17. Kf5 Rxf3 + 18. Kg4 Rg3 + 19. Kf5 f6 20. d3 Kf7 0-1

Langkah itu tetap diperhatikan oleh mesin untuk sementara waktu, tidak sampai saya bergerak bahwa ia mulai melihat sisa gunung es.

Saya tahu itu semua tergantung pada berapa banyak waktu yang Anda berikan kepada mereka untuk dianalisis, tetapi tidak dapat diterima bahwa kadang-kadang manusia berhasil menemukan gerakan ini dalam waktu yang lebih singkat daripada komputer.

  • Mengapa mesin catur gagal menemukan pergerakan bagus di beberapa posisi? (Saya pernah membaca sesuatu tentang 'efek cakrawala', mungkin ini terkait?)
  • Apakah ada contoh penting lainnya? (mis. teka-teki terkenal ini , perlu beberapa saat bagi komputer untuk menyelesaikannya)

Pertanyaan-pertanyaan ini berisi informasi yang berguna untuk menjelaskan sebagian faktor yang mungkin menyebabkan anomali ini: Algoritma dan heuristik apa yang populer di catur komputer? , Saat memainkan lawan Komputer situasi apa yang harus saya ciptakan untuk memberi saya peluang yang lebih baik untuk menang? , Evaluasi komputer: Seberapa tepercaya mereka?

Catatan: Perangkap ini dikenal sebagai Tiang Pancing , saya sadar saya merindukan pasangan di 3 (dan pasangan di 7) :(, batas waktu per gerakan adalah hari (catur korespondensi) tetapi saya butuh waktu 5-10 menit untuk menyelesaikan perhitungan semuanya.

ajax333221
sumber
1
Sangat menarik. Stockfish pada PC kekuatan rata-rata saya tidak menemukan 15... Bf2sama sekali setelah 5 menit.
Tony Ennis
... dan butuh lebih dari 7 menit untuk menemukan jodoh serupa di langkah selanjutnya.
Tony Ennis
20 d3 adalah kesalahan. coba 20 d4.
dcaswell
1
Mengapa Anda menggunakan bahasa "tidak dapat diterima" bagi manusia untuk menemukan gerakan dalam waktu yang lebih singkat daripada komputer? Bisakah Anda membongkar pikiran Anda tentang ini?
Xonatron
Itu melewatkan banyak gerakan yang lebih baik. Mengapa memilih yang satu itu secara khusus?
yobamamama

Jawaban:

33

Mengapa mesin catur gagal menemukan pergerakan bagus di beberapa posisi?

Alasannya disebut teknik pemangkasan maju (lihat http://chessprogramming.wikispaces.com/Pruning ) dengan ProbCut di baris pertama.

Langkah 15 ... Bf2 dipangkas di kedalaman dangkal karena itu termasuk pengorbanan 16.Rxf1 tanpa mendapatkan kembali sesuatu yang konkret dengan bukti segera setelahnya. Matenet juga sulit untuk dilihat, karena itu mencakup beberapa langkah 'diam' lebih lanjut seperti misalnya 17 ... Ke7, dan ya juga mesin, tidak hanya manusia memiliki kesulitan untuk melihat gerakan diam jauh karena mereka sering dipangkas.

Dalam kasus konkret ini Anda bahkan tidak dapat mengatakan, bahwa mesin gagal mengenali pergerakan yang baik, karena juga kelanjutan 15 ... Rh3h1 adalah langkah yang sangat baik dan mengarah ke posisi yang benar-benar dimenangkan.

Yang terakhir tetapi tidak kalah penting, Anda harus ingat, bahwa kekuatan mesin selalu diukur dalam hal elo-strengh dan bukan pada kemampuan untuk menemukan cara terpendek mutlak untuk menang. Tidak masalah, jika mesin menang dalam 8 gerakan atau 25 gerakan. Mencari banyak hal untuk kemenangan tersingkat, akan berarti membuang-buang waktu, karena sebagian besar waktu di sana tidak ada langkah baik yang rahasia sama sekali. Dan buang-buang waktu akan melukai mesin ELO-Rating.

pengguna1411977
sumber
1
Jawaban yang bagus, selamat datang di situs ini!
Andrew
+1 untuk menyebutkan trade-off antara pemangkasan dan pencarian lengkap. Saya sama sekali tidak terkejut bahwa kombinasi 13+ PLY tidak ditemukan dengan cepat. Mesin memiliki "hal-hal yang lebih baik untuk dilakukan" daripada menghitung setiap kemungkinan sampai sedalam itu.
Daniel B
2
Jawaban yang bagus secara keseluruhan. +1 untuk "Terakhir tetapi tidak kalah pentingnya Anda harus ingat, bahwa kekuatan mesin selalu diukur dalam hal elo-strengh dan tidak dalam kemampuan untuk menemukan cara terpendek mutlak untuk menang"
ferit
Jawaban yang sangat bagus.
Xonatron
12

Saya mencoba ini dengan Houdini 1.5 (versi gratis). Pada 15 pertama ... Bf2 tidak muncul dalam 5 langkah teratas, maka ketika mencapai kedalaman 15, itu terjadi, sebagai # 1. Memakan waktu sekitar 19 detik di komputer saya yang berumur empat tahun, tidak terlalu lama.

Jadi itu tidak gagal menemukannya, melainkan hanya menganggapnya sebagai langkah terbaik setelah kedalaman 15 tercapai. Rupanya, selama hanya terlihat dalam 14 ply, gerakan lainnya lebih baik (seperti juga memenangkan 15 ... f5 +).

Rupanya 15 ... Bf2 adalah pasangan dalam 8, yaitu 15 ply (8 bergerak dengan hitam, 7 dengan putih). Tetapi pada awalnya itu hanya menganggapnya +10 atau lebih, kemudian +20, lalu kawin di 10, lalu kawin di 8.

Pasangan dalam 8 baris adalah:

NN - NN
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. OO Ng4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 Qh4 9. Qh3 Qxh3 10. gxh3 dxc6 11. Re1 Bxh3 12. f3 Bc5 + 13. Kh2 Bf1 + 14. Kg3 Rh3 + 15. Kg4 Bf2 16. Rxf1 Rh4 + 17. Kg5 Ke7 18. Rh1 Rxh1 19. Nc3 Rah8 20. Nd5 + cxd5 21. d3 R8h5 + 22. Kg4 R1h4 #.

Jelas ketika Houdini 1.5 berpikir sedalam 15 ply, ia tidak mempertimbangkan semua garis yang mungkin sedalam 15 ply, atau ia akan melihat pasangan dalam 8 saat ia menyelesaikan pencarian kedalaman 15 ply-nya.

Saya pikir itu karena pemangkasan , berhenti melihat beberapa garis ketika berpikir mereka tidak cukup menjanjikan. Dengan begitu, ia dapat menghabiskan lebih banyak waktu pada jalur yang menjanjikan, dan programmer berpikir bahwa kelebihannya lebih besar daripada yang kontra. Tapi saya tidak punya jawaban sekarang tentang apa yang diputuskan untuk dipangkas di sini (mungkin membuat jutaan keputusan pemangkasan terpisah di kedalaman 15).

Ini mungkin ada hubungannya dengan gerakan diam ... Ke7, dan ... Rah8, dua non-cek non-menangkap dalam garis di mana hitam adalah bagian ke bawah. Kemungkinan ia memutuskan di suatu tempat bahwa tidak berguna untuk terus mencari di baris ini. Hanya kemudian, ketika itu melanjutkan garis dan menemukan pasangan di akhir melakukan garis lain yang memperpanjang permainan (dengan 18.Rh1 Rxh1 dan seterusnya) kemudian muncul.

Bagaimanapun, diketahui bahwa tidak berfungsi dengan baik untuk membiarkan komputer berpikir selama beberapa detik hanya jika Anda ingin mencapai bagian bawah dari sesuatu, beberapa menit lebih baik.

RemcoGerlich
sumber
Dugaan saya mengapa memangkas, adalah karena 16. Rxf1 terlihat "heuristik" bukan raja besar-putih yang ada di tempat terbuka, tetapi tidak ada skakmat segera dan hitam turun kesatria untuk pion dalam materi. Baru setelah analisis mendalam terjadi (seperti yang Anda katakan) nilai "pengorbanan" ini menjadi jelas.
Joe K
Perhatikan bahwa "15 ply" berarti terlihat pada beberapa gerakan ke kedalaman 15, tidak semua gerakan . Yang akan mengambil waay lebih dari 4 detik, bahkan pada komputer super.
BlueRaja - Danny Pflughoeft
2

setelah membaca semua jawaban dan sumber lain, saya sekarang mengerti bahwa mereka tidak 'ketinggalan' atau memilih untuk melewatkan gerakan ini, manusia memprogramnya sedemikian rupa sehingga mereka mengikuti pola tertentu pada pencarian (di mana / bagaimana / kapan + ke) pencarian dan yang lebih penting kapan harus berhenti mencari dan melihat ke garis yang lebih menjanjikan untuk menghemat sumber daya.

Tetapi dengan waktu yang cukup, komputer akan menemukan setiap kombinasi yang memungkinkan pada kedalaman tertentu.

TL; DR

  • T1: mereka tidak pernah ketinggalan gerakan, mereka hanya belum menemukannya
  • T2: mereka membutuhkan waktu karena mereka diprogram untuk menghemat sumber daya dan mereka akan memprioritaskan beberapa baris di atas yang lain (misalnya yang tidak memiliki gerakan pasif atau tidak memulihkan materi dalam beberapa gerakan berikutnya).
ajax333221
sumber
-1

Saya pikir semua orang kehilangan pasangan yang jauh lebih cepat. Saat memeriksa posisi dengan Houdini 3, hitam sebenarnya memiliki pasangan di 3 pada langkah 13. Alih-alih Bf1 +, hitam seharusnya memainkan Bf2, dan itu sesuai dengan 14. d3 bf1 + 15. Bh6 Rxh6 #. Jadi, dalam jawaban yang tidak biasa untuk pertanyaan Anda, mungkin mesin-mesin tertentu tidak langsung melihat langkah Anda, tetapi, dalam kasus Houdini 3, ia menemukan pasangan yang jauh lebih cepat.

Randy
sumber
5
Jika Anda membaca seluruh pertanyaan, Anda akan melihat bahwa ia mengetahui pasangannya di 3. Semua mesin yang cukup baru akan segera menemukan pasangannya di 3, dan itu bukan bagian dari apa yang ditanyakan di sini.
Halvard