Pencarian Adversarial
Implementasi Minimax & Alpha-Beta Pruning pada permainan Checkers
Minimax Algorithm
Minimax adalah algoritma pencarian pada game tree untuk menentukan langkah optimal dalam permainan dua agen zero-sum. Pemain MAX berusaha memaksimalkan skor, sementara pemain MIN berusaha meminimalkan skor. Algoritma menelusuri seluruh game tree hingga kedalaman yang ditentukan, lalu memilih langkah dengan nilai tertinggi.
minimax(board, depth, isMax):
if depth == 0 or terminal:
return evaluate(board)
if isMax:
best = -infinity
for each move:
best = max(best, minimax(..., false))
return best
else:
best = +infinity
for each move:
best = min(best, minimax(..., true))
return best
Alpha-Beta Pruning
Alpha-Beta Pruning adalah optimasi Minimax yang memangkas cabang game tree yang tidak akan memengaruhi hasil akhir. Alpha menyimpan nilai terbaik untuk MAX, Beta menyimpan nilai terbaik untuk MIN. Jika Beta lebih kecil atau sama dengan Alpha, cabang tersebut dipangkas dan tidak dieksplorasi lebih lanjut.
alphabeta(board, depth, alpha, beta, isMax):
if depth == 0 or terminal:
return evaluate(board)
if isMax:
for each move:
alpha = max(alpha, alphabeta(...))
if beta <= alpha: break
return alpha
else:
for each move:
beta = min(beta, alphabeta(...))
if beta <= alpha: break
return beta
Cara Bermain
- Piece merah dikendalikan oleh pemain (Human)
- Piece putih dikendalikan oleh AI
- Klik piece untuk memilih, klik kotak tujuan untuk bergerak
- Capture bersifat wajib jika tersedia
- Piece yang mencapai baris ujung lawan menjadi King
- King dapat bergerak maju dan mundur
- Menang jika semua piece lawan habis atau tidak bisa bergerak
Tentang Project
- Mata Kuliah: Kecerdasan Buatan
- Program Studi: Teknik Informatika
- Universitas: Universitas Bale Bandung
- Dosen: Mohammad Bayu Anggara, S.Kom., M.Kom.
- NIM: 301240041
- Nama: Selsa Shafana Alfiyani
- Kelas: 4B