Algoritma A* untuk AI Path Finding bagi NPC
Pendahuluan Definisi AI Kecerdasan Buatan merupakan bagian dari ilmu komputer yang mempelajari bagaimana membuat mesin (komputer) dapat melakukan pekerjaan seperti dan sebaik yang dilakukan oleh manusia bahkan bisa lebih baik daripada yang dilakukanmanusia. H. A. Simon [1987] : 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 Rich and Knight [1991]: Kecerdasan Buatan (AI) merupakan sebuah studi tentang bagaimana membuat komputer melakukan hal- hal yang pada saat ini dapat dilakukanlebih baik oleh manusia. John McCarthy [1956] : mengetahui dan memodelkan proses proses berpikir manusia dan mendesain mesin agar dapatmenirukan perilakumanusia.
Kecerdasan Buatan Encyclopedia Britannica: : Kecerdasan Buatan (AI) merupakan 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. AI berusaha untuk membangun entitas yang cerdas serta memahaminya. Alasan lain untuk belajar AI adalah bahwa entitas cerdas yang dibangun ini menarik dan berguna. Cerdas = memiliki pengetahuan + pengalaman, penalaran (bagaimana membuat keputusan & mengambil tindakan), moral yangbaik
Tujuan AI Membuat mesin menjadi lebih pintar Memahami apa itu Kecerdasan Membuat mesin lebih bermanfaat
Arah AI Mengembangkan metode dan sistem untuk menyelesaikan masalah AI tanpa mengikuti cara manusia menyelesaikannya (Sistem Pakar / Expert System) Mengembangkan metode dan sistem untuk menyelesaikan masalah AI melalui pemodelan cara berpikir manusia, atau cara bekerjanya otakmanusia (Neural Networks)
Perbedaan Antara Pemrograman AI dan Konvensional
Kelebihan AI Lebih bersifat permanen Lebih mudah diduplikasi & disebarkan Lebih murah Bersifat konsisten dan teliti Dapat didokumentasi Dapat mengerjakan beberapatask lebih cepatdan lebih baik dibanding manusia
Contoh peran AI dalam Game 1997, Deep Blue mengalahkan Garry Kasparov, the World Chess Champion Deep Blue chess machine menggunakan komputer IBM, dibuat tahun 1990- an oleh Hsu, Campbell, Tan, Hoane, Brody, Benjamin Deep Blue mampu mengevaluasi 200 juta posisi bidak catur /detik
Pendahuluan Pencarian jalur /pathfinding adalah proses pencarian rute/jalur (biasanya rute terdekat) dari suatu arena yang pada umumnya memiliki penghalang- penghalang dari arena tersebut. Adapun penghalang dapat berupa tembok, sungai, dsb. Goal dari pathfinding ini pada umumnya adalah untuk mencari jalur paling efisiendengansebisa mungkinmenghindaripenghalangyang ada. Pathfinding dapat diterapkan dalam membuat AI dari suatu game, misalnya dengan AI tersebut dapat mengejar musuh secara efisien dan tanpa menabrak tembok atau menghindari penghalang lain. Terdapat beberapa metode yang dapat diterapkan dalam pathfinding ini, salah satu metodeyang sering digunakan adalah A*.
A* PathFinding A* adalah algoritma Best First Search yang merupakan perpaduan Uniform Cost Search yang memilih jarak paling kecil dari simpul awal ke simpul berikutnya dan Greedy- Best First Search yang menggunakan nilai heuristik atau nilai perkiraan untuk menentukan simpul berikutnya. f(n) = g(n) + h (n) dimana, f(n) biaya yang dibutuhkan g(n) biaya yang ditempuh dari node asal h(n) nilai perkiraan dari node saat ini ke tujuan Algoritma A* ini akan menemukan rute yang complete (selalu menemukan solusi jika ada) dan optimal.
Langkah 1 : Arena Berikut adalah contoh simple arena yang akan kita gunakan. Warna hijau adalah starting point, warna merah adalah goal/end point, dan biru adalah penghalang. Goal dari aplikasi ini adalah mencari rute dari titik hijau ke merah tanpa melewati penghalang biru
Langkah 2 : Movement Cost / Biaya Pergerakan Kita asumsikan setiap langkah dari hijau adalah legal baik vertikal, horizontal, maupun diagonal dengan catatan tidak membentur tembok. Setiap langkah yang diizinkan kita berikan nilai G dimana G adalah cost atau biaya dalam setiap langkah. Dalam kasus ini kita akan berikan nilai 10 untuk setiap langkah vertikal maupun horizontal, dan 14 untuk diagonal. Nilai 14 kita dapatkan dari perhitungan pitagoras dimana: 14,1421 = sqrt(sqr(10)+sqr(10)). Selain dari perhitungan tersebut, kita dapat mengalikan dengan konstanta tertentu untuk memanipulasi biaya, misal : ketika melewati sungai maka G = G * 2.
Langkah 3 : Estimated Movement / Estimasi gerakan Langkah selanjutnya kita hitung biaya estimasi pergerakan dan kita simbolkan dengan H. Nilai H ini secara singkat adalah nilai jarak / estimasi biaya dari pergerakan dari suatu titik terhadap titik finish dengan mengabaikan penghalang yang ada.
Langkah 4 : Scoring / Penilaian Setelah nilai G dan H kita dapatkan, maka kita berikan skor dari masing- masing titik yang akan dilalui. Skor kita lambangkan misalnya dengan F dimana nilai F = G + H. Nilai F selanjutnya kita masukkan dalam setiap titik dari setiap langkah yang akan dilalui.
Ambil Keputusan Dari setiap nilai tersebut kita ambil keputusan dengan mengambil langkah dengan nilai F terkecil.
Langkah 5 : Looping / Perulangan Setelah pergerakan pertama selesai selanjutnya lakukan perulangan dari dari langkah 1 sampai 4.
Urutan Langkah