Tugas Individu Ai

10
TUGAS INDIVIDU AI AI201401-T01-TI-2012100031-Pradita Chandra Kurniawan Adversarial Search adalah salah satu teknik pencarian node di dalam tree yang digunakan untuk Artificial Intelligence. Adversarial Search akan mencari solusi dari langkah yang akan digunakan oleh komputer berdasarkan data di dalam setiap node. Gambar di atas merupakan salah satu contoh dari penggunaan adversarial search minimax untuk menentukan langkah terbaik yang harus digunakan untuk memenangkan game Tic-Tac-Toe

description

Tugas Individu

Transcript of Tugas Individu Ai

TUGAS INDIVIDU AIAI201401-T01-TI-2012100031-Pradita Chandra Kurniawan

Adversarial Search adalah salah satu teknik pencarian node di dalam tree yang digunakan untuk Artificial Intelligence. Adversarial Search akan mencari solusi dari langkah yang akan digunakan oleh komputer berdasarkan data di dalam setiap node.

Gambar di atas merupakan salah satu contoh dari penggunaan adversarial search minimax untuk menentukan langkah terbaik yang harus digunakan untuk memenangkan game Tic-Tac-Toe

Algoritma minimax merupakan basis dari semua permainan berbasis AI seperti permainan catur misalnya. AI permainan catur tentunya sudah sangat terkenal dimana AI tersebut bahkan dapat mengalahkan juara dunia sekalipun. Pada algoritma minimax, pengecekan akan seluruh kemungkinan yang ada sampai akhir permainan dilakukan. Pengecekan tersebut akan menghasilkan pohon permainan yang berisi semua kemungkinan tersebut. Tentunya dibutuhkan resource yang berskala besar untuk menangani komputasi pencarian pohon solusi tersebut berhubung kombinasi kemungkinan untuk sebuah permainan catur pada setiap geraknya sangat banyak sekali. Keuntungan yang didapat dengan menggunakan algoritma minimax yaitu algoritma minimax mampu menganalisis segala kemungkinan posisi permainan untuk menghasilkan keputusan yang terbaik karena algoritma minimax ini bekerja secara rekursif dengan mencari langkah yang akan membuat lawan mengalami kerugian minimum. Semua strategi lawan akan dihitung dengan algoritma yang sama dan seterusnya. Ini berarti, pada langkah pertama komputer akan menganalisis seluruh pohon permainan. Dan untuk setiap langkahnya, komputer akan memilih langkah yang paling membuat lawan mendapatkan keuntungan minimum, dan yang paling membuat komputer itu sendiri mendapatkan keuntungan maksimum. Dalam penentuan keputusan tersebut dibutuhkan suatu nilai yang merepresentasikan kerugian atau keuntungan yang akan diperoleh jika langkah tersebut dipilih. Untuk itulah disini digunakan sebuah fungsi heurisitic untuk mengevaluasi nilai sebagai nilai yang merepresentasikan hasil permainan yang akan terjadi jika langkah tersebut dipilih. Biasanya pada permainan tic tac toe ini digunakan nilai 1,0,-1 untuk mewakilkan hasil akhir permainan berupa menang, seri, dan kalah. Dari nilai-nilai heuristic inilah komputer akan menentukan simpul mana dari pohon permainan yang akan dipilih, tentunya simpul yang akan dipilih tersebut adalah simpul dengan nilai heuristic yang akan menuntun permainan ke hasil akhir yang menguntungkan bagi komputer.Algoritma minimaxmerupakan algoritma yangditerapkan dalamgameyang melibatkan dua pemain yang saling bergantian,sepertitic-tac-toe,chess,go,othellodangameyang menggunakan strategi atau logika lainnya(Wijaya, 2010). Persamaan antara semuagametersebut yaitu semua merupakangamelogikadangamedengan informasi yang lengkap. Ini berarti bahwagamemerupakan sekumpulan aturan maindan dasar pemikiran yang logis. Adanya aturan main dan dasar pemikiran yang logis tersebut, maka nantinyasetiap pemaindapatmengetahui semua langkah yang mungkin dari pemain lawannya, sehingga pemain bisa tetap memantau kondisi permainan sewaktugamesedang berlangsung(Akbar, 2011).Algoritma minimax merupakan salah satu algoritma yang sering digunakan untukgamekecerdasan buatan yang menggunakan teknikdepth first search(DFS) dalam pencariannya pada pohondengan kedalaman terbatas (Kusumadewi, 2003).Algoritma minimax digunakan untuk memilih langkah terbaik, dimana kedua pemain akan saling berusaha untukmemenangkan permainan. Selain itu, algoritma minimax ini bekerja secara rekursif dengan mencari langkah yang akan membuat lawan mengalami kerugian minimum.Algoritmaminimaxmendeskripsikan kondisi apabila terdapat pemain yang mengalami keuntungan, pemain lain akan mengalami kerugian senilai dengan keuntungan yang diperoleh lawan dan sebaliknya.Algoritmaminimax akan melakukan pengecekan pada seluruh kemungkinan yang ada, sehingga akan menghasilkan pohon permainan yang berisi semua kemungkinanpermainantersebut(Jannah, 2010). Dengan pohon permainan ini setiap pemain mengetahui langkah-langkah yang mungkin diberikan pada situasi permainan saat ini. Sehingga untuk setiap langkah dan semua langkah selanjutnya dapat diketahui.Dalam repersentasi pohon pada algoritmaminimax, terdapat dua jenissimpul, yaitusimpulmindansimpul max. Max akan memilih langkah dengan nilai tertinggi dan min akan memilih langkah dengan nilai terendah(Kusumadewi, 2003).Dalam penentuan keputusan max/min tersebut dibutuhkan suatu nilai yang merepresentasikan kerugian atau keuntungan yang akan diperoleh jika langkah tersebut dipilih. Untuk itulah disini digunakan sebuah fungsi heuristik.Fungsi heuristik yang digunakan algoritma ini adalah fungsi heuristik statis (Kusumadewi, 2003). Fungsi heuristik digunakan untuk mengevaluasi nilai sebagai nilai yang merepresentasikan hasil permainan yang akan terjadi jika langkah tersebut dipilih.Dari nilai-nilai heuristikinilah komputer akan menentukansimpulmana dari pohon permainan yang akan dipilih, tentunyasimpulyang akan dipilih tersebut adalahsimpuldengan nilai heuristik yang akan menuntun permainan ke hasil akhir yangmenguntungkan bagikomputer(Akbar, 2007).Untuk proses dan cara kerja algoritma yang lebih jelasnya lagi, dapat dilihat padaGambar 2.10yang merepresentasikan cara kerja algoritma Minimax.Gambar 2.10 Contoh Representasi Cara Kerja pada AlgoritmaMinimax(Coppin, 2004)Gambar 2.10 menunjukkanproses pencarian dimulai dari jalur paling kiri terlebih dahulu, sehingga DFS akan menelusurisimpulpaling kiri bawahhingga paling kanan.DFS akan menelusurisimpulpaling kiri bawah yaitu 5. Nilai 5 disimpan sebagai nilai maksimum sementara karena berada dilevelmax,kemudian DFS melakukanbacktrackdan menelusurisimpulyang bertetangga dengansimpul5 yaitusimpul2. Karena nilai 5 lebih besar dari nilai 2, maka nilai 2 tidak disimpan. Lalu DFS akan melakukanbacktrackkelevelmin sehingga nilai 5 yang diperoleh akan disimpan sebagai nilai minimum sementara. Untuksimpul1 dan 3, nilai 3 yang akan disimpan karena merupakan nilai maksimum dilevelmax. Saat mencapailevelmin, 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 dilevelpaling atas karena merupakanlevelmax. Lalu penelusuran jalur kanan akan dilakukan dengan cara yang sama seperti penelusuran jalur kiri sehingga diperoleh nilai 6. Karena nilai maksimum sementara padalevelpaling 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 algoritmaminimax adalah jalur sebelah kanan,karenalevel atas merupakan level max sehinggadidapat nilai 6 sedangkan jika memilih jalur kiri, hanya akandidapatnilai 3.

Alpha-Beta PruningDalam algoritma Minimax, pencarian dilakukan pada seluruh bagian pohon, sementara sebagian pohon tidak seharusnya diperiksa. Alpha-Beta Pruning merupakan modifikasi dari algoritma Minimax, yang akan mengurangi jumlah node yang dievaluasi oleh pohon pencarian. Pencarian untuk node berikutnya akan dipikirkan terlebih dahulu. Algoritma ini akan berhenti mengevaluasi langkah ketika terdapat paling tidak satu kemungkinan yang ditemukan dan membuktikan bahwa langkah tersebut lebih buruk jika dibandingkan dengan langkah yang diperiksa sebelumnya. Sehingga, langkah berikutnya tidak perlu dievaluasi lebih jauh. Dengan algoritma ini hasil optimasi dari suatu algoritma tidak akan berubah. Gambar 2-8 merupakan pohon dengan algoritma Alpha-Beta Pruning.

Diperlihatkan, pada pohon tersubut, terdapat pemotongan pencarian dengan menggunakan algoritma Alpha-Beta Pruning. Pada algoritma ini, terdapat dua nilai yang diatur, yaitu Alpha dan Beta, yang merepresentasikan nilai minimum dari max yang diyakini dan nilai maksimum dari min yang diyakini. Nilai awal alpha adalah tak hingga negatif dan nilai awal beta adalah tak hingga positif. Sebagai hasil dari proses rekursif, area pencarian akan semakin kecil. Ketika beta menjadi lebih kecil dari alpha, akan berarti posisi saat itu tidak dapat menjadi hasil terbaik permainan untuk kedua pemain dan pencarian tidak perlu dilakukan lebih jauh.Kinerja Minimax dapat diperbaiki dengan Pruning (memangkas) game tree. Prinsipnya: node (subtree) yang tidak mungkin mempengaruhi hasil akhir tidak perlu ditelusuri. Pruning demikian dilakukan oleh algoritma Alpha-Beta Pruning. Alpha-Beta Pruning tidak akan mempengaruhi hasil akhir dari algoritma Minimax.1. Pengertian Alpha Beta PruningAlpha Beta Pruning adalah cara untuk mengurangi jumlah simpul yang dieksplorasi dalam algoritma MinMax. Dengan alpha-beta, waktu yang diperlukan dalam pencarian akan berkurang dengan cara membatasi waktu yang terbuang percuma pada saat mengevaluasi pohon permainan. Implementasi alpha-beta akan memberikan jalur terbaik dalam setiap kemungkinan permainan dalam pohon permainan yang terbentuk.Dalam algoritma alpha-beta, urutan jalannya algoritma akan dimulai sama seperti algoritma minmax. Untuk simpul MIN, nilai yang dihitung dimulai dengan +infinity dan akan menurun seiring jalannya permainan. Untuk simpul MAX, nilai akan dihitung mulai dengan infinity dan akan menaik seiring berjalannya waktu.Efisiensi prosedur alpha beta akan sangat tergantung pada urutan simpul berikutnya dari sebuah simpul yang sedang dieksplorasi. Jika beruntung, maka sebuah simpul MIN akan dianggap sebagai simpul dengan urutan nilai dari rendah ke tinggi, dan simpul MAX dari tinggi ke rendah. Secara umum, dapat diperlihatkan bahwa dalam kondisi yang terbaik, alpha-beta akan membuka jumlah terminal nodes yang sama dengan MInMax dalam pohon permainan, dengan dua kali lipat tingkat kedalaman pohon.2. Algoritma Alpha BetaAlgoritma akan mendapat dua nilai : alpha dan beta, yang akan merepresentasikan nilai minimum untuk MAX, dan nilai maksimum untuk MIN. Pada awalnya nilai alpha adalah infinity dan beta bernilai awal +infinity. Selama jalannya rekursi, perbedaan nilai alpha dan beta akan semakin mengecil.Ketika nilai beta menjadi lebih kecil dari alpha, berarti keadaan saat ini bukan merupakan hasil terbaik dari kedua pemain, dan dengan demikian tidak perlu dieksplorasi lebih jauh.Pseudocode untuk algoritma alpha-beta adalah :

Contoh Alpha Beta PruningKondisi awal dari sebuah keadaan seperti digambarkan pada gambar 4.1 dan akan didapatkan hasil dengan metode Alpha Beta Prunning seperti pada 4.2.

Algoritma1. Hampiri node pertama pada leaf dengan nilai 5, naik ke parent pada level 2 masukkan nilai 5, hampiri 8, karena 8>5 maka ganti parent dengan 8, hampiri 3.2. Setelah ketiga leaf pertama terhampiri, naik lebih tinggi lagi ke level 1 masukkan nilai 8.3. Hampiri node keempat pada leaf dengan nilai 9, naik ke parent pada level 2 masukkan nilai 9. Jika kita menghampiri leaf berikutnya, kita mencari yang lebih tinggi dari 9, sementara pada level 1 kita mencari yang lebih kecil dari 8, maka leaf 3 dan 1 kita potong (tidak kita hampiri).4. Begitu seterusnya hingga kita dapatkan hasil akhir dari tree di atas adalah seperti gambar 4.2

Pencarian CutOffMinimax Cutoff adalah identik terhadap MinimaxValue kecuali1. Terminal? digantikan oleh Cutoff?2. Utility digantikan oleh EvalApakah bekerja pada penerapan?bm = 106, b=35 m=4Hanya melihat 4-ply ke depan adalah seorang pemain catur tanpa harapan! 4-ply manusia pemula 8-ply PC pada umumnya, manusia master 12-ply Deep Blue, Kasparov