Algoritma A* untuk
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 dilakukan manusia.
• 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 dilakukan lebih baik oleh manusia.”
• John McCarthy [1956] : “mengetahui dan memodelkan proses –proses berpikir
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
Tujuan AI
• Membuat mesin menjadi lebih pintar
• Memahami apa itu Kecerdasan
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
Kelebihan AI
• Lebih bersifat permanen
• Lebih mudah diduplikasi & disebarkan
• Lebih murah
• Bersifat konsisten dan teliti
• Dapat didokumentasi
• Dapat mengerjakan beberapa task lebih cepat dan lebih baik
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
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
efisien dengan sebisa mungkin menghindari penghalang yang 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,
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.
• �(�) = �(�) + � (�) • dimana,
�(�) ∶ ����� ���� ������ℎ���
�(�) ∶ ����� ���� �������ℎ���� ���� ����
ℎ(�) ∶ ����� ��������� ���� ���� ���� ��� �� ������
• Algoritma A* ini akan menemukan rute yang complete (selalu menemukan
Langkah 1 : Arena
• Berikut adalah contoh simple
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)).
Langkah 3 : Estimated Movement / Estimasi
gerakan
• Langkah selanjutnya kita
hitung biaya estimasi pergerakan dan kita simbolkan dengan H.
• Nilai H ini secara singkat
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
Ambil Keputusan
• Dari setiap nilai
tersebut kita
ambil keputusan dengan
mengambil
Langkah 5 : Looping / Perulangan
• Setelah pergerakan pertama selesai selanjutnya lakukan perulangan dari dari