Heuristic Search.pdf

37
Informed (Heuristic) Search

Transcript of Heuristic Search.pdf

Page 1: Heuristic Search.pdf

Informed (Heuristic) Search

Page 2: Heuristic Search.pdf

Informed (Heuristic) Search

• 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.

• Fungsi heuristik digunakan untuk menghitung biaya perkiraan dari suatu simpul tertentu menuju ke simpul tujuan.

Page 3: Heuristic Search.pdf

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

Page 4: Heuristic Search.pdf

Fungsi heuristik

Page 5: Heuristic Search.pdf

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 adalah menggeser ubin kosong ke ?????

Page 6: Heuristic Search.pdf

Informed (Heuristic) Search

• Di sini hanya akan dibahas 5 metode yang tergolong informed search, yaitu:

• Generate and Test

• Simple Hill Climbing

• Steepest-Ascent Hill Climbing

• Greedy Best-First Search

• A*

Page 7: Heuristic Search.pdf

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: – Pembangkit (generate), yang membangkitkan semua solusi

yang mungkin.

– Test, yang menguji solusi yang dibangkitkan tersebut.

• Algoritma GT menggunakan prosedur Depth First Search karena suatu solusi harus dibangkitkan secara lengkap sebelum dilakukan Test.

Page 8: Heuristic Search.pdf

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.

Page 9: Heuristic Search.pdf

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.

Page 10: Heuristic Search.pdf

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.

Page 11: Heuristic Search.pdf

Generate-and-Test (GT)

• Penyelesaian dengan menggunakan Generate-and-Test dilakukan dengan membangkitkan solusi-solusi yang mungkin dengan menyusun kota-kota dalam urutan abjad, yaitu:

– A-B-C-D

– A-B-D-C

– A-C-B-D

– A-C-D-B – dan seterusnya

Page 12: Heuristic Search.pdf

Generate-and-Test

• Misalkan kita mulai dari node A. Kita pilih sebagai keadaan awal adalah lintasan ABCD dengan panjang lintasan = 19.

• Kemudian kita lakukan backtracking untuk mendapatkan lintasan ABDC dengan panjang lintasan = 18.

Page 13: Heuristic Search.pdf

Generate-and-Test

• Lintasan ini kita bandingkan dengan lintasan ABCD, ternyata ABDC < ABCD, sehingga lintasan terpilih adalah ABDC.

• Kita lakukan lagi backtracking untuk mendapatkan lintasan ACBD (=12), ternyata ACBD < ABDC, maka lintasan terpilih sekarang adalah ACBD.

• Demikian seterusnya hingga ditemukan solusi yang sebenarnya.

• Salah satu kelemahan dari metode ini adalah perlunya dibangkitkan semua kemungkinan solusi sehingga membutuhkan waktu yang cukup besar dalam pencariannya.

Page 14: Heuristic Search.pdf

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”.

Page 15: Heuristic Search.pdf

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.

Page 16: Heuristic Search.pdf

Pencarian solusi menggunakan Simple HC

• S menyatakan intial 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.

Page 17: Heuristic Search.pdf

Pencarian solusi menggunakan Simple HC

• Simple HC akan memilih state A sebagai next state, tetapi karena nilai state A tidak lebih baik dari current state (S), maka akan dipilih state berikutnya

• 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.

Page 18: Heuristic Search.pdf

Algoritma Steepest-Ascent 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 perubahan terhadap current state:

a) Misalkan SUK adalah suatu state yang menjadi suksesor dari current state.

b) Untuk setiap operator yang bisa dilakukan terhadap current state, kerjakan:

I. Aplikasikan operator tersebut dan bangkitkan new state.

II. Evaluasi new state. Jika merupakan goal state, kembalikan state ini sebagai solusi dan keluar dari program. Jika bukan goal state, bandingkan new state dengan SUK. Jika new state lebih baik daripada SUK, maka ganti SUK dengan new state. Jika tidak lebih baik, SUK tidak perlu diganti.

c) Jika SUK lebih baik dari current state, maka ganti current state dengan SUK

Page 19: Heuristic Search.pdf

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.

Page 20: Heuristic Search.pdf

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.

Page 21: Heuristic Search.pdf

Best First Search

• Terdapat 2 jenis algoritma Best First Search:

– Greedy Best First Search, yang hanya memperhitungkan biaya perkiraan saja.

– Algoritma A* yang memperhitungkan gabungan dua biaya, biaya sebenarnya dan biaya perkiraan.

Page 22: Heuristic Search.pdf

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.

Page 23: Heuristic Search.pdf

Greedy Best First Search

• f(n) = h(n) • h(n) = fungsi heuristik - jarak garis lurus dari node n ke goal (Bucharest)

Page 24: Heuristic Search.pdf

Greedy Best-First Search

Page 25: Heuristic Search.pdf

Greedy Best-First Search

Page 26: Heuristic Search.pdf

Greedy Best-First Search

Page 27: Heuristic Search.pdf

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.

Page 28: Heuristic Search.pdf

Sifat-sifat greedy best-first search

• Complete? Tidak – dapat terjebak pada suatu loop, misalnya:

– Iasi Neamt Iasi Neamt

• Optimal? Tidak

• Time? O(bm), tetapi heuristik yang baik akan mengakibatkan perbaikan yang dramatis.

• Space? O(bm) – menyimpan semua simpul di memori.

Page 29: Heuristic Search.pdf

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.

Page 30: Heuristic Search.pdf

Algoritma 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)

Page 31: Heuristic Search.pdf

Contoh Pencarian Algoritma A*

Page 32: Heuristic Search.pdf

Contoh Pencarian Algoritma A*

Page 33: Heuristic Search.pdf

Contoh Pencarian Algoritma A*

Page 34: Heuristic Search.pdf

Contoh Pencarian Algoritma A*

Page 35: Heuristic Search.pdf

Contoh Pencarian Algoritma A*

Page 36: Heuristic Search.pdf

Contoh Pencarian Algoritma A*

Page 37: Heuristic Search.pdf

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

Contoh Pencarian Algoritma A*