Saya tidak tahu bagaimana 20Q melakukannya secara khusus, tetapi ada banyak informasi tentang cara menerapkan permainan 20 pertanyaan .
Ada banyak cara untuk menyelesaikan ini, tetapi saya akan menjelaskan satu cara. Game-game ini dapat menerapkan semacam pohon keputusan . Untuk permainan elektronik seperti 20Q, pohon ini akan dikomputasi dan cukup mudah untuk dilintasi. Ada metode untuk menggunakan pohon keputusan pembelajaran di mana permainan dapat menerima objek baru di akhir pertanyaan itu jika tidak dapat menebak apa yang ditanyakan pengguna.
Ketika pertanyaan adalah serangkaian jawaban ya atau tidak, Anda berakhir dengan pohon biner. Setiap node adalah pertanyaan dan daunnya adalah jawaban. Ketika pertanyaan dijawab dengan tidak diketahui atau tidak yakin, simpul anak dapat digabungkan dan pertanyaan mereka diajukan secara seri untuk lebih lanjut memilih jawaban yang mungkin.
Pada dasarnya ini adalah proses:
- Mulai dengan daftar objek yang lengkap. Ini semua dapat dimulai pada kemungkinan yang sama, atau mereka dapat diurutkan berdasarkan seberapa besar kemungkinan objek akan dipilih dalam pengujian.
- Mulailah dengan pertanyaan pertama di pohon keputusan. Dorong ke antrian pertanyaan.
- Ajukan pertanyaan di atas antrian.
- Tanggapan proses:
- Ya / Tidak jawaban menghapus / menambah jumlah probabilitas yang telah ditentukan dari setiap jawaban berdasarkan pertanyaan.
- Jawaban "Mungkin" menghapus / menambahkan sebagian kecil dari jumlah "ya" yang telah ditentukan.
- "Tidak Tahu" tidak mengubah probabilitas
- Respons "Tidak Diketahui" atau "Mungkin" mendorong kedua node pertanyaan berikutnya ke antrian pertanyaan. Respons "Ya" atau "Tidak" hanya menambahkan simpul masing-masing ya / tidak ke antrian pertanyaan.
- Lanjutkan ke langkah 3 hingga keluar dari pertanyaan atau probabilitas satu jawaban di luar ambang batas "kepastian" yang telah ditentukan.
- Berikan jawaban yang paling memungkinkan.
Menghasilkan pohon mungkin merupakan topik dari pertanyaan lain. Tetapi pada dasarnya itu memilih pertanyaan yang membagi jawaban sebanyak mungkin. Letakkan pertanyaan-pertanyaan yang membagi pertanyaan-pertanyaan dengan paling dekat di awal sehingga jumlah pertanyaan terbanyak dapat diambil dengan tercepat.
Saya googled "kode 20q" dan menemukan ini: http://mosaic.cnfolio.com/B142LCW2008A197
Versi ini hanya untuk hewan tetapi 20 Pertanyaan yang sebenarnya mungkin memiliki algoritme yang sama.
Berikut ini adalah ikhtisar singkat dari kode yang saya tautkan:
Ada beberapa jawaban berbeda yang dikodekan dengan keras ke dalam program. Beberapa atribut TRUE atau FALSE kemudian ditugaskan kepadanya:
Seperti yang Anda lihat, lebah bukan mamalia tetapi ia terbang, dll.
Ada larik untuk setiap grup:
Ketika setiap pertanyaan diajukan:
Program ini melihat definisi dari kategori yang sesuai dan melacak hewan mana yang paling mungkin Anda pikirkan berdasarkan nilai-nilai BENAR atau SALAH dan Anda menjawab ya atau Tidak yang dimasukkan untuk pertanyaan.
Ini dilakukan di:
sumber
Ini bukan pohon keputusan besar-besaran atau sekelompok pernyataan if / else yang dikodekan dengan keras. Robin Burgener, sang penemu, sepenuhnya mendokumentasikan algoritmanya dalam pengajuan paten 2005. Sederhana sekali.
sumber