Back to IF3170 Inteligensi Artifisial

Topic

Questions/Cues

  • Apa tujuan Algoritma Minimax?

  • Bagaimana cara kerja Minimax?

  • Apa itu nilai “propagasi”?

  • Bagaimana pseudocode-nya?

  • Apa saja properti Minimax?

  • Apa kelemahan utamanya?

Reference Points

  • IF3170_Materi04-AdversarialSearch.pdf (Slide 5-9)

Tujuan dan Ide Inti Minimax

Minimax adalah algoritma rekursif yang digunakan untuk memilih langkah optimal bagi seorang pemain (kita sebut MAX) dengan asumsi bahwa lawan (MIN) juga akan selalu bermain secara optimal.

Ide utamanya adalah untuk menjelajahi seluruh game tree hingga ke terminal states (daun), lalu “mempropagasi” atau menaikkan nilai utilitas dari bawah ke atas.

  • Di level MAX, algoritma akan memilih langkah yang menghasilkan nilai maksimum.

  • Di level MIN, algoritma akan memilih langkah yang menghasilkan nilai minimum.

Dengan cara ini, MAX dapat membuat keputusan terbaik di root dengan mempertimbangkan skenario terburuk yang mungkin dilakukan oleh MIN di setiap gilirannya.

Cara Kerja Algoritma Minimax

Prosesnya berjalan dari bawah ke atas (depth-first search):

  1. Generate Game Tree: Bangun seluruh pohon permainan hingga kedalaman tertentu atau sampai bertemu terminal states.

  2. Hitung Utilitas: Terapkan fungsi utilitas pada setiap terminal state.

  3. Propagasi Nilai ke Atas:

    • Dari terminal states, naik satu level.

    • Jika level tersebut adalah giliran MIN, simpul induknya akan mengambil nilai terkecil dari anak-anaknya.

    • Jika level tersebut adalah giliran MAX, simpul induknya akan mengambil nilai terbesar dari anak-anaknya.

    • Proses ini diulang terus hingga mencapai simpul akar (root).

  4. Pilih Langkah: Di simpul akar, MAX akan memilih langkah (edge) yang menuju ke simpul anak dengan nilai tertinggi. Nilai ini adalah nilai Minimax dari state awal.

Contoh: Pada gambar di atas, di level MIN, simpul B memilih nilai min(3, 12, 8) = 3. Simpul C memilih min(2, 4, 6) = 2, dan D memilih min(14, 5, 2) = 2. Kemudian di level MAX, simpul A akan memilih max(3, 2, 2) = 3. Jadi, langkah optimal untuk MAX adalah menuju simpul B.

Properti Algoritma Minimax

  • Completeness: Ya, Minimax akan selalu menemukan solusi jika pohon permainan terbatas (finite).

  • Optimality: Ya, Minimax akan menemukan langkah optimal jika lawan juga bermain secara optimal.

  • Time Complexity: ), di mana b adalah branching factor dan m adalah kedalaman maksimum. Algoritma harus mengunjungi setiap simpul di pohon.

  • Space Complexity: O(bm), karena menggunakan depth-first search untuk menelusuri pohon.

Summary

Algoritma Minimax menentukan langkah optimal dengan melakukan eksplorasi depth-first search pada game tree, lalu mempropagasi nilai utilitas dari bawah ke atas. Pada setiap level, pemain MAX akan memilih langkah yang memaksimalkan nilai, sementara pemain MIN akan memilih langkah yang meminimalkan nilai, sehingga memungkinkan pemain untuk membuat keputusan terbaik dengan mengasumsikan permainan sempurna dari lawan.