Heuristic search-best-first-search

24
Heuristic Search Best-First Search Greedy Best-First Search A*

Transcript of Heuristic search-best-first-search

Page 1: Heuristic search-best-first-search

Heuristic Search Best-First Search

Greedy Best-First Search

A*

Page 2: Heuristic search-best-first-search

BEST FIRST SEARCHMerupakan 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 3: Heuristic search-best-first-search

Contoh

Page 4: Heuristic search-best-first-search

Best First SearchBest 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 5: Heuristic search-best-first-search

FUNGSI HEURISTICSuatu fungsi heuristic dikatakan baik jika

bisa memberikan biaya perkiraan yang mendekati biaya sebenarnya.

Semakin mendekati biaya sebenarnya, fungsi heuristic tersebut semakin baik.

Page 6: Heuristic search-best-first-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 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 7: Heuristic search-best-first-search

Algoritma Best First SearchGreedy Best First SearchAlgoritma A*

Page 8: Heuristic search-best-first-search

Greedy Best First SearchAlgoritma ini merupakan jenis algoritma Best

First Search yg paling sederhanaAlgoritma 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 9: Heuristic search-best-first-search

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 10: Heuristic search-best-first-search

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 11: Heuristic search-best-first-search

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 12: Heuristic search-best-first-search

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 13: Heuristic search-best-first-search

SOLUSI

S

A

B

C

D

E

10

10

25

3035

F

K50

5

G30

S - B - K - G

Dengan Total Jarak = 105

Page 14: Heuristic search-best-first-search

PENJELASANDari contoh di atas, Greedy akan menemukan

solusi S-B-K-G dengan total jarak 105Padahal 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 15: Heuristic search-best-first-search

Algoritma A*Berbeda dg Greedy, algoritma ini akan

menghitung fungsi heuristic dengan cara menambahkan biaya sebenarnya dengan biaya perkiraan. Sehingga didapatkan rumus :

f(n) = g(n) + h’(n)

g(n) = Biaya sebenarnya dari Node Awal ke Node n

h’(n) = Biaya perkiraan dari Node n ke Node Tujuan

Page 16: Heuristic search-best-first-search

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 17: Heuristic search-best-first-search

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 18: Heuristic search-best-first-search

Langkah 2

n A B C D J

h’(n) 80 60 70 85 100

g(n) 10 25 30 25 30

f(n) 90 85 100 110 130

S

A

B

C

D

E

J

10

10

25

3035

1520

Page 19: Heuristic search-best-first-search

Langkah 3

n A C D J F K

h’(n) 80 70 85 100 70 30

g(n) 10 30 25 30 30 75

f(n) 90 100 110 130 100 105

S

A

B

C

D

E

F

K

J

10

10

25

3035

1520

50

510

Page 20: Heuristic search-best-first-search

Langkah 4

n C D J F K G

h’(n) 70 85 100 70 30 0

g(n) 30 25 30 25 70 100

f(n) 100 110 130 95 100 100

S

A

B

C

D

E

F

K

J

10

10

25

3035

1520

50

510

90

G

Page 21: Heuristic search-best-first-search

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 22: Heuristic search-best-first-search

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 23: Heuristic search-best-first-search

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 24: Heuristic search-best-first-search

KesimpulanAlgoritma A* lebih baik dalam melakukan

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