Baru-baru ini saya sedang berdiskusi dengan orang yang bukan pembuat kode tentang kemungkinan komputer catur. Saya tidak ahli dalam teori, tapi saya rasa saya cukup tahu.
Saya berpendapat bahwa tidak mungkin ada mesin Turing deterministik yang selalu menang atau buntu dalam catur. Saya pikir, bahkan jika Anda mencari seluruh ruang dari semua kombinasi gerakan player1 / 2, satu gerakan yang diputuskan oleh komputer di setiap langkah didasarkan pada heuristik. Berdasarkan heuristik, tidak serta merta mengalahkan SEMUA gerakan yang bisa dilakukan lawan.
Teman saya berpikir, sebaliknya, bahwa komputer akan selalu menang atau seri jika tidak pernah melakukan gerakan "kesalahan" (bagaimana pun Anda mendefinisikannya?). Namun, sebagai programmer yang telah mengambil CS, saya tahu bahwa bahkan pilihan bagus Anda - diberikan lawan yang bijak - dapat memaksa Anda untuk melakukan "kesalahan" pada akhirnya. Bahkan jika Anda tahu segalanya, langkah Anda selanjutnya adalah serakah dalam mencocokkan heuristik.
Sebagian besar komputer catur mencoba mencocokkan kemungkinan permainan akhir dengan permainan yang sedang berlangsung, yang pada dasarnya adalah penelusuran balik pemrograman dinamis. Sekali lagi, endgame yang dimaksud bisa dihindari.
Edit: Hmm ... sepertinya saya mengacak-acak beberapa bulu di sini. Itu bagus.
Memikirkannya lagi, sepertinya tidak ada masalah teoretis dengan menyelesaikan permainan terbatas seperti catur. Saya berpendapat bahwa catur sedikit lebih rumit daripada catur karena kemenangan tidak harus dengan kelelahan numerik bidak, tetapi oleh pasangan. Penegasan asli saya mungkin salah, tetapi sekali lagi saya pikir saya telah menunjukkan sesuatu yang belum terbukti secara memuaskan (secara resmi).
Saya kira eksperimen pemikiran saya adalah bahwa setiap kali cabang di pohon diambil, maka algoritme (atau jalur yang diingat) harus menemukan jalur ke pasangan (tanpa dikawinkan) untuk setiap cabang yang mungkin pada gerakan lawan. Setelah diskusi, saya akan membeli bahwa mengingat lebih banyak daripada yang dapat kita impikan, semua jalan ini dapat ditemukan.
sumber
Jawaban:
"Saya berpendapat bahwa tidak mungkin ada mesin Turing deterministik yang selalu menang atau buntu di catur."
Anda kurang tepat. Bisa ada mesin seperti itu. Persoalannya adalah luasnya ruang negara yang harus dicari. Itu terbatas, hanya SANGAT besar.
Itulah mengapa catur kembali pada heuristik - ruang negara terlalu besar (tapi terbatas). Bahkan menghitung - apalagi mencari setiap gerakan sempurna di setiap jalur dari setiap permainan yang mungkin - akan menjadi masalah pencarian yang sangat, sangat besar.
Bukaan dituliskan untuk membawa Anda ke permainan tengah yang memberi Anda posisi "kuat". Bukan hasil yang diketahui. Bahkan permainan akhir - ketika ada lebih sedikit bidak - sulit untuk dihitung untuk menentukan langkah terbaik selanjutnya. Secara teknis mereka terbatas. Tetapi jumlah alternatifnya sangat besar. Bahkan 2 benteng + raja memiliki 22 kemungkinan jurus berikutnya. Dan jika dibutuhkan 6 gerakan untuk pasangan, Anda melihat 12.855.002.631.049.216 gerakan.
Lakukan perhitungan matematika pada gerakan pembukaan. Meskipun hanya ada sekitar 20 gerakan pembuka, ada sekitar 30 atau lebih gerakan kedua, jadi pada langkah ketiga kami melihat 360.000 status permainan alternatif.
Tapi permainan catur (secara teknis) terbatas. Besar, tapi terbatas. Ada informasi yang sempurna. Ada keadaan awal dan akhir yang ditentukan, Tidak ada lemparan koin atau lemparan dadu.
sumber
Saya hampir tidak tahu apa-apa tentang apa yang sebenarnya telah ditemukan tentang catur. Tapi sebagai matematikawan, inilah alasan saya:
Pertama-tama kita harus ingat bahwa Putih harus pergi dulu dan mungkin ini memberinya keuntungan; mungkin itu memberi Black keuntungan.
Sekarang anggap saja tidak ada strategi sempurna untuk Hitam yang membuatnya selalu menang / jalan buntu. Ini menyiratkan bahwa apa pun yang dilakukan Hitam, ada strategi yang dapat diikuti oleh Putih untuk menang. Tunggu sebentar - ini berarti ada adalah strategi yang sempurna untuk White!
Ini memberitahu kita bahwa setidaknya salah satu dari dua pemain yang memiliki strategi yang sempurna yang memungkinkan pemain selalu menang atau menggambar.
Hanya ada tiga kemungkinan, maka:
Tapi mana yang benar, kita mungkin tidak pernah tahu.
Jawaban atas pertanyaannya adalah ya : harus ada algoritme yang sempurna untuk catur, setidaknya untuk salah satu dari dua pemain tersebut.
sumber
Telah terbukti untuk permainan catur bahwa sebuah program selalu bisa menang atau seri. Artinya, tidak ada pilihan gerakan yang bisa dilakukan oleh satu pemain yang memaksa pemain lain untuk kalah.
Ya, Anda bisa memecahkan catur, tidak, Anda tidak akan bisa dalam waktu dekat.
sumber
Ini bukan pertanyaan tentang komputer tetapi hanya tentang permainan catur.
Pertanyaannya adalah, apakah ada strategi gagal-aman agar tidak pernah kalah? Jika strategi seperti itu ada, maka komputer yang tahu segalanya dapat selalu menggunakannya dan itu bukan heuristik lagi.
Misalnya, permainan tic-tac-toe biasanya dimainkan berdasarkan heuristik. Tapi, ada strategi gagal-aman. Apapun gerakan lawan, Anda selalu menemukan cara untuk menghindari kekalahan, jika Anda melakukannya dengan benar sejak awal.
Jadi, Anda perlu membuktikan bahwa strategi seperti itu ada atau tidak untuk catur juga. Pada dasarnya sama, hanya ruang gerak yang mungkin jauh lebih besar.
sumber
Saya datang ke utas ini sangat terlambat, dan Anda telah menyadari beberapa masalah. Tetapi sebagai mantan master dan mantan programmer catur profesional, saya pikir saya dapat menambahkan beberapa fakta dan angka yang berguna. Ada beberapa cara untuk mengukur kompleksitas catur :
Kesimpulan saya: sementara catur secara teoritis dapat dipecahkan, kita tidak akan pernah punya uang, motivasi, kekuatan komputasi, atau penyimpanan untuk melakukannya.
sumber
Faktanya, beberapa permainan telah dipecahkan. Tic-Tac-Toe adalah cara yang sangat mudah untuk membangun AI yang akan selalu menang atau seri. Baru-baru ini, Connect 4 juga telah diselesaikan (dan terbukti tidak adil bagi pemain kedua, karena permainan yang sempurna akan menyebabkan dia kalah).
Catur, bagaimanapun, belum diselesaikan, dan menurut saya tidak ada bukti apapun bahwa ini adalah permainan yang adil (yaitu, apakah permainan yang sempurna menghasilkan seri). Berbicara secara ketat dari perspektif teoretis, Catur memiliki jumlah konfigurasi bidak yang terbatas. Oleh karena itu, ruang pencarian terbatas (meskipun sangat besar). Karena itu, mesin Turing deterministik yang bisa bermain dengan sempurna memang ada. Apakah seseorang bisa dibangun, bagaimanapun, adalah masalah yang berbeda.
sumber
Rata-rata desktop seharga $ 1.000 akan dapat menyelesaikan checker hanya dalam 5 detik pada tahun 2040 (5x10 ^ 20 perhitungan).
Bahkan pada kecepatan ini, masih dibutuhkan 100 komputer ini kira-kira 6,34 x 10 ^ 19 tahun untuk menyelesaikan catur. Masih tidak layak. Bahkan tidak dekat.
Sekitar tahun 2080, rata-rata desktop kita akan memiliki sekitar 10 ^ 45 kalkulasi per detik. Satu komputer akan memiliki kekuatan komputasi untuk menyelesaikan catur dalam waktu sekitar 27,7 jam. Ini pasti akan selesai pada tahun 2080 selama daya komputasi terus tumbuh seperti halnya 30 tahun terakhir.
Pada tahun 2090, daya komputasi yang cukup akan ada di desktop seharga $ 1.000 untuk menyelesaikan catur dalam waktu sekitar 1 detik ... jadi pada tanggal itu, semuanya akan menjadi hal yang sepele.
Mengingat checker diselesaikan pada tahun 2007, dan kekuatan komputasi untuk menyelesaikannya dalam 1 detik akan tertinggal sekitar 33-35 tahun, kita mungkin dapat memperkirakan secara kasar catur akan diselesaikan di suatu tempat antara 2055-2057. Mungkin lebih cepat sejak saat lebih banyak daya komputasi tersedia (yang akan terjadi dalam 45 tahun), lebih banyak lagi yang dapat dicurahkan untuk proyek seperti ini. Namun, saya akan mengatakan 2050 paling awal, dan paling lambat 2060.
Pada tahun 2060, dibutuhkan 100 desktop rata-rata 3,17 x 10 ^ 10 tahun untuk menyelesaikan catur. Sadarilah bahwa saya menggunakan komputer seharga $ 1000 sebagai patokan saya, sedangkan sistem dan superkomputer yang lebih besar mungkin akan tersedia karena rasio harga / kinerja mereka juga meningkat. Juga, urutan besarnya daya komputasi meningkat dengan kecepatan yang lebih cepat. Misalkan sebuah superkomputer sekarang dapat melakukan perhitungan 2,33 x 10 ^ 15 per detik, dan komputer seharga $ 1000 sekitar 2 x 10 ^ 9. Sebagai perbandingan, 10 tahun yang lalu perbedaannya adalah 10 ^ 5, bukan 10 ^ 6. Pada tahun 2060 urutan perbedaan besarnya mungkin akan menjadi 10 ^ 12, dan bahkan ini dapat meningkat lebih cepat dari yang diantisipasi.
Sebagian besar tergantung pada apakah kita sebagai manusia memiliki dorongan untuk memecahkan catur, tetapi kekuatan komputasi akan membuatnya layak untuk saat ini (selama kecepatan kita terus berlanjut).
Pada catatan lain, permainan Tic-Tac-Toe, yang jauh lebih sederhana, memiliki 2.653.002 kemungkinan perhitungan (dengan papan terbuka). Kekuatan komputasi untuk menyelesaikan Tic-Tac-Toe dalam kira-kira 2,5 (1 juta kalkulasi per detik) detik dicapai pada tahun 1990.
Mundur ke belakang, pada tahun 1955, komputer memiliki kekuatan untuk menyelesaikan Tic-Tac-Toe dalam waktu sekitar 1 bulan (1 kalkulasi per detik). Sekali lagi, ini didasarkan pada apa yang akan Anda dapatkan $ 1000 jika Anda dapat mengemasnya ke dalam komputer (desktop seharga $ 1000 jelas tidak ada pada tahun 1955), dan komputer ini akan dikhususkan untuk menyelesaikan Tic-Tac-Toe .... yang mana tidak terjadi pada tahun 1955. Perhitungan itu mahal dan tidak akan digunakan untuk tujuan ini, meskipun saya tidak percaya ada tanggal di mana Tic-Tac-Toe dianggap "diselesaikan" oleh komputer, tapi saya yakin itu tertinggal dari daya komputasi yang sebenarnya.
Juga, pertimbangkan $ 1000 dalam 45 tahun akan bernilai sekitar 4 kali lebih sedikit dari sekarang, jadi lebih banyak uang dapat masuk ke proyek seperti ini sementara daya komputasi akan terus menjadi lebih murah.
sumber
Sebenarnya mungkin bagi kedua pemain untuk memiliki strategi kemenangan dalam permainan tanpa batas tanpa pengaturan yang baik; Namun, catur tersusun dengan baik. Faktanya, karena aturan 50 gerakan , ada batas atas jumlah gerakan yang dapat dimiliki permainan, dan dengan demikian hanya ada banyak kemungkinan permainan catur (yang dapat dihitung untuk menyelesaikan dengan tepat .. secara teoritis, setidaknya :)
sumber
Akhir argumen Anda didukung oleh cara kerja program catur modern sekarang . Mereka bekerja seperti itu karena terlalu banyak sumber daya untuk membuat kode program catur untuk beroperasi secara deterministik. Mereka tidak selalu bekerja seperti itu. Ada kemungkinan bahwa catur suatu hari akan terpecahkan , dan jika itu terjadi, kemungkinan besar akan diselesaikan oleh komputer.
sumber
Sebagai catatan, ada komputer yang bisa menang atau seri di catur . Saya tidak yakin apakah hal yang sama bisa dilakukan untuk catur. Jumlah gerakannya jauh lebih tinggi. Juga, banyak hal berubah karena bidak bisa bergerak ke segala arah, tidak hanya maju dan mundur. Saya pikir meskipun saya tidak yakin, bahwa catur itu deterministik, tetapi ada terlalu banyak kemungkinan gerakan bagi komputer untuk saat ini menentukan semua gerakan dalam jumlah waktu yang wajar.
sumber
Saya pikir Anda sudah mati. Mesin seperti Deep Blue dan Deep Thought diprogram dengan sejumlah game yang telah ditentukan sebelumnya, dan algoritme cerdas untuk mengurai pohon ke ujung game tersebut. Ini, tentu saja, adalah penyederhanaan yang berlebihan. Selalu ada kesempatan untuk "mengalahkan" komputer sepanjang permainan. Yang saya maksud dengan ini adalah melakukan gerakan yang memaksa komputer untuk melakukan gerakan yang kurang dari optimal (apa pun itu). Jika komputer tidak dapat menemukan jalur terbaik sebelum batas waktu pemindahan, kemungkinan besar komputer membuat kesalahan dengan memilih salah satu jalur yang kurang diinginkan.
Ada kelas program catur lain yang menggunakan pembelajaran mesin nyata, atau pemrograman genetik / algoritma evolusioner. Beberapa program telah berkembang dan menggunakan jaringan saraf, dkk, untuk membuat keputusan. Dalam kasus seperti ini, saya membayangkan bahwa komputer mungkin membuat "kesalahan", tetapi tetap berakhir dengan kemenangan.
Ada sebuah buku menarik tentang GP jenis ini yang berjudul Blondie24 yang mungkin Anda baca. Ini tentang catur, tapi bisa diterapkan pada catur.
sumber
Dari teori permainan, tentang apa pertanyaan ini, jawabannya adalah ya, Catur bisa dimainkan dengan sempurna. Ruang permainan dikenal / dapat diprediksi dan ya jika Anda memiliki komputer kuantum cucu Anda, Anda mungkin dapat menghilangkan semua heuristik.
Anda dapat menulis mesin tic-tac-toe yang sempurna sekarang-a-hari dalam bahasa skrip apa pun dan itu akan bermain dengan sempurna dalam waktu nyata.
Othello adalah gim lain yang dapat dimainkan dengan mudah oleh komputer saat ini, tetapi memori dan CPU mesin akan membutuhkan sedikit bantuan
Catur secara teoritis mungkin tetapi tidak mungkin secara praktis (pada tahun 2008)
i-Go itu rumit, ruang kemungkinannya berada di luar jumlah atom di alam semesta, jadi mungkin perlu waktu bagi kita untuk membuat mesin i-Go yang sempurna.
sumber
Catur adalah contoh permainan matriks, yang menurut definisi memiliki hasil yang optimal (pikirkan ekuilibrium Nash). Jika pemain 1 dan 2 masing-masing mengambil langkah optimal, hasil tertentu akan SELALU tercapai (apakah menang-kalah-kalah masih belum diketahui).
sumber
Sebagai programmer catur dari tahun 1970-an, saya pasti punya pendapat tentang ini. Apa yang saya tulis sekitar 10 tahun yang lalu, pada dasarnya masih berlaku sampai sekarang:
"Pekerjaan yang Belum Selesai dan Tantangan bagi Pemrogram Catur"
Saat itu, saya pikir kita bisa menyelesaikan Catur secara konvensional, jika dilakukan dengan benar.
Checkers diselesaikan baru-baru ini (Yay, University of Alberta, Canada !!!) tetapi itu secara efektif dilakukan Brute Force. Untuk bermain catur secara konvensional, Anda harus lebih pintar.
Kecuali, tentu saja, Komputasi Kuantum menjadi kenyataan. Jika demikian, catur akan diselesaikan semudah Tic-Tac-Toe.
Di awal tahun 1970-an di Scientific American, ada parodi pendek yang menarik perhatian saya. Itu adalah pengumuman bahwa permainan catur diselesaikan oleh komputer catur Rusia. Telah ditentukan bahwa ada satu langkah sempurna untuk putih yang akan memastikan kemenangan dengan permainan sempurna oleh kedua belah pihak, dan langkah itu adalah: 1. a4!
sumber
Banyak jawaban di sini membuat poin-poin teori permainan penting:
Namun pengamatan ini kehilangan poin praktis yang penting: tidak perlu menyelesaikan permainan lengkap dengan sempurna untuk menciptakan mesin yang tidak ada duanya .
Sebenarnya sangat mungkin bahwa Anda bisa membuat mesin catur yang tidak terkalahkan (yaitu tidak akan pernah kalah dan akan selalu memaksa menang atau seri) tanpa mencari bahkan sebagian kecil dari ruang negara yang mungkin.
Teknik berikut, misalnya, semuanya secara besar-besaran mengurangi ruang pencarian yang dibutuhkan:
Dengan kombinasi yang tepat dari teknik di atas, saya akan merasa nyaman untuk menyatakan bahwa adalah mungkin untuk membuat mesin permainan catur yang "tak terkalahkan". Kami mungkin tidak terlalu jauh dengan teknologi saat ini.
Perhatikan bahwa hampir pasti lebih sulit untuk membuktikan bahwa mesin ini tidak dapat dikalahkan. Mungkin akan menjadi sesuatu seperti hipotesis Reimann - kami akan cukup yakin bahwa itu berjalan dengan sempurna dan akan memiliki hasil empiris yang menunjukkan bahwa ia tidak pernah kalah (termasuk beberapa miliar hasil imbang langsung terhadap dirinya sendiri), tetapi kami tidak benar-benar memiliki kemampuan untuk buktikan itu.
Catatan tambahan tentang "kesempurnaan":
Saya berhati-hati untuk tidak mendeskripsikan mesin sebagai "sempurna" dalam pengertian teori permainan karena itu menyiratkan kondisi tambahan yang sangat kuat, seperti:
Kesempurnaan (terutama karena lawan yang tidak sempurna dan tidak dikenal) adalah masalah yang jauh lebih sulit daripada sekadar tidak terkalahkan.
sumber
Ada dua gagasan yang bersaing di sana. Salah satunya adalah Anda mencari setiap gerakan yang mungkin, dan yang lainnya adalah Anda memutuskan berdasarkan heuristik. Heuristik adalah sistem untuk membuat tebakan yang baik. Jika Anda mencari setiap kemungkinan gerakan, Anda tidak lagi menebak-nebak.
sumber
Ya ada. Mungkin White selalu menang. Mungkin Black selalu menang. Mungkin bagi keduanya untuk selalu mengikat setidaknya. Kami tidak tahu yang mana, dan kami tidak akan pernah tahu, tapi itu pasti ada.
Lihat juga
sumber
Saya menemukan artikel oleh John MacQuarrie ini yang merujuk pada karya "bapak teori permainan" Ernst Friedrich Ferdinand Zermelo . Ini menarik kesimpulan berikut:
Logikanya terdengar bagi saya.
sumber
Ini bisa dipecahkan dengan sempurna.
Ada 10 ^ 50 posisi ganjil. Setiap posisi, menurut perhitungan saya, membutuhkan minimal 64 byte bulat untuk disimpan (setiap kotak memiliki: 2 bit afiliasi, 3 bit). Setelah mereka disusun, posisi yang merupakan sekak dapat diidentifikasi dan posisi dapat dibandingkan untuk membentuk hubungan, yang menunjukkan posisi mana yang mengarah ke posisi lain dalam pohon hasil yang besar.
Kemudian, program hanya perlu menemukan akar skakmat satu sisi terendah saja, jika hal seperti itu ada. Bagaimanapun, Catur cukup mudah diselesaikan di akhir paragraf pertama.
sumber
Saya hanya yakin 99,9% dengan klaim bahwa ukuran ruang negara membuat tidak mungkin untuk mengharapkan solusi.
Tentu, 10 ^ 50 adalah angka yang sangat besar. Mari kita sebut ukuran ruang keadaan n.
Berapa batasan jumlah gerakan dalam permainan yang terpanjang? Karena semua permainan berakhir dengan jumlah gerakan yang terbatas maka ada batasan seperti itu, sebut saja m.
Mulai dari keadaan awal, tidak bisakah Anda menghitung semua n gerakan dalam ruang O (m)? Tentu, ini membutuhkan O (n) waktu, tetapi argumen dari ukuran alam semesta tidak secara langsung membahasnya. O (m) ruang mungkin tidak terlalu banyak. Untuk ruang O (m), tidak bisakah Anda juga melacak, selama traversal ini, apakah kelanjutan dari status apa pun di sepanjang jalur yang Anda lintasi mengarah ke EitherMayWin, EitherMayForceDraw, WhiteMayWin, WhiteMayWinOrForceDraw, BlackMayWin, atau BlackMayWinOrForceDraw? (Ada kisi bergantung pada giliran siapa, beri anotasi pada setiap negara bagian dalam riwayat traversal Anda dengan pertemuan kisi.)
Kecuali saya melewatkan sesuatu, itu adalah algoritme ruang O (n) waktu / O (m) untuk menentukan kategori mana yang termasuk dalam catur. Wikipedia mengutip perkiraan usia alam semesta sekitar 10 ^ 60 kali Planck. Tanpa membahas argumen kosmologi, mari kita tebak bahwa masih ada banyak waktu tersisa sebelum panas / dingin / kematian apapun dari alam semesta. Itu membuat kita perlu mengevaluasi satu gerakan setiap 10 ^ 10 kali Planck, atau setiap 10 ^ -34 detik. Itu waktu yang sangat singkat (sekitar 16 kali lipat lebih pendek dari waktu terpendek yang pernah diamati). Mari kita secara optimis mengatakan bahwa dengan implementasi super-duper-good yang berjalan di atas garis teknologi present-or-forseen-non-quantum-P-is-a-proper-subset-of-NP kami dapat berharap untuk mengevaluasi (ambil satu langkah maju, mengkategorikan keadaan yang dihasilkan sebagai keadaan antara atau salah satu dari tiga keadaan ujung) pada kecepatan 100 MHz (sekali setiap 10 ^ -8 detik). Karena algoritma ini sangat dapat diparalelkan, ini membuat kita membutuhkan 10 ^ 26 komputer semacam itu atau sekitar satu untuk setiap atom di tubuh saya, bersama dengan kemampuan untuk mengumpulkan hasilnya.
Saya kira selalu ada sedikit harapan untuk solusi brute force. Kita mungkin beruntung dan, dalam mengeksplorasi hanya satu dari kemungkinan gerakan pembuka putih, keduanya memilih satu dengan fanout yang jauh lebih rendah dari rata-rata dan satu di mana putih selalu menang atau menang atau seri.
Kami juga dapat berharap untuk sedikit mengecilkan definisi catur dan meyakinkan semua orang bahwa secara moral itu masih permainan yang sama. Apakah kita benar-benar perlu meminta pengulangan posisi sebanyak 3 kali sebelum seri? Apakah kita benar-benar perlu membuat pihak yang kabur mendemonstrasikan kemampuan melarikan diri selama 50 langkah? Apakah ada yang bahkan memahami apa sih terserah dengan en passant aturan? ;) Lebih serius, apakah kita benar-benar perlu untuk memaksa pemain untuk bergerak (sebagai lawan baik gambar atau kehilangan) saat nya hanya bergerak untuk melarikan diri cek atau jalan buntu adalah en passant capture? Bisakah kita membatasi pilihan bidak yang mana bidak dapat dipromosikan jika promosi non-ratu yang diinginkan tidak menghasilkan cek atau skakmat langsung?
Saya juga tidak yakin tentang seberapa banyak mengizinkan akses berbasis hash setiap komputer ke database besar status game akhir dan kemungkinan hasilnya (yang mungkin relatif layak pada perangkat keras yang ada dan dengan database endgame yang ada) dapat membantu memangkas pencarian sebelumnya. Jelas Anda tidak dapat memo seluruh fungsi tanpa O (n) penyimpanan, tetapi Anda dapat memilih bilangan bulat besar dan mengingat bahwa banyak endgame menghitung mundur dari setiap kemungkinan (atau bahkan tidak mudah dibuktikan tidak mungkin, saya kira) status akhir.
sumber
Saya tahu ini sedikit berlebihan, tetapi saya harus memasukkan 5 sen saya di sini. Mungkin bagi komputer, atau seseorang, untuk mengakhiri setiap permainan catur yang dia ikuti, baik dalam kemenangan atau jalan buntu.
Untuk mencapai ini, bagaimanapun, Anda harus tahu persis setiap gerakan dan reaksi yang mungkin dan seterusnya, sampai ke setiap hasil permainan yang mungkin, dan untuk memvisualisasikan ini, atau untuk membuat cara mudah untuk menganalisis informasi ini, pikirkan itu sebagai peta pikiran yang bercabang terus-menerus.
Node tengah akan menjadi awal permainan. Setiap cabang dari setiap node akan melambangkan gerakan, masing-masing berbeda dengan gerakan bretherennya. Mempresentasikannya di rumah ini akan memakan banyak sumber daya, terutama jika Anda melakukan ini di atas kertas. Di komputer, ini mungkin membutuhkan ratusan Terrabyte data, karena Anda akan memiliki sangat banyak gerakan repedatif, kecuali Anda membuat cabangnya kembali.
Namun, menghafal data semacam itu tidak masuk akal, jika bukan tidak mungkin. Untuk membuat komputer mengenali langkah paling optimal untuk mengeluarkan (paling banyak) 8 gerakan yang mungkin secara instan, mungkin saja, tetapi tidak masuk akal ... karena komputer itu harus dapat memproses semua cabang yang melewati gerakan itu, sampai ke kesimpulan, hitung semua kesimpulan yang menghasilkan kemenangan atau kebuntuan, lalu tindak lanjuti jumlah kesimpulan menang tersebut agar tidak kehilangan kesimpulan, dan itu akan membutuhkan RAM yang mampu memproses data dalam Terrabytes, atau lebih! Dan dengan teknologi saat ini, komputer seperti itu akan membutuhkan lebih dari saldo bank dari 5 pria dan / atau wanita terkaya di dunia!
Jadi setelah semua pertimbangan itu bisa dilakukan, namun tidak ada orang yang bisa melakukannya. Tugas semacam itu akan membutuhkan 30 pikiran paling cemerlang yang hidup saat ini, tidak hanya dalam catur, tetapi juga dalam sains dan teknologi komputer, dan tugas semacam itu hanya dapat diselesaikan pada (mari kita taruh seluruhnya dalam perspektif dasar) ... sangat pada akhirnya hiper komputer super-duper ... yang tidak mungkin ada setidaknya selama satu abad. Itu akan selesai! Hanya saja tidak dalam hidup ini.
sumber
Ada dua kesalahan dalam eksperimen pikiran Anda:
Jika mesin Turing Anda tidak "terbatas" (dalam memori, kecepatan, ...), Anda tidak perlu menggunakan heuristik tetapi Anda dapat menghitung evaluasi status akhir (menang, kalah, seri). Untuk menemukan permainan yang sempurna Anda hanya perlu menggunakan algoritma Minimax (lihat http://en.wikipedia.org/wiki/Minimax ) untuk menghitung gerakan optimal untuk setiap pemain, yang akan menghasilkan satu atau lebih permainan yang optimal.
Juga tidak ada batasan pada kerumitan heuristik yang digunakan. Jika Anda dapat menghitung permainan yang sempurna, ada juga cara untuk menghitung heuristik yang sempurna darinya. Jika diperlukan, ini hanya fungsi yang memetakan posisi catur dengan cara "Jika saya dalam situasi ini S, langkah terbaik saya adalah M".
Seperti yang telah ditunjukkan orang lain, ini akan berakhir dengan 3 kemungkinan hasil: putih dapat memaksa kemenangan, hitam dapat memaksa menang, salah satunya dapat memaksa hasil imbang.
Hasil dari permainan dam yang sempurna telah "dihitung". Jika umat manusia tidak mau menghancurkan dirinya sendiri sebelumnya, akan ada juga perhitungan untuk catur suatu hari nanti, ketika komputer telah cukup berkembang untuk memiliki memori dan kecepatan yang cukup. Atau kita memiliki beberapa komputer kuantum ... Atau sampai seseorang (peneliti, ahli catur, jenius) menemukan beberapa algoritma yang secara signifikan mengurangi kompleksitas permainan. Sebagai contoh: Berapa jumlah semua angka antara 1 dan 1000? Anda dapat menghitung 1 + 2 + 3 + 4 + 5 ... + 999 + 1000, atau Anda dapat menghitung: N * (N + 1) / 2 dengan N = 1000; result = 500500. Sekarang bayangkan tidak tahu tentang rumus itu, Anda tidak tahu tentang induksi matematika, Anda bahkan tidak tahu cara mengalikan atau menjumlahkan bilangan, ... Jadi, mungkin saja ada algoritma yang saat ini tidak diketahui yang pada akhirnya mengurangi kerumitan permainan ini dan hanya perlu 5 menit untuk menghitung langkah terbaik dengan komputer saat ini. Mungkin bahkan mungkin untuk memperkirakannya sebagai manusia dengan pena & kertas, atau bahkan dalam pikiran Anda, diberi lebih banyak waktu.
Jadi, jawaban singkatnya adalah: Jika umat manusia bertahan cukup lama, itu hanya masalah waktu!
sumber
Mungkin saja bisa dipecahkan, tapi ada sesuatu yang menggangguku: Bahkan jika seluruh pohon bisa dilintasi, masih tidak ada cara untuk memprediksi langkah lawan selanjutnya. Kita harus selalu mendasarkan langkah kita selanjutnya pada keadaan lawan, dan membuat gerakan "terbaik" tersedia. Kemudian, berdasarkan keadaan selanjutnya kami melakukannya lagi. Jadi, gerakan optimal kita mungkin akan optimal jika lawan bergerak dengan cara tertentu. Untuk beberapa gerakan lawan, gerakan terakhir kami mungkin kurang optimal.
Saya hanya gagal melihat bagaimana bisa ada gerakan yang "sempurna" di setiap langkah.
Untuk itu, harus ada untuk setiap negara [dalam permainan saat ini] ada jalan di pohon yang mengarah pada kemenangan, terlepas dari langkah lawan selanjutnya (seperti di tic-tac-toe), dan saya memiliki kesulitan waktu menghitung itu.
sumber
Secara matematis, catur telah dipecahkan dengan algoritma Minimax , yang berasal dari tahun 1920-an (ditemukan oleh Borel atau von Neumann). Jadi, mesin turing memang bisa memainkan catur dengan sempurna.
Namun, kerumitan komputasi catur membuatnya menjadi tidak layak. Mesin saat ini menggunakan beberapa perbaikan dan heuristik. Mesin teratas saat ini telah melampaui manusia terbaik dalam hal kekuatan permainan, tetapi karena heuristik yang mereka gunakan, mereka mungkin tidak bermain sempurna ketika diberi waktu yang tidak terbatas (misalnya, benturan hash dapat menyebabkan hasil yang salah).
Yang paling dekat yang saat ini kami miliki dalam hal permainan sempurna adalah tabel-tabel endgame . Teknik khas untuk menghasilkannya disebut analisis retrograde . Saat ini, semua posisi hingga enam buah telah diselesaikan.
sumber
Ya , dalam matematika, catur digolongkan sebagai permainan yang ditentukan, artinya memiliki algoritma yang sempurna untuk setiap pemain pertama, hal ini terbukti benar bahkan untuk papan catur yang tak terhitung jumlahnya, jadi suatu saat mungkin suatu saat ada seorang AI yang akan menemukan strategi yang tepat, dan game itu hilang
Lebih lanjut tentang ini di video ini: https://www.youtube.com/watch?v=PN-I6u-AxMg
Ada juga catur kuantom, di mana tidak ada bukti matematika yang ditentukan game http://store.steampowered.com/app/453870/Quantum_Chess/
dan di sana Anda adalah video terperinci tentang catur quantom https://chess24.com/en/read/news/quantum-chess
sumber
Tentu saja Hanya ada 10 pangkat dari lima puluh kemungkinan kombinasi bidak di papan. Karena itu, untuk bermain dalam setiap komputasi, Anda harus membuat kurang dari 10 pangkat lima puluh gerakan (termasuk pengulangan mengalikan angka itu dengan 3). Jadi, ada kurang dari sepuluh pangkat seratus gerakan dalam catur. Pilih saja yang mengarah ke skakmat dan Anda siap melakukannya
sumber
Matematika 64bit (= papan catur) dan operator bitwise (= kemungkinan langkah berikutnya) adalah semua yang Anda butuhkan. Sangat sederhana. Brute Force biasanya akan menemukan cara terbaik. Tentu saja, tidak ada algoritma universal untuk semua posisi. Dalam kehidupan nyata, penghitungan juga dibatasi waktu, batas waktu akan menghentikannya. Program catur yang baik berarti kode yang berat (lulus, bidak ganda, dll). Kode kecil tidak mungkin terlalu kuat. Membuka dan mengakhiri basis data hanya menghemat waktu pemrosesan, semacam data yang telah diproses sebelumnya. Perangkat, maksud saya - OS, kepemilikan threading, lingkungan, perangkat keras menentukan persyaratan. Bahasa pemrograman itu penting. Bagaimanapun, proses pengembangannya menarik.
sumber