Back to IF3170 Inteligensi Artifisial

Topic

Questions/Cues

  • Apa itu Pencarian Adversarial?

  • Bedanya dengan pencarian biasa?

  • Apa saja komponen formalnya?

  • Bagaimana game direpresentasikan?

  • Apa itu fungsi utilitas?

Reference Points

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

Definisi Pencarian Adversarial

Pencarian Adversarial adalah sebuah metode pencarian yang digunakan dalam lingkungan multi-agen yang kompetitif, di mana tujuan satu agen berlawanan langsung dengan tujuan agen lain. Lingkungan ini sering disebut sebagai “permainan” (games).

Berbeda dengan pencarian non-adversarial (seperti A* atau BFS) yang tujuannya adalah menemukan jalur optimal ke sebuah goal state, tujuan dari pencarian adversarial adalah untuk menemukan strategi atau kebijakan (policy) yang akan membawa agen ke kemenangan, dengan asumsi lawan juga bermain secara optimal untuk menang.

Karakteristik utama dari game yang dibahas di sini adalah:

  • Deterministik: Tidak ada elemen acak (seperti lemparan dadu).

  • Turn-taking: Pemain bergerak secara bergiliran.

  • Informasi Sempurna (Fully Observable): Semua pemain dapat melihat seluruh state permainan (misalnya, papan catur terlihat oleh kedua pemain).

Sebuah masalah pencarian dalam game dapat didefinisikan secara formal dengan beberapa komponen:

  1. Initial State: Konfigurasi awal permainan saat dimulai.

  2. Player(s): Menentukan pemain mana yang akan bergerak pada state tertentu.

  3. Action(s)(s): Kumpulan langkah (moves) yang legal dari sebuah state s.

  4. Result(s, a): State transisi yang dihasilkan setelah pemain melakukan aksi a dari state s.

  5. Terminal Test(s): Sebuah fungsi yang menentukan apakah permainan telah berakhir (menang, kalah, atau seri). State di mana permainan berakhir disebut terminal state.

  6. Utility(s, p): Sebuah fungsi yang memberikan nilai numerik (skor) untuk pemain p pada terminal state s. Nilai ini merepresentasikan hasil akhir dari permainan. Sebagai contoh:

  • +1: Pemain p menang.

  • -1: Pemain p kalah.

  • 0: Permainan berakhir seri.

Representasi Game: Game Tree

Seluruh kemungkinan jalannya sebuah permainan dapat direpresentasikan menggunakan sebuah struktur data yang disebut Game Tree (Pohon Permainan).

  • Nodes (Simpul): Merepresentasikan state atau konfigurasi permainan. Simpul akar (root) adalah initial state.

  • Edges (Sisi): Merepresentasikan langkah atau aksi (moves) yang mungkin dari satu state ke state lainnya.

  • Leaves (Daun): Merepresentasikan terminal states, yaitu akhir dari permainan. Setiap daun memiliki nilai utilitas yang terkait dengannya.

Dalam permainan dua pemain seperti catur atau tic-tac-toe, kita sering menamai pemain sebagai MAX dan MIN. MAX adalah pemain yang berusaha memaksimalkan skor utilitas, sementara MIN berusaha meminimalkan skor utilitas. Level-level pada game tree akan bergantian antara giliran MAX dan MIN.

Summary

Pencarian Adversarial adalah sebuah pendekatan untuk pengambilan keputusan dalam lingkungan kompetitif (game) dengan merepresentasikannya sebagai sebuah Game Tree, di mana setiap simpul adalah keadaan permainan dan setiap sisi adalah langkah yang mungkin. Tujuannya bukan untuk mencari path, melainkan untuk menentukan strategi optimal dengan menganalisis hasil akhir permainan (terminal states) yang memiliki nilai utilitas, dengan asumsi bahwa lawan juga akan selalu mengambil langkah terbaik untuk kepentingannya sendiri.

Summary

Adversarial Search digunakan untuk menemukan strategi optimal dalam permainan kompetitif dengan memodelkannya sebagai game tree. Algoritma Minimax menjadi dasarnya, dengan cara melakukan backup nilai dari akhir permainan untuk memilih langkah yang memaksimalkan keuntungan (MAX) sambil mengasumsikan lawan akan meminimalkan keuntungan tersebut (MIN). Karena Minimax memiliki kompleksitas eksponensial, optimisasi krusial seperti Alpha-Beta Pruning sangat penting untuk memangkas cabang pohon yang tidak relevan, membuat pencarian menjadi jauh lebih efisien tanpa mengubah kualitas keputusan.