Kecerdasan Artifisial

Pertemuan 05

Pencarian Adversarial - Game Playing

Mata Kuliah: Kecerdasan Artifisial (AI401) | 3 SKS

๐ŸŽฏ Capaian Pembelajaran

Setelah pertemuan ini, mahasiswa mampu:

  1. Memformulasikan game sebagai problem pencarian adversarial
  2. Membangun dan menganalisis game tree
  3. Mengimplementasikan algoritma Minimax
  4. Menganalisis kompleksitas Minimax O(bm)
  5. Menerapkan Alpha-Beta Pruning untuk optimasi
  6. Merancang fungsi evaluasi untuk game

๐Ÿ“‹ Agenda Hari Ini

Bagian 1

  • Pencarian Adversarial
  • Karakteristik Game
  • Game Tree
  • Algoritma Minimax

Bagian 2

  • Fungsi Evaluasi
  • Alpha-Beta Pruning
  • Expectiminimax
  • Aplikasi Pertahanan

๐Ÿ”„ Review: Pencarian Sebelumnya

Pertemuan Topik Karakteristik
2 Uninformed Search Agen tunggal, tanpa heuristik
3 Informed Search Agen tunggal, dengan heuristik
4 Local Search Agen tunggal, optimasi
5 Adversarial Search Multi-agen kompetitif

๐ŸŽฎ Apa itu Pencarian Adversarial?

Pencarian Adversarial adalah teknik pencarian dalam situasi kompetitif dimana terdapat agen-agen dengan tujuan yang saling bertentangan.

Perbedaan utama:

  • ๐ŸŽฏ Bukan mencari path ke goal
  • โš”๏ธ Melawan lawan yang juga optimal
  • ๐Ÿ”„ Giliran bergantian

๐Ÿ“Š Single Agent vs Adversarial

Single Agent (A*)

  • Kontrol penuh atas aksi
  • Path cost deterministik
  • Goal state jelas

Adversarial (Minimax)

  • Giliran bergantian
  • Lawan memilih optimal
  • Mengalahkan lawan

โš ๏ธ A* tidak bisa digunakan langsung untuk game karena lawan akan menghalangi!

๐ŸŒ Aplikasi Pencarian Adversarial

๐ŸŽฒ Dalam Game

  • Catur, Go, Checkers
  • Video game AI
  • Card games

๐ŸŽ–๏ธ Konteks Pertahanan

  • War gaming & simulasi
  • Cyber attack-defense
  • Alokasi sumber daya

๐Ÿ“‚ Klasifikasi Game

Klasifikasi Game

Gambar 2.1: Klasifikasi game berdasarkan karakteristiknya

๐ŸŽฒ Deterministik vs Stokastik

Deterministik

State berikutnya pasti ditentukan oleh aksi

Contoh: Catur, Go, Tic-Tac-Toe

Stokastik

Ada elemen keacakan (dadu, kartu)

Contoh: Backgammon, Poker

๐Ÿ‘๏ธ Perfect vs Imperfect Information

Perfect Information

Semua pemain melihat seluruh state

Contoh: Catur (semua bidak terlihat)

Imperfect Information

Sebagian informasi tersembunyi

Contoh: Poker (kartu lawan tidak terlihat)

โš–๏ธ Zero-Sum Game

Zero-Sum Game: Game dimana total keuntungan dan kerugian semua pemain selalu berjumlah nol.

UMAX(s) + UMIN(s) = 0

atau: UMAX(s) = -UMIN(s)

๐Ÿ’ก Keuntungan MAX = Kerugian MIN, dan sebaliknya!

โ™Ÿ๏ธ Contoh Zero-Sum: Catur

Hasil U(White/MAX) U(Black/MIN) Total
White menang +1 -1 0 โœ“
Draw 0 0 0 โœ“
Black menang -1 +1 0 โœ“

๐ŸŽฏ Fokus Pertemuan Ini

Game dengan karakteristik:

  • Two-player - Dua pemain bergantian
  • Zero-sum - Keuntungan satu = kerugian lainnya
  • Perfect information - Semua state terlihat
  • Deterministic - Tidak ada keacakan

Contoh: Catur, Tic-Tac-Toe, Connect Four, Checkers

๐ŸŒณ Game Tree

Game Tree adalah representasi graf dari semua kemungkinan permainan, dari posisi awal hingga semua kemungkinan hasil akhir.
Struktur Game Tree

๐Ÿ—๏ธ Komponen Game Tree

Komponen Deskripsi
Root Node State awal permainan
MAX Nodes Giliran kita (memaksimalkan)
MIN Nodes Giliran lawan (meminimalkan)
Terminal Nodes State akhir dengan nilai utility
Branching Factor (b) Rata-rata langkah legal per state
Depth (m) Kedalaman maksimum tree

โŒโญ• Game Tree: Tic-Tac-Toe

Game Tree Tic-Tac-Toe

Gambar 3.2: Sebagian game tree untuk Tic-Tac-Toe

๐Ÿ“Š Kompleksitas Tic-Tac-Toe

  • Branching factor rata-rata: b โ‰ˆ 5
  • Kedalaman maksimum: m = 9
  • Estimasi nodes: 59 โ‰ˆ 2 juta
  • Actual unique games: ~255,168

๐Ÿ’ก Tic-Tac-Toe cukup kecil untuk dieksplorasi sepenuhnya!

๐ŸŽฏ Algoritma Minimax

Minimax adalah algoritma untuk menentukan langkah optimal dalam game two-player zero-sum dengan asumsi kedua pemain bermain optimal.

Prinsip:

  • MAX berusaha memaksimalkan nilai
  • MIN berusaha meminimalkan nilai

๐Ÿ“ˆ Ilustrasi Minimax

Konsep Minimax

Gambar 4.1: Propagasi nilai dari terminal ke root

๐Ÿ“ Definisi Formal Minimax

MINIMAX(n) =

  • Utility(n)                          jika n terminal
  • maxa MINIMAX(Result(n,a))   jika Player(n) = MAX
  • mina MINIMAX(Result(n,a))    jika Player(n) = MIN

๐Ÿ’ป Pseudocode Minimax


def max_value(state):
    if terminal_test(state):
        return utility(state)
    v = -infinity
    for action in actions(state):
        v = max(v, min_value(result(state, action)))
    return v

def min_value(state):
    if terminal_test(state):
        return utility(state)
    v = +infinity
    for action in actions(state):
        v = min(v, max_value(result(state, action)))
    return v
                

โœ๏ธ Contoh: Hitung Minimax

        A (MAX)
       /|\
      / | \
     B  C  D (MIN)
    /\  |  /\
   3  5 2 6  1
                

Step 1: MIN nodes

  • B = min(3, 5) = 3
  • C = 2
  • D = min(6, 1) = 1

Step 2: MAX node

A = max(3, 2, 1) = 3 โ†’ Pilih B!

โฑ๏ธ Kompleksitas Minimax

Time Complexity: O(bm)

Space Complexity: O(bm)

Game b m Nodes
Tic-Tac-Toe ~5 9 ~106
Chess ~35 ~100 ~10154 ๐Ÿ˜ฑ
Go ~250 ~150 ~10360 ๐Ÿคฏ

๐Ÿ“Š Fungsi Evaluasi

Fungsi Evaluasi memberikan estimasi nilai state tanpa perlu mengeksplorasi hingga terminal state.
Evaluation Function

โœ… Properti Fungsi Evaluasi yang Baik

  1. Konsisten dengan utility - Setuju untuk terminal states
  2. Cepat dihitung - Tidak terlalu kompleks
  3. Reflektif - Nilai tinggi = peluang menang tinggi
  4. Linear combination - Weighted sum dari features

โ™Ÿ๏ธ Contoh: Evaluasi Catur

Eval(s) = wโ‚ยทmaterial + wโ‚‚ยทmobility + wโ‚ƒยทking_safety + ...

Piece Value
Pawn1
Knight/Bishop3
Rook5
Queen9

Material advantage adalah feature paling penting!

โœ‚๏ธ Mengapa Perlu Pruning?

Minimax mengevaluasi banyak node yang tidak perlu!

Contoh: Catur dengan depth 4

354 = 1.5 juta nodes

Dengan Alpha-Beta optimal:

352 = 1,225 nodes (99.9% lebih sedikit!)

๐Ÿ”ช Alpha-Beta Pruning

Alpha-Beta Pruning mengurangi jumlah node yang dievaluasi dengan memotong cabang yang tidak mempengaruhi keputusan akhir.

ฮฑ (Alpha)

Nilai minimum yang dijamin MAX

(lower bound)

ฮฒ (Beta)

Nilai maksimum yang dijamin MIN

(upper bound)

๐Ÿ“Š Ilustrasi Alpha-Beta

Alpha-Beta Pruning

Gambar 6.1: Pruning terjadi ketika ฮฑ โ‰ฅ ฮฒ

โšก Kondisi Pruning

Pada MIN node

Jika nilai โ‰ค ฮฑ

โ†’ Prune!

(MAX tidak akan pilih path ini)

Pada MAX node

Jika nilai โ‰ฅ ฮฒ

โ†’ Prune!

(MIN tidak akan pilih path ini)

Pruning Rule: ฮฑ โ‰ฅ ฮฒ โ†’ PRUNE!

๐Ÿ’ป Pseudocode Alpha-Beta


def max_value(state, alpha, beta):
    if terminal_test(state): return utility(state)
    v = -infinity
    for action in actions(state):
        v = max(v, min_value(result(state, action), alpha, beta))
        if v >= beta: return v  # Prune!
        alpha = max(alpha, v)
    return v

def min_value(state, alpha, beta):
    if terminal_test(state): return utility(state)
    v = +infinity
    for action in actions(state):
        v = min(v, max_value(result(state, action), alpha, beta))
        if v <= alpha: return v  # Prune!
        beta = min(beta, v)
    return v
                

โœ๏ธ Contoh Alpha-Beta Pruning

           A (MAX)
         /   |   \
        B    C    D (MIN)
       /\   /\   /\
      3  5 6  2 1  8
                
  1. B = min(3,5) = 3 โ†’ ฮฑ = 3
  2. C: cek 6, lalu 2. min = 2 (tidak dipilih, 2 < 3)
  3. D: cek 1. 1 โ‰ค ฮฑ(3)? Ya! โ†’ PRUNE 8! โœ‚๏ธ
  4. A = max(3, 2, 1) = 3

Node 8 tidak perlu dievaluasi!

๐Ÿ“Š Efisiensi Alpha-Beta

Kondisi Kompleksitas Penjelasan
Worst case O(bm) Tidak ada pruning
Random order O(b3m/4) Pruning moderat
Perfect order O(bm/2) Pruning optimal!

๐ŸŽฏ Perfect ordering = kedalaman pencarian 2x lipat!

๐Ÿ“‹ Teknik Move Ordering

Untuk mendekati efisiensi optimal:

  1. Killer Move Heuristic - Simpan langkah yang menyebabkan cutoff
  2. History Heuristic - Lacak langkah yang sering sukses
  3. Iterative Deepening - Gunakan hasil pencarian dangkal
  4. Transposition Table - Cache hasil evaluasi

๐ŸŽฒ Expectiminimax

Expectiminimax adalah variasi Minimax untuk game stokastik dengan menambahkan "chance nodes".
Expectiminimax

๐ŸŽฏ Chance Nodes

Pada chance node, hitung expected value:

E[V] = ฮฃ P(r) ร— MINIMAX(Result(n, r))

โš ๏ธ Kelemahan:

Alpha-Beta kurang efektif karena chance nodes memerlukan semua children!

๐ŸŽ–๏ธ Aplikasi: Simulasi Pertahanan

Skenario: Defender vs Attacker dalam pertahanan pulau

  • Defender (MAX): Memilih posisi unit pertahanan
  • Attacker (MIN): Memilih jalur serangan
  • Utility: +1 jika pertahanan berhasil, -1 jika gagal

Minimax membantu menemukan strategi pertahanan optimal!

๐Ÿ” Aplikasi: Cyber Defense

Defender:

  • Pilih sistem untuk diperkuat
  • Alokasi sumber daya keamanan

Attacker:

  • Pilih target serangan
  • Memaksimalkan damage

๐Ÿ’ก Minimax memprediksi serangan rasional untuk proactive defense!

๐Ÿง  Quiz Time!

Pertanyaan 1:

Dalam zero-sum game, jika MAX mendapat utility +5, berapa utility MIN?

A. +5
B. 0
C. -5 โœ…
D. Tidak dapat ditentukan

๐Ÿ’ก Zero-sum: UMAX + UMIN = 0

๐Ÿง  Quiz Time!

Pertanyaan 2:

Kapan Alpha-Beta Pruning melakukan pruning pada MIN node?

A. Ketika nilai โ‰ฅ ฮฒ
B. Ketika nilai โ‰ค ฮฑ โœ…
C. Ketika ฮฑ = ฮฒ
D. Tidak pernah prune di MIN node

๐Ÿง  Quiz Time!

Pertanyaan 3:

Game Backgammon termasuk kategori:

A. Deterministik, Perfect Information
B. Stokastik, Perfect Information โœ…
C. Deterministik, Imperfect Information
D. Stokastik, Imperfect Information

๐Ÿ’ก Ada dadu (stokastik), tapi semua bidak terlihat (perfect info)

๐Ÿ“ Ringkasan

Konsep Poin Kunci
Adversarial Search Pencarian dengan lawan kompetitif
Zero-Sum UMAX + UMIN = 0
Minimax MAX maximizes, MIN minimizes
Kompleksitas O(bm) tanpa pruning
Alpha-Beta O(bm/2) dengan perfect ordering
Expectiminimax Untuk game dengan keacakan

๐Ÿ“… Pertemuan Berikutnya

Pertemuan 06: Constraint Satisfaction Problems

CSP dan Teknik Penyelesaiannya

  • Formulasi CSP: variabel, domain, constraint
  • Constraint Propagation (AC-3)
  • Backtracking Search dengan heuristik
  • Contoh: Map Coloring, Sudoku

๐Ÿ“š Referensi

  1. Russell, S. & Norvig, P. (2020). Artificial Intelligence: A Modern Approach (4th Ed.). Pearson. Chapter 5: Adversarial Search
  2. Ertel, W. (2017). Introduction to Artificial Intelligence (2nd Ed.). Springer. Chapter 6.
  3. CS188 Berkeley AI Materials: https://inst.eecs.berkeley.edu/~cs188/

Terima Kasih

๐Ÿค– Kecerdasan Artifisial

Pertemuan 05: Pencarian Adversarial - Game Playing


Ada pertanyaan?