74
HEURISTIC SEARCH Dian Eka R

HEURISTIC SEARCH

  • Upload
    arlais

  • View
    84

  • Download
    0

Embed Size (px)

DESCRIPTION

HEURISTIC SEARCH. Dian Eka R. Pencarian Heuristik ( heuristic searching) ?. merupakan suatu strategi untuk melakukan proses pencarian ruang keadaan ( state space) s uatu problema secara selektif, - PowerPoint PPT Presentation

Citation preview

Page 1: HEURISTIC SEARCH

HEURISTIC SEARCH

Dian Eka R

Page 2: HEURISTIC SEARCH

Pencarian Heuristik (heuristic searching)? merupakan suatu strategi untuk

melakukan proses pencarian ruang keadaan (state space) suatu problema secara selektif,

yang memandu proses pencarian yang kita lakukan di sepanjang jalur yang memiliki kemungkinan sukses paling besar, dan mengesampingkan usaha yang bodoh dan memboroskan waktu.

Page 3: HEURISTIC SEARCH

Pencarian Heuristik (heuristic searching)? Heuristik adalah sebuah teknik

yang mengembangkan efisiensi dalam proses pencarian, namum dengan kemungkinan mengorbankan kelengkapan (completeness

Page 4: HEURISTIC SEARCH

Pencarian Heuristik (heuristic searching)? Untuk dapat menerapkan heuristik

tersebut dengan baik dalam suatu domain tertentu, diperlukan suatu Fungsi Heuristik.

Fungsi heuristik ini digunakan untuk mengevaluasi keadaan-keadaan problema individual dan menentukan seberapa jauh hal tersebut dapat digunakan untuk mendapatkan solusi yang diinginkan.

Page 5: HEURISTIC SEARCH

Jenis-jenis Heuristic Searching ¨ Generate and Test. ¨ Hill Climbing. ¨ Best First Search. ¨ Alpha Beta Prunning. ¨ Means-End-Anlysis. ¨ Constraint Satisfaction

Page 6: HEURISTIC SEARCH

Metode Pencarian Heuristik

Bangkitkan - dan - Uji (Generate and Test) Pendakian Bukit (Hill Climbing)

1. Simple Hill Climbing2. Steepest=Ascent Hill Climbing

Pencarian Terbaik Pertama (Best First Search)1. Greedy Best First Search2. Algoritma A*

Page 7: HEURISTIC SEARCH

Generate and TestAlgoritma :1. Bangkitkan suatu kemungkinan solusi

(membangkitkan suatu titik tertentu atau lintasan tertentu dari keadaan awal)

2. Uji apakah node tsb adlh solusi dg membandingkan node tsb atau node akhir dr lintasan yg dipilih dg kumpulan tujuan yg diharapkan

3. Jika solusi ditemukan langkah–langkah tersebut dihentikan, jika tdk kembali langkah pertama

Page 8: HEURISTIC SEARCH

Generate and Test Jika pembangkitan atau pembuatan solusi–

solusi yang dimungkinkan dapat dilakukan secara sistematis, maka prosedur ini akan dapat segera menemukan solusinya, (bila ada).

Namun, jika ruang problema sangat besar, maka proses ini akan membutuhkan waktu yang lama.

Metode generate and test ini kurang efisien untuk masalah yang besar atau kompleks.

Page 9: HEURISTIC SEARCH

Contoh : TSP (Travelling Salesman Problem)

Seorang salesman ingin mengunjungi n kota. Jarak tiap kota sdh diket.Kita ingin mengetahui rute terpendek dimana setiap kota hanya boleh dikunjungi 1 kali. Misal ada 4 kota dg jarak sbb:

A

D

B

C

8

6

43

7 5

Page 10: HEURISTIC SEARCH

Penyelesaian :Membangkitkan solusi - solusi yg mungkin dg

menyusun kota – kota dalam urutan abjad, yaitu: A – B – C – D A – B – D – C A – C – B – D A – C – D – B DST

U/ mengetahui jumlah seluruh kombinasi abjad yg mkn mjd solusi adalah n!.

Page 11: HEURISTIC SEARCH

Pilih keadaan awal, mis ABCD dg panjang lintasan 19.

Lakukan backtracking u/ mdapatkan lintasan ABDC 18.

Bandingkan lintasan ABDC dg sblmnya, lintasan terpendek akan dipilih u/ dilakukan backtracking lagi.

Solusi terbaik adalah menemukan lintasan terpendek dari kota yg dilewati.

Page 12: HEURISTIC SEARCH

Dibuat Tabel :

Page 13: HEURISTIC SEARCH

Lanjutan tabel :

Page 14: HEURISTIC SEARCH

Kelemahan :

Membangkitkan semua kemungkinan sebelum dilakukan pengujian

Membutuhkan waktu yg cukup besar dalam pencariannya

Page 15: HEURISTIC SEARCH

Hill Climbing Hill climbing (mendaki bukit)

merupakan salah satu variasi metode Bangkitkan - dan - Uji (generate and test) dimana umpan balik yang berasal dari prosedur uji digunakan untuk memutuskan arah gerak dalam ruang pencarian (search).

Dalam prosedur Bangkitkan - dan - Uji yang murni, respon fungsi uji hanyalah ya atau tidak

Page 16: HEURISTIC SEARCH

Hill Climbing Dalam prosedur Hill Climbing,

fungsi uji dikombinasikan dengan fungsi heuristik yang menyediakan pengukuran kedekatan suatu keadaan yang diberikan dengan tujuan (goal).

Page 17: HEURISTIC SEARCH
Page 18: HEURISTIC SEARCH

Simple Hill Climbing

Algoritma :1. Mulai dr keadaan awal, lakukan pengujian: if tujuan mk stop,if tdk mk lanjutkan dg keadaan skrng sbg keadaan awal.2. Ulangi langkah berikut hingga solusi ditemukan atau sampai tdk ada operator baru yg diaplikasikan pd keadaan skrng: a. Pilih operator yg blm pernah digunakan, gunakan operator u/ mdptkan keadaan yg baru

Page 19: HEURISTIC SEARCH

Lanjutan……… b. Evaluasi keadaan baru tsbt : (i) If keadaan baru adlh tujuan, keluar (ii) If tdk, namun nilainya lbh baik dr keadaan skrng, mk jadikan keadaan baru tsbt mjd keadaan skrng (iii) If keadaan baru tdk lbh baik drpd keadaan skrng, mk lanjutkan iterasi

Page 20: HEURISTIC SEARCH

Penyelesaian : contoh kasus TSP

Operator yg digunakan adlh operator yg bisa menghasilkan kombinasi lintasan kota yg berbeda, yaitu dg menukar urutan posisi 2 kota dlm suatu lintasan.

Bila ada n kota maka kombinasi lintasan :

Jika dr soal terdapat 4 kota mk kombinasi ada 6 yaitu :

!2!2!nn

Page 21: HEURISTIC SEARCH

Lanjutan …….1. (1,2) tukar urutan posisi kota ke-1 dg kota ke-22. (2,3) tukar urutan posisi kota ke-2 dg kota ke-33. (3,4) tukar urutan posisi kota ke-3 dg kota ke-44. (4,1) tukar urutan posisi kota ke-4 dg kota ke-15. (2,4) tukar urutan posisi kota ke-2 dg kota ke-46. (1,3) tukar urutan posisi kota ke-1 dg kota ke-3

Pada pencarian ini, penggunaan urutan dari kombinasi harus konsisten.Stlh kombinasi ditentukan, gunakan algoritma pengerjaan sesuai aturan metode simple hill climbing. Mis keadaan awal adlh ABCD

Page 22: HEURISTIC SEARCH

Metode Simple Hill Climbing dg 6 operator

Page 23: HEURISTIC SEARCH

Lanjutan ……

Pencarian dilihat dari anak kiri, bila nilai heuristik anak kiri lbh baik mk dibuka utk pencarian slnjutnya, bila tdk baru melihat tetangga dari anak kiri tsbt.

Solusi yg dihasilkan adlh node DBCA (=12) lintasan terpendek dibanding yg lain.

Kelemahannya : 1. tdk semua solusi dpt ditemukan seperti pada metode generate and test (2 solusi).2. pembatasan kombinasi operator penemuan solusi yg tdk maksimal

Page 24: HEURISTIC SEARCH

Steepest-Ascent Hill Climbing Algoritma :

1. Mulai dr keadaan awal, lakukan pengujian: if tujuan mk stop,if tdk mk lanjutkan dg keadaan skrng sbg keadaan awal.2. Kerjakan hingga tujuan tercapai atau hingga iterasi tdk memberikan perubahan pd keadaan skrng: a. Tentukan SUCC sbg nilai heuristik terbaik dari successor – successor.

Page 25: HEURISTIC SEARCH

Lanjutan …… b. Kerjakan utk tiap operator yg digunakan o/ keadaan skrng : (i) Gunakan operator tsbt & bentuk keadaan baru. (ii) Evaluasi keadaan baru tsbt, if mrpk tujuan keluar. If tdk, bandingkan nilai heuristiknya dg SUCC. If lbh baik, jadikan nilai heuristik keadaan baru tsbt sbg SUCC, but if not good, nilai SUCC tdk berubah. c. If SUCC lbh baik drpd nilai heuristik keadaan skrng, ubah node SUCC mjd keadaan skrng

Page 26: HEURISTIC SEARCH

Masalah yg mkn timbul padaprosedur Hill Climbing :

Local optimum : adalah suatu keadaan yang lebih baik daripada semua tetangganya namun masih belum lebih baik dari suatu keadaan lain yang jauh letaknya darinya

Sering muncul ketika sdh mendekati solusi.

Page 27: HEURISTIC SEARCH

Masalah yg mkn timbul padaprosedur Hill Climbing :

Plateau (Daratan): adalah suatu daerah datar dari ruang pencarian (search) dimana keadaan semua tetangga sama dgn keadaan dirinya

Ridge (Punggung) : local optimum yg lbh disebabkan karena ketidak mampuan u/ menggunakan 2 operator sekaligus.

Page 28: HEURISTIC SEARCH

Solusinya:1. Melakukan langkah balik (backtracking) ke

simpul yang lebih awal dan mencoba bergerak ke arah yang lain.

2. Melakukan lompatan besar ke suatu arah untuk mencoba bagian ruang pencarian yang baru.

3. Menerapkan dua atau lebih aturan sebelum melakukan uji coba. Ini bersesuaian dengan bergerak ke beberapa arah sekaligus.

Page 29: HEURISTIC SEARCH

Penyelesaian : contoh kasus TSP

Operator tetap digunakan u/ mbangkit kemungkinan solusi.

Pencarian didasarkan pd nilai heuristik terbaik pd setiap level, bkn nilai heuristik pada node plng kiri (metode simple hill climbing)

Mis : dr contoh TSP kita ambil keadaan awal ABCD dg nilai heuristik (19). Nilai tsbt kita namai dg SUCC. Kmd lanjutkan pengerjaan sesuai dg algoritma dari steepest-ascent hill climbing.

Page 30: HEURISTIC SEARCH

Metode Steepest-Ascent Hill Climbing

Page 31: HEURISTIC SEARCH

Lanjutan …… Solusi yg diperoleh, lintasan ACBD dg

nilai heuristik 12.

Page 32: HEURISTIC SEARCH

BEST FIRST SEARCH Merupakan kombinasi kelebihan teknik

depth first search dan breadth first search

Pencarian diperkenankan mengunjungi node yang ada di level yg lebih rendah jika ternyata node pada level yg lebih tinggi ternyata memiliki nilai heuristik yg buruk

Page 33: HEURISTIC SEARCH

Best First Search (Lanjutan) Best First Search akan membangkitkan node

berikutnya dari semua node yg pernah dibangkitkan

Pertanyaannya :Bagaimana menentukan sebuah node terbaik saat ini?Dilakukan dengan menggunakan biaya perkiraanBagaimana caranya menentukan biaya perkiraan?

Biaya perkiraan dapat ditentukan dengan fungsi heuristic

Page 34: HEURISTIC SEARCH

FUNGSI HEURISTIC Suatu fungsi heuristic dikatakan baik

jika bisa memberikan biaya perkiraan yang mendekati biaya sebenarnya.

Semakin mendekati biaya sebenarnya, fungsi heuristic tersebut semakin baik.

Page 35: HEURISTIC SEARCH

Contoh

A B C D

16

100

10

( 20 , 10 ) ( 35 , 10 ) ( 55 , 10 ) ( 65 , 10 )

Dalam kasus pencarian rute terpendek, biaya sebenarnya adalah panjang jalanRaya yang sebenarnya. Sedangkan fungsi heuristiknya adalah garis lurus dari1 kota ke kota lainnya. Untuk itu,bisa digunakan rumus berikut :

dab = ( yb – ya )2 + ( xb – xa )2dAB = 15dBC = 20dCD = 10

Page 36: HEURISTIC SEARCH

Algoritma Best First Search Greedy Best First Search Algoritma A*

Page 37: HEURISTIC SEARCH

Greedy Best First Search Algoritma ini merupakan jenis algoritma

Best First Search yg paling sederhana Algoritma ini hanya memperhitungkan

biaya perkiraan saja f(n) = h’(n)

Karena hanya memperhitungkan biaya perkiraan yang belum tentu kebenarannya, maka algoritma ini menjadi tidak optimal

Page 38: HEURISTIC SEARCH

Contoh

S

A

B

CD

E

G

FK

HL

MJ

10

10

102

53035

1520 4

0

52

25

40

50

5 40

90

30

40

80

25

n S A B C D E F G H J K L Mh’(n) 80 80 60 70 85 74 70 0 40 100 30 20 70

Page 39: HEURISTIC SEARCH

Langkah 1

S

A

B

CD

E

10

10

253035

n S A B C D Eh’(n) 80 80 60 70 85 74

Page 40: HEURISTIC SEARCH

Langkah 2

S

A

B

CD

E

10

10

253035

n A C D E F Kh’(n) 80 70 85 74 70 30

FK5

0

5

Page 41: HEURISTIC SEARCH

Langkah 3

S

A

B

CD

E

10

10

253035

n A C D E F Gh’(n) 80 70 85 74 70 0

FK5

0

5

G30

Page 42: HEURISTIC SEARCH

SOLUSI

S

A

B

CD

E

10

10

253035

FK5

0

5

G30

S - B - K - GDengan Total Jarak = 105

Page 43: HEURISTIC SEARCH

PENJELASAN Dari contoh di atas, Greedy akan

menemukan solusi S-B-K-G dengan total jarak 105

Padahal ada solusi lain yg lebih optimal, yakni S-A-B-F-K-G dengan total jarak hanya 95

Dari situ bisa disimpulkan bahwa Greedy Best First Search tidak bisa menemukan solusi yang optimal

Page 44: HEURISTIC SEARCH

Romania with step costs in km

Page 45: HEURISTIC SEARCH

Greedy best-first search example

Page 46: HEURISTIC SEARCH

Greedy best-first search example

Page 47: HEURISTIC SEARCH

Greedy best-first search example

Page 48: HEURISTIC SEARCH

Greedy best-first search example

Page 49: HEURISTIC SEARCH

Properties of greedy best-first search Complete? No – can get stuck in loops,

e.g., Iasi Neamt Iasi Neamt Time? O(bm), but a good heuristic can give

dramatic improvement Space? O(bm) -- keeps all nodes in

memory Optimal? No

(expand the minimal path cost but cant be not optimal)

Page 50: HEURISTIC SEARCH

Algoritma A*(Admissible Heuristic ) Berbeda dg Greedy, algoritma ini akan

menghitung fungsi heuristic dengan cara menambahkan biaya sebenarnya dengan biaya perkiraan.

Heuristik adalah kriteria, metoda, atau prinsip-prinsip untuk menentukan pilihan sejumlah alternatif untuk mencapai sasaran dengan efektif.

Nilai heuristik dipergunakan untuk mempersempit ruang pencarian

Page 51: HEURISTIC SEARCH

Dengan heuristik yang benar, maka A* pasti akan mendapatkan solusi (jika memang ada solusinya) yang dicari.

Dengan kata lain, heuristik adalah fungsi optimasi yang menjadikan algoritma A* lebih baik dari pada algoritma lainnya.

Namun heuristik masih merupakan estimasi / perkiraan biasa saja Sama sekali tidak ada rumus khususnya. Artinya, setiap kasus memiliki fungsi heuristik yang berbedabeda.

Algoritma A* ini bisa dikatakan mirip dengan algoritma Dijkstra, namun pada algoritma Dijkstra, nilai fungsi heuristiknya selalu 0 (nol) sehingga tidak ada fungsi yang mempermudah pencarian solusinya.

Page 52: HEURISTIC SEARCH

Algoritma A* Metode ini berdasarkan formula: f(n) = g(n) + h(n)Keterangan :h(n) = biaya estimasi dari node n ke tujuan.g(n) = biaya path / perjalananf(n) = solusi biaya estimasi termurah node

n untuk mencapai tujuan.(Russell, Stuart J and Norvig, Peter, 2003).

Page 53: HEURISTIC SEARCH

Langkah Algoritma A*1. Masukan node awal ke openlist2. Loop Langkah – langkah di bawah ini :

 a. Cari node (n) dengan nilai f(n) yang paling rendah dalam open list. Node ini sekarang menjadi current  node. b. Keluarkan current node dari openlist dan masukan ke close list    

Page 54: HEURISTIC SEARCH

Langkah Algoritma A*     c. Untuk setiap tetangga dari current node lakukan

berikut :        •  Jika tidak dapat dilalui atau sudah ada dalam close list, abaikan.        •  Jika belum ada di open list . Buat current node parent dari node tetangga ini. Simpan nilai f,g dan h dari node ini.        •  Jika sudah ada di open list, cek bila node tetangga ini lebih baik, menggunakan nilai g sebagai ukuran. Jika lebih baik ganti parent dari node ini di openlist menjadi current node, lalu kalkulasi ulang nilai g dan f dari node ini.   

Page 55: HEURISTIC SEARCH

Langkah Algoritma A*   d. Hentikan loop jika :

        • Node tujuan telah ditambahkan ke openlist, yang berate rute telah ditemukan.        • Belum menemukan node goal sementara open list kosong atau berarti tidak ada rute.3. Simpan rute. Secara ‘backward’, urut mulai darinode goal ke parent-nya terus sampai mencapai node awal sambil menyimpan node ke dalam sebuah array.

Page 57: HEURISTIC SEARCH

Berikut adalah langkah langkah dalam metode A* :

Open vertex utama (Opened vertex : A5) Kunjungi vertex yang di open dengan nilai terkecil (A5) Open vertex dibawahnya (B4, C4, D6 => Opened vertex

menjadi : B4, C4, D6) Kemudian close vertex yang telah dikunjungi (Closed vertex:

A5, Opened vertex: B4, C4, D6 ) Urutkan vertex sesuai value, jika value sama maka urutkan

vertex berdasarkan labelnya (Opened vertex :  B4, C4, D6) Kunjungi vertex dengan value dan label yang terkecil (Vertex

B4) –> Seperti langkah 2 Open vertex di bawahnya (E5, F5 => Opened vertex

menjadi :C4 , D6, E5, F5) –> seperti langkah 3 dst sampai hasilnya ketemu

Page 59: HEURISTIC SEARCH

Contoh

S

A

B

CD

E

G

FK

HL

MJ

10

10

102

53035

1520 4

0

52

25

40

50

5 40

90

30

40

80

25

n S A B C D E F G H J K L Mh’(n) 80 80 60 70 85 74 70 0 40 100 30 20 70

Page 60: HEURISTIC SEARCH

Langkah 1

S

A

B

CD

E

10

10

253035

n S A B C D Eh’(n) 80 80 60 70 85 74

g(n) 0 10 25 30 35 10

f(n) 80 90 85 100 120 84

Page 61: HEURISTIC SEARCH

Langkah 2n A B C D Jh’(n) 80 60 70 85 100

g(n) 10 25 30 35 30

f(n) 90 85 100 120 130

S

A

B

CD

E

J

10

10

253035

1520

Page 62: HEURISTIC SEARCH

Langkah 3

n A C D J F Kh’(n) 80 70 85 100 70 30

g(n) 10 30 35 30 30 75

f(n) 90 100 120 130 100 105

S

A

B

CD

E

FK

J

10

10

253035

1520

50

510

Page 63: HEURISTIC SEARCH

Langkah 4

n C D J F K Gh’(n) 70 85 100 70 30 0

g(n) 30 25 30 25 75 100

f(n) 100 110 130 95 105 100

S

A

B

CD

E

FK

J

10

10

253035

1520

50

510

90

G

Page 64: HEURISTIC SEARCH

Langkah 5

n C D J K Gh’(n) 70 85 100 30 0

g(n) 30 25 30 65 100

f(n) 100 110 130 95 100

S

A

B

CD

E

FK

J

10

10

253035

1520

50

510

90

G

40

Page 65: HEURISTIC SEARCH

Langkah 6

n C D J Gh’(n) 70 85 100 0

g(n) 30 25 30 95

f(n) 100 110 130 95

S

A

B

CD

E

FK

J

10

10

253035

1520

50

510

90

G

40

30

Page 66: HEURISTIC SEARCH

Solusi

S

A

B

CD

E

FK

J

10

10

253035

1520

50

510

90

G

40

30

S - A - B - F - K - GDengan Total Jarak = 95

Page 67: HEURISTIC SEARCH

A* search example

Page 68: HEURISTIC SEARCH

A* search example

Page 69: HEURISTIC SEARCH

A* search example

Page 70: HEURISTIC SEARCH

A* search example

Page 71: HEURISTIC SEARCH

A* search example

Page 72: HEURISTIC SEARCH

A* search example

Page 73: HEURISTIC SEARCH

Properties of A* Complete? Yes (unless there are

infinitely many nodes with f ≤ f(G) ) Time? Exponential Space? Keeps all nodes in memory Optimal? Yes

Page 74: HEURISTIC SEARCH

Kesimpulan Algoritma A* lebih baik dalam

melakukan pencarian heuristic daripada Greedy Best First Search karena dapat mengasilkan solusi yang optimal