2. • 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.
3. • “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
4. 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
6. 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.
7. Fungsi heuristik
• Informasi yang diberikan berupa straight-line distance (jarak dalam
garis lurus) antara tiap kota dengan Bucharest.
8. Informed (Heuristic) Search
• Generate and Test
• Simple Hill Climbing
• Steepest-Ascent Hill Climbing
• Greedy Best-First Search
• A*
9. 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.
10. 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.
11. 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.
12. 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
13. Contoh kasus TSP
Sebuah rute yng harus dilewati seorang
sales dimana sales tersebut harus
merlewati setiap kota tepat sekali.
Terdapat 4 kota, dengan jarak masing-
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-
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.
A B
C
D
2
4
1
3
5
3
14. No Pencarian Lintasan
Panjang
Lintasan
Lintasan yang
dipilih
Panjang
Lintasan yang
dipilih
1 ABCD 10 ABCD 10
2 ABDC 8 ABDC 8
3 ACBD 12 ABDC 8
4 ACDB 10 ABDC 8
…. …….. ………. …………… …………
24 DCBA 10 BADC / CDAB 6
A B
C
D
2
4
1
3
5
3
15. 16
• 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
...
Contoh kasus TSP
A B C D
B C D
C D C B
B D
D C B C
D B
16. Latihan Generate-and-Test Algorithm
Baca problem di tautan berikut dan selesaikan
dengan metode Generate and Test
https://training.ia-
toki.org/training/curriculums/1/courses/11/cha
pters/55/problems/253/
17. 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.
18. • Generate and Test
• Simple Hill Climbing
• Steepest-Ascent Hill Climbing
• Simulated Annealing
• Greedy Best-First Search
• A*
19. 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”.
20. Algoritma Simple HC
1. 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.
2. 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.
21. 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.
22. 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.
23. 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
24.
25. 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.
26. • Generate and Test
• Simple Hill Climbing
• Steepest-Ascent Hill Climbing
• Greedy Best-First Search
• A*
27. 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.
28. 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.
29. 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.
31. Contoh Steepest-Ascent Hill Climbing
5
6
7
4
8
3
2
1
atas
Hb= 7
5
6
7
4
8
3
2
1
5
6
7
4
8
1
3
2
5
6
4
8
7
3
2
1
kanan atas bawah
Hb= 8 Hb= 6 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.
32. • Generate and Test
• Simple Hill Climbing
• Steepest-Ascent Hill Climbing
• Greedy Best-First Search
• A*
33. 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.
34. 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.
35. Algoritma Best First Search
1. OPEN berisi initial state dan CLOSED masih kosong.
2. 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.
36. Best First Search
• Pada algoritma tersebut, OPEN adalah list
yang digunakan untuk menyimpan simpul-
simpul yang pernah dibangkitkan dan nilai
heuristiknya telah dihitung tetapi belum
dipilih sebagai simpul terbaik.
• CLOSED digunakan untuk menyimpan simpul-
simpul yang sudah pernah dibangkitkan dan
sudah pernah terpilih sebagai simpul terbaik.
37. 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.
38. Menghitung Jarak Perkiraan
• Euclidean Distance:
ℎ 𝑛 = (𝑥𝑛 − 𝑥𝑔)2+(𝑦𝑛 − 𝑦𝑔)2
• Manhattan Distance
ℎ 𝑛 = 𝑥𝑛 − 𝑥𝑔 + 𝑦𝑛 − 𝑦𝑔
xn dan yn adalah posisi node saat ini
xg dan yg adalah posisi node seharusnya
39. Greedy Best First Search
• f(n) = h(n)
• h(n) = jarak garis lurus dari node n ke goal (Bucharest)
43. 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.
44. 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.
45. 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)
61. 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