Anda di halaman 1dari 144

Fitria,ST.,M.

Kom
Bab 2. SEARCHING (pencarian)

2.1 Definisi
2.2 Searching sebagai Teknik
Pemecahan Masalah
2.3 Metode Searching
2.1 Definisi Dalam Kecerdasan Buatan

Apa yang dimaksud dengan masalah?


Kesenjangan antara yang diharapkan dengan kenyataan yang ada
Masalah dalam kecerdasan buatan adalah masalah-
masalah yang dapat dikonversi kedalam ruang keadaan
(ada yang menyebutnya sebagai ruang masalah),
mempunyai keadaan awal (initial state) dan keadaan
tujuan (goal state) serta dapat dibuat aturan –aturan
untuk mengubah suatu keadaan (state) ke keadaan (state)
yang lain.
A. Masalah, Ruang Keadaan, dan Aturan

Secara umum untuk mendeskripsikan masalah


dengan baik beberapa hal harus dilakukan:

1. Mendefinisikan suatu ruang keadaan


2. Menetapkan satu atau lebih keadaan awal
3. Menetapkan satu atau lebih tujuan (goal)
4. Menetapkan kumpulan aturan
Ruang Keadaan (state space)
Suatu ruang yang berisi semua keadaan yang mungkin

Contoh:
Kita dapat memulai bermain catur dengan menempatkan
diri pada keadaan awal, kemudian bergerak dari
satu keadaan yang lain sesuai dengan aturan yang
ada dan mengakhiri permainan jika salah satu telah
mencapai tujuan
Keadaan Awal (Initial State)
Keadaan dimulainya sebuah pencarian

Keadaan Akhir/Tujuan (Goal)


Keadaan diakhirinya sebuah pencarian
Contoh: masalah gelas air

Ada 2 buah gelas air masing masing berkapasitas 4 liter


dan 3 liter. Semula isi keduanya kosong.pada kedua gelas
tersebut tidak terdapat tanda ukuran batas volume.

Ada sebuah keran air yang digunakan untuk mengisi air


pada kedua gelas tersebut.
Bagaimana kita dapat mengisi
tepat 2 liter pada gelas
berkapasitas 4 liter dan 3 liter
air pada gelas berkapasitas 3
liter
Deskripsi:
Misalkan : x = volume dari gelas 4 liter dan y = volume dari gelas 3 liter
Ruang keadaan untuk masalah ini dapat digambarkan sebagai
himpunan pasangan bilangan bulat (x,y) yang terurut, sedemikian
rupa sehingga x = 0,1,2,3,4 dan y = 0,1,2,3.

x | y 0 1 2 3
0 (0,0) (0,1) (0,2) (0,3)
1 (1,0) (1,1) (1,2) (1,3)
2 (2,0) (2,1) (2,2) (2,3)
3 (3,0) (3,1) (3,2) (3,3)
4 (4,0) (4,1) (4,2) (4,3)

Keadaan awal adalah kedua gelas dalam keadaan kosong yang


dinyatakan sebagai (0,0),tujuan adalah x = 2 liter dan y = 3 liter
yang dinyatakan sebagai (2,3)
Kumpulan Aturan:
Untuk kasus diatas, production rulesnya adalah:

1. Isi penuh gelas berkapasitas 4 liter


jika keadaan sekarang (x <4), maka keadaan selanjutnya (4,y)

2. Isi penuh gelas berkapasitas 3 liter


jika keadaan sekarang (y<3)maka keadaan selanjutnya (x,3)

3. Kosongkan gelas berkapasitas 4 liter


jika keadaan sekarang x>0,maka keadaan selanjutnya (0,y)

4. Kosongkan gelas berkapasitas 3 liter


jika keadaan sekarang y>0 maka keadaan selanjutnya x,0)
5.Tuangkan sebagian isi gelas berkapasitas 3 liter kegelas
berkapasitas 4 liter hingga gelas berkapasitas 4 liter penuh
jika keadaan sekarang (x + y>4), dan y>0 maka keadaan
selanjutnya (4,y+x-4)

6.Tuangkan sebagian isi gelas berkapasitas 4 liter kegelas


berkapasitas 3 liter hingga gelas berkapasitas 3 liter penuh
jika keadaan sekarang (x + y>3), dan x>0 maka keadaan
selanjutnya (y+x-3,3)
7. Tuangkan sebagian isi gelas berkapasitas 4 liter kegelas
berkapasitas 3 liter.
jika keadaan sekarang (x + y ≤ 3 ), dan x > 0 maka
keadaan selanjutnya (0,y+x)

8.Tuangkan sebagian isi gelas berkapasitas 3 liter kegelas


berkapasitas 4 liter.
jika keadaan sekarang (x + y ≤ 4), dan y >0 maka
keadaan selanjutnya (y+x,0)
Masalah sudah terdiskripsi dengan baik artinya
kita sudah bisa menerapkan program AI untuk
menyelesaikan masalah tersebut. Salah satu
solusi dari permasalahan diatas adalah:
keadaan sekarang keadaan selanjutnya
Aturan yang dipakai
Gelas 4 Lt Gelas 3 Lt Gelas 4 Lt Gelas 3 Lt
0 0 1 4 0
4 0 6 1 3
1 3 4 1 0
1 0 7 0 1
0 1 1 4 1
4 1 6 2 3

Tujuan dicapai saat keadaan selanjutnya (2,3) sampai


disini pencarian dihentikan
B. Representasi Ruang Keadaan

Beberapa cara untuk mempresentasikan ruang keadaan

1. Graph Keadaan

◊ Graph terdiri dari node-node yang menunjukkan keadaan


◊ node node dalam graph keadaan dihubungkan menggunakan arc
(busur) yang diberi panah untuk menunjukkan arah dari suatu
keadaan ke keadaan berikutnya
◊ Gambar berikut menunjukkan graph berarah dengan node-node
sebagai keadaan awal dan node Z sebagai Gol. Angka diantara
kedua node menunjukkan jarak kedua huruf tersebut.
1
B 3 J K
4
D
4 G 7
4 6
Z
2
A E
H 6
8
5
3

F 4
I
C
Graph berarah,node A sebagai keadaan awal dan node Z sebagai goal
Pada gambar diatas ada 4 lintasan dari A ke Z yaitu

 A-B-D-E-G-Z

 A-B-D-E-G-H-Z

 A-C-E-G-Z

 A-C-E-G-H-Z
Pada graph ini ada lintasan yang menemui jalan buntu yaitu:

 A-B-D-E-J-K

 A-B-D-E-G-F-I

 A-C-F-I

 A-C-E-G-J-K

 A-C-E-G-F-I

Tanpa memperhitungkan arah pada gambar diatas terdapat siklus (node-


node yang selalu berulang), yaitu C-E-G-F-C dan A-B-D-E-C-A
2. Pohon Pelacakan

 Untuk menghindari adanya siklus maka struktur pohon


digunakan
 Struktur pohon digunakan untuk menggambarkan keadaan
secara hierarkis
 Pohon terdiri dari beberapa node.node yang terletak pada level-0
disebut node “’akar” yang menunjukkan keadaan awal
 Node akar memiliki beberapa percabangan
 Node node yang tidak memiliki anak disebut node “daun’ yang
menunjukkan akhir dari suatu pencarian
 Pada gambar berikut ini sudah tidak terlihat lagi adanya siklus
karena node tidak diperbolehkan memiliki cabang kembali ke node
dengan level yang lebih rendah.
Level 0
A

Level -1
B C

Level -2
D F E

E I G Level -3

buntu
G
J F H Z Level -4

tujuan
J F H Z K I Z Level -5
buntu buntu
tujuan
tujuan
K I Z Level -6
buntu buntu

Struktur pohon
3. Pohon AND/OR
A

B D E G C E G

H Z Z H Z Z

Gambar diatas menunjukkan pohon AND/OR sebagai ganti dari graph


sebelumnya (representasi), disini tampak bahwa dengan menggunakan pohon
pelacakan goal dicapai pada level 6 tetapi dengan pohon AND/OR goal bisa
dipersingkat hanya pada level 2 saja.
2.2 Searching Sebagai Teknik Pemecahan Masalah

Banyak cara yang dapat digunakan untuk membangun sistem yang


dapat menyelesaikan masalah-masalah seperti diatas.

4 hal yang harus dipertimbangkan dalam membangun sistem

1. Mendefinisikan masalah tepat waktu


2. Menganalisis dan mencari teknik penyelesaian
3. Merepresentasikan pengetahuan yang perlu
4. Memilih teknik penyelesaian masalah terbaik
2.3 Metode Searching

Pada dasarnya teknik searching (pencarian) dapat dibagi


menjadi 2 kelompok besar

1. Pencarian buta ( blind search)


2. Pencarian terbimbing ( heuristic search)
Untuk mengukur performa metode pencarian terdapat
empat kriteria yang dapat dilakukan yaitu:

Completeness
• Apakah metode tersebut menjamin adanya solusi jika solusinya ada?

Time complexity
• Berapa lama waktu yang diberikan untuk menemukan solusi tersebut?

Space complexity
• Berapa banyak memori yang dibutuhkan untuk menemukan solusi
tersebut?
Optimality
• Apakah metode tsb menjamin menemukan solusi terbaik jika terdapat
beberapa solusi yang berbeda?
1. Pencarian Buta
S

Pencarian melebar pertama A B


(breadth first search)

C D E F

H G

Metode Breadth First Search


Pada Metode BFS semua node pada level n akan
dikunjungi terlebih dahulu sebelum mengunjungi
node-node pada level n+1.

Pencarian dimulai dari node akar (node S) terus


kelevel ke-1 dari kiri kekanan kemudian berpindah
ke level berikutnya demikian pula dari kiri kekanan
hingga ditemukannya goal.
Dalam algoritma BFS node anak yang dikunjungi
disimpan dalam suatu Queue (antrean). Queue
digunakan untuk mengacu simpul-simpul yang
bertetangga dengan yang akan dikunjungi sesuai
urutan antrean.
Untuk memperjelas cara kerja algoritma beserta antrean yang
digunakan berikut langkah –langkah algoritma BFS

1. Masukkan node akar kedalam queue


2. Ambil node dari awal queue lalu cek apakah node merupakan
solusi
3. Jika merupakan solusi, pencarian selesai dan hasil
dikembalikan
4. jika bukan masukkan seluruh node anakk ke dalam queue
5. Jika queue kosong dan setiapp node sudah dicek pencarian
selesai
6. Jika queue tidak kosong ulangi pencarian mulai dari poin 2
Keuntungan:
Menjamin ditemukannya solusi yang paling baik

Kelemahan:
Karena BFS harus menyimpan semua node yang dibangkit maka metode ini
membutuhkan memorii dan waktu yang cukup banyak.

Contoh: diket pohon pelacakan sbb.implementasikan algoritma BFS untuk


mencari solusi dari node awal (S) sampai node goal (G)
Iterasi ke -1
Masukkan node S ke Queue
Queue
Masukkan dari pintu kiri,keluar lewat pintu kanan
__________________________________
S
__________________________________

Representasi Ruang Keadaan : S

Keluarkan S dari Queue dan cek Apakah S adalah Goal


Queue
Masuk dari pintu kiri, keluar lewat pintu kanan
__________________________________

__________________________________

Ternyata S ≠ Goal
S Punya anak A dan B ,masukkan ke Queue
Queue
Masukkan dari pintu kiri,keluar lewat pintu kanan
__________________________________
B A
__________________________________

Representasi Ruang Keadaan : S

A B

Iterasi ke-2
Keluarkan A dari Queue dan cek Apakah A adalah Goal
Queue
Masuk dari pintu kiri, keluar lewat pintu kanan
__________________________________
B
__________________________________
Ternyata A ≠ Goal
A Punya anak C dan D ,masukkan ke Queue
Queue
Masukkan dari pintu kiri,keluar lewat pintu kanan
__________________________________
D C B
__________________________________

Representasi Ruang Keadaan :


S

A B

C D
Iterasi ke-3
Keluarkan B dari Queue dan cek Apakah B adalah Goal
Queue
Masuk dari pintu kiri, keluar lewat pintu kanan
__________________________________
D C
__________________________________

Ternyata B ≠ Goal
B Punya anak E dan F ,masukkan ke Queue
Queue
Masukkan dari pintu kiri,keluar lewat pintu kanan
__________________________________
F E D C
__________________________________
Representasi Ruang Keadaan : S

A B

C D E F

Iterasi ke-4
Keluarkan C dari Queue dan cek Apakah C adalah Goal
Queue
Masuk dari pintu kiri, keluar lewat pintu kanan
__________________________________
F E D
__________________________________

Ternyata C ≠ Goal
C tidak Punya anak jadi tidak ada yang dimasukkan ke Queue
Queue
Masukkan dari pintu kiri,keluar lewat pintu kanan
__________________________________
F E D
__________________________________
Representasi Ruang Keadaan :

A B

C D E F
Iterasi ke-5
Keluarkan D dari Queue dan cek Apakah D adalah Goal
Queue
Masuk dari pintu kiri, keluar lewat pintu kanan
__________________________________
F E
__________________________________

Ternyata D ≠ Goal
D tidak Punya anak jadi tidak ada yang dimasukkan ke Queue
Queue
Masukkan dari pintu kiri,keluar lewat pintu kanan
__________________________________
F E
__________________________________
Representasi Ruang Keadaan :

A B

C D E F
Iterasi ke-6
Keluarkan E dari Queue dan cek Apakah D adalah Goal
Queue
Masuk dari pintu kiri, keluar lewat pintu kanan
__________________________________
F
__________________________________

Ternyata E ≠ Goal
E Punya anak H dan G, masukkan ke Queue
Queue
Masukkan dari pintu kiri,keluar lewat pintu kanan
__________________________________
G H F
__________________________________
Representasi Ruang Keadaan :

A B

C D E F

H G
Iterasi ke-7
Keluarkan F dari Queue dan cek Apakah F adalah Goal
Queue
Masuk dari pintu kiri, keluar lewat pintu kanan
__________________________________
G H
__________________________________

Ternyata F ≠ Goal
F tidak Punya anak, jadi tidak ada yang dimasukkan ke Queue
Queue
Masukkan dari pintu kiri,keluar lewat pintu kanan

__________________________________
G H
__________________________________
Representasi Ruang Keadaan :

A B

C D E F

H G
Iterasi ke-8
Keluarkan H dari Queue dan cek Apakah H adalah Goal
Queue
Masuk dari pintu kiri, keluar lewat pintu kanan
__________________________________
G
__________________________________

Ternyata H ≠ Goal
H tidak Punya anak, jadi tidak ada yang dimasukkan ke Queue
Queue
Masukkan dari pintu kiri,keluar lewat pintu kanan
__________________________________
G
__________________________________
Representasi Ruang Keadaan :

A B

C D E F

H G
Iterasi ke-9
Keluarkan G dari Queue dan cek Apakah G adalah Goal
Queue
Masuk dari pintu kiri, keluar lewat pintu kanan
__________________________________

__________________________________

Ternyata G = Goal
Pencarian dihentikan
Mencari solusi:
G anaknya E, dan E anak B, dan B anaknya S
Karena S adalah akar maka pencarian solusi dihentikan dan diperoleh
Solusi S – B – E - G
Implementasikan BFS pada
masalah water glass

Diketahui :
Keadaan awal : (0,0) [keadaan sekarang = (0,0) ]
Tujuan (goal) : (1,0) keadaan akhir = (1,0) ]
2. Pencarian Mendalam Pertama (Depth First Search)
S

A B

C D E F

E G
Pada Depth First Search proses pencarian akan
dilakukan pada semua anaknya sebelum
dilakukan pencarian ke node-node yang selevel.

Pencarian dimulai dari node akar (node S) ke level


yang lebih tinggi. Proses ini diulangi terus hingga
ditemukannya goal (node G) seperti gambar
diatas.
Dalam algoritma DFS node yang telah dikunjungi
disimpan dalam suatu stack (tumpukkan).

Stack ini digunakan untuk mengacu node-node yang akan


dikunjungi sesuai urutan tumpukan (masuk terakhir,
keluar pertama) dan mempermudah proses runut-balik,
jika node sudah tidak mempunyai anak ( node pada
kedalaman maksimal).
Untuk memperjelas cara kerja algoritma DFS beserta Stack
yang digunakannya. Berikut langkah-langkah algoritma
DFS.

1. Masukkan node akar ke dalam stack


2. Ambil node dari stack teratas,lalu cek apakah node merupakan
solusi
3. Jika node merupakan solusi, pencarian selesai dan hasil
dikembalikan
4. Jika node bukan solusi masukkan seluruh node anak kedalam stack
5. Jika stack kosong dan setiap node sudah dicek pencarian selesai
6. Ulangi pencarian mulai dari poin 2.
Keuntungan:
1. Membutuhkan memori yang relatif kecil karena hanya
node-node pada lintasan yang aktif saja yang disimpan
2. Secara kebutuhan, metode depth first search akan
menemukan solusi tanpa harus menguji lebih banyak lagi
dalam ruang keadaan.
Kelemahan
1. Memungkinkan tidak ditemukannya tujuan yang
diharapkan
2. Hanya akan mendapatkan 1 solusi pada setiap pencarian.
S

A B

C D E F

E E

Implementasikan Algoritma DFS untuk mencari solusi dari


S node awal (start) sampai G (goal)
Iterasi ke-1
Beri tanda atas pada stack dan masukkan node S ke Stack
Stack
Masukkan dari pintu kiri, keluar lewat pintu kiri

Representasi Keadaan:
S
Keluarkan S dari Stack dan cek.
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

Ternyata S ≠ Goal

S punya anak A dan B, beri tanda batas pada stack dan masukkan node A dan
B ke Stack
Stack
Masukkan dari pintu kiri,keluar lewat pintu kiri

A B
Karena S punya anak,masukkan S ke solusi sementara:
Solusi sementara = [ S ]

Representasi Keadaan :
S

A B
Iterasi ke-2
Stack
Masuk dari pintu kiri,keluar lewat pintu kiri

A B

Solusi Sementara = [s ]
Keluarkan A dari Stack dan Cek

Stack
Masukkan dari pintu kiri,keluar lewat pintu kiri

Ternyata A ≠ Goal
A punya anak C dan D, beri tanda batas dan masukkan node C dan D ke stack

Stack
Masukkan dari pintu kiri, keluar lewat pintu kiri

C D B

Karena A punya anak,masukkan A ke solusi sementara;


Solusi sementara = [ S A ]

Representasi Keadaan: S

A B

C D
Iterasi ke-3
Stack
Masuk dari pintu kiri,keluar lewat pintu kiri

C D B

Keluarkan C dari Stack dan Cek

Stack
Masukkan dari pintu kiri,keluar lewat pintu kiri

D B

Ternyata C ≠ Goal
C tidak punya anak jadi tidak ada yang masukkan ke stack

Stack
Masukkan dari pintu kiri, keluar lewat pintu kiri

D B

Karena C tidak punya anak,maka C tidak dimasukkan ke solusi sementara;


Solusi sementara = [ S A ]

Representasi Keadaan: S

A B

C D
Iterasi ke-4
Stack
Masuk dari pintu kiri,keluar lewat pintu kiri

D B

Solusi Sementara = [ S A]
Keluarkan D dari Stack dan Cek

Stack
Masukkan dari pintu kiri,keluar lewat pintu kiri

Ternyata D ≠ Goal
D tidak punya anak jadi tidak ada yang masukkan ke stack

Stack
Masukkan dari pintu kiri, keluar lewat pintu kiri

Karena D tidak punya anak,maka D tidak dimasukkan ke solusi sementara;


Solusi sementara = [ S A ]

Representasi Keadaan: S

A B

C D
Iterasi ke-5
Stack
Masuk dari pintu kiri,keluar lewat pintu kiri

Solusi Sementara = [ S A]
Keluarkan tanda batas dari Stack dan gunakan untuk menghapus solusi
sementara satu huruf

Stack
Masukkan dari pintu kiri,keluar lewat pintu kiri

Solusi sementara = [ S A ] = [ S ]
Iterasi ke-6
Stack
Masuk dari pintu kiri,keluar lewat pintu kiri

Solusi Sementara = [ S ]
Keluarkan B dari Stack dan Cek

Stack
Masukkan dari pintu kiri,keluar lewat pintu kiri

Ternyata B ≠ Goal
B punya anak E dan F,beri tanda batas dan masukkan node E dan F ke stack

Stack
Masukkan dari pintu kiri, keluar lewat pintu kiri

E F

Karena B punya anak,maka B dimasukkan ke solusi sementara;


Solusi sementara = [ S B ]

Representasi Keadaan: S

A B

C D E F
Iterasi ke-7
Stack
Masuk dari pintu kiri,keluar lewat pintu kiri

E F

Solusi Sementara = [ S B ]
Keluarkan E dari Stack dan Cek

Stack
Masukkan dari pintu kiri,keluar lewat pintu kiri

Ternyata E ≠ Goal
E punya anak H dan G,beri tanda batas dan masukkan node H dan G ke stack

Stack
Masukkan dari pintu kiri, keluar lewat pintu kiri

H G F

Karena E punya anak,maka E dimasukkan ke solusi sementara;


Solusi sementara = [ S B E ]
S
Representasi Keadaan:

A B

C D E F

H G
Iterasi ke-8
Stack
Masuk dari pintu kiri,keluar lewat pintu kiri

H G F

Solusi Sementara = [ S B E ]
Keluarkan H dari Stack dan Cek

Stack
Masukkan dari pintu kiri,keluar lewat pintu kiri

G F

Ternyata H ≠ Goal
H tidak punya anak jadi tidak ada yang di masukkan ke stack

Stack
Masukkan dari pintu kiri, keluar lewat pintu kiri

G F

Karena E punya anak,maka E dimasukkan ke solusi sementara;


Solusi sementara = [ S B E ]
S
Representasi Keadaan:

A B

C D E F

H G
Iterasi ke-9
Stack
Masuk dari pintu kiri,keluar lewat pintu kiri

G F

Solusi Sementara = [ S B E ]
Keluarkan G dari Stack dan Cek

Stack
Masukkan dari pintu kiri,keluar lewat pintu kiri

Ternyata G ≠ Goal ,masukkan ke solusi sementara dan hentikan pencarian


Solusi = [ S B E G
Representasi Keadaan
S

A B

C D E F

H G
Implementasikan DFS pada
masalah water glass
3. Pencarian Heuristik (Terbimbing)
atau Informed Search

Teknik pencarian (heuristik searching) merupakan suatu


strategi untuk melakukan proses pencarian secara
selektif dan dapat memandu proses pencarian yang
memiliki kemungkinan sukses paling besar, namun
dengan kemungkinanmenggorbankan kelengkapan
(completeness)
Untuk menerapkan pencarian heuristik diperlukan suatu
fungsi heuristik. fungsi heuristik adalah aturan-aturan yang
digunakan untuk mendapatkan solusi yang diinginkan.

Pencarian heuristik terdiri dari


1. Generate and test (pembangkitan dan pengujian)
2. Hill Climbing (pendakian Bukit)
a.Simple Hill Climbing
b.Steepest-Ascent Hill Climbing
3. Best Fist Search
4. Algoritma A*
5. Simulated annelaing
Generate And Test

Metode palig sederhana dalam pencarian heuristic. Pada


prinsipnya metode ini merupakan penggabungan antara
depth first search dengan pelacakan mundur
(backtracking) karena solusi harus dibangkitkan secara
lengkap sebelum dilakukan test.
Contoh: Implementasi algoritma Generate And Test pada penentuan
rute terpendek

1
4 J K
B 3
G
4 D 7
4 6 2

A H
Z
E 8 6
5 3

F I
C 4
2
Diketahui:
> 12 kota yaitu A,B,C,D,E,F,G,H,I,J,K,Z
 Tanda anak panah merupakan tanda jalur yang bisa dilewati

Seorang sales buku yang berada dikota A hendak pergi mengirimkan


barang ke kota Z.
Jalur manakah yang harus dilewati agar perjalanannya bisa menghemat
biaya transportasi?
Dari permasalahan tersebut diketahui bahwa:
Keadaan awal = A
Goal =Z
Solusi yang dicari adalah sebuah jalur yang diawali kota A dan diakhiri
Kota Z ,untuk mencari solusinya kita gunakan algoritma DFS.

Karna yang akan dicari adalah jarak terpendek maka kriteria yang diambil
adalah solusi yang menghasilkan jarak terpendek. Ini berarti kita bisa
menggunakan heuristik jarak sebagai petunjuk.
Contoh:
f(A-B-D) = A-B+B-D = 4+3 =7 artinya jalur kota ABD mempunyai jarak 7.

Terapkan algoritma Generate And Test

Iterasi ke-1

Bangkitan sebuah solusi menggunakan algoritma DFS (misalnya solusi awal


adalah jalur A-B-D-E-G-Z
f(A-B-D-E-G-Z) = 4+3+4+6+7 =24
Uji dengan kriteria yang dipakai.
Karena jalur A-B-D-E-G-Z adalah solusi awal yang dibangkitkan maka ia
dipakai sebagai solusi sementara yaitu f(A-B-D-E-G-Z) = 24
Iterasi ke-2

Bangkitan sebuah solusi menggunakan algoritma DFS (misalnya solusi


kedua adalah jalur A-B-D-E-G-H-Z
f(A-B-D-E-G-H-Z) = 4+3+4+6+2+6 =25

Uji dengan kriteria yang dipakai.


Karena f(A-B-D-E-G-H-Z) > f(A-B-D-E-G-Z) maka solusi sementara
yaitu f(A-B-D-E-G-Z) = 24
Iterasi ke-3

Bangkitan sebuah solusi menggunakan algoritma DFS (misalnya solusi


ketiga adalah jalur A-C-E-G-Z
f(A-C-E-G-Z) = 5+3+6+7 =21

Uji dengan kriteria yang dipakai.


Karena f(A-C-E-G-Z) < f(A-B-D-E-G-Z) maka solusi sementara yaitu
f(A-C-E-G-Z) = 21
Iterasi ke-4

Bangkitan sebuah solusi menggunakan algoritma DFS (misalnya solusi


keempat adalah jalur A-C-E-G-H-Z
f(A-C-E-G-H-Z) = 5+3+6+2+7 =23

Uji dengan kriteria yang dipakai.


Karena f(A-C-E-G-H-Z) > f(A-C-E-G-Z) maka solusi sementara yaitu
f(A-C-E-G-Z) = 21

Karena tidak ada solusi yang bisa dibangkitkan ierasi dihentikan.agar


sales tersebut dapat menghemat biaya transpor maka jalur yang harus
dilewati adalah jalur A-C-E-G-Z dengan jarak 21
Pendakian Bukit (Hill Climbing)

2 macam Hill Climbing :


1. Simple Hill Climping
2. Stepest Ascent Hill Climbing
Simple Hill Climbing

Mulai dengan keadaan awal, lakukan pengujian : jika merupakan tujuan


maka berhenti, jika tidak lanjutkan dengan keadaan sekarang sebagai
keadaan awal

Kerjakan langkah langkah berikut sampai solusinya ditemukan atau


sampai tidak ada operator baru yang akan diaplikasikan pada keadaan
sekarang

Cari operator yang belum pernah digunakan, gunakan operator ini


untuk mendapatkan keadaan yang baru
Evaluasi Keadaan baru tersebut
a. Jika keadaan baru merupakan tujuan keluar
b. Jika bukan tujuan namun nilainya lebih baik daripada
keadaan sekarang, maka jadikan keadaan baru tersebut
menjadi keadaan sekarang
c. Jika keadaan baru tidak lebih baik daripada keadaan
sekarang, maka lanjutkan iterasi.
Pada simple hill climbig ada 3 masalah yang mungkin
adalah:

1. Algoritma akan terhenti kalau mencapai nilai optimum


lokal
2. Urutan penggunaan operator akan sangat berpengaruh
pada penemuan solusi
3. Tidak diizinkan untuk melihat satupun langkah
sebelumnya
Contoh. Implementasi Algoritma Simple Hill Climbing pada puzzle-8

Keadaan awal Goal Ruang Keadaan


y
1 2 3 1 2 3
4 5 4 5 6 1,1 1,2 1,3
x
7 8 6 7 8 2,1 2,2 2,3
3,1 3,2 3,3
Ruang Keadaan:

Misalkan: x = baris = {1,2,3} y == kolom = {1,2,3}


Jadi dalam hal ini ruang keadaan = semua kemungkinan posisi kotak
pada puzzle-8.

Contoh : posisi kotak 7 pada keadaan awal adalah (3,1)


Aturan /Operator:

Posisi kotak kosong (x,y)

x = baris kotak kosong


y = kolom kotak kosong
1. Gerakkan kotak kosong keatas : if x > 1 then (x -1,y)
2. Gerakkan kotak kosong kebawah : if x < 3 then (x+1,y)
3. Gerakkan kotak kosong kekanan : if y < 3 then (x ,y+1)
4. Gerakkan kotak kosong kekiri : if y > 1 then (x,y-1)
Fungsi heuristik

Fungsi heuristik yang digunakan adalah jumlah kotak yang menempati posisi
benar. Kriteria yang dipakai adalah jumlah benar yang paling besar yang
dipilih.
Terapkan algoritma Simple Hill Climbing

Itersai ke-1

Cek: keadaan awal ≠ Goal


Keadaan sekarang = keadaan awal
Keadaan sekarang
Keadaan selanjutnya
1 2 3
2 3
4 5 Kena operator ke-1 menjadi
1 4 5
7 8 6
7 8 6

Posisi benar = 5 Posisi benar = 4


Karena Posisi benar keadaan sekarang > posisi benar keadaan selanjutnya,
maka keadaan sekarang = tetap

Keadaan sekarang

1 2 3
4 5
7 8 6
Posisi benar = 5
Cek : keadaan sekarang ≠ Goal
Lanjutkan ke operator berikutnya
Keadaan sekarang
Keadaan selanjutnya
1 2 3
1 2 3
4 5 Kena operator ke-2 menjadi
7 4 5
7 8 6
8 6

Posisi benar = 5 Posisi benar = 4


Karena Posisi benar keadaan sekarang > posisi benar keadaan selanjutnya,
maka keadaan sekarang = tetap
Keadaan sekarang
1 2 3
4 5
7 8 6

Posisi benar = 5

Cek : keadaan sekarang ≠ Goal


Lanjutkan ke operator berikutnya

Keadaan sekarang Keadaan selanjutnya


1 2 3
1 2 3
4 5 Kena operator ke-3 menjadi
4 5
7 8 6
7 8 6

Posisi benar = 5 Posisi benar = 6

Karena Posisi benar keadaan sekarang > posisi benar keadaan selanjutnya,
maka keadaan sekarang = tetap
Keadaan sekarang
1 2 3
4 5
7 8 6

Posisi benar = 6

Cek : keadaan sekarang ≠ Goal


Lanjutkan ke operator berikutnya

Keadaan sekarang Keadaan selanjutnya


1 2 3
1 2 3
4 5 Kena operator ke-4 menjadi
4 5
7 8 6
7 8 6

Posisi benar = 6 Posisi benar = 5

Karena Posisi benar keadaan sekarang > posisi benar keadaan selanjutnya,
maka keadaan sekarang = tetap
Keadaan sekarang
1 2 3
4 5
7 8 6

Posisi benar = 6
Iterasi ke -2
Cek : keadaan awal ≠ Goal
Keadaan sekarang Keadaan selanjutnya
1 2 3 1 3
4 5 Kena operator ke-1 menjadi 4 2 5
7 8 6 7 8 6
Posisi benar = 6 Posisi benar = 5
Karena Posisi benar keadaan sekarang > posisi benar keadaan selanjutnya,
maka keadaan sekarang = tetap
Keadaan sekarang
1 2 3
4 5
7 8 6

Posisi benar = 6
Cek : keadaan sekarang ≠ Goal
Lanjutkan ke operator berikutnya

Keadaan sekarang Keadaan selanjutnya


1 2 3
1 2 3
4 5 Kena operator ke-2 menjadi
4 5
7 8 6
7 8 6

Posisi benar = 6 Posisi benar = 5

Karena Posisi benar keadaan sekarang > posisi benar keadaan selanjutnya,
maka keadaan sekarang = tetap
Keadaan sekarang
1 2 3
4 5
7 8 6

Posisi benar = 6

Cek : keadaan sekarang ≠ Goal


Lanjutkan ke operator berikutnya

Keadaan sekarang Keadaan selanjutnya


1 2 3
1 2 3
4 5 Kena operator ke-2 menjadi
4 5 6
7 8 6
7 8

Posisi benar = 7 Posisi benar = 8

Karena Posisi benar keadaan sekarang > posisi benar keadaan selanjutnya,
maka keadaan sekarang = tetap
Keadaan sekarang
1 2 3
4 5
7 8 6

Posisi benar = 8

Cek : keadaan sekarang = Goal hentikan pencarian


Keadaan sekarang

1 2 3

4 5 6

7 8
Stepest Ascent Hill Climbing

Algoritma:

Mulai dari keadaan awal, lakukan pengujian: jika merupakan tujuan maka
hentikan dan jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan
awal

Kerjakan hingga tujuan tercapai atau hingga iterasi tidak memberikan


perubahan pada keadaan sekarang.
a. Tentukan SUCC sebagai nilai heuristik terbaik dari successor-
succesor.
b. Kerjakan untuk tiap operator yang digunakan oleh keadaan sekarang.

> gunakan operator tersebut dan bentuk keadaan baru


 evaluasi keadaanbaru tersebut,jika merupakan tujuan keluar.jika
bukan bandingkan nilai heuristiknya dengan SUCC.jika lebih baik
jadikan nilai heuristik keadaan baru tersebut sebagai SUCC namun
jika tidak lebih baik nilai SUCC tidak berubah.

c. Jika SUCC lebih baik daripada nilai heuristik keadaan sekarang ubah
node SUCC menjadi keadaan sekarang
Pada stepest ascent hill climbing ini, ada 3 masalah yang
mungkin yaitu:

1. Local optimum: Keadaan semua tetangga lebih buruk atau sama


dengan keadaan dirinya
2. Plateaur:keadaan semua tetangga sama dengan keadaan dirinya
3. Ridge : local optimun yang lebih disebabkan karena
ketidakmampuan untuk menggunakan 2 operator sekaligus
Contoh : implementasi algoritma Ascent Hill Climbing pada puzzle 8

Ruang Keadaan
Keadaan awal Goal
y
1 2 3 1 2 3 1 2 3

4 5 4 5 4 5
x
7 8 6 7 8 6 7 8 6
Ruang Keadaan:

Misalkan : x = baris = {1,2,3} y = kolom = {1,2,3}


Jadi dalam hal ini ruang keadaan = semua kemungkinan posisi kotak
pada puzzle -8

Aturan/operator:
Posisi kotak kosong (x,y)

X = baris kotak kosong


Y = kolom kotak kosong
1. Gerakkan kotak kosong ke atas : if x > 1 then (x – 1, y )
2. Gerakkan kotak kosong ke bawah : if x < 3 then (x + 1, y )
3. Gerakkan kotak kosong ke atas : if x < 3 then (x,y + 1 )
4. Gerakkan kotak kosong ke atas : if x > 1 then (x ,y– 1 )

Fungsi heuristik

Fungsi heuristik yang digunakan adalah jumlah kotak yang menempati posisi
benar.kriteria yang dipakai adalah jumlah benar yang paling besar yang
dipilih.

Terapkan algoritma Ascent Hill Climbing


Iterasi ke -1

Cek : keadaan awal ≠ Goal

Keadaan sekarang = keadaan awal


Keadaan sekarang dikenakan 4 operator sekaligus, hasilnya adalah
Keadaan sekarang

1 2 3

4 5

7 8 6
kiri
atas Posisi benar = 5
kanan
bawah Tidak dikerjakan

Keadaan selanjutnya Keadaan selanjutnya Keadaan selanjutnya

2 3 1 2 3 1 2 3
1 4 5 7 4 5 4 5
7 8 6 8 6 7 8 6

Posisi benar = 4 Posisi benar = 4 Posisi benar = 6


Pilih posisi benar yang terbesar, yaitu 6 sehingga keadaan sekarang menjadi

Keadaan selanjutnya

1 2 3

4 5

7 8 6

Posisi benar = 6
Iterasi ke-2

Cek : keadaan awal ≠ Goal

Keadaan sekarang = keadaan awal


Keadaan sekarang dikenakan 4 operator sekaligus, hasilnya
adalah
Keadaan sekarang

1 2 3

4 5

7 8 6
kiri
atas Posisi benar = 5

bawah kanan

Keadaan selanjutnya Keadaan selanjutnya Keadaan selanjutnya Keadaan selanjutnya

1 3 1 2 3 1 2 3 1 2 3

4 2 5 4 8 5 4 5 4 5

7 8 6 7 6 7 8 6 7 8 6

Posisi benar = 4 Posisi benar = 4 Posisi benar = 7 Posisi benar = 5


Pilih posisi benar yang terbesar, yaitu 7 sehingga keadaan sekarang menjadi

Keadaan selanjutnya

1 2 3

4 5

7 8 6

Posisi benar = 7
Iterasi ke-3

Cek : keadaan awal ≠ Goal

Keadaan sekarang = keadaan awal


Keadaan sekarang dikenakan 4 operator sekaligus, hasilnya
adalah
Keadaan sekarang

1 2 3

4 5

7 8 6
kiri
atas Posisi benar = 7
kanan
bawah

Keadaan selanjutnya Keadaan selanjutnya Tidak dikerjakan Keadaan selanjutnya

1 2 1 2 3 1 2 3
4 5 3 4 5 6 4 5
7 8 6 7 8 7 8 6

Posisi benar = 6 Posisi benar = 8 Posisi benar = 6


Pilih posisi benar yang terbesar, yaitu 8 sehingga keadaan sekarang menjadi

Keadaan selanjutnya

1 2 3

4 5 6

7 8

Posisi benar = 8
Iterasi ke -4

Cek : keadaan awal = Goal, hentikan proses pencarian


Solusi:

Keadaan sekarang

1 2 3

4 5 6

7 8
Best First Search

Metode best first search merupakan kombinasi dari metode


depth first search dan metode breadth first search yang
mana pencarian diperbolehkan mengunjungi node yang
ada dilevel yang lebih rendah asalkan node ini memiliki
nilai heuristik yang lebih baik.
Algoritma

1. Buat sebuah Stack, inisialisasi node akar sebagai node pertama


2. Bila node pertama ≠ GOAL.node dihaus dan diganti dengan anak-
anaknya
3. Selanjutnya, keseluruhan node yang ada distack di-sort Ascending
berdasarkan fungsi Heuristik yang digunakan.
4. Bila node pertama ≠ GOAL, ulangi langkah poin ( b )
5. Bila node pertama = GOAL, cari solusi dengan cara menelusuri jalur
dari goal ke node akar.
6. Selesai.
Permasalahan mencari rute terpendek pada gambar berikut.

3
B 1
4 J K
D
4
4 G
4 6 7

A E 2
8
Z
3 H 6
5

F
C I
2 4

Keadaal awal A dan keadaan akhir Z,gunakan node-node yang mempunyai jarak
terpendek.
Iterasi ke-2
Keluarkan B dari Stack dan cek
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

C(5)

Ternyata B ≠ Goal

B punya anak D(3) masukkan ke stack dan stack disort Ascending

Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

D(3) C(5)
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

B(4) C(5)

Representasi Keadaan

A
5

C
Iterasi ke-2
Masukkan Node A ke Stack
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

Keluarkan A dari Stack dan cek


Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

Ternyata A ≠ Goal
A punya anak C (5) dan B (4), masukkan ke Stack dan stack di-sort Ascending
Representasi Keadaan

B 3
4 D

A
5

C
Iterasi ke-3
Keluarkan D dari Stack dan cek
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

C(5)

Ternyata D ≠ Goal

D punya anak E(4) masukkan ke stack dan stack di-sort Ascending

Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

E(4) C(5)
Representasi Keadaan

B 3
4 D
4

A E

C
Iterasi ke-4
Keluarkan E dari Stack dan cek
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

C(5)

Ternyata E ≠ Goal

E punya anak G(6) masukkan ke stack dan stack di-sort Ascending

Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

C(5) G(6)
Representasi Keadaan

B 3
4 D
4 6 G

A E

C
Iterasi ke-5
Keluarkan C dari Stack dan cek
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

G(5)

Ternyata C ≠ Goal

C punya anak E(3) dan F(2) masukkan F(2) ke stack dan stack di-sort
Ascending
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

F(2) E(3) G(6)


Representasi Keadaan

B 3
4 D
4 6 G

A E

5 3

F
C
2
Iterasi ke-6
Keluarkan F dari Stack dan cek
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

E(3) G(6)

Ternyata F ≠ Goal

F punya anak I(4) masukkan I(4) ke stack dan stack di-sort Ascending
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

E(3) I(4) G(6)


Representasi Keadaan

B 3
4 D
4 6 G

A E

5 3

F I
C 4
2
Iterasi ke-7
Keluarkan E dari Stack dan cek
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

I(4) G(6)

Ternyata E ≠ Goal

E punya anak G(6) dan sudah ada distack, jadi tidakdimasukkan ke stack

Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

I(4) G(6)
Representasi Keadaan

B 3
4 D
4 6 G

A E

5 3

F I
C 4
2
Iterasi ke-8
Keluarkan I dari Stack dan cek
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

G(6)

Ternyata I ≠ Goal

Karena I tidak punya anak, gunakan untuk menghapus orangtuanya


direpresentasi keadaan
Representasi Keadaan

B 3
4 D
4 6 G

A E

5 3

F I
C 4
2
Iterasi ke-9
Keluarkan G dari Stack dan cek
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

Ternyata G≠ Goal

G punya anak H(2),J(4),Z(7),F(8) masukkan ke stack dan stack di-sort


Ascending
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

H(2) J(4) Z(4) F6)


Representasi Keadaan

B 3
4 J
4 D
4 6 G
7
E 2
A z
H
8
5 3

F I
C 4
2
Iterasi ke-10
Keluarkan H dari Stack dan cek
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

J(4) Z(4) F(8)

Ternyata H≠ Goal

H punya anak Z(6), masukkan ke stack dan stack di-sort Ascending


Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

J(4) Z(6) Z(7) F(8)


Representasi Keadaan

B 3
4 J
4 D
4 6 G
7
E 2
A z
H
8
5 3

F I
C 4
2
Iterasi ke-11
Keluarkan J dari Stack dan cek
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

Z(6) Z(7) F(8)

Ternyata J ≠ Goal

j punya anak K(1), masukkan ke stack dan stack di-sort Ascending


Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

K(1) Z(6) Z(7) F(8)


Representasi Keadaan

B 3 1
4 J K
4 D
4 6 G
7
E 2
A z
H
8 6
5 3

F I
C 4
2
Iterasi ke-12
Keluarkan K dari Stack dan cek
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

Z(6) Z(7) F(8)

Ternyata K ≠ Goal

Karena K tidak punya anak gunakan untuk menghapus orangtuanya


direpresentasi keadaan
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

Z(6) Z(7) F(8)


Representasi Keadaan

B 3 1
4 J K
4 D
4 6 G
7
E 2
A z
H
8 6
5 3

F I
C 4
2
Iterasi ke-13
Keluarkan Z dari Stack dan cek
Stack
Masuk dari pintu kiri, keluar lewat pintu kiri

Z(7) F(8)

Ternyata Z ≠ Goal,hentikan pencarian


Representasi Keadaan

B 3 1
4 J K
4 D
4 6 G
7
E 2
A z
H
8 6
5 3

F I
C 4
2
Solusi:

Penelusuran dilakukan dari titik A ketitik Z, ditemukan beberapa solusi berikut:

Solusi ke-1 : A B D E H Z = 25

Solusi ke-2: A B D E G Z = 24

Solusi ke-3 : A C E G H Z = 22

Solusi ke-4 : A C E G Z = 21

Anda mungkin juga menyukai