• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI"

Copied!
20
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1 Permainan Reversi

Permainan Reversi adalah permainan yang dimainkan oleh dua orang pemain. Permainan ini dimainkan di atas papan Reversi persegi yang terdiri dari 8 baris dan 8 kolom kotak-kotak kecil. Peralatan lain yang dibutuhkan adalah koin berwarna gelap dan koin berwarna terang (umumnya warna hitam dan warna putih) masing-masing sebanyak 64 buah. Pada awal permainan akan diletakkan dua koin hitam dan dua koin putih pada tengah-tengah papan. Untuk lebih jelasnya, dapat dilihat pada Gambar 2.1.

(2)

2.1.1 Aturan Permainan Reversi

Aturan permainan Reversi secara umum adalah sebagai berikut:

1. Pemain yang menggunakan koin hitam akan bermain terlebih dahulu.

2. Bila pemain koin hitam yang akan bermain, maka koin hitam harus diletakkan di kotak yang dapat dilompati oleh koin hitam lainnya. Dan begitu juga kondisinya untuk pemain yang menggunakan koin putih. Gambar 2.2 memperlihatkan kondisi awal permainan Reversi.

Gambar 2.2 Kotak yang mungkin (giliran langkah hitam)

3. Apabila salah satu pemain tidak dapat bermain karena tidak ada kotak yang sesuai dengan aturan nomor 2, maka pemain yang satunya lagi yang bermain. 4. Apabila kedua pemain sama-sama tidak dapat mengambil langkah lagi, maka

permainan berakhir.

Permainan Reversi berakhir dengan beberapa kondisi sebagai berikut: 1. Semua kotak pada papan sudah penuh diisi koin-koin.

2. Belum semua kotak pada papan diisi tetapi koin-koin yang ada pada papan hanya tersisa koin-koin dalam 1 warna saja.

3. Kedua pemain setuju untuk mengakhiri permainan (bisa seri ataupun menyerah).

(3)

Pemenang pada permainan Reversi ditentukan dengan jumlah koin-koin yang ada pada papan permainan. Pemain dengan jumlah koin yang lebih banyak adalah pemenangnya. Jadi, pada permainan Reversi ini para pemain diharapkan dapat memikirkan strategi-strategi agar mendapatkan jumlah koin terbanyak pada akhir permainan.

2.2 Agen Cerdas

Perancangan aplikasi permainan Reversi pada komputer ini akan difokuskan kepada bagaimana membuat agen cerdasnya. Agen adalah sesuatu yang dapat mengesan lingkungannya melalui sensors dan mengambil tindakan terhadap lingkungannya melalui actuators. Dengan adanya agen cerdas pada aplikasi tersebut diharapkan aplikasi tersebut dapat berpikir dan menentukan pilihan langkah sehingga dapat mengalahkan manusia.

Gambar 2.3 Agen berinteraksi dengan lingkungan

Untuk setiap deretan persepsi yang mungkin, sebuah agen rasional hendaklah memilih satu tindakan yang diharapkan memaksimalkan ukuran kemampuannya, dengan adanya bukti yang diberikan oleh deretan persepsi dan apapun pengetahuan terpasang yang dimiliki agen itu. Jadi, agen rasional diharapkan dapat melakukan atau memberi tindakan yang benar. Tindakan yang benar adalah tindakan yang

(4)

menyebabkan agen mencapai tingkat yang paling berhasil. (Stuart Russel, Peter Norvig, 2003).

2.2.1 Struktur Agen Cerdas

Tugas dari mempelajari kecerdasan buatan adalah untuk membuat suatu mesin agen yang merupakan fungsi yang mengimplementasikan pemetaan agen saat menerima kesan dari lingkungan dan melakukan tindakan terhadap lingkungan. Sebuah agen juga membutuhkan architecture yang dapat berupa komputer saja, atau komputer yang memiliki perangkat keras tertentu dapat melakukan suatu pekerjaan tertentu seperti memproses gambar kamera atau menyaring input suara. Jadi, sebuah

architecture membuat kesan-kesan lingkungan dapat diterima dengan baik oleh

sensor-sensor yang dimilikinya, lalu dapat menjalankan program agennya dan dapat memberikan tindakan terhadap lingkungan menggunakan actuators. Hubungan agen,

architecture, dan program dapat diasumsikan sebagai berikut:

agen = architecture + program

Jadi, agen merupakan gabungan antara architecture dengan program yang fungsinya sudah dijelaskan sebelumnya.

Sebelum penulis membuat suatu agen, hendaknya penulis telah mengetahui dengan baik semua kemungkinan kesan dan tindakan yang dapat diterima dan dilakukan oleh agen, apa tujuan atau pengukur kemampuan agen yang ingin dicapai, dan lingkungan yang seperti apa yang akan dioperasikan oleh agen.

(5)

Tabel 2.1 Contoh Tipe Agen dengan Kesan, Tindakan, Tujuan dan Lingkungan

Jenis Agen Kesan Aksi Tujuan Lingkungan

Sistem diagnosa kesehatan Gejala, jawaban pasien Pertanyaan, ujian, perawatan Kesehatan pasien, harga minimal Pasien, rumah sakit Sistem analisa gambar satelit Pixel-pixel dengan intensitas yang variatif, warna Cetak penggolongan tempat Memperbaiki intensitas pixel Gambar-gambar dari satelit Robot pengangkat barang bagian Pixel-pixel dengan intensitas yang variatif Angkat barang bagian dan masukkan ke dalam keranjang Meletakkan barang bagian ke dalam keranjang yang benar Alat pengangkat barang dengan barang bagian Pengendali kulkas Suhu, pembaca tekanan

Buka dan tutup katup, pengaturan suhu Memaksimalkan kebersihan, hasil dan kesehatan Kulkas Pengajar bahasa Inggris interaktif Kata-kata yang diketik Cetak latihan, himbauan, koreksi Memaksimalkan nilai murid saat ujian

Kumpulan murid-murdi

Tabel 2.1 menunjukkan beberapa contoh tipe agen dengan kesan, tindakan, tujuan dan lingkunganya. Misalnya untuk agen pengajar bahasa Inggris interaktif, agen tersebut menerima kesan berupa kata-kata yang diketik dalam komputer, kemudian akan memberikan tindakan yaitu mencetak latihan-latihan, himbauan-himbauan dan melakukan penilaian. Tujuan dari agen pengajar bahasa Inggris interaktif adalah memaksimalkan nilai dari latihan-latihan para murid karena lingkungan dari agen ini adalah kumpulan dari murid-murid.

Untuk pembuatan agen cerdas, ada empat tipe agen yang dapat mengimplementasikan pemetaan dari kesan yang diterima ke tindakan yang akan dilakukan. Empat tipe agen tersebut adalah simple reflex agents, model-based reflex

agents, goal-based reflex agents, dan utility-based reflex agents.(Stuart Russel, Peter Norvig, 2003).

(6)

2.2.1.1 Simple Reflex Agents

Agen refleks sederhana merupakan agen yang paling sederhana karena dia hanya menerapkan teknik kondisi-aksi. Jadi, jika terjadi suatu kondisi tertentu maka agen akan secara sederhana memberikan aksi tertentu. Sebagai contoh agen untuk pengendara taxi diberikan kondisi “jika mobil di depan melakukan pengereman” maka agen akan memberikan aksi “injak rem”.

Gambar 2.4 Agen refleks sederhana

2.2.1.2 Model-Based Reflex Agents

Agen refleks sederhana dapat melakukan tindakannya dengan baik jika lingkungan yang memberikan kesan tidak berubah-ubah. Misalkan untuk kasus agen pengendara taxi, agen tersebut hanya dapat menerima kesan dari mobil dengan model terbaru saja. Jika ada mobil dengan model lama, agen tersebut tidak dapat menerima kesannya sehingga agen tersebut tidak melakukan tindakan pengereman. Pada kasus ini, dibutuhkan agen refleks berbasis model yang dapat terus melakukan pelacakan terhadap lingkungan sehingga lingkungan dapat dikesan dengan baik. Agen ini akan menambahkan suatu model tentang dunia yaitu pengetahuan tentang bagaimana

(7)

dunianya bekerja. Jadi, agen refleks berbasis model ini menjaga keadaan dunianya menggunakan model internal kemudian memilih tindakan seperti agen refleks sederhana.

Gambar 2.5 Agen refleks berbasis model

2.2.1.3 Goal-Based Agents

Pengetahuan agen akan keseluruhan keadaan pada lingkungan tidak selalu cukup. Suatu agen tertentu harus diberikan informasi tentang tujuan yang merupakan keadaan yang ingin dicapai oleh agen. Dengan demikian, agen akan bekerja hingga mencapai tujuannya. Pencarian dan perencanaan adalah dua deretan pekerjaan yang dilakukan untuk mencapai tujuan agen. Agen refleks berbasis tujuan ini menambahkan informasi tentang tujuan tersebut.

(8)

Gambar 2.6 Agen refleks berbasis tujuan

2.2.1.4 Utility-Based Agents

Pencapaian tujuan pada agen tidak cukup untuk menghasilkan agen dengan tingkah laku berkualitas tinggi. Sebagai contoh untuk agen pengendara taxi, ada beberapa tindakan yang dapat dilakukan oleh agen sehingga dapat mencapai tempat tujuan, namun ada yang lebih cepat, lebih aman, atau lebih murah dari yang lainnya. Agen refleks berbasis tujuan tidak membedakan keadaan yang bagus dengan keadaan yang tidak bagus untuk agen.

Pada agen refleks berbasis kegunaan ini memikirkan kondisi yang bagus untuk agen sehingga agen dapat melakukan tugasnya jauh lebih baik. Walaupun untuk kasus tertentu, tidak mungkin agen dapat melakukan semuanya sekaligus. Misalnya untuk agen pengendara taxi, untuk pergi ke suatu tempat tujuan dengan lebih cepat, itu bertentangan dengan keadaan lebih aman. Karena untuk perjalanan taxi yang lebih cepat, tentu saja tingkat bahaya lebih tinggi dari pada perjalanan taxi yang santai.

(9)

Gambar 2.7 Agen refleks berbasis kegunaan

2.2.2 Karakteristik Lingkungan Agen

Adapun beberapa karakteristik lingkungan yang dikenal oleh agen adalah sebagai berikut:

1. Fully observable – partially observable

Apabila sensor pada sebuah agen dapat mengakses keseluruhan keadaan pada lingkungan, maka lingkungan itu dapat dikatakan fully observable terhadap agen. Lebih efektif lagi lingkungan dikatakan fully observable jika sensor dapat mendeteksi seluruh aspek yang berhubungan dengan pilihan aksi yang akan dilakukan. Lingkungan yang fully observable biasanya sangat memudahkan, karena agen tidak perlu mengurus keadaan internal untuk terus melacak keadaan lingkungan. Suatu lingkungan bisa menjadi partially

observable akibat ada gangguan dan ketidakakurasian sensor ataupun karena

ada bagian keadaan yang hilang dari data sensor. Permainan Reversi bersifat

fully observable karena seluruh keadaan pada papan permainan dan koin-koin

(10)

2. Deterministic – stochastic

Apabila keadaan lingkungan selanjutnya sepenuhnya bergantung pada keadaan sekarang dan juga tindakan yang akan dilakukan oleh agen, maka lingkungan tersebut bersifat deterministic. Sedangkan stochastic adalah kebalikan dari

deterministic, di mana keadaan selanjutnya tidak bergantung pada keadaan

sekarang dan juga tindakan yang akan dilakukan oleh agen. Apabila lingkungan bersifat deterministic terkecuali untuk tindakan dari agen, maka lingkungan tersebut bersifat strategic. Permainan Reversi bersifat deterministic karena keadaan selanjutnya bergantung pada keadaan sekarang (saat mengambil langkah).

3. Episodic – sequential

Untuk lingkungan yang bersifat episodic, pengalaman agen dibagi-bagi menjadi beberapa epidose pendek. Tiap episode terdiri dari apa yang dirasakan agen dan kemudian melakukan satu tindakan tertentu. Kualitas dari tindakan agen hanya tergantung pada episode itu saja, karena tindakan selanjutnya tidak tergantung pada tindakan apa yang akan dilakukan di episode sebelumnya. Lingkungan episodic lebih sederhana karena agen tidak perlu memikirkan langkah-langkah pada keadaan selanjutnya. Sedangkan pada lingkungan

sequential, tindakan saat sekarang dapat mempengaruhi tindakan selanjutnya.

Permainan Reversi bersifat sequential karena agen berpikir untuk langkah-langkah selanjutnya dan seluruh langkah-langkah yang akan diambil oleh agen saling bergantung.

4. Static – dynamic

Apabila lingkungan dapat berubah saat agen sedang mengambil keputusan, maka lingungan tersebut bersifat dynamic, sebaliknya bersifat static. Lingkungan yang bersifat static lebih mudah dihadapi karena agen tidak perlu memperhatikan lingkungannya saat dia sedang mengambil tindakan, maupun waktu yang terus berjalan. Apabila lingkungan tidak berubah seiring waktu berjalan, namun menyebabkan nilai kemampuan agen berubah-ubah, maka lingkungan tersebut bersifat semidynamic. Permainan Reversi bersifat static karena saat agen mengambil tindakan, lingkungan tidak berubah dan juga tidak mempengaruhi nilai kemampuan agen.

(11)

Apabila kesan dan tindakan yang akan diterima dan dilakukan oleh agen telah ditetapkan dengan jelas, maka lingkungan tersebut bersifat discrete. Catur bersifat discrete, karena langkah yang akan diambil terbatas dan tertentu. Sedangkan pengendara taxi bersifat continuous, karena kecepatan dan lokasi pada taxi untuk suatu jangka tertentu mempunyai nilai yang terus-menerus berubah. Permainan Reversi bersifat discrete karena seluruh kesan dan tindakan telah jelas ditetapkan sesuai dengan peraturan permainan Reversi. 6. Single agent – multiagent

Agen pemecah permainan teka teki silang berada pada lingkungan yang bersifat single agent. Agen pemain catur berada pada lingkungan yang bersifat

multiagent. Ada hal lain yang memberikan perbedaan lingkungan agen, yaitu

akan hal apakah agen memberikan bantuan kepada agen lain atau apakah agen akan memaksimalkan kemampuannya bergantung pada prilaku agen lain. Permainan Reversi bersifat multiagent karena memikirkan langkah yang akan diambil oleh lawan.

Dengan memahami karakteristik lingkungan pada agen cerdas yang akan dirancang, maka pembuatan agen cerdas dapat dilakukan dengan lebih baik. Tabel 2.1 menunjukkan beberapa contoh lingkungan dan karakteristik agen.

(12)

Tabel 2.2 Contoh Lingkungan dan Karakteristiknya

Lingkungan Fully

Observable Deterministic Episodic Static Discrete

Single Agent

Catur dengan jam Ya Ya Tidak Semi Ya Tidak

Catur tanpa jam Ya Ya Tidak Ya Ya Tidak

Poker Tidak Tidak Tidak Ya Ya Tidak

Backgammon Ya Tidak Tidak Ya Ya Tidak

Pengendara taxi Tidak Tidak Tidak Tidak Tidak Tidak

Sistem diagnosa kesehatan Tidak Tidak Tidak Tidak Tidak Ya

Sistem analisa gambar Ya Ya Ya Semi Tidak Ya

Robot pengangkat barang bagian Tidak Tidak Ya Tidak Tidak Ya

Pengendali kulkas Tidak Tidak Tidak Tidak Tidak Ya

Pengajar bahasa Inggris Interaktif Tidak Tidak Tidak Tidak Ya Tidak

Reversi Ya Ya Tidak Ya Ya Tidak

2.3 Pohon Permainan

Sebuah pohon permainan merepresentasikan kepada penulis kondisi-kondisi yang mungkin penulis hadapi pada permainan dimulai dari kondisi yang sedang penulis hadapi sekarang hingga beberapa kondisi ke depan. Sebuah pohon permainan merupakan representasi grafis dari contoh permainan. Pohon permainan menyediakan informasi akan pemain, hasil, strategi, dan pilihan langkah.

Pohon permainan dapat direpresentasikan dengan sangat baik untuk permainan yang dimainkan oleh dua pemain. Pohon permainan memiliki root yang merupakan representasi dari kondisi di mana langkah belum diambil, nodes pada pohon yang merepresentasikan keadaan-keadaan yang mungkin diambil pada permainan, dan arcs yang merepresentasikan langkah.

Penggunaan pohon permainan pada permainan yang dimainkan oleh dua pemain direpresentasikan dengan cara berselingan. Untuk edges dari tingkat pertama ke tingkat kedua merepresentasikan langkah-langkah yang dapat diambil oleh pemain pertama, sedangkan untuk edges dari tingkat kedua ke tingkat ketiga merepresentasikan langkah-langkah yang dapat diambil oleh pemain kedua, dan begitu seterusnya.

Leaf nodes pada pohon permainan merepresentasikan keadaan akhir pada

permainan, di mana permainan tersebut dimenangkan, dikalahkan ataupun seri. Pada permainan yang sederhana, untuk mencapai leaf nodes mungkin dapat

(13)

direpresentasikan, tetapi untuk permainan yang rumit seperti Catur atau Reversi, pencapaian leaf nodes sangat tidak dimungkinkan karena percabangan pada pohon permainan yang sangat besar.

Gambar 2.8 Pohon permainan Tic-Tac-Toe (Ben Coppin, 2004)

Berikut adalah penjelasan pohon permainan tic-tac-toe pada Gambar 2.8: 1. Terdapat root yang merupakan keadaan awal di mana permainan belum

dimulai dan langkah belum diambil.

2. Edges yang menghubungkan tingkat pertama (root) dengan tingkat kedua merupakan langkah pemain pertama dan begitu seterusnya. Sehingga pohon permainan tersebut merepresentasikan langkah kedua pemain secara berselingan.

3. Untuk nodes pada pohon tersebut merepresentasikan keadaan-keadaan yang dapat diambil oleh pemain yang akan melangkah.

4. Percabangan pertama yang dihasilkan adalah 9, kemudian untuk percabangan berikutnya adalah 8, dan begitu seterusnya hingga mencapai keadaan akhir (leaf nodes).

(14)

Pada aplikasi permainan Reversi yang akan dirancang, permainan tersebut tidak memiliki unsur kemungkinan atau kesempatan pada permainan dan semua pengetahuan akan keadaan permainan tersebut diketahui secara keseluruhan, artinya pemain tidak dapat menyimpan suatu informasi agar pemain lawan tidak mengetahuinya (terkecuali untuk strategi).

Aplikasi permainan Reversi yang akan dirancang berbasis zero-sum, artinya pendapatan poin untuk pemain yang satu, merupakan kehilangan poin untuk pemain yang satunya lagi. Apabila pemain yang satu menang, maka pemain yang satunya lagi kalah. Kemungkinan lainnya hanya seri.

2.4 Algoritma Pencarian (Penelusuran)

Penulis telah mengetahui apa itu pohon permainan, namun penulis belum mengetahui bagaimana cara yang baik untuk menelusuri pohon permainan tersebut sehingga mendapatkan nilai-nilai dari pohon permainan tersebut. Di sini penulis akan menganalisa dua algoritma pencarian pada pohon permainan yaitu Depth-First Search dan Breadth-First Search.

2.4.1 Depth-First Search

Depth-First Search (DFS) merupakan algoritma pencarian yang paling umum digunakan. DFS akan melakukan pencarian pada pohon dengan cara menelusuri suatu jalur tertentu hingga mencapai kedalaman yang paling akhir (leaf node) terlebih dahulu sebelum melanjutkan ke jalur selanjutnya. Jika DFS telah mencapai leaf node tetapi belum menemukan goal state maka DFS akan melakukan proses backtrack ke

node teratas yang belum pernah ditelusuri. Penelusuran pada pohon permainan akan

dilakukan hingga DFS menemukan goal state atau telah selesai menelusuri keseluruhan pohon permainan. Pada Gambar 2.9 mengilustrasikan tentang bagaimana cara kerja algoritma DFS.

(15)

Gambar 2.9 Penelusuran pohon permainan dengan DFS (Ben Coppin, 2004)

Pada Gambar 2.9 dapat diketahui bahwa proses penelusuran DFS dimulai dari A-B-D-G-D-H-D-B-A-C-E-I-J. A merupakan root yang menandakan keadaan belum diambil, lalu ditelusuri hingga kedalaman yang paling dalam sebelah kiri yaitu G, lalu melakukan proses backtrack ke D lalu lanjut lagi ke H. Proses tersebut berhenti karena telah mencapai goal state yaitu leaf node G.

Langkah-langkah cara kerja algoritma DFS adalah sebagai berikut: 1. Masukkan root ke dalam struktur data tumpukan (stack).

2. Ambil simpul dari tumpukan teratas, dan diperiksa apakah simpul merupakan solusi.

3. Jika simpul merupakan solusi, maka pencarian selesai dan hasil dikembalikan. 4. Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan

simpul tersebut ke dalam tumpukan.

5. Jika tumpukan kosong dan setiap simpul sudah ditelusuri, pencarian selesai dan solusi tidak ditemukan.

(16)

Untuk pencarian pada pohon yang memiliki kedalaman yang sangat dalam ataupun hampir tak terhingga, algoritma DFS tidak bekerja dengan baik karena solusi bisa jadi tidak ditemukan, dan apabila ditemukan pasti membutuhkan waktu operasi yang sangat lama. Namun algoritma DFS, bisa lebih cepat menemukan solusi secara kebetulan apabila jalur yang ditelusuri pertama kali merupakan jalur menuju solusi pada pohon tersebut.

Kompleksitas dalam kondisi terburuk pada algoritma DFS adalah O(bm) dengan keterangan b merupakan unsur percabangan pada pohon dan m merupakan tingkat kedalaman yang ada pada pohon permainan. Sedangkan kompleksitas untuk kondisi terbaik pada algoritma DFS adalah O(1), dengan kondisi pencarian simpul pertama langsung menemukan solusi.

2.4.2 Breadth-First Search

Alternatif lain untuk algoritma pencarian adalah Breadth-First Search (BFS). Seperti namanya, algoritma ini lebih mendahulukan pencarian cabang daripada pencarian kedalaman. Jadi, pencarian akan dilakukan dari tingkat n dan akan lanjut ke tingkat n+1 jika dan hanya jika tingkat n telah ditelusuri seluruhnya.

(17)

Gambar 2.10 Penelusuran pohon permainan dengan BFS (Ben Coppin, 2004)

Penelusuran pada Gambar 2.10 dimulai dari A-B-C-D-E-F-G-H-I-J di mana A merupakan kedaaan awal dan mencapai J yang merupakan keadaan tujuan. Dapat diketahui dengan jelas bahwa penelusuran BFS dilakukan secara tingkat ke tingkat pada pohon permainan.

Langkah-langkah cara kerja algoritma BFS adalah sebagai berikut: 1. Masukkan root ke dalam struktur data antrean (queue).

2. Ambil simpul dari awal antrean, lalu periksa apakah simpul merupakan solusi. 3. Jika simpul merupakan solusi, maka pencarian selesai dan nilai dikembalikan. 4. Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan

simpul tersebut ke dalam antrean.

5. Jika antrean kosong dan setiap simpul sudah ditelusuri, maka pencarian selesai dan solusi tidak ditemukan.

6. Ulangi pencarian dari poin kedua.

Untuk pencarian pada pohon yang mempunyai tingkat kedalaman yang sangat dalam, algoritma BFS dapat berjalan dengan baik dibanding DFS. Apabila terdapat

(18)

beberapa solusi dalam pohon, maka algoritma BFS akan menemukan solusi terpendek (shortest path).

Kompleksitas dalam kondisi terburuk untuk algoritma BFS adalah O(bd) dengan keterangan b merupakan unsur percabangan pada pohon dan d merupakan tingkat kedalaman yang dicapai BFS saat menemukan solusi. Sedangka n kompleksitas untuk kondisi terbaik pada algoritma BFS adalah O(1), dengan kondisi pencarian simpul pertama langsung menemukan solusi.

2.5 Algoritma Minimax

Algoritma Minimax merupakan algoritma yang digunakan untuk menentukan pilihan agar memperkecil kemungkinan kehilangan nilai maksimal. Algoritma ini diterapkan dalam permainan yang melibatkan dua pemain dan permainan tersebut menggunakan strategi dan logika. Hal ini berarti permainan-permainan tersebut dapat dijelaskan sebagai suatu rangkaian aturan.

Algoritma ini mulai dikembangkan dari teori game yang berbasis zero-sum. Teori ini mendeskripsikan situasi di mana jika terdapat pemain yang mengalami pendapatan, pemain lain akan mengalami kehilangan dengan niali yang sama dari pendaptan tersebut, dan sebaliknya. Jumlah pendapatan dari pemain yang dikurangi dengan jumlah kehilangan akan berjumlah nol. Teori Minimax menyatakan bahwa untuk setiap dua orang pemain dalam permainan berbasis zero-sum, terdapat nilai V dari strategi yang dimiliki pemain seperti:

1. Strategi yang ditentukan pemain kedua akan menghasilkan konsekuensi kemungkinan untuk pemain pertama, V.

2. Strategi yang ditentukan pemain pertama akan menghasilkan konsekuensi kemungkinan untuk pemain kedua, -V.

Secara setara, strategi pemain pertama akan memastikan suatu nilai V tanpa memperdulikan strategi pemain kedua, dan bersamaan dengan itu pemain kedua akan memastikan dirinya kehilangan nilai sebesar –V.

(19)

Algortima Minimax dapat menghasilkan pilihan langkah yang baik dengan mengasumsikan bahwa pemain lawan akan selalu memilih langkah terbaik untuk dirinya dan langkah terburuk bagi komputer. Prinsip dasar pada algoritma Minimax ini adalah jalur yang akan dipilih oleh komputer merupakan jalur maksimum (max

node) yang akan menghasilkan nilai maksimum di jalur tersebut, dan saat lawan yang

akan bermain akan meminimalkan (min node) nilai komputer. Jadi, komputer bertujuan untuk memaksimalkan kemungkinan nilai paling rendah yang akan diperoleh komputer.

Algoritma Minimax merupakan algoritma dasar pencarian DFS untuk melakukan traversal dalam pohon. DFS akan mengekspansi simpul paling dalam terlebih dahulu. Setelah simpul akar dibangkitkan, algoritma ini akan membangkitkan simpul pada tingkat kedua, yang akan dilanjutkan pada tingkat ketiga, dst. Dalam melakukan traversal, misalkan dimulai dari suatu simpul i, maka simpul selanjutnya yang akan dikunjungi adalah simpul tetangga j, yang bertetangga dengan simpul k, selanjutnya pencarian dimulai lagi secara rekursif dari simpul j. Ketika telah mencapai simpul m, di mana semua simpul yang bertetangga dengannya telah dikunjungi, pencarian akan dirunutbalik ke simpul terakhir yang dikunjungi sebelumnya dan mempunyai simpul j yang belum dikunjungi. Selanjutnya pencarian dimulai kembali dari j. Ketika tidak ada lagi simpul yang belum dikunjungi yang dapat dicapai dari simpul yang telah dikunjungi maka pencarian selesai. Untuk proses dan cara kerja algoritma yang lebih jelasnya lagi, dapat dilihat pada Gambar 2.11 yang merepresentasikan cara kerja algoritma Minimax.

(20)

Gambar 2.11 Illustrasi cara kerja algoritma Minimax (Ben Coppin, 2004)

Dari Gambar 2.11, proses pencarian dimulai dari jalur paling kiri terlebih dahulu, sehingga DFS akan menelusuri simpul paling kiri bawah yaitu 5. Nilai 5 disimpan sebagai nilai maksimum sementara karena berada di tingkat max, kemudian DFS melakukan backtrack dan menelusuri simpul yang bertetangga dengan simpul 5 yaitu simpul 2. Karena nilai 5 lebih besar dari nilai 2, maka nilai 2 tidak disimpan. Lalu DFS akan melakukan backtrack ke tingkat min sehingga nilai 5 yang diperoleh akan disimpan sebagai nilai minimum sementara. Untuk simpul 1 dan 3, nilai 3 yang akan disimpan karena merupakan nilai maksimum di tingkat max. Saat mencapai tingkat min, sudah ada nilai minimum sementara yaitu 5, namun karena nilai 3 lebih kecil daripada nilai 5, maka nilai 5 akan digantikan dengan nilai 3. Nilai 3 akan disimpan sebagai nilai maksimum sementara di tingkat paling atas karena merupakan tingkat max. Lalu penelusuran jalur kanan akan dilakukan dengan cara yang sama seperti penelusuran jalur kiri sehingga diperoleh nilai 6. Karena nilai maksimum sementara pada tingkat paling atas adalah nilai 3, maka nilai 3 akan digantikan dengan nilai 6 karena nilai 6 lebih besar daripada nilai 3. Dengan demikian, jalur yang akan dipilih menggunakan algoritma Minimax adalah jalur sebelah kanan karena untuk kondisi terburuknya, penulis akan mendapatkan nilai 6 sedangkan jika penulis memilih jalur kiri, penulis hanya akan mendapatkan nilai 3.

Gambar

Gambar 2.1 Keadaan awal permainan Reversi
Gambar 2.2 Kotak yang mungkin (giliran langkah hitam)
Gambar 2.3 Agen berinteraksi dengan lingkungan
Tabel 2.1 Contoh Tipe Agen dengan Kesan, Tindakan, Tujuan dan Lingkungan
+7

Referensi

Dokumen terkait

Algoritma Pencarian Linear ( Linear Search ) adalah algoritma yang digunakan untuk mencari nilai pada sebuah array atau daftar nilai dengan cara memeriksa satu per satu [9]..

Algoritma genetik adalah suatu algoritma pencarian yang berbasis pada mekanisme seleksi alam dan genetika. Algoritma genetik merupakan salah satu algoritma yang sangat tepat

Algoritma adalah urutan langkah-langkah logis untuk penyelesaian masalah yang disusun secara sistematis, jadi algoritma kriptografi atau sering disebut dengan cipher

Sebuah algoritma Monte Carlo merupakan metode Monte Carlo yang digunakan untuk mencari solusi dari permasalahan matematik (yang mungkin memiliki banyak variabel) yang tidak

Exhaustive search merupakan teknik pencarian solusi secara brute force pada masalah yang melibatkan pencarian elemen dengan sifat khusus, biasanya di antara objek- objek

DFS (Deep First Search) adalah algoritma yang mencari solusi dengan mengutamakan kedalaman, berarti bahwa pencarian akan terus dilanjutkan sedalam mungkin sampai

Dalam metode pencarian baik yang BFS maupun DFS memiliki algoritma yang berbeda. Pada algoritma DFS adalah algoritma yang melakukan penelusuran dengan

Algoritma A* akan terus mencari sampai titik tujuan yang memiliki nilai f lebih rendah dengan menggunakan nilai heuristik untuk mempersempit ruang pencarian