Setiap mesin catur yang pernah saya dengar (termasuk yang saya temukan di Wikipedia) menggunakan pencarian brute-force dengan fungsi evaluasi (algoritma minmax) untuk memutuskan langkahnya.
Ini bukan bagaimana kebanyakan manusia mendekati permainan, menggunakan pengenalan pola umum sebagai gantinya, jadi pada prinsipnya, mungkin bagi komputer untuk melakukan hal yang sama.
Apakah ada mesin catur yang tidak mengandalkan pendekatan brute-force untuk menemukan gerakannya?
engines
chess-algorithms
candidate-move
brute-force
pengguna57565488
sumber
sumber
Jawaban:
Ada upaya di tahun 1980-an untuk menulis mesin catur dengan basis pengetahuan yang akan memilih langkah kandidat seperti manusia, tetapi mereka tidak berhasil. Masalahnya adalah bahwa pencocokan pola manusia sulit untuk diungkapkan, sehingga membuat aturan untuk basis pengetahuan sangat sulit.
Melatih jaringan saraf untuk memilih gerakan calon tampaknya seperti garis penelitian yang menjanjikan. Di sini dan di sini mungkin ada dua makalah terkait. (FWIW, Ini bukan bidang saya di Comp Sci)
sumber
Anda bisa melihat Giraffe yang baru-baru ini menjadi berita:
https://thestack.com/iot/2015/09/14/neural-network-chess-computer-abandons-brute-force-for-selective-human-approach/
Hype adalah bahwa dalam 3 hari itu belajar sendiri game dan mencapai level IM. Di sisi lain penelitian ini di PT
http://arxiv.org/abs/1509.01549
sumber
Saya ingin menambahkan detail ke jawaban @ Ian_Bush di Giraffe.
Dalam jawaban @ Ian_Bush, tercatat bahwa Giraffe tidak menggunakan perhitungan brute-force. Ini tidak benar , karena Giraffe masih merupakan mesin alpha-beta (nega-max). Satu- satunya perbedaan dengan mesin standar adalah bahwa fungsi evaluasi disetel secara otomatis oleh pembelajaran mendalam. Karena itu, mesin belajar cara bermain dengan sendirinya.
Secara tradisional, programmer mesin mengatur sendiri parameter dalam suatu mesin. Saya sudah melakukan banyak hal sendiri. Misalnya, berapa berat yang harus Anda berikan kepada seorang uskup dan seorang ksatria? 3,0? 3.1? 3,2? Sulit dikatakan.
Jerapah mendekati masalah dengan cara yang jauh lebih cerdas. Dimulai dengan beberapa nilai awal. Mesin menggunakan algoritma gradient ascent untuk menyesuaikan nilai-nilai tersebut. Kita tidak harus secara eksplisit memberi kode berapa berat seorang ratu seharusnya dalam kode. Inilah yang kami maksud "belajar". Itu tidak berarti bahwa mesin dapat bermain catur tanpa mencari.
EDIT : Giraffe memodelkan simpul pohon sebagai probabilitas bahwa mereka jatuh ke dalam variasi utama. Periksa kertas untuk detailnya. Saya pribadi tidak percaya pendekatan ini, dan makalah ini menunjukkan sedikit bukti betapa bermanfaatnya itu.
sumber
We evaluated board representations by training neural networks to predict the output of Stock- fish’s evaluation function in a supervised fashion, given 5 million positions as input, in the board representation under evaluation.
Jadi, ini bukan pembelajaran dengan memainkan IMO sendiri.Agak bisa diperdebatkan jika Anda dapat memanggil pencarian berdasarkan heuristik dan mengevaluasi pendekatan sebagai kekerasan. Sebagian besar mesin catur papan atas saat ini mengikuti pendekatan berbasis aturan untuk mengevaluasi posisi dan fungsi pencarian berdasarkan aturan untuk memangkas pergerakan.
Ini sebenarnya tidak dijamin untuk memilih langkah "global optimal", namun langkah ini cukup baik untuk tujuan. Dalam pengertian ini sebagian besar mesin catur menggunakan pendekatan pada optimum global dan benar-benar bertahan.
Sampai saat ini, kami belum banyak mesin catur berhasil di tingkat atas menggunakan pendekatan yang berbeda, setidaknya tidak pada perangkat keras yang murah.
sumber
Claude Shannon mengusulkan dua jenis algoritma untuk membuat mesin catur. Mesin "tipe A" memeriksa semua kemungkinan pergerakan hingga kedalaman yang terbatas, mengecilkan pohon, dan kemudian memainkan gerakan dengan evaluasi tertinggi dari pohon minimum (alias kekuatan kasar). Mesin tipe B membatasi pencarian mereka hanya sebagian dari gerakan yang mungkin berdasarkan beberapa kriteria. Saya yakin dia lebih menyukai Tipe B karena lebih menjanjikan.
Mesin yang diciptakan pada tahun 1970-an (mis. Hitech, Kaissa) cenderung murni kasar tanpa pemangkasan atau hanya alpha-beta, tetapi orang segera melihat nilai pemangkasan pohon gerakan dan garis yang tidak mungkin terbukti kuat . Hampir semua mesin baru memangkas pohon garis yang jelas lebih lemah (alpha-beta), dan sebagian besar mesin menggunakan berbagai jenis pemangkasan ke depan juga (kesia-siaan, pengurangan gerakan lambat, gerakan kosong, gerakan pisau cukur). Dalam hal itu, tidak ada banyak mesin yang menggunakan kekuatan kasar murni lagi.
Pada tahun 1970-an, Botvinnik sedang mengerjakan sebuah mesin bernama Pioneer yang dikandung di sekitar gagasan jalur serangan yang seharusnya dipandu evaluasi. Itu tidak pernah mencapai titik di mana ia bisa memainkan permainan catur penuh.
Pada 1990-an, Chris Wittington berbicara mendukung menggunakan lebih banyak pengetahuan catur, dan menciptakan sebuah program yang disebut Chess System Tal yang cukup kuat untuk saat itu.
Kasparov, Anand dan Tord Romstad semua mencatat bahwa Hiarcs tampaknya memiliki evaluasi yang lebih rinci daripada banyak mesin top yang kekuatannya berasal dari pencarian cepat.
sumber
Pada dasarnya semuanya!
Mesin catur benar-benar hanya menggunakan kekerasan saat:
Kalau tidak, mereka memiliki "pencarian selektif", ini akan mempertimbangkan semua gerakan yang mungkin untuk tata letak papan yang diberikan, tetapi hanya mengeksplorasi segelintir dari mereka. Mesin dapat beralih ke gaya kasar meskipun jika menilai dua gerakan sangat mirip (lebih dari satu gerakan kuat) atau jika tidak dapat menemukan gerakan yang disukainya (tidak ada gerakan yang kuat).
Mereka juga cenderung brute-force sebagai garis pertahanan terakhir, jika Anda telah melihat kemungkinan skakmat apakah itu dapat melihatnya datang dan ia akan ingin berusaha sangat keras untuk menggambar, dan tidak dapat menemukan jalan keluar ("efek Horizon" "Ada masalah dengan mesin, anggap itu akan kehilangan ratu itu, dan itu sudah dibatasi hanya 4 bermain dalam; jika itu bisa memperdagangkan pion dan menunda hilangnya ratu untuk 4 langkah, ia akan berpikir itu telah menyelamatkan ratu , dalam proses itu akan kehilangan setidaknya 1 pion (karena langkah selanjutnya membawa cakrawala dari sebelumnya lebih dekat) dan berat yang ditaruhnya untuk menyelamatkan sang ratu mungkin berarti ia mengorbankan pertahanan, untuk apa pun jika kematian melampaui cakrawala) .
Ini juga akan memaksa ketika pencarian selektif tidak terlalu berguna. Inilah sebabnya mesin membutuhkan waktu lebih lama ketika mereka memiliki 3 keping tersisa. Mereka harus memaksa karena algoritma seleksi tidak dapat menilai pergerakan. Algoritme seleksi sangat bagus selama midgame karena bisa seperti "Oohh, melakukan ini dengan pion memblokir [apa pun] dan mencadangkan [apa pun] dan [apa pun] yang saya miliki jumlah yang lebih sedikit membela daripada menyerang" - misalnya .
Jika Anda memiliki raja di tengah papan ada 8 gerakan, pencarian selektif akan seperti "Tidak ada yang melakukan sesuatu yang berguna, saya tidak tahu".
Anda dapat menganggap pencarian selektif sebagai memiliki dua bagian, itu taktis dalam arti akan mencoba dan melihat gerakan taktis, itu akan mengabaikan bobot potongan yang terlibat biasanya karena seorang ratu bukan bagian dari strategi apa pun tidak layak lebih dari gadai penting untuk itu. Ini juga strategis karena akan mengeksplorasi gerakan yang mendukung pertahanan, dan kemudian membuka kemungkinan serangan.
Mesin kemudian melakukan hal yang sama dari sudut pandang Anda, dan bolak-balik dan bolak-balik.
Sesuatu yang disebut tabel transposisi adalah daftar besar hal-hal yang telah dipikirkannya, sehingga jika akhirnya mempertimbangkan sesuatu yang telah dilakukan, ia tahu dan tidak perlu mengevaluasi ulang itu.
KECUALI (selektif :)) ia sampai di sana dengan cara yang berbeda, atau ingin menjelajah lebih jauh. Misalkan misalnya ia menemukan bahwa ... benteng Anda sangat penting untuk serangan yang akan datang, mesin dapat mengevaluasi kembali garis ketika menemukan ini. Bobot sebelumnya yang dikenakan pada benteng itu (mis. 5 poin, betapa pentingnya bagi Anda) mungkin merupakan perkiraan di bawah.
Pencarian selektif juga dapat mundur, seperti mengatakan itu mempertimbangkan seorang uskup bergerak langsung ke wilayah musuh, ke pemilih bergerak itu tidak penting bahwa itu dapat diambil dengan mudah. Katakan itu menemukan itu secara strategis itu adalah langkah yang hebat! Kemudian mungkin mundur untuk mencoba dan menemukan cara untuk melindungi kotak itu untuk mendapatkan uskup itu di sana. Misalkan melibatkan bidak untuk melakukannya.
Metode brute-force akan mempertimbangkan garis yang melibatkan langkah gadai itu, dan (dengan kekuatan kasar) uskup juga bergerak, dan hal-hal yang sama yang menilai posisi dewan (pencarian selektif itu sendiri) akan mengatakan "ini bagus" jadi papan tulis menilai variasi itu sangat tinggi, keduanya menemukannya.
Sangat sulit untuk menilai posisi menggunakan metode brute-force, ini sebabnya pencarian selektif bekerja dengan sangat baik.
Brute-force dari posisi awal mungkin menemukan bahwa pasangan terkenal di-4 yang melibatkan ratu f7 yang dicakup oleh seorang uskup, dan jika itu untuk menilai yang sangat tinggi (AKU SUDAH MENEMUKAN CHECKMATE! JOB DILAKUKAN! DILAKUKAN!) Itu Akan salah karena hitam jelas akan melawan. Pencarian selektif menilai posisi (untuk evaluasi lebih lanjut) karena tampaknya bagus. Ini berarti ketika mempertimbangkan respons Anda, ia dapat memutuskan apa yang akan baik untuk Anda ....
Jadi hal-hal yang pencarian selektif gunakan untuk menilai hal-hal digunakan oleh brute-force karena "menemukan sekakmat yang melibatkan langkah ini" tidak cukup untuk mengatakan bahwa langkah itu baik.
Oleh karena itu Apa langkah pertama yang dipilih (Putih), oleh mesin catur brute force?
sumber