Pencarian Heuristik D

74
HEURISTIC SEARCH Dian Eka R

Transcript of Pencarian Heuristik D

Page 1: Pencarian Heuristik D

HEURISTIC SEARCH

Dian Eka R

Page 2: Pencarian Heuristik D

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: Pencarian Heuristik D

Pencarian Heuristik (heuristic searching)? Heuristik adalah sebuah teknik

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

Page 4: Pencarian Heuristik D

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: Pencarian Heuristik D

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

Page 6: Pencarian Heuristik D

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: Pencarian Heuristik D

Generate and Test

Algoritma :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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

Dibuat Tabel :

Page 13: Pencarian Heuristik D

Lanjutan tabel :

Page 14: Pencarian Heuristik D

Kelemahan :

Membangkitkan semua kemungkinan sebelum dilakukan pengujian

Membutuhkan waktu yg cukup besar dalam pencariannya

Page 15: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D
Page 18: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

Metode Simple Hill Climbing dg 6 operator

Page 23: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

Metode Steepest-Ascent Hill Climbing

Page 31: Pencarian Heuristik D

Lanjutan …… Solusi yg diperoleh, lintasan ACBD dg

nilai heuristik 12.

Page 32: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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 jalan

Raya yang sebenarnya. Sedangkan fungsi heuristiknya adalah garis lurus dari

1 kota ke kota lainnya. Untuk itu,bisa digunakan rumus berikut :

dab = ( yb – ya )2 + ( xb – xa )2

dAB = 15

dBC = 20

dCD = 10

Page 36: Pencarian Heuristik D

Algoritma Best First Search Greedy Best First Search Algoritma A*

Page 37: Pencarian Heuristik D

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: Pencarian Heuristik D

Contoh

S

A

B

C

D

E

G

F

K

H

L

MJ

10

10

102

5

3035

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 M

h’(n) 80 80 60 70 85 74 70 0 40 100 30 20 70

Page 39: Pencarian Heuristik D

Langkah 1

S

A

B

C

D

E

10

10

25

3035

n S A B C D E

h’(n) 80 80 60 70 85 74

Page 40: Pencarian Heuristik D

Langkah 2

S

A

B

C

D

E

10

10

25

3035

n A C D E F K

h’(n) 80 70 85 74 70 30

F

K50

5

Page 41: Pencarian Heuristik D

Langkah 3

S

A

B

C

D

E

10

10

25

3035

n A C D E F G

h’(n) 80 70 85 74 70 0

F

K50

5

G30

Page 42: Pencarian Heuristik D

SOLUSI

S

A

B

C

D

E

10

10

25

3035

F

K50

5

G30

S - B - K - G

Dengan Total Jarak = 105

Page 43: Pencarian Heuristik D

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: Pencarian Heuristik D

Romania with step costs in km

Page 45: Pencarian Heuristik D

Greedy best-first search example

Page 46: Pencarian Heuristik D

Greedy best-first search example

Page 47: Pencarian Heuristik D

Greedy best-first search example

Page 48: Pencarian Heuristik D

Greedy best-first search example

Page 49: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

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: Pencarian Heuristik D

Contoh

S

A

B

C

D

E

G

F

K

H

L

MJ

10

10

102

5

3035

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 M

h’(n) 80 80 60 70 85 74 70 0 40 100 30 20 70

Page 60: Pencarian Heuristik D

Langkah 1

S

A

B

C

D

E

10

10

25

3035

n S A B C D E

h’(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: Pencarian Heuristik D

Langkah 2

n A B C D J

h’(n) 80 60 70 85 100

g(n) 10 25 30 35 30

f(n) 90 85 100 120 130

S

A

B

C

D

E

J

10

10

25

3035

1520

Page 62: Pencarian Heuristik D

Langkah 3

n A C D J F K

h’(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

C

D

E

F

K

J

10

10

25

3035

1520

50

510

Page 63: Pencarian Heuristik D

Langkah 4

n C D J F K G

h’(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

C

D

E

F

K

J

10

10

25

3035

1520

50

510

90

G

Page 64: Pencarian Heuristik D

Langkah 5

n C D J K G

h’(n) 70 85 100 30 0

g(n) 30 25 30 65 100

f(n) 100 110 130 95 100

S

A

B

C

D

E

F

K

J

10

10

25

3035

1520

50

510

90

G

40

Page 65: Pencarian Heuristik D

Langkah 6

n C D J G

h’(n) 70 85 100 0

g(n) 30 25 30 95

f(n) 100 110 130 95

S

A

B

C

D

E

F

K

J

10

10

25

3035

1520

50

510

90

G

40

30

Page 66: Pencarian Heuristik D

Solusi

S

A

B

C

D

E

F

K

J

10

10

25

3035

1520

50

510

90

G

40

30

S - A - B - F - K - G

Dengan Total Jarak = 95

Page 67: Pencarian Heuristik D

A* search example

Page 68: Pencarian Heuristik D

A* search example

Page 69: Pencarian Heuristik D

A* search example

Page 70: Pencarian Heuristik D

A* search example

Page 71: Pencarian Heuristik D

A* search example

Page 72: Pencarian Heuristik D

A* search example

Page 73: Pencarian Heuristik D

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: Pencarian Heuristik D

Kesimpulan Algoritma A* lebih baik dalam

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