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
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
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)
1. Graph Keadaan
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
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
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
C D E F
H G
Kelemahan:
Karena BFS harus menyimpan semua node yang dibangkit maka metode ini
membutuhkan memorii dan waktu yang cukup banyak.
__________________________________
Ternyata S ≠ Goal
S Punya anak A dan B ,masukkan ke Queue
Queue
Masukkan dari pintu kiri,keluar lewat pintu kanan
__________________________________
B A
__________________________________
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
__________________________________
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.
A B
C D E F
E E
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
Representasi Keadaan: S
A B
C D
Iterasi ke-3
Stack
Masuk dari pintu kiri,keluar lewat pintu kiri
C D B
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
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
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
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
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
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
A B
C D E F
H G
Implementasikan DFS pada
masalah water glass
3. Pencarian Heuristik (Terbimbing)
atau Informed Search
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
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.
Iterasi ke-1
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
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
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
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
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
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
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
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:
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:
Aturan/operator:
Posisi kotak kosong (x,y)
Fungsi heuristik
Fungsi heuristik yang digunakan adalah jumlah kotak yang menempati posisi
benar.kriteria yang dipakai adalah jumlah benar yang paling besar yang
dipilih.
1 2 3
4 5
7 8 6
kiri
atas Posisi benar = 5
kanan
bawah Tidak dikerjakan
2 3 1 2 3 1 2 3
1 4 5 7 4 5 4 5
7 8 6 8 6 7 8 6
Keadaan selanjutnya
1 2 3
4 5
7 8 6
Posisi benar = 6
Iterasi ke-2
1 2 3
4 5
7 8 6
kiri
atas Posisi benar = 5
bawah kanan
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
Keadaan selanjutnya
1 2 3
4 5
7 8 6
Posisi benar = 7
Iterasi ke-3
1 2 3
4 5
7 8 6
kiri
atas Posisi benar = 7
kanan
bawah
1 2 1 2 3 1 2 3
4 5 3 4 5 6 4 5
7 8 6 7 8 7 8 6
Keadaan selanjutnya
1 2 3
4 5 6
7 8
Posisi benar = 8
Iterasi ke -4
Keadaan sekarang
1 2 3
4 5 6
7 8
Best First Search
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
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
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
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
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
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
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
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
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
Ternyata H≠ Goal
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
Ternyata J ≠ Goal
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
Ternyata K ≠ Goal
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)
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:
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