Rabu, 29 November 2017

BAB 11) BOARD GAME

PENGANTAR TEKNOLOGI SISTEM CERDAS

Image result for gunadarma logo

  DISUSUN OLEH
CLAUDYA TUPAMAHU
11115533
3KA12

Teori Game  
Menurut Wikipedia, Teori permainan adalah bagian dari ilmu matematika yang mempelajari interaksi antar agen, di mana tiap strategi yang dipilih akan memiliki payoff yang berbeda bagi tiap agen. Pertama kali dikembangkan sebagai cabang tersendiri dari ilmu matematika oleh Oskar Morgenstern dan John von Neumann, cabang ilmu ini telah berkembang sedemikian pesat hingga melahirkan banyak tokoh peraih nobel, seperti John Nash (AS), Reinhard Selten (Jerman), dan John Harsanyi (AS) pada tahun 1999 dan Thomas Schelling (AS), Robert Aumann (Israel) pada tahun 2005, dan Leonid Hurwicz (Amerika Serikat) pada tahun 2007.

Menururt Dimiyati (1992), teori permainan (game theory) adalah bagian dari ilmu pengetahuan yang berkaitan dengan pembuatan keputusan pada saat ada dua pihak atau lebih berada dalam kondisi persaingan atau konflik. Pihak-pihak yang bersaing ini disumsikan bersifat rasional dan cerdas, artinya masing-masing pihak akan melakukan strategi tindakan yang rasional untuk memenangkan persaingan itu, dan masing-masing pihak juga mengetahui strategi pihak lawannya. Selanjutnya pihak ini disebut pemain.

Tujuan teori ini adalah menganalisa proses pengambilan keputusan dari persaingan yang berbeda-beda dan melibatkan dua atau lebih pemain/kepentingan. Kegunaan dari teori permainan adalah metodologi yang disediakan untuk menstruktur dan menganalisa masalah pemilihan strategi. Menggunakan teori permainan, maka langkah pertama adalah menentukan secara explicit pemain, strategi yang ada, dan juga menentukan preferensi serta reaksi dari setiap pemain.

Terdapat dua jenis strategi permainan yang dapat digunakan pada game theory, yaitu pure strategy (setiap pemain mempergunakan strategi tunggal) dan mixed strategy (setiap pemain menggunakan campuran dari berbagai strategi yang berbeda-beda).
Pure strategy digunakan untuk jenis permainan yang hasil optimalnya mempunyai saddle point (semacam titik keseimbangan antara nilai permainan kedua pemain). Sedangkan mixed strategy digunakan untuk mencari solusi optimal dari kasus game theory yang tidak mempunyai saddle point.

Unsur-unsur Dasar Teori Game

1. Jumlah Pemain
Permainan diklasifikasikan menurut jumlah kepentingan atau tujuan yang ada dalam permainan tersebut. Dalam hal ini perlu dipahami, bahwa pengertian “jumlah pemain” tidak selalu sama artinya dengan “jumlah Orang” yang terlibat dalam permainan. jumlah pemain disini berarti jumlah kelompok pemain berdasarkan masing-masing kepentingan atau tujuannya. Dengan demikian dua orang atau lebih yang mempunyai kepentingan yang sama dapat diperhitungkan sebagai satu kelompok pemain.

2. Pay-off

Ganjaran / pay-off adalah hasil akhir yang terjadi pada akhir permainan berkenaan dengan ganjaran ini, permainan digolongkan menjadi 2 macam kategori, yaitu permainan jumlah-nol (zero-sum games) dan permainan jumlah-bukan-nol (non-zero-sum games). permainan jumlah-nol terjadi jika jumlah ganjaran dari seluruh pemain adalah nol, yaitu dengan memperhitungkan setiap keuntungan sebagai bilangan positif dan setiap kerugian sebagai bilangan negatif. Selain dari itu adalah permainan jumlah – bukan-nol. Dalam permainan jumlah-nol setiap kemenangan bagi suatu pihak pemain merupakan kekalahan bagi pihak pemain lain. letak arti penting dari perbedaan kedua kategori permainan berdasarkan ganjaran ini adalah bahwa permainan jumlah-nol adalah suatu sistem yang tertutup. Sedangkan permainan jumlah-bukan-nol tidak demikian halnya. Hampir semua permainan pada dasarnya merupakan permainan jumlah-nol. Berbagai situasi dapat dianalisis sebagai permainan jumlah-nol.

3. Strategi Permainan

Setiap permainan yang dianalisis dengan teori permainan selalu dapat disajikan dalam bentuk sebuah matriks permainan. matriks permainan disebut juga matriks ganjaran yaitu sebuah matriks yang semua unsur berupa ganjaran dari para pemain yang terlibat dalam permainan tersebut. Baris-barisnya melambangkan strategi –strategi yang dimiliki pemain pertama, sedangkan kolom-kolomnya melambangkan strategi-strategi yang dimiliki pemain lain. dengan demikian, permainan berstrategi mxn dilambangkan dengan matriks permainan m x n . Teori permainan berasumsi bahwa strategi yang tersedia bagi masing-masing pemain dapat dihitung dan ganjaran yang berkaitan dengannya dapat dinyatakan dalam unit, meskipun tidak selalu harus dalam unit moneter. Hal ini penting bagi penyelesaian permainan, yaitu untuk menentukan pilihan strategi yang akan dijalankan oleh masing-masing pemain, dengan menganggap bahwa masing masing pemain berusaha memaksimumkan keuntungannya yang minimum (maksimin) atau meminimumkan kerugiannya yang maksimum (minimaks). Nilai dari suatu permainan adalah ganjaran rata-rata / ganjaran yang diharapkan dari sepanjang rangkaian permainan, dengan menganggap kedua pemain selalu berusaha memainkan strateginya yang optimum.

4. Titik Pelana (Saddle Point) 

Titik pelana adalah suatu unsur didalam matriks permainan yang sekaligus sebagai maksimin baris dan minimaks kolom. permainan dikatakan bersaing ketat (Strictly determined) jika matriksnya memiliki titik pelana. Strategi yang optimum bagi masing-masing pemain adalah strategi pada baris dan kolom yang mengandung titik pelana tersebut. dalam hal ini baris yang mengandung titik pelana merupakan strategi optimum bagi pemain pertama, sedangkan kolom yang mengandung titik pelana merupakan strategi optimum bagi pemain lain. Langkah pertama penyelesaian sebuah matriks permainan adalah memeriksa ada atau tidaknya titik pelana. Bila terdapat titik pelana permainan dapat segera dianalisis untuk diselesaikan. Untuk menentukan titik pelana biasanya dilakukan dengan menuliskan nilai-nilai minimum dan Maksimum masing-masing kolom, kemudian menentukan maksimun diantara minimum baris dan minimum diantara maksimum kolom. jika unsur maksimum dari minimum baris sama dengan unsur minimum dari maksimum kolom, atau jika maksimin = minimaks, berarti unsur tersebut merupakan titik pelana.


Teori permainan dapat diterapkan dalam berbagai bidang, meliputi kemiliteran, bisnis, social, ekonomi dan ekologi. Sebagai contoh pada dunia bisnis, seorang direktur suatu perusahaan didalam memperkenalkan sebuah produk baru berusaha mengetahui kemungkinan strategi paling baik atau suatu kombinasi strategi untuk merebut market share yang lebih besar, sementara saingannya juga mencoba meperkenalkan produk sejenis dengan strategi yang berbeda dengan direktur pemasaran tersebut, antara lain: penurunan harga, pemberian hadiah, peningkatan mutu produk, memilih media advertasi yang efektif. Disinilah peranan teori permainan untuk menentukan strategi mana yang akan diputuskan oleh dirktur pemasaran tersebut untuk merebut pasar.

ALGORITMA MINIMAX
algoritma minimax adalah aturan untuk permainan zero-sum 2 pemain, yang berusaha meminimalkan kemungkinan kalah sambil memaksimalkan kemungkinan menang untuk pemain yang akan melangkah.

Di kedalaman 1 (dan kedalaman ganjil lainya), posisi papan akan menentukan nilai untuk pemain yang akan melangkah saat ini (current player), sehingga di kedalaman ganjil ini algoritma minimax memilih langkah bernilai maksimal sebagai langkah terbaik. Sebaliknya di kedalaman 2 (dan kedalaman genap lainnya), posisi papan akan menentukan nilai untuk pemain lawan yang akan melangkah berikutnya (opponent player), sehingga di kedalaman genap ini algoritma minimax memilih langkah bernilai minimal sebagai langkah terbaik.

Sebagai ilustrasi sampai kedalaman dua bisa digambarkan dengan tabel berikut:
B memilih B1
B memilih B2
B memilih B3
A memilih A1
+3
−2
+2
A memilih A2
−1
0
+4
A memilih A3
−4
−3
+1

Ketika A memilih langkah A1 dilanjutkan dengan B memilih langkah B1, posisi papan yang terbentuk bernilai +3. Demikian pula untuk A1 → B2 nilainya -2, A1 → B3 nilainya +2 dst. Sekarang mari kita coba aplikasikan algoritma minimax untuk menghitung langkah terbaik bagi pemain A.

Terhadap langkah A1 (kedalaman 1) misalnya valid moves pemain B adalah B1, B2 dan B3 (kedalaman 2), dan langkah terbaik menurut algoritma minimax didapat dengan mencari langkah bernilai minimal (karena di kedalaman 2), yaitu B2 (bernilai -2). Demikian pula terhadap langkah A2 yang terbaik bagi B adalah B1 (bernilai -1), dan terhadap A3 adalah B1 juga (bernilai -4). Selanjutnya, nilai untuk langkah pemain A (kedalaman 1) adalah nilai yang 'dikembalikan' dari pemain B di kedalaman 2, yaitu A1 adalah -2, A2 adalah -1, dan A3 adalah -4. Kemudian untuk kedalaman 1 ini algoritma minimax mencari nilai maksimal sebagai langkah terbaik, yaitu A2 (bernilai -1).

Untuk kedalaman lebih dari dua, cara 'berpikir' algoritma minimax dapat digambarkan sebagai pohon permainan (game tree) seperti pada gambar di atas. Di lokasi paling dalam (disebut lokasi node daun atau leaf node), dalam hal ini kedalaman 4, dilakukanlah perhitungan nilai posisi papan yang selanjutnya 'dikembalikan' ke node pada kedalaman di atasnya terus hingga sampai lokasi paling atas (di sebut akar atau root). Panah merah menunjukkan nilai yang dikembalikan dari langkah terbaik pilihan algoritma minimax ke kedalaman di atasnya. Demikianlah, kita dapat melihat algoritma minimax bergantian memilih langkah dengan nilai minimal dan maksimal sebagai langkah terbaik sesuai dengan kedalamannya. Dengan algoritma ini komputer dapat 'berpikir' sampai kedalaman tertentu untuk menentukan langkah terbaik untuk memenangkan permainan.

Tetapi pada prakteknya, algoritma minimax kini tidak pernah digunakan lagi, karena algoritma ini harus memperhitungkan semua valid moves, sehingga memerlukan waktu yang sangat lama. Sebagai gantinya telah dikembangkan beberapa improvisasi dari minimax seperti algoritma AlphaBeta, NegaScout dll. yang dapat melakukan pemangkasan game tree supaya tidak perlu memperhitungkan semua valid moves, sehingga dapat 'berpikir' dalam waktu jauh lebih cepat.

TRANSPOSITION TABLE AND MEMORY
·         Algoritma dapat menggunakan tabel transposisi untuk menghindari melakukan pekerjaan ekstra dalam mencari posisi board yang sama beberapa kali
·         Memori kerja posisi board sudah dikenal
·         Menggunakan fungsi hash khusus desiderata: sebarkan posisi-posisi yang mirip seluas mungkin melalui kisaran nilai hash nilai hash yang banyak berubah saat berpindah dari papan bergerak mengalami perubahan yang sangat sedikit.

·         Kunci zobrist adalah sekumpulan bit acak dari fixed-length pola yang tersimpan untuk setiap kemungkinan keadaan dari setiap lokasi yang mungkin ada pada board. Contoh: Catur memiliki 64 kotak, dan masing-masing persegi bisa kosong atau ada 1 dari 6 potongan berbeda  di atasnya, masing-masing dua warna mungkin.Zobrist kunci harus seperti berikut :        64 2 (6 + 1) = 832 bit-string yang berbeda.
·        Kunci Zobrist perlu diinisialisasi dengan bit-string acak dengan ukuran yang sesuai.
·         Untuk setiap kotak yang tidak kosong, tombol Zobrist adalah mendongak dan XORed dengan jumlah hash yang berjalan.
·       Zobrist Key dapat diperbarui secara bertahap


               Apa yang harus disimpan?
·         Tabel hash menyimpan nilai yang terkait dengan posisi board
·         Gerakan terbaik dari posisi masing-masing board.
·         Kedalaman digunakan untuk menghitung nilai
·         Nilai yang akurat, atau kita dapat juga menyimpan nilai "fail-soft" yang dihasilkan dari sebuah cabang yang dipangkas
·         Nilai akurat atau nilai gagal-rendah (alpha pruned), atau nilai gagal-tinggi (beta pruned)





SUMBER ;
·          


Senin, 20 November 2017

BAB 10) TEKNIK PEMBANGUNAN GAME AI



PENGANTAR TEKNOLOGI SISTEM CERDAS
  DISUSUN OLEH
CLAUDYA TUPAMAHU
11115533
3KA12


Di dunia akademis, bidang kecerdasan buatan dipelajari secara serius untuk meningkatkan kualitas hidup manusia. Para peneliti dan mahasiswa (ilmu komputer atau teknik informatika) terus menerus mengembangkan teknik-teknik pada bidang ini untuk menghasilkan mesin yang semakin mengerti, dan memahami kebutuhan manusia. Dalam game berbasis kecerdasan buatan, ada banyak teknik yang diadaptasi dari bidang kecerdasan buatan untuk diterapkan pada game. beberapa diantaranya, yaitu:
  • Decision Making
        Decision Making adalah serangkaian algoritma yang dirancang dengan memasukan beberapa kemungkinan langkah yang bisa diambil oleh suatu aplikasi, Pada game ini decision making memberikan kemampuan suatu karakter untuk menentukan langkah apa yang akan diambil. Decision making dilakukan dengan cara menentukan satu pilihan dari list yang sudah dibuat pada algoritma yang dirancang. Algoritma decision making kerap digunakan dalam aplikasi game, akan tetapi algoritma decision making dapat diimplementasikan pada banyak aplikasi lain.
Decision Making terbagi menjadi 3 yaitu : Decision Tree, State Machine dan Rule System

1. Decision Tree

        Pohon Keputusan (Decision Tree) merupakan metode klasifikasi dan prediksi yang sangat kuat dan terkenal. Metode pohon keputusan mengubah fakta yang sangat besar menjadi pohon keputusan yang merepresentasikan aturan. Aturan dapat dengan mudah dipahami dengan bahasa alami. Aturan ini juga dapat diekspresikan dalam bentuk bahasa basis data seperti SQL untuk mencari record pada kategori tertentu. Pohon keputusan juga berguna untuk mengeksplorasi data, menemukan hubungan tersembunyi antara sejumlah calon variabel input dengan sebuah variabel target. Karena pohon keputusan memadukan antara eksplorasi data dan pemodelan, pohon keputusan ini sangat bagus sebagai langkah awal dalam proses pemodelan bahkan ketika dijadikan sebagai model akhir dari beberapa teknik lain(J R Quinlan, 1993).

        Dalam situasi lain kemampuan untuk menjelaskan alasan pengambilan keputusan adalah sesuatu yang sangat penting. Misalnya pada perusahaan asuransi ada larangan resmi untuk mendeskriminasi berdasarkan variabel-variabel tertentu. Perusahaan asuransi dapat mencari sendiri keadaan yang mencerminkan bahwa mereka tidak menggunakan deskriminasi yang ilegal dalam memutuskan seseorang diterima atau ditolak. Sebuah pohon keputusan adalah sebuah struktur yang dapat digunakan untuk membagi kumpulan data yang besar menjadi himpunan-himpunan record yang lebih kecil dengan menerapkan serangkaian aturan keputusan. Anggota himpunan hasil menjadi mirip satu dengan yang lain dengan masing-masing rangkaian pembagian. Sebuah model pohon keputusan terdiri dari sekumpulan aturan untuk membagi sejumlah populasi yang heterogen menjadi lebih kecil, lebih homogen dengan memperhatikan pada variabel tujuannya. Sebuah pohon keputusan mungkin dibangun dengan seksama secara manual, atau dapat tumbuh secara otomatis dengan menerapkan salah satu atau beberapa algoritma pohon keputusan untuk memodelkan himpunan data yang belum terklasifikasi (Tan dkk, 2004).

        Variabel tujuan biasanya dikelompokkan dengan pasti dan model pohon keputusan lebih mengarah pada perhitungan probabilitas dari masing-masing record terhadap kategori-kategori tersebut, atau untuk mengklasifikasi record dengan mengelompokkannya dalam satu kelas. Pohon keputusan juga dapat digunakan untuk mengestimasi nilai dari variabel kontinyu, meskipun ada beberapa teknik yang lebih sesuai untuk kasus ini.

Kelebihan dari metode pohon keputusan adalah:

  1. Daerah pengambilan keputusan yang sebelumnya kompleks dan sangat global, dapat diubah menjadi lebih simpel dan spesifik
  2. Eliminasi perhitungan-perhitungan yang tidak diperlukan, karena ketika menggunakan metode pohon keputusan maka sampel diuji hanya berdasarkan kriteria atau kelas tertentu
  3. Fleksibel untuk memilih fitur dari node internal yang berbeda, fitur yang terpilih akan membedakan suatu kriteria dibandingkan kriteria yang lain dalam node yang sama. Kefleksibelan metode pohon keputusan ini meningkatkan kualitas keputusan yang dihasilkan jika dibandingkan ketika menggunakan metode penghitungan satu tahap yang lebih konvensional
  4. Dalam analisis multivarian, dengan kriteria dan kelas yang jumlahnya sangat banyak, seorang penguji biasanya perlu mengestimasikan baik itu distribusi dimensi tinggi ataupun parameter tertentu dari distribusi kelas tersebut. Metode pohon keputusan dapat menghindari munculnya permasalahan ini dengan menggunakan kriteria yang jumlahnya lebih sedikit pada setiap node internal tanpa banyak mengurangi kualitas keputusan yang dihasilkan.
Kekurangan pada pohon keputusan adalah:

  1. Terjadi overlapping terutama ketika kelas-kelas dan kriteria yang digunakan jumlahnya sangat banyak. Hal tersebut juga dapat menyebabkan meningkatnya waktu pengambilan keputusan dan jumlah memori yang diperlukan
  2. Pengakumulasian jumlah kesalahan dari setiap tingkat dalam sebuah pohon keputusan yang besar
  3. Kesulitan dalam mendesain pohon keputusan yang optimal
  4. Hasil kualitas keputusan yang didapatkan dari metode pohon keputusan sangat tergantung pada bagaimana pohon tersebut didesain.

        Pohon keputusan adalah model prediksi menggunakan struktur pohon atau struktur berhirarki. Setiap percabangan menyatakan kondisi yang harus dipenuhi dan tiap ujung pohon menyatakan kelas data. Contoh pada Gambar diatas adalah identifikasi pembeli komputer. Dari pohon keputusan tersebut diketahui bahwa salah satu kelompok yang potensial membeli komputer adalah orang yang berusia di bawah 30 tahun dan juga pelajar. Setelah sebuah pohon keputusan dibangun maka dapat digunakan untuk mengklasifikasikan record yang belum ada kelasnya. Dimulai dari node root, menggunakan tes terhadap atribut dari record yang belum ada kelasnya ini lalu mengikuti cabang yang sesuai dengan hasil dari tes tersebut, yang akan membawa kepada internal node (node yang memiliki satu cabang masuk dan dua atau lebih cabang yang keluar), dengan cara harus melakukan tes lagi terhadap atribut atau node leaf. Record yang kelasnya tidak diketahui kemudian diberikan kelas yang sesuai dengan kelas yang ada pada node leaf. Pada pohon keputusan setiap simpul leaf menandai label kelas. Proses dalam pohon keputusan yaitu mengubah bentuk data (tabel) menjadi model pohon (tree) kemudian mengubah model pohon tersebut menjadi aturan (rule) (J R Quinlan, 1993).

        Salah satu algoritma induksi pohon keputusan yaitu ID3 (Iterative Dichotomiser 3). ID3 dikembangkan oleh J. Ross Quinlan. Dalam prosedur algoritma ID3, input berupa sampel training, label training dan atribut. Algoritma Decision Tree C4.5 merupakan pengembangan dari ID3. Sedangkan pada perangkat lunak open source WEKA mempunyai versi sendiri dari C4.5 yang dikenal sebagai J48.

2. State Machine

        Finite State Machines (FSM) adalah sebuah metodologi perancangan sistem kontrol yang menggambarkan tingkah laku atau prinsip kerja sistem dengan menggunakan tiga hal berikut: State (Keadaan), Event (kejadian) dan action (aksi). Pada satu saat dalam periode waktu yang cukup signifikan, sistem akan berada pada salah satu state yang aktif. Sistem dapat beralih atau bertransisi menuju state lain jika mendapatkan masukan atau event tertentu, baik yang berasal dari perangkat luar atau komponen dalam sistemnya itu sendiri (misal interupsi timer). Transisi keadaan ini umumnya juga disertai oleh aksi yang dilakukan oleh sistem ketika menanggapi masukan yang terjadi. Aksi yang dilakukan tersebut dapat berupa aksi yang sederhana atau melibatkan rangkaian proses yang relative kompleks.

        Berdasarkan sifatnya, metode FSM ini sangat cocok digunakan sebagai basis perancangan perangkat lunak pengendalian yang bersifat reaktif dan real time. Salah satu keutungan nyata penggunaan FSM adalah kemampuannya dalam mendekomposisi aplikasi yang relative besar dengan hanya menggunakan sejumlah kecil item state. Selain untuk bidang kontrol, Penggunaan metode ini pada kenyataannya juga umum digunakan sebagai basis untuk perancangan protokol-protokol komunikasi, perancangan perangkat lunak game, aplikasi WEB dan sebagainya.

        Dalam bahasa pemrograman prosedural seperti bahasa C, FSM ini umumnya direalisasikan dengan menggunakan statemen kontrol switch case atau/dan if..then. Dengan menggunakan statemen-statemen kontrol ini, aliran program secara praktis akan mudah dipahami dan dilacak jika terjadi kesalahan logika.

3. Rule Systems

        Rule Based System merupakan metode pengambilan keputusan berdasarkan pada aturan-aturan tertentu yang telah ditetapkan. RBS dapat diterapkan pada agen virtual dalam bentuk kecerdasan buatan sehingga dapat melakukan tindakan tertentu. Tindakan tersebut direpresentasikan oleh set aturan yaitu penyebab tindakan itu terjadi, proses tindakan dan hasil dari tindakan tersebut.

        Rule Base Systems (RBS) sistem yang baik untuk mendapat jawaban dari pertanyaan mengenai What (apa), How (bagaimana) dan Why (mengapa) dari Rule Base (RB) selama proses inferensia. Jawaban dan penjelasannya dapat disediakan dengan baik. Masalah yang ada dengan SBP adalah ia tak dapat secara mudah menjalankan proses akuisisi knowledge (pengetahuan) dan ia tak dapat mengupdate rule (aturan) secara otomatis. Hanya pakar yang dapat mengupdate Knowledge Base (KB) secara manual dengan dukungan dari knowledge engineer (insinyur pengetahuan). Lebih jauh kebanyakan peneliti dalam SBA lebih memperhatikan masalah optimasi pada rule yang sudah ada daripada pembangkitan rule baru dari rule yang sudah ada. Namun demikian, optimasi rule tak dapat mengubah hasil dari inferensia secara signifikan, yaitu dalam hal cakupan pengetahuan.

        Ripple Down Rule (RDR) datang untuk mengatasi permasalahan utama dari sistem pakar: pakar tak perlu lagi selalu mengkomunikasikan pengetahuan dalam konteks yang spesifik. RDR membolehkan akuisisi yang cepat dan sederhana secara ekstrim tanpa bantuan dari knowledge engineer. Pengguna tak perlu menguji RB dalam rangka mendefinisikan rule baru: pengguna hanya perlu untuk mampu mendefinisikan rule baru yang secara benar mengklasifikasikan contoh yang diberikan, dan sistem dapat menentukan dimana suatu rule harus ditempatkan dalam hirarki rulenya. Keterbatasan dari RDR adalah kekurangan dalam hal inferensia yang berdayaguna. Tak seperti SBA yang dilengkapi dengan inferensia melalui forward dan backward chaining, RDR kelihatannya menggunakan Depth First Search (DFS) yang memiliki kekurangan dalam hal fleksibelitas dalam hal penjawaban pertanyaan dan penjelasan yang tumbuh dari inferensia yang berdayaguna.

        Variable-Centered Intelligent Rule System (VCIRS) merupakan perkawinan dari SBA dan RDR. Arsitektur sistem diadaptasi dari SBA dan ia mengambil keuntungan-keuntungan yang ada dari RDR. Sistem ini mengorganisasi RB dalam struktur spesial sehingga pembangunan pengetahuan, inferensia pengetahuan yang berdayaguna dan peningkatan evolusional dari kinerja sistem dapat didapatkan pada waktu yang sama. Istilah “Intelligent” dalam VCIRS menekankan pada keadaan sistem ini yang dapat “belajar” untuk meningkatkan kinerja sistem dari pengguna sistem selama pembangunan pengetahuan (melalui analisis nilai) dan penghalusan pengetahuan (dengan pembangkitan rule).

  • Path Finding
        Metode Path Finding seringkali dijumpai pada game yang bergenre strategi, dimana kita sebagai user menunjuk satu karakter untuk digerakkan ke lokasi tertentu dengan cara mengklik lokasi yang akan dituju. Maka, si karakter tersebut akan bergerak ke arah yang telah ditentukan, dan secara “cerdas” dapat menemukan jaur terpendek ataupun menghindari rintangan yang ada.
Metode pada Path Finding terbagi menjadi 4 bagian yaitu:

1. Waypoints

        Merupakan titik acuan/kumpulan koordinat yang digunakan untuk keperluan navigasi. Maksud dari keperluan navigasi disini adalah mengidentifikasi sebuah titik dipeta. Disetiap koordinat biasanya menyertakan longitude, latitude, dan terkadang altitude untuk keperluan navigasi di udara.

2. A* Searching

        Algoritma A* merupakan yang sering digunakan pada game yang menggunakan metode pathfinding. Algoritma ini dipilih karena A* sangat mudah untuk diimplementasikan dan sangat efisien. Dengan menggunakan algoritma A* kita dapat menentukan jalur terpendek. Pada algotitma ini akan menyeleksi dengan cara membuang langkah yang tidak perlu dengan mempertimbangkan bahwa langkah yang dibuang dipastikan tidak mencapai solusi yang diinginkan.

        Prinsip dari algoritma ini yaitu dengan cara mencari jalur terpendek dari sebuah simpul awal (Starting Point) menuju ke simpul tujuan dengan memperhatikan harga (F) terkecil. Algoritma A* akan memperhitungkan cost dari current state ke tujuan dengan fungsi heuristic, selain itu algoritma ini juga mempertimbangkan cost yang telah ditempuh selama ini dari initial state ke current state. Jadi maksudnya jika jalan yang telah ditempuh terlalu panjang dan ada jalan lain yang cost nya lebih kecil tetapi memberikan posisi yang sama jika dilihat dari goal, maka jalan yang lebih pendeklah yang akan dipilih.

3. Dijkstra

        Algoritma Dijkstra yang dinamai penemunya yakni seorang ilmuwan komputer, Edsger Dijkstra merupakan sebuah algoritma yang rakus atau biasa dikenal dengan algoritma greedy. Algoritma ini biasa dipakai dalam memecahkan permasalahan jarak terpendek (shortest path problem) untuk sebuah graf berarah (directed graph) dengan bobot-bobot sisi (edge weights) yang bernlai positif.

4. Tactical Pathfinding

        Tactical Pathfinding merupakan algoritma pencarian jalur yang bisa melakukan pencarian jalur terpendek dengan menghitung bobot ancaman. Implementasi algoritma ini dapat memberikan gerakan taktis pada non-player character. Algoritma ini dilakukan berdasarkan algoritma pencarian jalur A* yang ditambah dengan perhitungan bobot.

  • Mengejar dan Menghindar
        Mengejar dan menghindar merupakan teknik dasar yang diterapkan pada banyak game berbasis kecerdasan buatan dari yang sederhana sampai yang kompleks. apakah itu space shooters, RPG, atau game strategi. metode paling umum pada teknik mengejar dan menghindar ini adalah melakukan pemutakhiran (update) koordinat terhadap objek yang menjadi sasaran. Posisi relatif dan kecepatan dapat dijadikan sebagai parameter pada algoritma mengejar dan menghindar. Metode Line-of-sight yang membutuhkan dasar rumus persamaan garis juga serngkali dijadikan basis metode mengejear dan menghindar.

  • Pola Pergerakan
        Pola pergerakan merupakan cara yang sederhana untuk memberikan ilusi kecerdasan pada sebuah game. Game Galaga adalah contoh klasik penerapan pola pergerakan ini, dimana pesawat musuh dapat bergerak secara melingkat atau mengikuti pola garis lurus yang ditentukan. Contoh lain penerapan pola pergerakan adalah pada game first-person shooter yang menampilkan monster yang sedang berpatroli pada jalur tertentu, pada game simulasi pertempuran pesawat dimana pesawat musuh dapat melakukan manuver-manuver di udara yang menyulitkan kita mengejar, atau karakter-karakter non-player (figuran) seperti kambing yang sedang berjalan membutuhkan teknik pola pergerakan ini. Metode standar untuk menerapkan pola pergerakan adalah dengan cara menyimpan pola tersebut dalam suatu array. Array tersebut terdiri dari serangkaian koordinat atau perintah pergerakan dengan pola tertentu untuk mengontrol koordinat dari objek. Dengan metode ini, bisa didapatkan pola-pola pergerakan seperti melingkar, garis lurus, zig-zag atau bahkan kurva tak beraturan.

  • Jaringan saraf tiruan (neural network)
        Neural network cukup baik ketika diterapkan pada kasus-kasus yang sifatnya non-linier atau mengambil keputusan yang tidak dapat dilakukan dengan metode tradisional. Penerapannya seringkali pada game-game yang memerlukan kemampuan adaptif atau belajar dari pengalaman. Sebagai contoh, jika suatau ketika terjadi pertempuran antar player dengan unit komputer, dan unit komputer mengalami kekalahan, maka pada kesempatan lain yang serupa, komputer akan memilih untuk tidak bertempur. Semakin banyak pengalaman yang dialami komputer, maka komputer menjadi semakin cerdas. Prinsip dasar dari jaringan saraf tiruan ini adalah perbaikan bobot secara terus menerus agar output yang dihasilkan menjadi semakin akurat (semakin cerdas).

  • Algoritma Genetis (genetic algorithm)
        Algoritma genetis sedikit banyak dipengaruhi oleh teori evolusi yang dicetuskan Darwin, yaitu bahwa spesies akan terus menerus beradaptasi dengan lingkungannya dan ciri khasnya yang terletak pada kromosom, akan diturunkan pada generasi berikutnya. Generasi turunan ini menerima gabungan kromosom dari kedua induknya, yang disebut dengan crossover. Pada algoritma genetis, akan diterapkan langkah ranking fitness untuk melakukan seleksi terhadap langkah ranking fitness untuk melakukan seleksi terhadap generasi turunan yang terbaik. Pada game berbasis algorima genetis, turunan terbaik inilah yang dilibatkan ke dalam game, dimana akan digunakan oleh komputer untuk merespons perubahan-perubahan tingkah laku user.

SUMBER :
https://laskyargiovane.wordpress.com/2016/04/25/artificial-intelligence-kecerdasan-buatan-pada-game/
https://septianbudiuntoro.wordpress.com/2016/04/19/artificial-intelligence/
https://aswendy.wordpress.com/2015/04/23/artificial-intelligent-pada-game-decision-making/


Senin, 13 November 2017

BAB 9. KECERDASAN BUATAN & PERMAINAN ( AI & GAMES )

PENGANTAR TEKNOLOGI SISTEM CERDAS
Image result for gunadarma logo
  DISUSUN OLEH
CLAUDYA TUPAMAHU
11115533
3KA12
 
 
 
Pengertian Kecerdasan Buatan
Kecerdasan buatan (bahasa Inggris: Artificial Intelligence atau AI) didefinisikan sebagai kecerdasan yang ditunjukkan oleh suatu entitas buatan. Sistem seperti ini umumnya dianggap komputer. Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin (komputer) agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia. Beberapa macam bidang yang menggunakan kecerdasan buatan antara lain sistem pakar, permainan komputer (games), logika fuzzy, jaringan syaraf tiruan dan robotika.
Penelitian dalam AI menyangkut pembuatan mesin untuk mengotomatisasikan tugas-tugas yang membutuhkan perilaku cerdas. Termasuk contohnya adalah pengendalian, perencanaan dan penjadwalan, kemampuan untuk menjawab diagnosa dan pertanyaan pelanggan, serta pengenalan tulisan tangan, suara dan wajah. Hal-hal seperti itu telah menjadi disiplin ilmu tersendiri, yang memusatkan perhatian pada penyediaan solusi masalah kehidupan yang nyata. Sistem AI sekarang ini sering digunakan dalam bidang ekonomi, obat-obatan, teknik dan militer, seperti yang telah dibangun dalam beberapa aplikasi perangkat lunak komputer rumah dan video game.

Pengertian Game
Game adalah permainan komputer yang dibuat dengan teknik dan metode animasi. Permainan game merupakan bidang AI yang sangat populer berupa permainan antara manusia melawan mesin yang mempunyai intelektual untuk berpikir. Komputer dapat bereaksi dan menjawab tindakan-tindakan yang diberikan oleh lawan mainnya.
Salah satu komputer yang ditanamkan AI untuk game bernama Deep Blue. Deep Blue adalah sebuah komputer catur buatan IBM pertama yang memenangkan sebuah permainan catur melawan seorang juara dunia (Garry Kasparov) dalam waktu standar sebuah turnamen catur. Kemenangan pertamanya (dalam pertandingan atau babak pertama) terjadi pada 10 Februari 1996, dan merupakan permainan yang sangat terkenal.
Kini telah banyak berkembang game AI yang semakin menarik, interaktif, dan dengan grafis yang sangat bagus. Ditambah dengan kemajuan teknologi jaringan komputer yang semakin cepat, sudah banyak terdapat game-game AI yang berbasiskan online. Tidak sedikit orang yang tertarik dengan game saat ini. Mereka memainkan game untuk mengisi kekosongan waktu mereka atau pun melatih skill mereka dalam berpikir.

Sejarah Artificial Intelligence dalam Game
Pada tahun 1769, dataran Eropa dikejutkan dengan suatu permainan catur yang dapat menjawab langkah-langkah permainan catur yang belum ditentukan terlebih dahulu. Mesin ini disebut dengan Maelzel Chess Automation dan dibuat oleh Wolfgang Von Kempelan (1734-1804) dari Hungaria. Akan tetapi mesin ini akhirnya terbakar pada tahun 1854 di Philadelphia Amerika Serikat.banyak orang tidak percaya akan kemampuan mesin tersebut. Dan seorang penulis dari Amerika Serikat, Edgar Allan Poe (1809-1849) menulis sanggahan terhadap mesin tersebut, dia dan kawan-kawannya ternyata benar, bahwa mesin tersebut adalah tipuan, dan kenyataannya bukanlah aoutomation, tetapi merupakan konstruksi yang sangat baik yang dikontrol oleh seorang pemain catur handal yang bersembunyi di dalamnya.
Usaha untuk membuat konstruksi mesin permainan terus dilanjutkan pada tahun 1914, dan mesin yang pertama kali didemonstrasikan adalah mesin permainan catur. Penemu mesin ini adalah Leonardo Torres Y Quevedo, direktur dari Laboratorio de Automatica di Madrid, Spanyol. Beberapa tahun kemudian, ide permainan catur dikembangkan dan diterapkan di komputer oleh Arthur L. Samuel dari IBM dan dikembangkan lebih lanjut oleh Claude Shannon.

Artificial Intelligence dalam Game
Salah satu unsur yang berperan penting dalam sebuah game adalah kecerdasan buatan. Dengan kecerdasan buatan, elemen-elemen dalam game dapat berperilaku sealami mungkin layaknya manusia.
Game AI adalah aplikasi untuk memodelkan karakter yang terlibat dalam permainan baik sebagai lawan, ataupun karakter pendukung yang merupakan bagian dari permainan tetapi tidak ikut bermain (NPC = Non Playable Character). Peranan kecerdasan buatan dalam hal interaksi pemain dengan permainan adalah pada penggunaan interaksi yang bersifat alami yaitu yang biasa digunakan menusia untuk berinteraksi dengan sesama manusia. Contoh media interaksi ialah:
  • Penglihatan (vision)
  • Suara (voice), ucapan (speech)
  • Gerakan anggota badan ( gesture)
Untuk pembentukan Artificial Intelligence pada game ternyata digunakan pula algoritma, yaitu jenis pohon n-ary untuk suatu struktur. Implementasi pohon (tree) ini biasa disebut game tree. Berdasarkan game tree inilah sebuah game disusun algoritma kecerdasan buatannya. Artificial intellegence yang disematkan dalam sebuah game yang membentuk analisis game tree biasanya merepresentasikan kondisi atau posisi permainan dari game sebagai suatu node, dan merepresentasikan langkah yang mungkin dilakukan sebagai sisi berarah yang menghubungkan node kondisi tersebut ke anak (child) sebagaimana representasi suatu pohon (tree).
Namun, biasanya representasi langsung tersebut mempunyai kelemahan, yaitu representasi data pohon akan menjadi sangat lebar dan banyak. Mungkin bagi sebuah mesin komputer mampu melakukan kalkulasi sebanyak apapun masalah, namun game tree yang lebar dan besar memberikan beberapa masalah, antara lain konsumsi proses memori, kapasitas penyimpanan yang cukup besar dan kinerja yang kurang pada konsol game berspesifikasi rendah. Karena itu dibentuklah beberapa algoritma dan penyederhanaan bagi sebuah game tree.
Pada salah satu contoh game klasik, yaitu tic tac toe, penyederhanaan dapat dilakukan dengan berbagai metode. Salah satu diantaranya adalah minimax. Metode ini berhasil diterapkan dan memberikan nilai reduksi yang cukup signifikan. Dan tidak hanya bisa digunakan secara monoton, minimax juga bisa digunakan untuk game-game yang lebih rumit seperti catur, tentunya dengan algoritma dan representasi berbeda.
Minimax yang merupakan salah satu metode penerapan (implementasi) pohon n-ary pada suatu game, menandakan bahwa implementasi struktur (pohon khusunya) sangatlah diperlukan pada pembuatan dan penerapan Artificial Intelligence, dan tidak menutup kemungkinan ilmu dan metode baru yang lebih canggih akan ditemukan di masa depan.
Beberapa karakteristik dan batasan game untuk game playing :
Dimainkan oleh 2 ( dua ) pemain: manusia dan komputer. Para pemain saling bergantian melangkah.
1.      Perfect Information Game
Kedua pemain sama-sama memiliki akses pada informasi yang lengkap tentang keadaan permainan, sehingga tidak ada informasi yang tertutup bagi lawan mainnya.
2.      No Determined by Chances
Tidak melibatkan faktor probabilitas, misalnya dengan menggunakan dadu.
3.      No Phsychological Factors
Tidak melibatkan faktor psikologi, seperti "gertakan" (misalnya Poker)
4.      No Oversight Errors. Smart Opponen
Lawan diasumsikan pintar juga, jadi jangan mengharap lawan khilaf, sehingga terjadi salah langkah.
5.      Beberapa contoh permainan yang biasa digunakan sebagai contoh kasus Game Playintyle = "font-family:courier new;"> Last One Loses n
      n-coins Grundy's Game
      Slide-5
      Tic-Tac-Toe
      Checkers
      Go 
      Nim
      Othello
      Chess

E.     Pengembangan Game

Perkembangan Game yang pesat pada masa ini juga membutuhkan sesuatu yang berbeda pada rule permainannya. Sebuah sistem game, jika sudah dimainkan sampai tuntas oleh seorang player, maka ketika player yang sama memulai lagi permainan dari awal, maka rule permainannya akan sama. namun berbeda untuk game-game yang telah ada saat ini. sistem dalam game, dapat belajar mengenali pola permainan dari player dan ketika player tersebut memulai permainan kembali, maka sistem ini akan menggunakan rule yang berbeda untuk pemain yang sama ini. sehingga game menjadi lebih menarik dan menantang untuk dimainkan.


Contoh aplikasi kecerdasan buatan dalam bentuk game sangat banyak sekali, ada yang berbentuk game PC, dan ada pula yang berbentuk game jaringan. Contoh aplikasi game yaitu game Tic Tac Toe. Game Tic tac toe adalah sebuah permainan yang menggunakan papan berukuran n baris dan n kolom sehingga ukuran papan menjadi n x n misalkan 3 x 3.
Game ini merupakan game yang mengasah kemampuan berpikir manusia, dimana setiap pemain harus menyusun gambar secara vertikal, horizontal, miring kiri, dan miring kanan agar memperoleh nilai. Apabila pemain tidak dapat membentuk formasi gambar yang diinginkan maka permain dinyatakan kalah. Dan apabila pola gambar seimbang maka permainan dinyatakan drow atau seri. Permainan ini mengasah kemampuan berpikir sehingga para pemain harus melakukan tindakan yang baik dan memperhitungkan apa akibat dari tindakan yang dilakukan tersebut.

F.      Menggunakan Heuristik di Permainan

Game yang penting tes-tempat tidur untuk algoritma heuristik. Dua-orang game yang lebih rumit dari teka-teki yang sederhana karena mereka melibatkan lawan tak terduga.

o   Minimax Prosedur

The Game of Nim: Sejumlah token ditempatkan pada meja di antara dua lawan. Pada masing-masing gerakan pemain harus membagi tumpukan token menjadi dua tumpukan tak kosong dari berbagai ukuran. Jadi, 6 token dapat dibagi menjadi 5 dan 1, 4 dan 2, tetapi tidak 3 dan 3. Pemain pertama yang mampu bergerak kehilangan permainan.
Untuk sejumlah kecil token ruang pencarian dapat dicari secara mendalam. Gambar berikut memberikan ruang lengkap untuk permainan 7-token.
Dalam permainan dua-orang, Anda harus mengasumsikan bahwa lawan Anda memiliki pengetahuan yang sama yang Anda lakukan dan berlaku sebaik yang Anda lakukan. Jadi pada setiap tahap permainan Anda harus menganggap lawan membuat langkah terbaik yang tersedia. Ini adalah dasar dari prosedur minimax.
Dalam minimax, para pemain yang disebut sebagai MAX (pemain) dan MIN (lawan). Keduanya mencoba untuk memaksimalkan gerakan mereka. MAX pemain, mencoba untuk memaksimalkan nilainya. Dan MIN adalah lawan mencoba untuk meminimalkan skor MAX.
Prosedur Minimax pada Pencarian Ruang Lengkap
1.      Label setiap tingkat dari ruang pencarian sesuai dengan yang bergerak itu di tingkat itu.
2.      Mulai di node daun, setiap label simpul daun dengan 1 atau 0 tergantung pada apakah itu adalah kemenangan bagi MAX (1) atau MIN (0).
3.      Merambat ke atas: jika negara induk MAX, memberikan MAX anak-anaknya.
4.      Merambat ke atas: jika negara induk MIN, MIN memberikan anak-anaknya.

Pertimbangkan grafik minimax untuk Nim permainan. Nilai di negara masing-masing mewakili nilai negara terbaik yang pemain ini bisa berharap untuk mencapai. Nilai-nilai yang diperoleh digunakan untuk memilih di antara alternatif bergerak.

o   Heuristik Minimax

Untuk permainan yang paling tidak mungkin untuk memperluas grafik untuk node daun. Sebaliknya strategi n-pindah melihat-depan adalah digunakan. Ruang negara diperluas ke tingkat n. Setiap node daun di subgraf ini diberikan nilai sesuai dengan fungsi evaluasi heuristik. Nilai kemudian disebarkan kembali ke simpul akar. Nilai disebarkan kembali mewakili nilai heuristik dari negara terbaik yang dapat dicapai dari simpul tersebut.
Contoh: Program catur Samuel menggunakan jumlah tertimbang sebagai fungsi evaluasi. Ini menggunakan algoritma pembelajaran sederhana untuk menyesuaikan bobot setelah menang dan kerugian, sehingga program perbaikan dari waktu ke waktu.

o   Prosedur Alpha-Beta

Alpha-beta pruning adalah prosedur untuk mengurangi jumlah perhitungan dan mencari selama minimax. Minimax adalah pencarian dua-pass, satu lulus digunakan untuk menetapkan nilai-nilai heuristik ke node pada kedalaman ply dan yang kedua digunakan untuk menyebarkan nilai-nilai sampai pohon.
Alpha-beta hasil pencarian secara mendalam-pertama. Sebuah nilai alpha adalah nilai awal atau sementara terkait dengan node MAX. Karena MAX node diberi nilai maksimum antara anak-anak mereka, nilai alpha tidak dapat menurunkan, hanya bisa naik. Sebuah nilai beta adalah nilai awal atau sementara terkait dengan node MIN. Karena node MIN diberi nilai minimum antara anak-anak mereka, nilai beta tidak pernah dapat meningkatkan, hanya bisa turun.
Misalnya, alpha node MAX = 6. Kemudian cari tidak perlu mempertimbangkan setiap cabang yang berasal dari keturunan MIN yang memiliki nilai beta yang kurang-dari-atau-sama dengan 6. Jadi, jika Anda tahu bahwa node MAX memiliki alpha 6, dan Anda tahu bahwa salah satu keturunan MIN yang memiliki beta yang kurang dari atau sama dengan 6, Anda tidak perlu mencari lebih jauh di bawah simpul MIN. Ini disebut pemangkasan alpha.
Alasannya adalah bahwa tidak peduli apa yang terjadi di bawah simpul MIN, tidak dapat mengambil nilai yang lebih besar dari 6. Jadi nilainya tidak dapat diperbanyak sampai dengan (alpha) orangtua MAX nya.
Demikian pula, jika nilai beta node MIN itu = 6, anda tidak perlu mencari lebih jauh di bawah MAX keturunan yang telah memperoleh nilai alpha dari 6 atau lebih. Ini disebut pemangkasan beta.
Alasannya lagi adalah bahwa apa pun yang terjadi di bawah simpul MAX, tidak dapat mengambil nilai yang kurang dari 6. Jadi nilainya tidak dapat diperbanyak sampai dengan (beta) MIN orangtua nya.
Aturan untuk Alpha-beta Pemangkasan
         Alpha Pemangkasan: pencarian dapat dihentikan di bawah setiap simpul MIN memiliki nilai beta kurang dari atau sama dengan nilai alpha dari setiap leluhur MAX nya.
         Pemangkasan beta: Pencarian bisa dihentikan di bawah setiap simpul MAX memiliki nilai alpha lebih besar dari atau sama dengan nilai beta dari setiap leluhur MIN nya.


SUMBER :