Halo,
selamat siang bloggers. hari ini saya akan sedikit berbagi ilmu tentang
atrificial intelegence. mungkin sebagian dari kalian sudah mengetahui apa itu
AI. dan mungkin sebagian lagi belum tahu. daripada penasaran yuk kita cari tahu
?
SEJARAH KECERDASAN BUATAN (AI)
Sejarah
Kecerdasan BuataMulai sekitar abad 18 sebagaimana mesin telah menjadi lebih kompleks,
usaha yang keras telah dicoba untuk menciptakan manusia imitasi. Pada tahun
1736 seorang penemu dari perancis,Jacques de Vaucanson (1709-1782) membuat
suatu mesin pemain seruling berukuran seperti seorang manusia yang dapat memainkan
12 melodi nada. Tidak hanya ini saja, mekanik tersebut dapat memindahkan bibir
dan lidahnya secara nyata untuk mengontrol arus dari angin ke dalam seruling.
Pada tahun
1774 seorang penemu dari perancis, Pierre Jacques
Drotz mencengangkan masyarakat Eropa dengan suatu automation berukuran
sekitar seorang anak laki-laki yang dapat duduk dan menulis suatu buku catatan.
Penemuan ini kemudian dilanjutkan dengan yang lainnya, yaitu automation yang
berupa seorang gadis manis yang dapat memainkan harpsichord. Semuanya itu
masih merupakan proses mekanik yang melakukan gerak dengan telah ditentukan
terlebih dahulu.
Manusia
masih berusaha untuk menciptakan mesin yang lainnya. 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
olehArthur L. Samuel dari IBM dan dikembangkan lebih lanjut
oleh Claude Shannon.
Pada
abad ke 20, Automation sudah banyak dikembangkan dan diterapkan terutama pada
Angkatan bersenjata Amerika Serikat, berupa program-program simulasi
peperangan. Sekarang ini, perkembangan AI sudah mencapai pada tahap yang dapat
dikatakan fantastis, terutama di bidang-bidang berikut:
o Game Playing
o General Problem Solving
o Natural Language
Recognition
o Speech Recognition
o Visual Recognition
o Robotics dan system pakar
DEFINISI KECERDASAN
BUATAN
Apakah Artificial Intelligence (AI) atau
Intelegensi Buatan itu?
AI
dapat didefinisikan sebagai suatu mesin atau alat pintar (biasanya adalah suatu
komputer) yang dapat melakukan suatu tugas yang bilamana tugas tersebut
dilakukan oleh manusia akan dibutuhkan suatu kepintaran untuk melakukannya.
Definisi ini tampaknya kurang begitu membantu, karena beberapa ahli berpendapat
:
H.A Simon (1987):
“kecerdasan
buatan merupakan kawasan penelitian, aplikasi dan instruksi yang terkait dengan
pemrograman computer untuk melakukan sesuatu hal yang dalam pandangan manusia
adalah cerdas”.
Rich and Knight (1991):
“sebuah
studi tentang bagaimana membuat komputer melakukan hal-hal yang pada saat ini
dapat dilakukan dengan lebih baik oleh manusia”.
Encyclopedia Britannica:
“merupakan
cabang dari ilmu computer yang dalam merepresentasi pengetahuan lebih banyak
menggunakan bentuk symbol-simbol dari bilangan, dan memproses informasi
berdasarkan metode heuristic atau berdasarkan sejumlah aturan”
TUJUAN KECERDASAN BUATAN
Tujuan 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 menjadi lebih bermanfaat (tujuan entrepreneurial)
Didefinisikan
sebagai kecerdasan yang ditunjukan oleh suatu entitas buatan. Sistem seperti
ini umumnya dianggap computer. Kecerdasan diciptakan dan dimasukkan dalam suatu
mesin atau computer agar dapat melakukan pekerjaan seperti yang dapat dilakukan
manusia. Beberapa bidang yang
menggunakan kecerdasan buatan anatara lain system pakar, permaianan computer,
fuzzy logic, jaringan syaraf tiruan dan robotika.
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. Game memiliki beberapa tipe :
o Informasi lengkap :
suatu game dimana permain mengetahui semua
langkah yang mungkin terjadi dari dirinya sendiri dan dari lawan dan hasil
akhir dari permainan. Contoh game : catur dan tic tac toe
o Informasi tak lengkap :
game dimana pemain tidak tahu semua
kemungkinan langkah lawan. Contoh game : Kartu Poker dan Brigde karena semua
kartu tidak diketahui oleh para pemain.
ARTFICIAL 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.
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.
Tidak melibatkan faktor probabilitas, misalnya dengan menggunakan dadu.
3. No
Phsychological Factors
Tidak melibatkan faktor psikologi, seperti "gertakan" (misalnya Poker)
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.
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
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.
A. 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
B. 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
·
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
·
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.
Kecerdasan buatan (artificial intelligence) merupakan
kawasan penelitian, aplikasi dan instruksi yang terkait dengan pemrograman
komputer untuk melakukan sesuatu hal yang dalam pandangan manusia adalah cerdas
(Simon, 1987). Kecerdasan diciptakan dan dimasukkan ke dalam suatu mesin
komputer agar dapat melakukan pekerjaan seperti yang dapat dilakukan manusia.
Arsitektur
model AI pada permainan digambarkan dalam Gambar dibawah. Pada level pertama
mengandung komponen yang mewakili sensor yang memungkinkan karakter untuk
mengamati lingkungan serta state sendiri.Sensors menyaring
informasi dan peristiwa serta mengirimnya ke tingkat berikutnya. Tingkat kedua
berisi komponen analyzers yang menganalisis atau menghubungkan
kejadian dari individu sensor, yang mungkin mengarah pada peristiwa generasi
selanjutnya. Komponen memorizer bertugas menyimpan peristiwa yang
telah terjadi.
ARSITEKTUR MODEL AI PADA GAME
(Miftachul, 2010)
Strategic
deciders adalah komponen yang secara konseptual di tingkat tertinggi
abstraksi. Komponen ini harus memutuskan strategi untuk karakter 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. Komponencoordinators memahami hubungan antar
aktuator dan mungkin kembali memberikan perintah tingkat rendah lebih lanjut.
Akhirnya, aktuator melakukan tindakan yang diinginkan.
Contoh
penarapan AI pada permainan Call of Duty terlihat begitu baik. Tidak heran jika
permainan tersebut menjadi permainan yang sangat populer diantara jenis
permainan FPS lainnya. Tokoh BOT atau karakter musuh dalam permainan dapat
menyerang pemain dengan baik. BOT juga tidak hanya diam di suatu tempat saja.
Dia akan berpatroli seolah-olah sedang terus mencari pemain untuk ditembak.
Jika posisi pemain berada dalam area patroli BOT, maka BOT akan menembak pemain
sambil terus mendekati pemain. Namun BOT tidak terus terlalu mendekat ke
pemain. Dia membatasi jarak terdekat dari pemain. Hal ini sesuai dengan logika
manusia bahwa senjata api dapat digunakan dalam jarak yang jauh. Justru akan
terlihat aneh jika senjata perang ditembakkan dalam jarak yang sangat dekat.
Bagaimana ? sudah jelas belum? Belum? Jika kamu
masih penasaran yuk simak jurnal berikut ini J
Implementasi Adaptive Artificial Intelligence pada
game Capture The Flag dengan metode Dynamic Scripting
(1Chandra Mahendra, 2Vera Suryani, ST. MT., 3Gandeva Bayu,
ST.MT)
Primawan
Satrio1, Agung Toto Wibowo, S.T., M.T. 2, Bayu Munajat, S.T., M.T.3
1primawan.satrio@gmail.com,
2agungtoto@telkomuniversity.ac.id, 3bayumunajat@telkomuniversity.ac.id
Abstract
Artificial Intelligence (AI) sudah dipelajari semenjak
tahun 1956 saat John McCarthy mengadakan konferensi akademik pertama
nya, dan masih berkembang hingga sekarang
karena bidang ini masih sangat sukar dipahami di bidang ilmu komputer. AI
mencakup dari mesin yang mampu berpikir, hingga mampu berkembang
dan beradaptasi terhadap lingkungan nya dengan
tujuan menjadi pemodelan lingkungan yang ada sekarang. Dengan pemodelan
yang real-time, diharapkan bisa membantu untuk
pengambilan proses keputusan dengan kasus yang lebih kompleks. Game Capture The
Flag merupakan salah satu metode yang bisa menggambarkan secara
real-time karena dengan kedua pihak mempunyai sumber
daya yang sama, dan mengandalkan strategi untuk
memenangkan
permainan. Tetapi
salah satu permasalahannya ada pada AI game
tersebut Kebanyakan AI yang ada
bersifat statis, sehingga pemain cepat
bosan karena pola permainan AI tersebut sudah bisa ditebak.Dengan alasan
tersebut, penulis merekomendasikan Dynamic
Scripting sebagai metode
untuk mengatasi AI statis dengan meng- implementasikan Adaptive Artificial
Intelligence (AAI) pada studi kasus Capture The Flag. Dengan parameter
performansi yaitu perbandingan skor antara AAI dengan AI statis .Berdasarkan hasil pada pengujian
pada 4 AI statis, didapatkan bahwa AAI pada AI Balanced dan AI
Random kurang memperoleh hasil yang memuaskan dengan tinggi nya skor pada AAI.
Sedangkan pada AI Greedy dan AI Defender skor yang diperoleh lebih mencapai
harapan dengan seimbang nya skor antara AI statis tersebut dengan AAI.
Kata Kunci :
reward and punishment, script generation, adaptive
artificial intelligence
I.
LATAR BELAKANG
AI
dipakai di pembuatan game. Game yang menarik adalah game yang bisa memberikan
pengalaman yang interaktif [1]. Game itu menarik dikarenakan beberapa hal :
grafis, gameplay experience, replayability value, dan artificial intelligence
(AI) nya. AI yang menarik adalah AI yang bisa bersaing dengan pemain, bukan
mengalahkan pemain [2].
Kualitas
AI yang ada pada game sekarang masih rendah, sehingga pemain game
lebih memilih bermain multi player melawan
musuh yang dikendalikan oleh manusia, karena kualitas AI-nya masih rendah
[3]Game Capture The Flag (CTF) merupakan
game yang kompleks dan adversarial,
dengan pemain yang saling berkompetisi
& tujuan yang membutuhkan keputusan untuk dibuat di level permainan yang
berbeda. Tidak seperti game kejar-hidar standar, tujuan dari setiap pemain
tidak se-simpel untuk menghindar atau mengejar, tetapi juga bertujuan untuk
menyerang dan mempertahankan bendera.
Pendekatan
yang serupa juga sering digunakan di game kejar-hindar yang lebih kompleks,
seperti game pertarungan udara (eg Ace Combat), dimana peran pemain bisa
berubah dari waktu ke waktu [4]. Sistem pakar, logika fuzzy, dan mesin automata
telah sukses diaplikasikan di real time games [5]. Bagaimanapun, teknik ini
biasanya menghasilkan behavior yg statis yang tidak beradaptasi ke strategi
lawan. Jika pemain mampu meng- exploit kelemahan
AI game, pemain akan kehilangan
minatnya setelah bermain beberapa game dikarenakan tantangan yang kurang menarik.
Terlebih
lagi, saat game semakin lama semakin canggih, mengembangkan sebuah AI game
menjadi lebih sulit dan kelemahan yg ditimbulkan akan semakin besar. CTF
merepresentasikan sebuah game canggih yang membutuhkan manajemen tim yang
cerdas untuk memperoleh dua sub-tujuan yang bertolak belakang (mengambil
bendera musuh dan melindungi bendera sendiri) sebagaimana layaknya behavior
individu yang cerdas.
AI
pada game CTF bisa digunakan untuk simulasi militer [6], kontrol lalu lintas
udara, serta logistik yang sifatnya komersil [4]. Dengan penggunaan AI pada
tempat yang tergolong vital, serta dibutuhkan pengambilan keputusan yang cepat
serta akurat. Semakin banyak pengetahuan dan pengalaman yang dimilki pengambil
keputusan, maka keputusan yang dibuat akan semakin baik pula. Oleh karena itu,
AI yang bisa berkembang sesuai dengan kondisi di lapangan yang terus berubah
akan semakin dibutuhkan [7].
II.
DASAR TEORI
A.
Adaptive Artificial Intelligence
Adaptive
Artificial Intelligence (AAI) mengacu ke non-player character (NPC) dinamis
dimana komputer mampu mengadaptasi game behavior-nya dalam merespon musuhnya,
baik ketika sesi bermain game, atau dalam diantara sesi tersebut. Dalam kasus
tertentu, penskalaan tingkat kesulitan pada game dinamis menggunakan AAI untuk
secara otomatis mengadaptasi parameter game dan behavior pada kondisi real time
menurut tingkat keahlian pemain pada game (Tan, C.H,. et al. 2011) , dan pemain
bisa dengan mudah mencari celah, dan mengakali AI tersebut. AAI mampu menangani
kemungkinan pengambilan keputusan yang besar.
1. Knowledge
Engineering
Pembuatan
domain knowledge memerlukan usaha yang besar dalam membangunnya.
Pengembang game harus membuat secara manual kodingan yang ada untuk
sebuah spesifik domain (baik
untuk memperoleh behavior strategi atau behavior yang
cocok untuk RPG).
2. Authoring
Support
Behavior
yang dikembangkan secara manual adalah kode perangkat lunak di sebuah bahasa
pemrograman yang kompleks, rentan terhadap kesalahan manusia. Behavior error
bisa dalam bug program, atau tidak mencapai hasil yang diinginkan. Tools
dibutuhkan untuk mendukung keinginan pengembang game yang pada umumnya tidak
ahli dalam bidang kecerdasan buatan.
3. Unanticipated
Situations
Hampir
tidak memungkinkan untuk mengantisipasi semua kemungkinan situasi dan strategi
pemain saat game berlangsung. Ini membuat AI sulit untuk dibuat se-alami
mungkin untuk merespon setiap sikap yang pemain lakukan.
4. User-specific
Adaptation
Pemain
mempunyai strategi yang berbeda untuk bermain (untuk game RPG), atau cara yang
berbeda dalam penyampaian alur cerita (untuk game drama
interaktif, misalnya Visual Novel), tingkah karakter
dan interaksi yang berbeda. Setiap game designer mulai untuk mendesain
kemampuan setiap pengguna, strategi AI dan behavior nya harus bisa beradaptasi
berdasarkan profil pengguna-nya.
5. Replayability
and variability
Pemain
akan mengalami kebosanan saat bermain game yang ke-n kali,dan menjumpai
strategi yang sama yang digunakan oleh AI pada game tersebut. Walaupun variasi
yang simpel bisa diperoleh melalui seleksi stokastik dari behavior atau strategi
dari repository yang besar.
6. Rhetorical
Objectives
Behavior
atau strategi yang dikembangkan secara manual bisanya
tidak mencapai tujuan game
secara tepat. Terutama dalam aplikasi atau domain dalam skala yang
cukup besar. Tujuan game bisa berkisar dari hiburan hingga edukasi, dsb.
Sehingga, setiap game tersebut harus menyadari bahwa tujuan nya tidak tercapai
di basis per- penggunaan, dan berdaptasi sendiri. Sebagai contoh, beberapa user
akan bosan, atau tidak mempelajari pelajaran yang dimaksud.
Dan efek implementasi AAI pada game adalah :
·
Meningkatkan pengalaman bermain, karena AAI bisa beradaptasi ke tiap individu
untuk menyesuaikan cara
B.
Dynamic Scripting
Dynamic
scripting (DS) memenuhi lima
dari delapan kebutuhan komputasional dan fungsional, yaitu :
-
Speed
(computational): DS
cepat secara komputasional, karena DS hanya
membutuhkan ekstraksi dari rulebase dan mengganti bobot setiap perulangan.
- Effectiveness
(computational): Efektivitas dari DS
teruji ketika semua
aturan di rulebase masuk akal, berdasarkan domain knowledge yang sesuai. Setiap
aksi dimana agent mengeksekusi melalui skrip yang mengandung
aturan-aturan ini, adalah aksi yang paling tidak
efektif (walaupun itu mungkin tidak sesuai untuk beberapa situasi). Dengan
catatan jika seorang pengembang game membuat kesalahan dan memasukkan sebuah
aturan yang kurang cerdas di rulebase, teknik DS akan segera
meng-alokasi-kan aturan ini ke bobot nilai terendah. Oleh karena itu, kebutuhan
dari efektivitas haruslah terpenuhi bahkan jika rulebase terdapat beberapa
aturan yang kurang cerdas. Singkatnya, jika kebanyakan aturan di rulebase adalah
kurang cerdas, algoritma DS tidak akan mampu untuk membangkitkan game AI yang
cukup.
·
-Robustness
(computational):
algoritma
DS merupakan algoritma yang handal, karena bobot dari sebuah aturan di rulebase
merepresentasikan sebuah kegunaan secara statis, diturunkan dari beberapa
sampel Fitness yang diharapkan dari skrip yang terdapat
dari aturan tersebut.
Sebuah hukuman(penalty) yang
kurang tepat tidak akan menghilangkan
sebuah aturan dari rulebase, dan akan diberi keringanan ketika aturan tersebut
dipilih kembali, atau bahkan ketika aturan lain terkena hukuman.
Sama halnya ketika sebuah
hadiah (reward) mengakibatkan sebuah aturan kurang cerdas dipilih lebih sering,
dimana hanya mengakibatkan itu akan mengumpulkan hukuman yang kurang cepat
lebih cepat.
·
Clarity (functional):
algoritma DS membangkitkan skrip, dimana skripnya bisa dengan mudah
dipahami oleh pengembang game.
·
Variety (functional): algoritma
DS membangkitkan skrip baru untuk setiap agent, dan skrip baru ini
menyediakan variasi di behavior nya.
Dynamic
scripting adalah teknik online competitive machine- learning untuk game AI,
sehingga bisa di-klasifikasi-kan sebagai optimasi stokastik. Dynamic scripting
menjaga beberapa rulebase, satu dari setiap kelas agent di dalam game. Setiap
kali sebuah instance sebuah agent dibangkitkan, rulebase digunakan untuk
membuat skrip baru yang mengendalikan behavior setiap agent. Probabilitas
setiap aturan yang ditentukan untuk sebuah skrip dipengaruhi oleh nilai
bobot yang dipasang di setiap aturan.
Tujuan dari dynamic scripting adalah untuk
mengadaptasikan bobot di setiap rulebase sehingga nilai
fitness yang diharapkan dari setiap behavior didefinisikan dari skrip yang
dibangkitkan meningkat secara drastis,
bahkan di lingkungan yang cenderung
berubah-berubah.
Rumus yang digunakan untuk team-fitness yaitu :
Dalam
rumus team-fitness, g merujuk ke tim, c merujuk ke agent, Ng
N adalah total jumlah agents di tim g, dan ht(c) N adalah nyawa agent
c di waktu t. Hasil dari rumus ini adalah, apabila
sebuah tim memiliki fitness 0, maka dianggap kalah. Dan apabila tum yang
memiliki fitness > 0 maka dianggap menang.
Rumus yang digunakan untuk agent-fitness yaitu :
Dimana
g adalah tim dimana agent a berada. Rumus ini mengandung empat komponen : (1)
F(g), adalah fitness untuk tim g, diturunkan dari rumus team-fitness. (2)
A(a) [0,1], dimana adalah rata-rata dari kemampuan
bertahan dari agent a, (3) B(g) [0,1] dimana adalah parameter
nyawa dari semua agents di tim g, dan (4) C(g) [0,1] dimana
adalah parameter besarnya kerusakan yang telah diberikan semua agent di tim
lawan g.
Algorithm 1 Script Generation
Algoritma
1 merepresentasikan prosedur pembangkitan skrip. Di algoritma ini,
fungsi ‘InsertInScript’ menambah sebuah baris skrip ke skrip. jika baris
skrip tersebut sudah terdapat di skrip, fungsi tersebut tidak mempunyai efek,
dan mengembalikan nilai ‘false’. Di sisi lain, baris skrip tersebut dimasukkan
dan fungsi nya mengembalikan nilai ‘true’. Algoritma ini bertujuan untuk
meletakkan baris 'scriptsize' di dalam skrip, tapi mungkin berakhir dengan
baris skrip yang lebih sedikit jika membutuhkan lebih dari percobaan 'maxtries'
untuk menemukan sebuah baris baru. Fungsi ‘FinishScript’ menambahkan satu atau
lebih bari skrip yang secara umum bisa diaplikasikan ke skrip, untuk meyakinkan
bahwa skrip tersebut akan selalu menemukan cara untuk mengeksekusi.
Algorithm
2 Weight Adjustment
Fungsi
‘CalculateAdjustment’ meng-kalkulasi-kan hadiah, atau
hukuman untuk setiap diterimanya aturan yang telah diaktifkan. Parameter
'Fitness' adalah tolak ukur dari peformansi
skrip tersebut ketika
dijalankan. Fungsi
‘DistributeRemainder’
mendistribusikan perbedaan antara total bobot yang
sekarang, dan total semua bobot asli.
Secara
umum,'Fitness' ini akan diimplementasikan sebagai perulangan di atas semua
bobot, menyerahkan sebagian kecil pecahan dari sisa untuk setiap bobot jika
itu tidak menyebabkan bobot tersebut melebihi
batas bobot, hingga 'remainder' nya nol. Ketika banyak dari bobot
di rulebases mencapai batas bobot, ini bisa menjadi proses yang menghabiskan
sangat banyak waktu yang benar-benar mengganggu game play.
Sebagai solusi, bagian
dari 'remainder' bisa di bawa ke panggilan penyesuaian bobot berikutnya.
C. Capture The Flag
Game
dengan genre CTF diadaptasi dari genre Real Time Strategy (RTS), atau Turn
Based Strategy (TBS). Game CTF merupakan game yang bertujuan dimana setiap tim
harus menguasai satu tempat yang dikategorikan sebagai tempat bendera musuh
untuk memenangkan permainan. Pemenang bisa didapat dari tim mana yang
paling banyak menguasai tempat bendera musuh, atau hingga waktu yang ditentukan
habis. Game CTF memerlukan strategi tim untuk bertahan, dan menyerang tim
musuh. Game ini juga membutuhkan kemampuan individual seperti kecepatan
berlari, menganalisa medan permainan, dll.
III.
SKENARIO SIMULASI
A. Analisis Kebutuhan Sistem
Untuk
tahap perancangan sistem, simulasi membutuhkan sebuah tools
yang mampi mengimplementasikan 'script generation' & 'weight adjustment'
secara online learning, dan parameter performansi yang jelas. Dalam hal ini,
parameter performansi yang dimaksud adalah 'skor'.
Proses tahapan dalam membangun simulasi dapat di
lihat pada gambar berikut :
B. Perancangan Simulasi
1. Blue bot vs red bot
Player
akan mengendalikan pihak blue bot untuk melawan red bot.Pemain akan berperan
sebagai AI Commander, yang artinya hanya akan memerintahkan secara
global, bukan secara mikro seperti game RTS pada umumnya.
2. Aturan dasar dari AI Sandbox
yang digunakan Beberapa perubahan seperti jarak
pandang bot, kecepatanberjalan, waktu tunda
saat botberputar untuk mengambil posisi menembak akan
diseimbangkan lagi apabila diperlukan. Ada tujuh aturan dasar dari game ini,
yaitu :
·
Satu bot yang
mengambil posisi bertahan di arah yang tepat, akan
selalu menang melawan bot yang menyerang.
·
Satu bot yang menyerang dengan arah yang
tepat, akan selalu menang melawan bot yang sedang menyerbu.
·
Dua bot yang
menyerang satu bot akan menang, setelah terdapat satu
korban dari pihak yang menyerang
·
Dua bot yang
menyerbu satu bot akan menang, setelah terdapat satu
korban dari pihak yang menyerbu.
·
Satu bot yang menyerbu akan menang melawan bot
yang bertahan menghadap arah yang kurang tepat.
Untuk konsep bendera, ada dua aturan dasar, yaitu :
·
Saat ada
bendera yang jatuh setelah bot yang membawa
ditembak oleh pihak lawan, bendera hanya bisa diambil oleh pihak bot yang
membawa sebelumnya.
·
Setelah sekian detik bendera tersebut
tidak ada yang mengambil, bendera tersebut akan kembali lagi ke tempat semula.
Untuk konsep bertarung, bot akan otomatis
meng-handle ini. Ada tiga aturan dasar yaitu :
·
Jeda menembak dari
berjalan atau berlari (jeda menembak dari berlari akan lebih
lama)
·
Jeda menembak untuk berputar, dan
mengambil garis lurus pada target.
·
Waktu jeda menembak yang konstan (0,5 detik)
3. AI Commander
AI
Commander berperan sebagai otak dari kubu merah atau biru. Disini, AI Commander
berperan sebagai strategic level untuk AI pada game ini. Beberapa
aturan yang diimplementasikan untuk AI Commander ini
adalah :
4. Empat perintah global untuk bot
Sebagai AI Commander, perintah yang bisa
diberikan untuk bot adalah :
·
Defend - Bot akan mengambil posisi
jongkok, dan fokus membidik musuh di sekitarnya. Membidik berakibat tembakan
sangat akurat, dan mematikan. Akan tetapi jarak pandang terbatas, dan
butuh waktu untuk di-set ke posisi seperti ini.
·
Attack –
Bot akan menyerang ke
posisi yang ditentukan. Jika ada bot
musuh yang terlihat, bot akan langsung menembak
Charge – Bot akan menyarang ke
posisi yang telah ditentukan dengan kondisi berlari. Gerakan ini lebih cepat
dari Attack tetapi mendapat pinalti waktu tunda untuk menembak.
·
Move -
Berjalan meng-eksplorasi peta. Dalam
kondisi ini, bot tidak akan menyerang musuh yang masuk dalam jangkauan tembak.
1.1.1Ruang Lingkup Simulasi
Simulasi dijalankan dengan spesifikasi sebagai
berikut :
Perangkat
lunak
- AI Sandbox 0.20.9 dengan 4 AI yang diujikan.
- Eclipse dengan plugin PyDev untuk memprogram AAI dengan bahasa Python.
- Microsoft Office untuk pengolahan data dan penulisan laporan.
Perangkat
keras
- Single CPU
- 50 GB HDD
- 2048 Mb RAM
C. Skenario Simulasi
Pada
simulasi yang dijalankan terdapat berbagai macam faktor yang akan mempengaruhi
output yang dihasilkan, baik secara langsung maupun tidak
langsung. Untuk itu, perlu didefinisikan terlebih dahulu pemodelan simulasi secara
umum untuk mengetahui faktor apa saja yang berpengaruh saat proses simulasi
berlangsung.
Capture
The Flag SDK adalah simulasi yang digunakan untuk menguji
commander yang beradaptasi
lewat AI buatan pemain, dan dijalankan dengan AI
Sandbox™. AI yang dibuat akan memerintah bot dari tim sendiri, dan beradaptasi
untuk mengalahkan tim lawan di beberapa variasi level. Game ini dimainkan oleh
dua tim oleh bot, dimana poin nya diperoleh kapanpun sebuah tim mengambil
bendera tim lain dan mengembalikan nya ke lokasi dimana bendera mencetak skor.
Pemenangnya adalah tim yang mencetak paling banyak poin. Bendera dan bot akan
kembali hidup secara sinkron pada interval yang teratur sampai game berakhir.
Bot di game ini tidak bisa dikontrol secara interaktif, tetapi mereka
dikendalikan oleh AI commander strategis yang dibuat di Python.
Blok diagram ini menjelaskan
tentang bagaimana seluruh
proses pada Tugas Akhir ini.
Gambar III.1 Blok diagram simulasi CTF
Penggambaran
proses implementasi untuk AAI pada game CTF ini
dijabarkan menjadi lima tahap, yaitu insialisasi gameinfo.py, jalankan class
LevelInfo(object), commander memberi perintah(informasi) ke bot, update weight
adaptation & learning rate, dan looping hingga skor atau batas waktu yang
ditentukan.
Pemodelan
AAI dengan Dynamic Scripting
Seiring
dengan berjalannya waktu, knowledge AAI akan
didesain sehingga mampu mempelajari area permainan, mana area yang berbahaya
untuk dilewati sehingga akan cenderung menghindari
jalur tersebut,
dan mana
area yang menguntungkan AAI akan cenderung
lebih sering dilewati. Proses yang akan memperbaharui knowledge nya dijabarkan
dalam proses berikut :
Gambar
III.3 Gambaran proses secara keseluruhan
Data
Training
Informasi yang didapat dari pertarungan akan
diproses melalufitness function dan weight adjustment. Data akan terus di-
update setiap event yang ditentukan terjadi.
Data
Fitness didapat
Setelah nilai fitness dan weight didapat, masukkan
data yangtelah di proses ke algoritma Commander.
Update
knowledge
Tahap akhir, perbaharui knowledge AAI yang ada ke
scriptgame.
if bot.flag:
# this bot has flag
if bot.distanceFrom(scoreLocation) > 10:
# still far from scorelocation
greedy_move_using_heuristic_knowledge(scoreLocation)
else:
# bug-handle on
being close from targeted- location
go_directly_to_score_location else if team_flag_is_stolen:
prevent_opponent_from_scoring else if
bot.instructed_to_revenges:
revenge_team_mate
attacker and defender else:
if bot.attacker:
if team.has_not_found_flag:
search_flag
# a random exploration
# explored area has less
chance to be re- explored.
else:
if not team.have_flag:
if bot.distanceFrom(flagLocation) > 10:
greedy_move_using_heuristic_knowledge(flagLocation)
else:
# handle on bug when bot is close to target_location
go_directly_to_flag else:
# someone on the team has a flag, but not
this bot
cover_the_flag_carrier else:
# for defender
if bot.far_from_team_flag:
pick_random_position_around_the_flag after_being_close_to_flag:
pick_facing_direction_according_to_event_locations
after_looking_at_the_direction:
standby, do nothing until enemy is seen
4 kelas yang akan menjadi kelas utama untuk AAI ini
adalah sebagai berikut :
A. Class
Field
Class ini merupakan class yang
digunakan untuk menginisiasi array2d, serta indexing [x,y]
B. Class
KnowledgeField
Melakukan perubahan nilai fitness
suatu lokasi, dimana area sekitarnya ikut berubah.
C. Class
helper
Merupakan class yang dibuat untuk membantu
pengimplementasian AAI pada map dengan berupa penyediaan dictionary,
tuple dan index field.
D. Class
Strategy
Class yang mengontrol dari kelas
KnowledgeField (Model), dan Instruction (View?)
IV.
HASIL DAN ANALISIS
A. Analisis Skenario 1
V.
KESIMPULAN DAN SARAN
Kesimpulan
Hasil pengujian menggambarkan bahwa AAI memperoleh
nilai paling baik saat diuji
dengan (sesuai urutan) AI Defender, AI Greedy, AI
Balanced, dan AI Random.
1. AAI tidak begitu baik melawan
AI Random karena pola nya yang acak.
2. AAI sangat baik mengahadapi AI
Defender karena hanya satu yang menyerang, dan lebih banyak yang bertahan.
Disini, bobot heuristik peta kurang ter--
update karena minim konfrontasi di arena simulasi.
Saran
1. Dibutuhkan riset lebih lanjut
terhadap prediksi karakter pemain/AI yang ada. Karena jika hanya menggunakan
pengetahuan heuristic, reward and punishment saja tidak cukup.
2. Diperlukan penanaman knowledge
ke database AAI seiring dengan seringnya bertemu dengan lawan yang sama.
3. Untuk memperluas hasil
pengujian, gunakan versi
AI Sandbox yang lebih lama, atau gunakan framework
lain untuk menguji AI ini.
DAFTAR
PUSTAKA
[1] Alexander Nareyek , Game AI Is Dead. Long Live
GameAI!: National Univesity of Singapore, 2007.
[2] J Hagelback and S.J. Johansson , Measuring
player experience on runtime dynamic difficulty scaling in an RTS game., 2009.
[3] Schaeffer J, "‘A Gamut of Games’,"
Artificial IntelligenceMagazine 22(3), pp. 29–46, 2001.
[4] Haomiao Huang and Jerry Ding, A Differential
Game Approach to Planning in Adversarial Scenarios: A. Berkeley: NASA
(NNA06CN22A) AFOSR, 2011.
[5] J van Waveren and J Rothkrantz, "Artificial
player forQuake III arena," International Journal of Intelligent Games&
Simulation 1, 2003.
[6] Marc S Atkin , David L Westbrook , and Paul R
Cohen , Capture the Flag: Military Simulation Meets Computer Games.: IN
PROCEEDINGS OF AAAI SPRING SYMPOSIUM SERIES ON AI AND COMPUTER GAMES,1999.
[7] Bijan Fazlollahi and Mihir A Parikh , Adaptive
DecisionSupport Systems.: Georgia State University, 1997.
[8] A Ram , S Ontanon , and M Mehta , Artificial
Intelligence for Adaptive Computer Games., 2007.Evolutionary Learning., 2005.
[9] P Spronck and D.W Aha , Automatically Acquiring
Domain Knowledge For Adaptive Game AI Using
·
Pengenalan Komputer” karangan Jogiyanto
Hartono, MBA, Ph.D
·
Artificial Intelligence, Sri Kusumadewi,
Graha Ilmu Yogyakarta, 2003
·
Artificial Intelligence, Sandi Setiawan,
Andi Offset Yogyakarta, 1993
·
Mengenal Artificial Intelligence,
Suparman, Andi Offset Yogyakarta, 1991.
·
http://blog-habibie.blogspot.co.id/2012/05/artificial-intelligence-pada-game.html
Yuk Cari tahu di video ini :
maaf apakah anda mengerti apa yg anda post? jika mengerti saya ingin menanyakan sesuatu
BalasHapus