RESUME PAPER




Resume Paper antara Kecerdasan Buatan dalam Game untuk Merespon Emosi dari Teks Berbahasa Indonesia Menggunakan Klasifikasi Teks dan Logika Fuzzy dengan Pembuatan Kecerdasan Buatan untuk Permainan Catur Jawa Dengan Menggunakan Algoritma MiniMax”

Sebelum kita meresume paper di atas penulis bagi beberapa kiteria yang menjadi dasar pembahasan penulis dimana kiteria tersebut adalah
1.    Algoritma
2.    Alur Program
3.    Kesimpulan

1.    Algoritma

            Perbedaan algoritma yang di gunakan antara Kecerdasan Buatan dalam Game untuk Merespon Emosi dari Teks Berbahasa Indonesia Menggunakan Klasifikasi Teks dan Logika Fuzzy (KBE_Fuzzy) dengan Kecerdasan Buatan untuk Permainan Catur Jawa Dengan Menggunakan Algoritma Minimax(KBC_Minimax) terletak pada jenis elemen mereka dimana KBE_Fuzzy termasuk dalam jenis game kecerdasan buatan yang mengembangkan salah satu elemen game yaitu NPC (Non Playable Character) yang mampu mengenali emosi dari teks berbahasa indonesia sekaligus merespon dengan perilaku sesuai dengan jenis emosinya. Metode yang digunakan dalam penelitian tersebut adalah klasifikasi teks sebagai penentu jenis emosi dalam teks dan logika fuzzy sebagai penentu perilaku dari NPC yang sesuai dengan jenis emosinya, Sedangkan KBC_Minimax menggunalan algoritma minimax merupakan salah satu implementasi dari DFS (Depth First Search). Algoritma minimax tersebut diaplikasikan pada permainan yang melibatkan dua orang, dan lebih khusus lagi, permainan dua orang yang saling berganti giliran bermain seperti checkers, tic-tac-toe, catur. dan game sejenis yang mendeskripsikan dengan sejumlah aturan dan premis. Dengan itu, kita dapat mengetahui, pada titik tertentu permainan, langkah-langkah yang mungkin berikutnya. Permainan tersebut berbagi karakteristik yang sama, yakni “permainan dengan penuh informasi”. Dengan cara inilah penulis KBC_Minimax akan berusaha membuat sebuah kecerdasan buatan untuk permainan catur jawa, yang lagi, memiliki karakteristik yang sama.



2.    Alur Program
A.  KBE_Fuzzy

Dimulai dari alur program KBE_Fuzzy Dalam game tersebut, perilaku NPC dipengaruhi oleh atribut fisik yang dimiliki oleh setiap karakter NPC. Mascharenhas [Lihat di refensi penulis] dalam tulisannya menyebutkan atribut fisik pada karakter bermacam-macam sesuai dengan jenis game. Akan tetapi ada beberapa atribut standar yang selalu digunakan dalam game. Atribut tersebut adalah :
a. Power yaitu kekuatan fisik karakter.
b. Vitality yaitu jumlah nyawa karakter.
c. Agility yaitu ketangkasan atau kelincahan karakter.

Dalam game konvensional, atribut dari NPC akan berubah sesuai level permainan, akan tetapi dalam penelitian ini, atribut-atribut di atas akan berubah nilainya secara dinamis sesuai dengan jenis emosi yang diterima oleh NPC. Untuk menentukan respon dari NPC maka digunakan aturan-aturan yang mengatur hubungan sebab akibat antara jenis emosi dengan atribut NPC. Hubungan antara jenis emosi dengan atribut NPC ditunjukkan pada tabel 1 berikut ini :

Tabel 1. Pengaruh emosi terhadap atribut NPC
Emosi
Power
Vitality
Agility
Senang
+
+
+
Sedih
-
-
-
Marah
+
-
-
Takut
-
-
+

            Pada tabel di atas tanda “+” menunjukkan emosi tersebut berpengaruh positif terhadap atribut NPC. Dengan kata lain nilai atribut dari NPC akan bertambah jika mendapat input emosi yang bertanda “+”. Demikian pula sebaliknya. Kecerdasan buatan di dalam game di buat beberapa elemen yang dapat berperilaku sealami mungkin layaknya manusia. Masing- masing metode dalam game tersebut mempunyai peran tersendiri dalam model kecerdasan buatan ini.
Di dalam KBE_Fuzzy Metode klasifikasi teks berfungsi untuk mengklasifikasikan teks yang diberikan kepada NPC ke dalam jenis-jenis emosi antara lain senang, sedih, marah dan takut. Sedangkan logika fuzzy berfungsi untuk mengmbil keputusan terhadap respon yang akan dihasilkan oleh NPC sesuai dengan jenis emosi yang diberikan, Untuk lebih memahami model yang kembangkan dalam KBE_Fuzzy ini, dapat digambarkan seperti bagan di bawah ini :
arya dwijatama stikom

Gambar 1. Model kecerdasan buatan untuk merespon emosi dalam teks.

Proses pertama pada model adalah klasifikasi teks. Seperti yang telah dijelaskan sebelumnya, sumber emosi yang digunakan dalam penelitian ini berasal dari teks berbahasa Indonesia. Yang menjadi pertanyaan, bagaimana mengenali sebuah teks memiliki nilai emosi di dalamnya.
Dalam dunia komputer dikenal bidang ilmu yang bernama data mining. Data mining bertujuan untuk mencari pola yang penting atau menarik dari suatu data tertentu. Dengan menggunakan data mining diharapkan komputer dapat mengenali pola-pola yang ada dalam teks sehingga nantinya dapat menentukan jenis emosi dalam sebuah teks.
Salah satu cara melakukan data mining adalah dengan menggunakan pembelajaran mesin. Pembelajaran mesin adalah bidang ilmu yang mempelajari algoritma yang memungkinkan komputer untuk belajar berdasarkan data yang diterima dari berbagai sumber, misalnya sensor, database, gambar dan teks. Fokus dari penelitian di bidang pembelajaran mesin adalah untuk menghasilkan mesin/komputer yang mampu secara mandiri mengenali pola-pola yang kompleks dan membuat keputusan berdarkan data yang diterima .
Dalam KBE_Fuzzy ini mengunakan salah satu metode dalam pembelajaran terawasi yaitu Naïve Bayes. Dimana Naïve Bayes adalah sebuah metode yang biasa digunakan untuk melakukan proses klasifikasi teks. Teori dari Naïve Bayes sendiri adalah sebagai berikut:

P (A|B) = (P(B|A) * P(A))/P(B)
Rumus di atas dapat dibaca sebagai peluang kejadian A sebagai B ditentukan dari peluang B saat A, Peluang A, dan Peluang B. Agar lebih jelas, dalam kasus klasifikasi emosi dari teks maka rumus di atas akan dirubah menjadi:
P(Ki|T) = (P(T|Ki)*P(Ki)) / P(T)
Dimana P(Ki|D) adalah peluang dokumen teks T pada Kategori Ki. Dengan kata lain rumus tersebut bertujuan untuk menghitung besar peluang suatu dokumen, dalam hal ini sebuah teks dengan kandungan emosi di dalamnya terhadap suatu kategori atau kelas tertentu. Kelas yang dimaksud adalah 4 (empat) jenis emosi yaitu senang, sedih, marah dan takut.
Setelah dilakukan proses klasifikasi, maka akan didapatkan nilai peluang dari sebuah teks untuk masing-masing kelas emosi. Contoh dari proses klasifikasi teks adalah sebagai berikut :
Teks1 = “Saya berhasil lulus ujian semester”
Setelah dilakukan proses klasifikasi akan didapatkan nilai peluang suatu dokumen teks untuk setiap kelas emosi. Di bawah ini adalah contoh hasil yang diharapkan dari proses klasifikasi teks :
P(Senang|teks1)=0,7, Peluang teks1 pada kategori senang sebesar 0,7 (70%).
P(Sedih|teks1)=0,05 Peluang teks1 pada kategori sedih sebesar 0,05 (5%)
P(Takut|teks1)=0,1, Peluang teks1 pada kategori takut sebesar 0,1 (10%)
P(Marah|teks1)= 0,05, Peluang teks1 pada kategori marah sebesar 0,1 (5%)
Nilai peluang yang dihasilkan oleh peroses klasifikasi teks akan menjadi nilai input pada proses fuzzy. Atas dasar itulah logika fuzzy digunakan pada penelitian ini. Dari proses klasifikasi teks diperoleh nilai peluang untuk masing-masing kelas emosi yang sifatnya tidak pasti. Nilai ini akan digunakan sebagai input dalam sistem fuzzy kemudian diproses lebih lanjut untuk menghasilkan nilai atribut yang sesuai dengan jenis emosinya. Dengan menggunakan logika fuzzy diharapkan hasil yang diperoleh bersifat dinamis.

Sebuah sistem yang dibangun menggunakan logika fuzzy pada dasarnya akan mempunyai komponen-komponen sebagai berikut:
1.      Variabel Linguistik
Variabel linguistik merupakan suatu interval numerik dan mempunyai nilai-nilai linguistik, yang semantiknya didefinisikan oleh fungsi keanggotaannya (8) [lihat di daftar refensi penulis].
Dalam penelitian ini akan digunakan empat input untuk proses fuzzy yang masing-masing memiliki tiga variabel linguistik dengan interval [0,1]. Veriabel linguistik yang digunakan yaitu rendah [0-0,4], sedang [0,2-0,8] dan tinggi [0,6-1].

2.      Fuzzification
Fuzzification merupakan proses konversi nilai-nilai kebenaran yang bersifat pasti (crisp input), yang digunakan sebagai inputan, menjadi bentuk fuzzy input, yang berupa nilai linguistik yang semantiknya ditentukan berdasarkan fungsi keanggotaan [8]. Berikut ini adalah contoh proses  fuzzyfication untuk kelas senang. Proses fuzzyfication untuk kelas sedih, marah dan takut menggunakan proses yang sama :
arya dwijatama stikom

Gambar 2. Grafik fungsi keanggotaan trapesium untuk „senang‟.
Pada gambar di atas dapat dijelaskan bahwa setiap kelas menggunakan fungsi keanggotaan trapesium dan tiga variabel linguistik yaitu rendah, sedang dan tinggi. Nilai dari variabel linguistik ini merepresentasikan besar peluang suatu teks pada proses klasifikasi teks

3.      Inference
Dalam suatu sistem berbasis aturan fuzzy, proses inference memperhitungkan semua aturan yang ada di dalam basis pengetahuan (8)[Lihat di daftar refensi penulis]. Model yang digunakan dalam proses inference pada logika fuzzy terdiri dari dua macam yaitu Sugeno dan Mamdani. Yang membedakan dari kedua model tersebut adalah model sugeno menggunakan perhitungan relatif lebih sederhana dan cepat akan tetapi hasil yang dihasilkan kurang dinamis dan manusiawi. Sedangkan model Mamdani perhitungannya cenderung lebih rumit akan tetapi hasil yang diperoleh lebih dinamis dan manusiawi. Oleh karena pemrosesan emosi membutuhkan hasil yang semanusiawi mungkin, maka dalam penelitian ini digunakan model Mamdani dalam proses inference.
Dalam proses inference didefinisikan aturan fuzzy untuk menentukan atribut dari karakter yang ditunjukkan pada gambar 3 berikut ini :
arya dwijatama stikom

Gambar 3. Grafik fungsi keanggotaan trapesium untuk „power‟.
Pada gambar di atas dapat dijelaskan bahwa setiap atribut menggunakan fungsi keanggotaan trapesium dan empat variabel linguistik yaitu kurang sekali, kurang, lebih dan lebih sekali. Nilai dari variabel linguistik ini merepresentasikan persentase penambahan nilai atribut dari NPC. Proses inference menggunakan aturan sebagai berikut:
IF          Emosi1 is A
AND Emosi2 is B
AND Emosi3 is C
AND Emosi4 is D
      THEN       Power is E

Dimana emosi1-emosi4 adalah jenis-jenis emosi. B,C dan D adalah variabel linguistik dari emosi yaitu rendah, sedang dan tinggi. Sedangkan E adalah variabel linguistik dari atribut karakter yaitu kurang sekali, kurang, lebih dan lebih sekali.

4.      Defuzzification
Proses defuzzification memiliki bermacam-macam metode yang bisa diaplikasikan untuk menangani berbagai macam masalah. Dalam penelitian ini akan digunakan salah satu metode yang disebut Centroid Method. Metode ini merupakan yang paling penting dan menarik diantara metode yang ada [8]. Metode ini menggunakan rumus sebagai berikut :
y* = ΣyμR(y)
ΣyμR(y)’
Di mana y adalah hasil proses fuzzy dan yμR(y) adalah derajat keanggotaan dari y.
Hasil dari proses defuzzification adalah suatu nilai yang merupakan representasi dari perubahan nilai atribut dari NPC baik itu power, vitality dan agility.
B.  KBC_Minimax
Algoritma minimax diaplikasikan pada permainan yang melibatkan dua orang. Permainan-permainan tersebut dapat dideskripsikan dengan sejumlah aturan dan premis. Dengan itu, kita dapat mengetahui, pada titik tertentu permainan, langkah-langkah yang mungkin berikutnya. Permainan tersebut berbagi karakteristik yang sama, yakni “permainan dengan penuh informasi”. Setiap pemain mengetahui semua langkah-langkah yang mungkin dari pemain lawannya.
Sebelum menjelaskan algoritma minimax, pengenalan mengenai pohon pencarian dibutuhkan. Pohon pencarian adalah cara untuk merepresentasikan pencarian. Kotak disebut sebagai simpul dan simpul-simpul tersebut merepresentasikan titik keputusan pada pencarian. Simpul dihubungkan dengan cabang. Pencarian dimulai pada simpul akar, ditunjukkan pada bagian atas pada gambar 1. Pada setiap simpul keputusan, simpul berikutnya yang mungkin untuk pencarian dibangkitkan, sampai tidak ada lagi keputusan yang mungkin. Simpul yang merepresentasikan akhir pencarian disebut sebagai simpul daun.
arya dwijatama stikom

Pada algoritma ini ada dua pemain yang terlibat, kita asumsikan MAX dan MIN. Pohon pencarian dibangkitkan, depth-first, dimulai dari posisi permainan saat ini sampai pada akhir posisi permainan. Lalu, kondisi permainan final dievaluasi sebagai sudut pandang MAX, seperti tergambar pada gambar 1. Setelah itu, simpul-simpul di atas simpul daun diisi secara bottom up dengan nilai pada simpul anak-anaknya. Simpul yang dimiliki pemain MAX menerima nilai maksimum dari simpul anak-anaknya dan pemain MIN memperoleh nilai minimum dari nilai-nilai yang dimiliki simpul anak-anaknya. Berikut gambaran algoritmanya:
arya dwijatama stikom
‘Nilai’ pada algoritma di atas merepresentasikan seberapa baik permainan bergerak. Pemain MAX akan mencoba memilih gerakan dengan nilai maksimum pada akhirnya sedangkan pemain MIN akan memilih gerakan yang lebih baik baginya, karena itu MIN akan meminimkan keluaran dari MAX (minimizing MAX’s outcome).

1.      Optimasi Algoritma
Pembangkitan seluruh pohon pencarian hanya dimungkinkan jika dan hanya jika permainan yang diimplementasikan sangat sederhana. Pada kebanyakan permainan, hal ini tidak mungkin, oleh karena itu, ada sedikit optimasi yang harus ditambahkan pada algoritma tersebut. Kendati demikian, optimasi ini datang dengan sebuah efek samping. Dengan mengoptimasi, kita menukar informasi seluruhnya tentang permainan dengan kemungkinan dan jalan pintas. Kita tidak lagi memilih jalan yang menghasilkan kemenangan tetapi memilih jalan yang ‘menuju’ ke arah kemenangan. Jika pengoptimasian tidak dipilih dengan bijak, atau salah pengaplikasian, bisa kecerdasan yang dibuat menjadi bodoh dan malahan lebih baik memilih langkah sebarang daripada menggunakan kecerdasan buatan.
Optimasi dasar adalah dengan cara membatasi kedalaman pohon pencarian. Mengapa ini bisa menolong? Membangkitkan seluruh pohon pencarian bisa memakan waktu yang sangat lama. Jika permainan memiliki faktor pencabangan 3 (masing-masing simpul memiliki 3 buah simpul anak), maka pohon pada tingkat akan memiliki simpul sebanyak 3n buah. Pohon pencarian ini juga akan menghasilkan simpul sebanyak jumlah setiap jumlah simpul pada setiap tingkat. Memori tidak akan cukup untuk menampung pohon pencarian pada kebanyakan permainan, seperti catur yang memiliki banyak faktor pencabangan. Walaupun memori mencukupi, tapi proses pembangkitan pohon pencarian akan membutuhkan waktu yang sangat lama.
Jika setiap simpul membutuhkan 1 detik untuk dianalisis, untuk pohon dengan faktor pencabangan 3 dan tingkat=5 akan menghasilkan waktu pembangkitan sebanyak 1+3+9+27+81+243 = 364 * 1 = 364 detik atau sekitar 6 menit! Waktu 6 menit terlalu lamauntuk sebuah permainan. Pemain akan meninggalkan permainan jika harus menunggu masing-masing 6 menit untuk setiap gerakan dari komputer.

Optimasi kedua adalah dengan menggunakan fungsi yang mengevaluasi posisi permainan saat ini dari sudut pandang suatu pemain. Cara ini dilakukan dengan cara memberikan nilai tertentu pada state tertentu pada permainan, seperti menghitung jumlah biji catur yang ada di papan, atau hal lain seperti memberi nilai tertentu pada posisi permainan. Selain mengevaluasi posisi tertentu pada permainan, fungsi ini juga dapat mengkalkulasi bagaimana suatu kondisi dalam permainan dapat membantu mengakhiri permainan. Dengan kata lain, berapa peluang bagi kita untuk memenangkan permainan pada posisi tertentu dalam permainan. Dalam kasus ini, fungsi ini disebut sebagai fungsi estimasi (prekiraan).

Fungsi ini akan menggunakan metode heuristik. Dimana  heuristik adalah pengetahuan yang kita punya dari permainan yang akan membantu membangkitkan fungsi evaluasi yang lebih baik. Sebagai contoh, dalam checkers, biji pada posisi ujung papan tidak bisa dimakan, dan karena itu nilainya akan lebih tinggi bila biji itu berada pada posisi unjung papan. Salah satu alasan fungsi evaluasi harus bisa mengevaluasi posisi permainan untuk kedua pemain adalah karena kita tidak tahu pemain mana yang memiliki batas kedalaman.


Kendati demikian, pembuatan dua fungsi (masingmasing satu untuk pemain) dapat dihindari jika permainan simetrik. Ini berarti bahwa ‘kehilangan’ dari suatu pemain sebanding dengan ‘perolehan’ dari pemain yang satunya. Contoh permainan ini adalah permainan ZERO-SUM. Pada permainan-permainan seperti ini, satu fungsi sudah mencukupi karena pemain yang lain hanya perlu menegasikan kembalian dari fungsi yang pertama. Berikut algoritma minimax setelah dioptimasi:

Celah terbesar yang mungkin terjadi setelah mengaplikasikan optimasi algoritma minimax adalah masalah kedalaman yang terbatas. Posisi permainan yang kelihatan amat baik mungkin saja berubah menjadi sangat buruk. Hal ini dapat terjadi karena algoritma tidak mampu untuk melihat bahwa gerakan yang diambil setelah beberapa langkah ke depan dapat menghasilkan keuntungan yang amat besar bagi pemain lawan.Algoritma tidak melihat gerakan yang berakibat fatal tersebut karena algoritma ini dibutakan oleh batas kedalaman.
2.      Mempercepat Algoritma
Masih ada beberapa cara yang masih dapat dilakukan untuk mengurangi waktu pencarian. Kita lihat gambar 2. Nilai untuk simpul A adalah 3, dan nilai yang ditemukan pertama kali untuk upapohon yang dimulai dari simpul B adalah 2. Maka, karena simpul B ada pada tingkat MIN, kita tahu bahwa dengan nilai yang dipilih untuk B harus lebih kecil atau sama dengan 2. Tapi kita juga tahu bahwa simpul A memiliki nilai 3, dan simpul A dan B keduanya memiliki simpul parent yang sama pada tingkat MAX.
Hal ini dapat diartikan bahwa jalur yang dimulai dari simpul B tudak akan dipilih karena 3 lebih baik daripada 2 pada simpul MAX. Oleh karena itu, pencarian anak-anak simpul B tidak perlu dilakukan dan kita dapat dengan aman mengabaikan sisa anak-anak simpul B.

Gambar 2. Pencarian minimax yang menunjukkan bahwa cabang dapat di-potong
Optimasi ini dikenal dengan nama pemotongan Alpha-Beta (alpha beta cutoffs) dan berikut adalah cara mengaplikasikannya:
1.      Dapatkan nilai alpha dan beta. Alpha adalah nilai yang berisi nilai maksimum yang ditemukan. Beta adalah nilai yang berisi nilai minimum yang ditemukan.
2.      Pada tingkat MAX, sebelum mengevaluasi jalur anak, bandingkan dulu nilai yang dikembalikan dengan jalur sebelumnya dengan nilai beta. Jika nilainya lebih besar, batalkan pencarian untuk simpul ini.
3.      Pada tingkat MIN, sebelum mengevaluasi jalur anak, bandingkan dulu nilai yang dikembalikan dengan jalur sebelumnya dengan nilai alpha. Jika nilainya lebih kecil, batalkan pencarian untuk simpul ini.



Berikut adalah pseudocode algoritma minimax dengan alpha-beta cutoffs.

Seberapa baik minimax dengan alpha-beta cutoffs jika dibandingkan dengan minimax normal benar-benar bergantung pada urutan pencarian dilakukan. Jika cara pembangkitan posisi permainan tidak menciptakan situasi dimana algoritma bisa mengambil keuntungan dari alpha-beta cutoffs, maka peningkatan algoritma tidak akan kelihatan. Kendati demikian, jika evaluasi fungsi dan pembangkitan posisi permainan mengarah pada alpha-beta cutoffs, maka peningkatan algoritma akan sangat baik.
C.     Implementasi Algoritma
Pada pengimplementasian algoritma minimax pada permainan catur jawa ini, penulis menggunakan bahasa pemrograman Java. Pada pengimplementasiannya, catur jawa yang dibuat penulis diberi batasan-batasan khusus. Batasan-batasan ini antara lain : lebar papan hanya dibatasi 7 kotak saja dan tinggi papan hanya 6 kotak saja. Permainan juga selalu dimulai dari bawah untuk menyederhanakan persoalan. Pemain akan memulai permainan dengan cara memilih salah satu kolom dari tujuh buah kolom yang tersedia. Pemain akan mendapatkan simbol ‘X’. Komputer pun akan segera melakukan gerakan untuk melawan pemain sesuai dengan algoritma minimax yang diimplementasikan. Demikian selanjutnya sampai salah satu pemain (kita atau komputer) memperoleh 4 simbol yang sama (‘X’ untuk kita dan ‘O’ untuk komputer) pada baris yang sama, pada kolom yang sama, atau pada diagonal yang sama.
Method-method yang dipakai dalam mengimpelementasikan algoritma ini pada intinya hanya tiga buah, yakni konstruktor caturJawa, fungsi miniMax sebagai algoritma inti pada kecerdasan buatan pada permainan catur jawa ini, dan method fourInARow yang berfungsi untuk menghitung apakah suatu pemain telah memperoleh simbol empat buah yang berurutan. Untuk memperjelas, mari kita lihat algoritmanya :

Berikut adalah variabel global yang digunakan:







Berikut adalah konstruktor caturJawa :

Algoritma miniMax-nya adalah sebagai berikut:



Dan yang terakhir, fungsi FourInARow :

Algoritma lengkap caturJawa.java penulis ini dapat diunduh di http://students.if.itb.ac.id/~if16093/caturJawa.java Pada konstruktor caturJawa, yang dilakukan adalah menunggu masukan user kemudian mengantisipasi masukan user itu dengan memanggil method miniMax dan kemudian membandingkan hasil keluaran method miniMax tersebut. Karena method ini digunakan untuk memaksimalkan langkah komputer, maka yang dicari adalah nilai yang maksimum dari semua keluaran miniMax ini.
Fungsi heuristik pada prosedur miniMax adalah dengan mencari langkah paling cepat menghasilkan akhir permainan. Akhir permainan ini ditentukan dengan menggunakan method FourInARow (jika sudah ada 4 simbol berurutan maka permainan berakhir). Jika sedang berada pada langkah komputer (MAX), algoritma akan mencari nilai minimum yang dihasilkan oleh pemain dan jika berada pada langkah pemain algoritma akan mencari nilai maksimum yang dihasilkan oleh komputer.Fungsi miniMax ini merupakan fungsi rekursif dengan maksimum kedalaman 6. Kedalaman ini dimaksudkan untuk mengoptimasi algoritma miniMax yang dibuat.




D.    Analisis Kompleksitas
Kompleksitas waktu komputer untuk menentukan gerakan selanjutnya sangat ditentukan oleh algoritma minimax yang digunakan. Karena penulis tidak mengimplementasikan alpha-beta cutoffs pada algoritma minimax di atas, maka kasus yang terjadi selalu merupakan kasus terburuk di mana setiap simpul memiliki 7 buah kemungkinan gerakan dengan kedalaman 6. Selain itu, algoritma ini juga menggunakan method fourInARow yang memiliki kompleksitas O(mp) dengan m adalah lebar papan dan p adalah tinggi papan. Oleh sebab itulah algoritma miniMax ini memiliki kompleksitas O(7n) * O(mp) = O(mp7n) dengan n adalah kedalaman maksimum dalam pohon pencarian.
Dengan menggunakan alpha-beta cutoffs, kita dapat mengurangi kebutuhan waktu jika dan hanya jika urutan pembangkitannya mengarah ke arah berakhirnya permainan. Jadi, alpha-beta cutoffs ini hanya berguna pada beberapa kasus saja, tidak selalu berguna pada setiap kasus yang umum. Dengan pengimplementasian alphabeta cutoffs, kompleksitas tetap saja O(mp7n).
3.    Kesimpulan
Berdasarkan hasil percobaan yang telah dilakukan dan di teliti lebih lanjut tentang KBE_Fuzzy(Kecerdasan Buatan dalam Game untuk Merespon Emosi dari Teks Berbahasa Indonesia Menggunakan Klasifikasi Teks dan Logika Fuzzy), dapat diambil kesimpulan sebagai berikut : Klasifikasi emosi dari teks berbahasa Indonesia bisa dilakukan dengan menggunakan metode Naïve Bayes. Hal ini bisa dilihat dari hasil klasifikasi yang menunjukkan nilai peluang dari teks terhadap jenis emosi tertentu. Untuk beberapa teks tertentu, keakuratan klasifikasi masih rendah. Hal ini dapat dilihat dari nilai peluang dari setiap kelas tidak ada yang bernilai dominan. Logika fuzzy dapat digunakan untuk mengambil keputusan dari permasalahan yang mempunyai nilai kepastian yang mutlak. Dalam hal ini logika fuzzy digunakan untuk menentukan nilai atribut NPC dari nilai peluang dari emosi yang nilai kebenarannya tidak mutlak. Sedangkan untuk KBC_Minimax (Kecerdasan Buatan untuk Permainan Catur Jawa Dengan Menggunakan Algoritma Minimax)
Algoritma minimax ini mungkin bukan jawaban terbaik untuk semua jenis permainan yang membutuhkan kecerdasan buatan yang menyerupai manusia. Kendati demikian, algoritma ini sangat cocok untuk diimplementasikan pada permainan-permainan yang melibatkan dua orang, di mana setiap pemain mengetahui semua langkah-langkah yang mungkin dari pemain lawannya seperti catur, catur jawa, checkers, dan lain sebagainya. Perhitungan algoritma yang membutuhkan waktu pencarian yang lama ini dapat dioptimasi dengan beberapa cara, misalnya dengan menggunakan alpha-beta cutoffs atau membatasi kedalaman pohon pencarian. Kompleksitas algoritma minimax bergantung pada kedalaman maksimum pohon pencarian. Kecerdasan buatan untuk permainan catur jawa dapat dibuat dengan menggunakan algoritma minimax.





~Terima Kasih~
Nama : I Made Agus Arya dwijatama
Nim : 100030151
Kelas: J103
Stikom Bali

Comments

Popular posts from this blog

Animasi Lucu C++

Sistem Sensor dan Robotika

DDL Part II