Apa gunanya nilai minimum pada pohon minimax?

8

Pertimbangkan pohon miniimax untuk masalah pencarian permusuhan. Misalnya, dalam gambar ini (pemangkasan alpha-beta):

masukkan deskripsi gambar di sini

Ketika menandai pohon dengan nilai bottom-up, pertama-tama kita melintasi simpul 3 dan menetapkan B. \ max = 3 . Kemudian kita melintasi 12 dan 8 dalam urutan ini, itu akan memastikan B.max = 3 .[min,max]3B.max=3128B.max=3

Tetapi mengapa B.min=3 ? Apa gunanya nilai itu?

sam
sumber
Dari mana gambar itu? Apakah ini contoh buatan?
uli
Ya, itu hanya contoh kasus khusus, saya juga mengedit gambar untuk menambahkan teks min dan max. Jika muncul kesalahan, jangan ragu untuk mengatakannya. Terima kasih ~
sam
1
Dari artikel Wikipedia (mengerikan), pohon yang Anda berikan tampaknya bukan pohon minimum. Secara khusus, harus ; , di sisi lain, terlihat sepenuhnya benar. Jadi apa pertanyaannya di sini, benarkah? Apakah Anda bingung dengan contohnya, atau Anda ingin aplikasi pohon min-max? Dalam hal apa pun, harap sertakan definisi pohon min-max (!) Yang tepat dan / atau referensi ke pohon tersebut. B.max12B.min
Raphael
1
Harap sertakan referensi untuk gambar; Saya punya alasan untuk percaya bahwa Anda tidak membuatnya. Slide yang ditautkan juga dapat menjawab beberapa pertanyaan Anda; mereka tampaknya menggunakan pohon yang berbeda dari yang Anda lakukan.
Raphael
1
Gambarnya tampak menipu ..
Strin

Jawaban:

7

Angka ini (yang sebenarnya benar) digunakan dalam penjelasan algoritma pemangkasan alpha-beta pada pohon minimax. Pemangkasan alfa-beta adalah metode yang digunakan untuk memangkas bagian-bagian pohon minimax dalam masalah pencarian permusuhan. Dalam konteks permainan tic-tac-toe, pohon minimax dimaksudkan untuk memungkinkan komputer untuk mencari melalui ruang semua papan permainan yang mungkin (konfigurasi x dan o) dengan asumsi gerakan pemain optimal. Hal ini memungkinkan komputer untuk membuat langkah yang memberikan hasil terbaik (inilah sebabnya permainan connect-four di komputer Anda sangat sulit dikalahkan!). Untuk deskripsi yang lebih lengkap, saya sangat menyarankan "AI Pendekatan Modern" oleh Stuart dan Norvig (hal 162-170 ish dalam edisi ke-2.).

Sekarang kita telah membersihkan beberapa kebingungan pada algoritma. Pemangkasan alfa-beta mencoba untuk menghindari perluasan sub pohon berdasarkan cara kerja algoritma minimax. Kita tahu bahwa simpul maksimal di tingkat atas akan mengambil nilai terbesar dari semua anak-anaknya. Jadi, simpul menemukan nilai , dan sejauh ini, ini adalah nilai maksimum yang bersedia dilewatkan ke induknya sehingga menempatkan nilai ini di slot MAX. Kemudian ditemukan . Ingat bahwa adalah simpul MIN, jadi ia ingin meminimalkan nilai yang diteruskannya ke induknya, sehingga ia menyimpan nilai dalam slot MAX. Lagi untuk . Ketika telah mencari semua anak-anaknya, ia tahu batas bawah maksimum (B312B38Bα) solusi dan solusi batas atas minimum ( ) dari subtree dan mempertahankan nilai-nilai tersebut dalam MIN ( ) dan MAX ( ) (seperti [3, 3]).βαβ

Catatan: min dan maks berlabel dalam gambar BUKAN nilai minimum dan maksimum subtree! Mereka (sangat membingungkan diberi label) batas alpha-beta dari solusi subtree (ingat ini adalah masalah pencarian yang berlawanan).

Berikutnya kita bergerak ke node . Di sini kita menemukan di posisi pertama. Node , yang ingin memilih nilai terendah dari subtreenya sekarang TAHU bahwa induknya tidak akan memilih nilainya karena simpul menemukan nilai yang lebih besar. Oleh karena itu, kita dapat memangkas sisa subtree dan melanjutkan ke .C2CBD

Akhirnya, untuk menjawab pertanyaan spesifik: Mengapa Min = 3? Nilai untuk (batas bawah maksimum solusi pada simpul ini) dan (batas atas minimum solusi pada simpul ini) dipertahankan pada setiap simpul untuk melakukan pemangkasan. Nilai-nilai ini mengikat kasus-kasus yang mungkin di mana nilai dari node (atau subtree-nya) dapat menjadi bagian dari solusi.Bαβ

Dalam contoh ini, tampaknya tidak berperan, namun cobalah untuk melihat contoh yang lebih rumit (yaitu pohon dengan tinggi> 3) seperti ini dan lihat apakah Anda dapat memahaminya.

Saya tidak dapat melakukan keadilan untuk pemangkasan minimax atau alpha-beta di sini (sebagian besar karena saya belum menggunakannya selama bertahun-tahun), jadi jika Anda benar-benar ingin memahami ini, silakan baca buku tentang AI seperti yang ditulis oleh Stuart dan Norvig (yang halaman wikipedia secara mengejutkan juga tidak memiliki visualisasi).

Nick
sumber
Ya, seperti yang Anda katakan, saya pikir Anda sepenuhnya setuju dengan kebenaran gambar itu, bukan? Terima kasih telah berbagi proses pengurutan AlphaBeta yang sangat terperinci, dan pertanyaan saya adalah apa gunanya nilai minimum? Apakah nilai minimum selalu sama dengan nilai maksimum? Dalam hal ini adalah 3 dari [3,3] yang pertama.
sam
@ Sam, ya, gambarnya benar. Saya telah mengedit respons saya untuk (sebagian) menjawab pertanyaan spesifik Anda. Semoga ini membantu.
Nick
"Ketika B telah mencari semua anak-anaknya, ia tahu nilai minimum dan maksimum dari subtree-nya dan mempertahankan nilai-nilai itu dalam MIN dan MAX (seperti [3, 3])" - tetapi itu jelas bukan yang terjadi (seharusnya , lalu). Penjelasan Anda nanti lebih masuk akal. [3,12]
Raphael
@ Raphael, saya seharusnya lebih jelas. Ini bukan nilai-nilai min dan max dari subtree, mereka adalah batas bawah maksimum dan batas atas minimum yang dapat diperbanyak oleh simpul ke induknya.
Nick
@Nick: Ini adalah bagaimana saya memahami minimax juga. Sebagai OP bingung minimax dan min-max pada awalnya, Anda mungkin harus membuatnya sangat jelas dalam jawaban Anda, dan termasuk contoh non-sepele (selain yang ditautkan).
Raphael