Pencarian Heuristik Dosen Pengampu Muhammad Zidny Nafan M

  • Slides: 62
Download presentation
Pencarian Heuristik Dosen Pengampu: Muhammad Zidny Naf’an, M. Kom

Pencarian Heuristik Dosen Pengampu: Muhammad Zidny Naf’an, M. Kom

 • Pencarian buta tidak selalu dapat diterapkan dengan baik, hal ini disebabkan waktu

• Pencarian buta tidak selalu dapat diterapkan dengan baik, hal ini disebabkan waktu aksesnya yang cukup lama serta besarnya memori yang dibutuhkan. • Kelemahan ini sebenarnya dapat diatasi jika ada informasi tambahan (fungsi heuristik) dari domain yang bersangkutan.

 • “Heuristic” berarti menemukan atau mencari • Heuristic dalam pencarian suatu fungsi yang

• “Heuristic” berarti menemukan atau mencari • Heuristic dalam pencarian suatu fungsi yang memberikan suatu nilai berupa biaya perkiraan (estimasi) dari suatu solusi • Fungsi heuristik digunakan untuk menghitung biaya perkiraan dari suatu simpul tertentu menuju ke simpul tujuan. • Fungsi h(N), memperkirakan biaya dari jalur termurah dari node n ke node tujuan. • Jika h(N) = 0 berarti solusi ditemukan

Fungsi heuristik • Misalkan pada kasus 8 -puzzle – Ada 4 operator yang dapat

Fungsi heuristik • Misalkan pada kasus 8 -puzzle – Ada 4 operator yang dapat digunakan untuk menggerakkan dari satu keadaan (state) ke keadaan yang baru. • • Geser ubin kosong ke kiri Geser ubin kosong ke kanan Geser ubin kosong ke atas Geser ubin kosong ke bawah

Fungsi heuristik State Awal kiri kanan atas

Fungsi heuristik State Awal kiri kanan atas

Fungsi heuristik • Informasi yang diberikan dapat berupa jumlah ubin yang menempati posisi yang

Fungsi heuristik • Informasi yang diberikan dapat berupa jumlah ubin yang menempati posisi yang benar. • Jumlah yang lebih tinggi adalah yang diharapkan. • Sehingga langkah selanjutnya yang harus dilakukan dari state awal adalah menggeser ubin kosong ke kiri.

Fungsi heuristik • Informasi yang diberikan berupa straight-line distance (jarak dalam garis lurus) antara

Fungsi heuristik • Informasi yang diberikan berupa straight-line distance (jarak dalam garis lurus) antara tiap kota dengan Bucharest.

Informed (Heuristic) Search • Generate and Test • Simple Hill Climbing • Steepest-Ascent Hill

Informed (Heuristic) Search • Generate and Test • Simple Hill Climbing • Steepest-Ascent Hill Climbing • Greedy Best-First Search • A*

Generate-and-Test (GT) • Metode Generate-and-Test (GT) adalah metode yang paling sederhana dalam teknik pencarian

Generate-and-Test (GT) • Metode Generate-and-Test (GT) adalah metode yang paling sederhana dalam teknik pencarian heuristik. • Di dalam GT, terdapat dua prosedur penting: 1. Pembangkit (generate), yang membangkitkan semua solusi yang mungkin. 2. Test, yang menguji solusi yang dibangkitkan tersebut. • Pada bagian generate dapat menggunakan prosedur Depth First Search.

Generate-and-Test (GT) • Dengan penggunaan memori yang sedikit, DFS bisa digunakan sebagai prosedur pembangkit

Generate-and-Test (GT) • Dengan penggunaan memori yang sedikit, DFS bisa digunakan sebagai prosedur pembangkit yang menghasilkan suatu solusi. • Prosedur Test bisa menggunakan fungsi heuristik.

Algoritma Generate-and-Test 1. Bangkitkan sebuah solusi yang mungkin. Solusi bisa berupa suatu keadaan (state)

Algoritma Generate-and-Test 1. Bangkitkan sebuah solusi yang mungkin. Solusi bisa berupa suatu keadaan (state) tertentu. Solusi juga bisa berupa sebuah jalur dari satu posisi asal ke posisi tujuan, seperti dalam kasus pencarian rute dari satu kota asal ke kota tujuan. 2. Tes apakah solusi yang dibangkitkan tersebut adalah sebuah solusi yang bisa diterima sesuai dengan kriteria yang diberikan. 3. Jika solusi telah ditemukan, keluar. Jika belum, kembali ke langkah 1.

Generate-and-Test (GT) • Contoh: Traveling Salesman Problem (TSP) – Seorang salesman ingin mengunjungi sejumlah

Generate-and-Test (GT) • Contoh: Traveling Salesman Problem (TSP) – Seorang salesman ingin mengunjungi sejumlah n kota. Akan dicari rute terpendek di mana setiap kota hanya boleh dikunjungi tepat 1 kali. – Jarak antara tiap-tiap kota sudah diketahui. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti terlihat pada gambar berikut. http: //www. dogonews. com/2012/9/30/scientists-learn-how-bumblebees-solve-complex-traveling-salesman-problem-so-effortlessly

Contoh kasus TSP 2 A 4 B 3 1 D 5 3 C Sebuah

Contoh kasus TSP 2 A 4 B 3 1 D 5 3 C Sebuah rute yng harus dilewati seorang sales dimana sales tersebut harus merlewati setiap kota tepat sekali. Terdapat 4 kota, dengan jarak masing kota : AB=2, AC=4, AD=1, BC=5, BD=3, CD=3. Tujuannya adalah mencari jarak terpendek bagi sales untuk mengunjungi semua kota sekali. Penyelesaian menggunakan generate-test adalah dengan membangkitkan solusi yang mungkin ada sesuai permasalahan yang dihadapi oleh sales tersebut. Kombinasi abjad sebagai solusi yang mungkin adalah n! = 4! = 24. Tujuannya adalah mencari solusi dengan panjang terpendek.

2 A 4 B 3 1 D 3 5 C Lintasan yang dipilih Panjang

2 A 4 B 3 1 D 3 5 C Lintasan yang dipilih Panjang Lintasan yang dipilih No Pencarian Lintasan Panjang Lintasan 1 ABCD 10 2 ABDC 8 3 ACBD 12 ABDC 8 4 ACDB 10 ABDC 8 …. …………… 24 DCBA 10 BADC / CDAB 6

Contoh kasus TSP • TSP - generation of possible solutions is done in lexicographical

Contoh kasus TSP • TSP - generation of possible solutions is done in lexicographical order of cities: 1. A - B - C - D 2. A - B - D - C 3. A - C - B - D 4. A - C - D - B. . . A B B C C D B D C D B B C 16 D

Latihan Generate-and-Test Algorithm Baca problem di tautan berikut dan selesaikan dengan metode Generate and

Latihan Generate-and-Test Algorithm Baca problem di tautan berikut dan selesaikan dengan metode Generate and Test https: //training. iatoki. org/training/curriculums/1/courses/11/cha pters/55/problems/253/

Kebaikan dan Keburukan Generate-and-Test Jika penurunan solusi yang mungkin dilakukan secara sistematis, maka procedure

Kebaikan dan Keburukan Generate-and-Test Jika penurunan solusi yang mungkin dilakukan secara sistematis, maka procedure diatas akan dapat menemukan solusi suatu saat, jika memang ada. Tapi sayangnya jika ruang permasalahan sangat luas maka saat ditemukannya solusi akan menjadi sangat lama. Cara terbaik menerapkan generate-and-test yang sistematis adalah pada tree dari depth-first search dengan backtracking, yaitu kembali ke state sebelumnya bila ditemui state yg sudah pernah di test atau memodifikasi prosedurnya untuk menelusuri state pada bentuk graph.

 • Generate and Test • Simple Hill Climbing • Steepest-Ascent Hill Climbing •

• Generate and Test • Simple Hill Climbing • Steepest-Ascent Hill Climbing • Simulated Annealing • Greedy Best-First Search • A*

Hill Climbing (HC) • Terdapat 2 jenis HC yang sedikit berbeda, yakni Simple Hill

Hill Climbing (HC) • Terdapat 2 jenis HC yang sedikit berbeda, yakni Simple Hill Climbing (HC sederhana) dan Steepest. Ascent Hill Climbing (HC dengan memilih kemiringan yang paling tajam/curam). • Simple HC, langsung memilih new state yang memiliki jalur yang lebih baik (“curam”) daripada jalur-jalur sebelumnya tanpa memperhitungkan jalur -jalur lain yang lebih “curam”. • Sedangkan Steepest-Ascent HC, akan mengevaluasi semua state yang berada di bawah current state dan memilih state dengan jalur yang paling “curam”.

Algoritma Simple HC 1. 2. Evaluasi initial state. Jika state ini adalah goal state,

Algoritma Simple HC 1. 2. Evaluasi initial state. Jika state ini adalah goal state, maka kembalikan state ini sebagai solusi dan keluar dari program. Jika state ini bukan goal state, lanjutkan proses dengan initial state sebagai current state. Ulangi sampai solusi ditemukan atau sampai tidak ada operator baru yang dapat diaplikasikan terhadap current state: a) Pilih sebuah operator yang belum diaplikasikan terhadap current state dan aplikasikan operator tersebut sehingga menghasilkan new state. b) Evaluasi new state: I. Jika state ini adalah goal state, maka kembalikan state ini sebagai solusi dan keluar dari program. II. Jika state ini bukan goal state tetapi lebih baik daripada current state, maka jadikan state ini sebagai current state. III. Jika state ini tidak lebih baik daripada current state, kembali ke langkah 2. a.

Pencarian solusi menggunakan Simple HC • S menyatakan initial state, sedangkan G menyatakan goal

Pencarian solusi menggunakan Simple HC • S menyatakan initial state, sedangkan G menyatakan goal state. • Variable f di setiap state menyatakan biaya antara state tersebut dengan goal state. Nilai f pada goal state = 0.

Pencarian solusi menggunakan Simple HC • Simple HC langsung memilih state B sebagai next

Pencarian solusi menggunakan Simple HC • Simple HC langsung memilih state B sebagai next state karena nilai f pada state B lebih kecil dibandingkan nilai f pada state S. • Di sini tidak dipertimbangkan nilai f pada state C. • Misalkan pada akhir iterasi, Simple HC mengembalikan solusi G yang berada di level 6, padahal ada solusi yang lebih baik pada level 2. Dengan demikian Simple HC tidak optimal.

Contoh Simple Hill Climbing pada TSP • Operator yang digunakan adalah operator yang dapat

Contoh Simple Hill Climbing pada TSP • Operator yang digunakan adalah operator yang dapat menghasilkan kombinasi lintasan kota yang berbeda-beda, yaitu dengan cara menukar posisi masing-masing kota. • Untuk mempermudah penukaran posisi, kita cukup menukar posisi 2 kota, operator untuk kombinasi lintasan dengan menukar posisi 2 kota dapat dihitung dengan kalkulasi: • Yaitu : 1. (1, 2) menukar posisi kota kesatu dan kedua 2. (1, 3) menukar posisi kota kesatu dan ketiga 3. (1, 4) menukar posisi kota kesatu dengan keempat 4. (2, 3) menukar posisi kota kedua dengan kota ketiga 5. (2, 4) menukar posisi kota kedua dengan keempat 6. (3, 4) menukar posisi kota ketiga dengan keempat • Penggunaan pengurutan operator harus konsisten, tidak boleh berbeda tiap levelnya. urutan penggunaan operator juga sangat menentukan kecepatan dalam menemukan solusii

Pencarian simple hill climbing dimulai dari anak kiri. Apabila nilai heuristik anak kiri lebih

Pencarian simple hill climbing dimulai dari anak kiri. Apabila nilai heuristik anak kiri lebih baik maka digunakan sebagai current state pencarian selanjutnya. Jika tidak maka akan dilihat tetangga dari anak kiri tersebut, dan seterusnya. Level 1 : (ABCD=10 > BACD =9) buka node BACD tanpa harus mengecek node yang selevel dengan BACD. Level 2 : node ABCD dilewati. (BACD=9 = CABD=9) periksa node tetangga CABD (BACD=9 < DABC=10) periksa node tetangga DABC (BACD=9 < BCAD=10) periksa node tetangga BCAD (BACD=9 < BDAC=10) periksa node tetangga BDAC (BACD=9 > BADC=6 ) buka node BADC Level 3 : (BADC=6 < ABDC=8) periksa tetangga ABDC (BADC=6 < DABC=8) periksa tetangga DABC (BADC=6 < CADB=8) periksa tetangga CADB (BADC=6 < BDAC=8) periksa tetangga BDAC (BADC=6 < BCDA=9) periksa tetangga BCDA (BADC=6 < BADC=9) selesai.

 • Generate and Test • Simple Hill Climbing • Steepest-Ascent Hill Climbing •

• Generate and Test • Simple Hill Climbing • Steepest-Ascent Hill Climbing • Greedy Best-First Search • A*

Steepest-Ascent Hill Climbing • Sebenarnya hampir sama dengan simple hill climbing. Hanya saja gerakan

Steepest-Ascent Hill Climbing • Sebenarnya hampir sama dengan simple hill climbing. Hanya saja gerakan pencarian tidak dimulai dari posisi paling kiri. • Gerakan selanjutnya dicari berdasarkan nilai heuristik terbaik. Dalam hal ini urutan penggunaan operator tidak menentukan penemuan solusi.

Algoritma Steepest-Ascent Hill Climbing 1. Mulai dari keadaan awal, lakukan pengujian: jika merupakan tujuan,

Algoritma Steepest-Ascent Hill Climbing 1. Mulai dari keadaan awal, lakukan pengujian: jika merupakan tujuan, maka berhenti ; dan jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal. 2. Kerjakan hingga tujuan tercapai atau hingga iterasi tidak memberikan perubahan pada keadaan sekarang. 1. Tentukan SUCC sebagai nilai heuristik terbaik dari successor- successor 2. Kerjakan untuk tiap operator yang digunakan oleh keadaan sekarang 3. Gunakan operator tersebut dan bentuk keadaan baru. 4. Evaluasi keadaan baru tersebut. Jika merupakan tujuan, keluar, Jika bukan, bandingkan nilai heuristiknya dengan SUCC. Jika lebih baik, jadikan nilai heuristic keadaan baru tersebut sebagai SUCC. Namun jika tidak lebih baik, nilai SUCC tidak berubah. 5. Jika SUCC lebih baik daripada nilai heuristik keadaan sekarang, ubah node SUCC menjadi keadaan sekarang.

Pencarian solusi menggunakan Steepest-Ascent HC • • • Dari state S, Steepest-Ascent HC akan

Pencarian solusi menggunakan Steepest-Ascent HC • • • Dari state S, Steepest-Ascent HC akan mengevaluasi semua state yang menjadi next state atau suksesornya, yaitu A, B, dan C. Dari ketiga suksesor tersebut dipilih suksesor dengan nilai f yang terkecil. State C akan dipilih sebagai suksesor S. Misalkan, hasil penelusuran menemukan solusi G di level 4, padahal ada solusi optimal di level 2, dalam hal ini Steepest-Ascent HC dikatakan terjebak pada solusi lokal atau local minimum. Jadi Steepest-Ascent HC juga tidak optimal.

Contoh Steepest-Ascent Hill Climbing Keadaan Awal § 1 2 3 1 7 8 4

Contoh Steepest-Ascent Hill Climbing Keadaan Awal § 1 2 3 1 7 8 4 8 5 7 6 kiri Tujuan kanan atas 1 2 3 1 7 8 4 7 6 5 Hb= 6 6 Hb= 4 kanan 2 3 7 8 4 6 5 Hb= 5 1 7 2 3 8 4 6 5 Hb= 7 3 4 8 Hb= 5 atas 1 2 5 2 3 4 6 5

Contoh Steepest-Ascent Hill Climbing atas 1 7 2 3 8 4 6 5 Hb=

Contoh Steepest-Ascent Hill Climbing atas 1 7 2 3 8 4 6 5 Hb= 7 kanan 1 2 8 7 6 Hb= 8 atas 3 bawah 2 3 1 2 3 7 8 4 6 5 4 1 8 4 5 7 6 5 Hb= 6 Jadi urutan penyelesaian game 8 -puzzle diatas dengan menggunakan metode Steepest-Ascent Hill Climbing dan menghitung nilai heuristik berupa jumlah ubin yang menempati posisi yang BENAR adalah ubin kosong bergeser ke KIRI, ATAS, KANAN dengan nilai heuristik terakhir adalah 8.

 • Generate and Test • Simple Hill Climbing • Steepest-Ascent Hill Climbing •

• Generate and Test • Simple Hill Climbing • Steepest-Ascent Hill Climbing • Greedy Best-First Search • A*

Best First Search • Sesuai dengan namanya, Best First Search membangkitkan simpul berikutnya dari

Best First Search • Sesuai dengan namanya, Best First Search membangkitkan simpul berikutnya dari sebuah simpul (yang sejauh ini) terbaik di antara semua leaf node (simpul daun) yang pernah dibangkitkan. • Penentuan simpul terbaik dapat dilakukan dengan menggunakan informasi berupa biaya perkiraan dari suatu simpul menuju ke goal atau gabungan antara biaya sebenarnya dan biaya perkiraan tersebut.

Best First Search • Terdapat 2 jenis algoritma Best First Search: , yang hanya

Best First Search • Terdapat 2 jenis algoritma Best First Search: , yang hanya memperhitungkan biaya perkiraan saja. yang memperhitungkan gabungan dua biaya, biaya sebenarnya dan biaya perkiraan.

Algoritma Best First Search 1. 2. OPEN berisi initial state dan CLOSED masih kosong.

Algoritma Best First Search 1. 2. OPEN berisi initial state dan CLOSED masih kosong. Ulangi sampai goal ditemukan atau sampai tidak ada lagi node di dalam OPEN: a) Ambil simpul terbaik yang ada di OPEN. b) Jika simpul tersebut sama dengan goal, maka sukses. c) Jika tidak, masukkan simpul tersebut ke dalam CLOSED. d) Bangkitkan semua suksesor dari simpul tersebut. e) Untuk setiap suksesor kerjakan: I. Jika suksesor tersebut belum pernah dibangkitkan, evaluasi suksesor tersebut, tambahkan ke OPEN, dan catat parent atau orang tuanya. II. Jika suksesor tersebut sudah pernah dibangkitkan, ubah parent-nya jika jalur melalui parent ini lebih baik daripada jalur melalui parent yang sebelumnya. Selanjutnya perbarui biaya untuk suksesor tersebut dan nodes lain yang berada di level bawahnya.

Best First Search • Pada algoritma tersebut, OPEN adalah list yang digunakan untuk menyimpan

Best First Search • Pada algoritma tersebut, OPEN adalah list yang digunakan untuk menyimpan simpul yang pernah dibangkitkan dan nilai heuristiknya telah dihitung tetapi belum dipilih sebagai simpul terbaik. • CLOSED digunakan untuk menyimpan simpul yang sudah pernah dibangkitkan dan sudah pernah terpilih sebagai simpul terbaik.

Greedy Best First Search • Greedy Best First Search hanya memperhitungkan biaya perkiraan (estimated

Greedy Best First Search • Greedy Best First Search hanya memperhitungkan biaya perkiraan (estimated cost) saja, yakni: f(n) = h(n) • di mana h(n)= perkiraan biaya dari simpul n ke goal. • Biaya yang sebenarnya (actual cost) tidak diperhitungkan. • Dengan hanya memperhitungkan biaya perkiraan yang belum tentu kebenarannya maka algoritma ini menjadi tidak optimal.

Menghitung Jarak Perkiraan •

Menghitung Jarak Perkiraan •

Greedy Best First Search • f(n) = h(n) • h(n) = jarak garis lurus

Greedy Best First Search • f(n) = h(n) • h(n) = jarak garis lurus dari node n ke goal (Bucharest)

Greedy Best-First Search

Greedy Best-First Search

Greedy Best-First Search

Greedy Best-First Search

Greedy Best-First Search

Greedy Best-First Search

Greedy Best-First Search • Solusi yang ditemukan adalah: Arad, Sibiu, Fagaras, Bucharest. • Ternyata

Greedy Best-First Search • Solusi yang ditemukan adalah: Arad, Sibiu, Fagaras, Bucharest. • Ternyata solusi ini tidak optimal karena ada solusi lain yang lebih baik, yaitu: Arad, Sibiu, Rimnicu Vilcea, Pitesti, Bucharest yang lebih pendek 32 kilometer.

Algoritma A* • Algoritma ini merupakan algoritma Best First Search yang menggabungkan Uniform Cost

Algoritma A* • Algoritma ini merupakan algoritma Best First Search yang menggabungkan Uniform Cost Search dan Greedy Best First Search. • Algoritma ini memperhitungkan biaya dari biaya sebenarnya ditambah dengan biaya perkiraan. • Dalam notasi matematika dituliskan sebagai: f(n) = g(n) + h(n) • g(n) = biaya sebenarnya untuk mencapai simpul n • h(n) = perkiraan biaya dari simpul n ke goal. • f(n) = perkiraan total biaya jalur yang melalui simpul n ke goal. • Dengan perhitungan biaya seperti ini, algoritma A* adalah complete dan optimal.

A* • f(n) = g(n) + h(n) • g(n) = biaya sebenarnya untuk mencapai

A* • f(n) = g(n) + h(n) • g(n) = biaya sebenarnya untuk mencapai sebuah node (kota) n • h(n) = jarak garis lurus dari node n ke goal (Bucharest)

A* search example

A* search example

A* search example

A* search example

A* search example

A* search example

A* search example

A* search example

A* search example

A* search example

A* search example

A* search example

A* search example • Solusi yang ditemukan adalah solusi optimal, yaitu: Arad, Sibiu, Rimnicu

A* search example • Solusi yang ditemukan adalah solusi optimal, yaitu: Arad, Sibiu, Rimnicu Vilcea, Pitesti, Bucharest.

Contoh:

Contoh:

Greedy Best First Search

Greedy Best First Search

Greedy Best First Search

Greedy Best First Search

A*

A*

A*

A*

A*

A*

A*

A*

A*

A*

Latihan Pada suatu provinsi terdapat kota A, B, C, D, E, dan F dengan

Latihan Pada suatu provinsi terdapat kota A, B, C, D, E, dan F dengan jarak antar kota seperti pada gambar di bawah ini. Pak Anto yang berasal dari kota A hendak pergi ke kota D. Bantulah Pak Anto untuk mencari jalur yang paling dekat dari kota A ke kota B dengan menggunakan algoritma Greedy Best First Search dan A*. Tuliskan langkah-langkahnya secara urut (Langkah 1 hingga ditemukan solusi) dan juga tuliskan CLOSED list dan OPEN list pada tiap langkah

Referensi • Suyanto. Kecerdasan Buatan. IT Telkom • Hersa Farida Qoriani. Informed Heuristic Search.

Referensi • Suyanto. Kecerdasan Buatan. IT Telkom • Hersa Farida Qoriani. Informed Heuristic Search. Akses: http: //hersa. dosen. narotama. ac. id/files/2011/ 12/Informed-Heuristic-Search. ppt