#PetGame Konsep AI

A. Deskripsi Umum AI
Kecerdasan Buatan atau biasa dikenal Artificial Intelligence (AI) biasa diidentik-kan dengan kemampuan robot yang dapat berperilaku layaknya manusia. Tahun 1950 – an Alan Turing, seorang pionir AI juga ahli matematika dan komputer Inggris melakukan percobaan Turing (Turing Test) yaitu sebuah komputer melalui terminalnya ditempatkan pada jarak jauh. Di ujung yang satu ada terminal dengan software AI dan diujung lain ada sebuah terminal dengan seorang operator. Operator itu tidak mengetahui kalau di ujung terminal lain dipasang software AI.

Mereka berkomunikasi dimana terminal di ujung memberikan respon terhadap serangkaian pertanyaan yang diajukan oleh operator. Dan sang operator itu mengira bahwa ia sedang berkomunikasi dengan operator lainnya yang berada pada terminal lain. Turing beranggapan bahwa jika mesin dapat membuat seseorang percaya bahwa dirinya mampu berkomunikasi dengan orang lain, maka dapat dikatakan bahwa mesin tersebut cerdas (seperti layaknya manusia).

Kecerdasan buatan (Artificial Intelligence) ialah membuat mesin bekerja seperti manusia. Beberapa ahli memukakan defisini kecerdasan buatan (Artificial Intelligence), yaitu sebagi berikut:
  • John McCarthy [1956]: Kecerdasan buatan (Artificial Intelligence) ialah Memodelkan proses berpikir manusia dan mendesain mesin agar menirukan perilaku manusia.
  • H. A. Simon [1987]“ Kecerdasan buatan (Artificial Intelligence) ialah sebuah tempat sebuah penelitian, aplikasi dan instruksi yang terkait dengan pemrograman komputer untuk melakukan sesuatu hal yang -dalam pandangan manusia adalah- cerdas”
  • Rich and Knight [1991]: “Kecerdasan Buatan (Artificial Intelligence) ialah sebuah studi tentang bagaimana membuat komputer melakukan hal-hal yang pada saat ini dapat dilakukan lebih baik oleh manusia.”
  • Encyclopedia Britannica: “Kecerdasan Buatan (Artificial Intelligence) ialah cabang dari ilmu komputer yang dalam merepresentasi pengetahuan lebih banyak menggunakan bentuk simbol-simbol daripada bilangan, dan memproses informasi berdasarkan metode heuristic atau dengan berdasarkan sejumlah aturan”
Kecerdasan Buatan dalam :
  • Dari perspektif Kecerdasan (Intelligence)
    AI adalah bagaimana membuat mesin yang “cerdas” dan dapat melakukan hal-hal yang sebelumnya dapat dilakukan oleh manusia.
  • Dari perspektif bisnis
    AI adalah sekelompok alat bantu (tools) yang berdaya guna, dan metodologi yang menggunakan tool-tool tersebut guna menyelesaikan masalah-masalah bisnis.
  • Dari perspektif pemrograman (Programming)
    AI termasuk didalamnya adalah studi tentang pemrograman simbolik, pemecahan masalah, proses pencarian (search).

Tujuan Kecerdasan Buatan
Tujuan dari kecerdasan buatan menurut Winston dan Prendergast [1984]:
  1. Membuat mesin menjadi lebih pintar (tujuan utama)
  2. Memahami apa itu kecerdasan (tujuan ilmiah)
  3. Membuat mesin lebih bermanfaat (tujuan entrepreneurial)
Bagian Utama dalam AI :
  1. Basis Pengetahuan (Base Knowledge) : Berisi fakta-fakta, teori, pemikiran dan hubungan antara satu dengan lainnya
  2. Motor Inferensi : Kemampuan menarik kesimpulan berdasarkan pengalaman
B. Decision Making :
Decision Tree
Sebuah pohon keputusan atau pohon klasifikasi adalah pohon di mana setiap internal yang ( non - daun ) simpul diberi label dengan fitur input. Busur yang berasal dari node berlabel dengan fitur diberi label dengan masing-masing nilai yang mungkin dari fitur tersebut. Setiap daun pohon diberi label dengan kelas atau distribusi probabilitas atas kelas.

Asumsi yang dipakai dalam penggunaan pohon keputusan ini antara lain :
  1. Hanya satu keputusan yang diambil oleh pengambil keputusan
  2. Setiap keputusan pasti menghasilkan hasil tertentu
  3. Setiap proses menunjukkan tahapan waktu yang ditempuh
Keuntungan menggunakan Decision Tree :
Decision Tree (Pohon Keputusan)
  • Keputusan adalah pemilihan alternatif yang merupakan suatu kumpulan alternatif tindakan yang akan diikuti dengan kejadian yang tidak pasti
  • Decision tree menggambarkan pemilihan alternatif secara sistimatis dan komprehensif dan menyeluruh tentang kejadian apa yang mungkin yang terjadi sebagai akibat suatu keputusan
  • Model ini berguna untuk melakukan evaluasi alternatif dugaan dampak yang tidak pasti dikemudian hari
  • Penerapannya memerlukan imajinasi hubungan variabel serta data nilai kemungkinan untuk setiap kejadian tak pasti serta memuat hasil keputusan berupa nilai pay-off atau losses
  • Hasil keputusan bisa dinyatakan secara kuantitatif atau kualitatif.

State Machine
Bahasa formal dapat dipandang sebagai entitas abstrak, yaitu sekumpulan string-string simbol alphabet tertentu. Namun bahasa juga dapat dipandang sebagai entitas-entitas abtrak yang dapat dikenali atau dibangkitkan melalui suatu mesin komputasi. Mesin yang dapat mengenali bahasa kelas ini adalah finite state machine. Ada beberapa definisi mengenai Finite State Machine (FSM) atau sering juga disebut dengan Finite State Automata (FSA).
  1. FSM didefenisikan sebagai perangkat komputasi yang memiliki input berupa string dan output yang merupakan satu dari dua nilai yang dapat di-accept dan reject (Rich : 2009).
  2. Finite Automata adalah model matematika sistem dengan masukan dan keluaran diskrit. Sistem dapat berada di salah satu dari sejumlah berhingga konfigurasi internal disebut state (Hariyanto : 2004).
  3. 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. 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 relatif kompleks (Setiawan : 2006).
Pada dasarnya implementasi FSM bisa dibagi menjadi tiga (3) cara, dimana masing-masing cara memiliki kelebihan dan kekurangan masing-masing. Ketiga cara tersebut adalah sebagai berikut (Wijaya, 2009) :
  1. Cara tradisional
    Kelebihan dari cara tradisional adalah mudah untuk diimplementasikan. Cara ini adalah cara klasik yang paling mudah untuk menerapkan FSM pada perangkat lunak sekaligus merupakan cara klasik yang biasanya masih banyak digunakan pada mikro komputer dengan sumber daya pemroses yang terbatas (limited hardware resources ). Kekurangan dari cara tradisional adalah bahwa implementasi yang mudah tersebut hanya berlaku jika sistem yang digunakan adalah sistem yang kecil. Seiring dengan membesarnya sistem dan membesarnya tingkat kompleksitas maka implementasi dan pemeliharaannya juga akan semakin rumit (Wijaya, 2009).
  2. Lookup table
    Cara lain mengimplementasikan FSM dalam perangkat lunak adalah dengan menggunakan lookup table. Tabel ini berisi semua transisi state yang mungkin terjadi pada sistem. Tabel ini direpresentasikan sebagai matriks pada kode program dimana tiap baris merepresentasikan event atau transisi state dan kolomnya merepresentasikan state sedangkan elemennya merepresentasikan next state (Wijaya, 2010). Kelebihan dari lookup table adalah kemudahannya untuk diimplementasikan dan pemeliharaannya lebih fleksibel. Implementasinya menggunakan matriks sehingga tidak begitu sulit menggunakan berbagai bahasa pemrograman untuk mengimplementasikannya. Pemeliharaannya juga cukup fleksibel karena tabel atau matriks tersebut mudah untuk dibaca maksudnya dan dipahami (Wijaya, 2010).

    Kelemahan dari lookup table adalah ketika diimplementasikan untuk sistem yang besar atau kompleks maka respon sistem akan jadi lebih lambat karena ukuran dimensi matriks yang digunakan menjadi besar sehingga memerlukan alokasi memori yang besar dan waktu proses lebih lama untuk mencari hubungan state pada matriks. Hal ini membuat implementasi lookup table jarang digunakan untuk sistem yang besar dan kompleks (Wijaya, 2010).
  3. Object Oriented
    Kelebihan penggunaan OOP pada FSM adalah fleksibilitasnya yang tinggi dan pemeliharaannya yang mudah baik pada sistem yang sederhana, menengah, maupun sistem yang kompleks (Yacoub, 1998: 1998). Selain itu juga mendapatkan manfaat dari salah satu kelebihan OOP yaitu penggunaan kembali kode yang telah diketik (code reusability) sehinga pengetikan kode menjadi lebih sedikit (Wijaya, 2010). Salah satu alternatif implementasi Finite State Machine adalah menggunakan pemrograman berorientasi objek (Object Oriented Programming) atau yang sering disingkat sebagai OOP (Wijaya, 2010).

    Kelemahan OOPFSM adalah hanya diperlukan pemahaman yang teknis mengenai teknik pemrograman berorientasi objek karena bahasa yang mendukung OOP tidaklah banyak, hanya bahasa pemrograman tingkat menengah dan tingkat tinggi yang mendukung OOP seperti C++ dan Java (Wijaya, 2010).
Keunggulan FSM :
FSM memiliki beberapa kelebihan (Brownlee, 2010), diantaranya
  1. Sederhana, sehingga mudah diimplementasikan
  2. Bisa diprediksi responnya
  3. Komputasi Ringan
  4. Relatif Fleksibel
  5. Merupakan metode AI lama yang bisa digunakan pada berbagai sistem
  6. Mudah ditransfer dari abstrak menjadi kode program
Kelemahan FSM:
Selain memiliki banyak kelebihan, FSM juga mempunyai beberapa kelemahan (Brownlee, 2010), diantaranya 
  1. Karena sifatnya bisa diprediksi, maka implementasi pada game kurang disukai
  2. Implementasi pada sistem yang lebih besar lebih sulit karena pengaturan dan pemeliharaannya menjadi kompleks
Rule Systems
Pada penalaran berbasis aturan, pengetahuan direpresentasikan dengan menggunakan aturan berbentuk : IF-THEN. Bentuk ini digunakan apabila kita memiliki sejumlah pengetahuan pakar pada suatu permasalahan tertentu, dan si pakar menyelesaikan masalah tersebut secara berurutan. Disamping itu, bentuk ini juga digunakan apabila dibutuhkan penjelasan tentang jejak (langkah-langkah) pencapaian solusi.

Sistem berbasis aturan adalah model yang relatif sederhana yang dapat disesuaikan dengan sejumlah masalah. Seperti halnya AI, sistem berbasis aturan memiliki kekuatan serta keterbatasan yang harus diperhatikan sebelum memutuskan apakah itu teknik yang tepat digunakan untuk masalah yang ditangani.

Dalam membuat sistem berbasis aturan (Rule) untuk masalah tertentu, setidaknya harus memperhatikan hal berikut :
  1. Membuat keadaan awal sistem yang relevan.
  2. Satu set aturan yang mencakup semua tindakan yang harus diambil dalam ruang lingkup masalah.
  3. Sebuah kondisi yang menentukan bahwa solusi telah ditemukan atau tidak, hal ini diperlukan untuk menyelesaikan aturan.
C. Pathfinding
Waypoints
Waypoint merupakan kumpulan dari beberapa titik kordinat yang kemudian dijadikan sebagai navigasi pergerakan. Dalam sebuah game, pergerakan NPC (non playable character) umumnya menggunakan titik arah antara titik kordinat yang satu dengan yang lain ditentukan oleh pencipta game. Waypoint dapat digunakan pada non playable character untuk melakukan patroli di dalam game dengan melintasi titik-titik kordinat yang ditentukan.

Waypoint search merupakan pencarian yang paling efisien dan menghemat konsumsi pada CPU-Time. Hampir semua game sekarang ini menggunakan metode waypoint sebagai metode pencarian, terutama pada 3D game action dimana contoh game yang menerapkan waypoint sebagai solusinya adalah "Counter-Strike". Terdapat dua metode pencarian dengan menggunakan waypoint search, yaitu Best-First Search dan Data-Based Search.
Waypoint untuk Game Tower Defense
Waypoint yang lebih spesifik untuk pergerakan AI
Ada banyak cara yang dapat diimplementasikan selain secara otomatisasi. Yaitu dengan pathfinder dengan menggunakan waypoint yang ditentukan bagaimana bot bergerak dan beraksi jika menemukan objek yang dapat digunakan. Sebagai salah satu contoh adalah game dibawah ini.
Pada tahun 2000 game fenomenal Counter Strike, pergerakan bot diatur secara manual, dengan menggunakan titik(waypoint) yang digunakan sebagai status pergerakan bot didalam map game. Sehingga bot pun tidak begitu beradaptasi dengan lingkungan sekitarnya. Namun seiring berjalannya waktu algoritma path finder ini mulai digunakan secara automatic dalam analisa pergerakan bot apabila terdapat map baru sebanyak 1 kali. Kerumitan penggunaan waypoint bergantung pada seberapa detail pergerakan bot.

PathFinding
Pathfinding merupakan metode yang sangat dibutuhkan pada berbagai game, terutama game 3d. Path finding digunakan untuk menentukan arah pergerakan suatu objek berdasarkan keadaan lokasi dan object di sekitarnya dari satu titik ke titik lain. Pencarian jalur merupakan salah satu implementasi kecerdasan buatan dalam permainan. Pencarian jalur terpendek merupakan hal yang mempengaruhi pergerakan dan pengambilan keputusan pada non-player character.

Pathfinding algorithm adalah konsep pencarian dengan menggunakan best-first search. Pada proses ini node didalam map ditempatkan dan diberi id pada setiap node yang ada. Node tersebut akan men-scan setiap node yang satu dengan lain : Node 1 scan node 2,3,4  ..,n dan seterusnya. Dan node 2 scan node 1,3,4, ..., n dan seterusnya. Sewaktu semua node telah discan maka akan dimasukan kedalam variabel .

Tactical Pathfinding
Ada banyak jenis implementasi Pathfinding untuk game, semua itu bergantung pada jenis game yang akan dibuat seperti apa. Dalam permainan berbasis militer, karakter dituntut untuk bergerak secara taktis dalam menghadapi ancaman. Agen yang bergerak secara taktis dalam pencarian jalur tidak hanya mencari jalur terpendek, namun harus mempertimbangkan ancaman karena pertimbangan hit points, demi meningkatkan kesan nyata pada permainan. Tactical Pathfinding merupakan salah satu algoritma pencarian jalur yang dapat melakukan pencarian jalur terpendek dengan perhitungan bobot ancaman. Implementasi algoritma tactical pathfinding dapat memberikan gerakan taktis pada non-player character. Algoritma tactical pathfinding dilakukan berdasarkan algoritma pencarian jalur berdasarkan A* ditambah perhitungan bobot.

D. Tactic & Strategic AI
Strategic deciders adalah komponen yang secara konseptual di tingkat tertinggi abstraksi. Mereka harus memutuskan strategi NPC yang didasarkan pada kondisi saat ini dan memori. Pada tingkat berikutnya, tactic deciders merencanakan bagaimana membuat strategi yang dipakai sekarang dapat berjalan dengan baik. Executors atau pelaksana kemudian menerjemahkan keputusan dari tactical deciders untuk perintah tingkat rendah (low-level commands) sesuai dengan batasan yang digunakan oleh permainan atau simulasi. Komponen coordinators memahami hubungan antar-actuators dan mungkin kembali memberikan perintah tingkat rendah lebih lanjut. Akhirnya, actuators melakukan tindakan yang diinginkan. Bahasan penelitian ini lebih berada pada tingkat komponen strategic deciders dan tactical deciders.

Sumber :
A. Deskripsi AI :
Kecerdasan Buatan Diakses pada 17 April, 2016.
Kecerdasan buatan Menurut Para Ahli Diakses pada 17 April, 2016.
FTP Gunadarma (PPT) Diakses pada 17 April, 2016.
AI Definition Diakses pada 17 April, 2016.

B. Decision Making :
Decision Tree
SPK 7 (PDF) Diakses pada 17 April, 2016.
SPK 2 (PDF) Diakses pada 17 April, 2016.
Decision Tree (PDF) Diakses pada 17 April, 2016.
Penerapan Decision Tree Diakses pada 17 April, 2016.

State Machine
Chapter 2-FSM (PDF) Diakses pada 17 April, 2016.
UNIKOM (PDF) Diakses pada 17 April, 2016.
Pergantian senjata NPC pada Game FPS Menggunakan Fuzzy Sugeno (PDF) Diakses pada 17 April, 2016.

Rule System
UNIKOM (PDF) Diakses pada 17 April, 2016.
Rule Based Diakses pada 17 April, 2016.
Book Excerpt Ai for Game Diakses pada 17 April, 2016.
Desgining Artificial Intelligence Diakses pada 17 April, 2016.

C. Path Finding :
Waypoints
Edi Wahyudi, UNIKOM (PDF) Diakses pada 17 April, 2016.
Kompleksitas Algoritma A* Pada Implementasi PassiveAI Untuk Game Mobile AI (PDF) Diakses pada 17 April, 2016.
Thesis Binus (PDF) Diakses pada 17 April, 2016.

Pathfinding
Metode Pathfinding menggunakan Algoritma A* dengan Navigation Mesh (PDF) Diakses pada 17 April, 2016.
Analisis Dan Implementasi Algoritma Tactical Pathfinding Untuk Non-Player Character Dalam Permainan 3D (PDF) Diakses pada 17 April, 2016.
Toward More Realistic Pathfinding Diakses pada 17 April, 2016.
Amit's Game Programming Information Diakses pada 17 April, 2016.
Pathfinding for Tower Defense Diakses pada 17 April, 2016.

D. Tactic dan Strategic AI
Pergantian Senjata NPC pada Game FPS Menggunakan Fuzzy Sugeno (PDF) Diakses pada 17 April, 2016.
Desain Perubaha Perilaku Pada NPC Game Menggunakan Logika Fuzzy (PDF) Diakses pada 17 April, 2016.
Tactic and Strategic AI (PDF)  Diakses pada 17 April, 2016.
A Tactical and Strategic AI Interface for Real-Time Strategy Games (PDF) Diakses pada 17 April, 2016.
Bayu Radityo

Seorang lulusan teknik informatika yang senang dalam berbagi ilmu pengetahuan, dan membuat karya digital berupa photomanipulation dan digital drawing. instagram external-link

Posting Komentar

Lebih baru Lebih lama