Game online sederhana berisi 20 pertanyaan yang didukung oleh AI yang sangat akurat.
Bagaimana mereka menebak dengan baik?
algorithm
artificial-intelligence
Daddy Warbox
sumber
sumber
Jawaban:
Anda dapat menganggapnya sebagai Algoritma Pencarian Biner. Di setiap iterasi, kami mengajukan pertanyaan, yang seharusnya menghilangkan kira-kira setengah dari kemungkinan pilihan kata. Jika ada total N kata, maka kita bisa mengharapkan jawaban setelah pertanyaan log2 (N).
Dengan 20 pertanyaan, kita harus bisa secara optimal menemukan sebuah kata diantara 2 ^ 20 = 1 juta kata.
Salah satu cara mudah untuk menghilangkan pencilan (jawaban yang salah) mungkin menggunakan sesuatu seperti RANSAC . Ini berarti, alih-alih memperhitungkan semua pertanyaan yang telah dijawab, Anda secara acak memilih subset yang lebih kecil, yang cukup untuk memberi Anda satu jawaban. Sekarang Anda mengulanginya beberapa kali dengan subset pertanyaan acak yang berbeda, sampai Anda melihat bahwa sebagian besar waktu, Anda mendapatkan hasil yang sama. Anda kemudian tahu bahwa Anda memiliki jawaban yang benar.
Tentu saja ini hanyalah salah satu cara dari banyak cara untuk menyelesaikan masalah ini.
sumber
code
tautan untuk melihatnya: openbookproject.net/py4fun/animal/animal.htmlPohon keputusan mendukung aplikasi semacam ini secara langsung. Pohon keputusan biasanya digunakan dalam kecerdasan buatan.
Pohon keputusan adalah pohon biner yang menanyakan pertanyaan "terbaik" pada setiap cabang untuk membedakan antara koleksi yang diwakili oleh anak kiri dan kanannya. Pertanyaan terbaik ditentukan oleh beberapa algoritma pembelajaran yang digunakan pembuat aplikasi 20 pertanyaan untuk membangun pohon. Kemudian, seperti yang ditunjukkan poster lain, pohon sedalam 20 tingkat memberi Anda sejuta hal.
Cara sederhana untuk menentukan pertanyaan "terbaik" di setiap titik adalah mencari properti yang membagi koleksi menjadi dua secara merata. Dengan begitu, saat Anda mendapatkan jawaban ya / tidak untuk pertanyaan tersebut, Anda membuang sekitar setengah dari koleksi di setiap langkah. Dengan cara ini Anda dapat memperkirakan pencarian biner.
Wikipedia memberikan contoh yang lebih lengkap:
http://en.wikipedia.org/wiki/Decision_tree_learning
Dan beberapa latar belakang umum:
http://en.wikipedia.org/wiki/Decision_tree
sumber
Saya merekomendasikan membaca tentang permainan di sini: http://en.wikipedia.org/wiki/Twenty_Questions
Khususnya bagian Komputer:
sumber
Ia menyebut dirinya sebagai "jaringan saraf di internet", dan di situlah letak kuncinya. Kemungkinan menyimpan probabilitas pertanyaan / jawaban dalam matriks cadangan. Menggunakan probabilitas tersebut, ia dapat menggunakan algoritme pohon keputusan untuk menyimpulkan pertanyaan mana yang akan ditanyakan yang paling baik mempersempit pertanyaan berikutnya. Setelah mempersempit jumlah kemungkinan jawaban menjadi beberapa lusin, atau jika sudah mencapai 20 pertanyaan, maka kemungkinan besar akan mulai membaca.
Aspek yang benar-benar menarik dari 20q.net adalah tidak seperti kebanyakan pohon keputusan dan algoritme jaringan saraf yang saya ketahui, 20q mendukung matriks renggang dan pembaruan tambahan.
Edit: Ternyata jawabannya sudah ada di internet selama ini. Robin Burgener, sang penemu, menjelaskan algoritmanya secara detail dalam pengajuan paten tahun 2005 .
sumber
Ini menggunakan algoritma pembelajaran.
k-NN adalah contoh bagus dari salah satunya.
Wikipedia: Algoritma Tetangga Terdekat
sumber