Masalah, Ruang Keadaaan Dan Pencarian
Masalah, Ruang Keadaaan Dan Pencarian
PENCARIAN
Pokok Bahasan
Input: Output:
MASALAH SOLUSI
Knowledge Inference
Base Engine
Permainan Catur
Keadaan awal :
Aturan-aturan untuk melakukan gerakan
secara legal
IF
Bidak putih pada Kotak(e,2),
And Kotak(E,3) Kosong,
And Kotak(E,4) Kosong
Then
Gerakkan bidak dari (E,2) ke (E,4)
Tujuan yang ingin dicapai adalah posisi pada papan
catur yang menunjukkan kemenangan seseorang
terhadap lawannya.
Kemenangan ini ditandai dengan posisi Raja yang sudah
tidak dapat bergerak lagi.
Ruang Keadaan
Graph Keadaan
Pohon Pelacakan
Pohon AND/OR
Kasus
Graph Keadaan
A 3 4 F 1 G
B
4 E
6 7
2
M C T
8 H 6
5 3
I J
4
D 2
Lintasan dari M ke T:
M-A-B-C-E-T
M-A-B-C-E-H-T
M-D-C-E-T
M-D-C-E-H-T
Lintasan yang menemui jalan buntu (tidak
sampai ke T):
M-A-B-C-E-F-G
M-A-B-C-E-I-J
M-D-C-E-F-G
M-D-C-E-I-J
M-D-I-J
Pohon Pelacakan
M Level-0
A D Level-1
B I C Level-2
C J E Level-3
Buntu
E F I H T Level-4
Tujuan
F I H T G J T Level-5
Buntu Buntu
Tujuan
Tujuan
G J T Level-6
Buntu Buntu
Tujuan
Pohon AND/OR
M M
(a) (b)
M Level-0
A B C E D C E Level-1
H T T H T T Level-2
Contoh: Masalah Teko Air
Ada 2 buah teko masing-masing berkapasitas 4 galon (teko A) dan 3
galon (teko B).
Tidak ada tanda yang menunjukkan batas ukuran pada kedua teko
tersebut.
Ada sebuah pompa air yang akan digunakan untuk mengisikan air pada
kedua teko tersebut.
Permasalahannya: Bagaimanakah kita dapat mengisikan tepat 2 galon
air ke dalam teko yang berkapasitas 4 galon?
Air
tak terbatas
4 galon
(teko A) 3 galon
(teko B)
Penyelesaian
Identifikasi ruang keadaan:
Permasalahan ini dapat direpresentasikan dengan 2
bilangan integer, yaitu x dan y:
x = air yang diisikan pada teko 4 galon (teko A);
y = air yang diisikan pada teko 3 galon (teko B);
Ruang keadaan: (x,y) sedemikian hingga x{0,1,2,3,4} dan
y{0,1,2,3}.
Keadaan awal & tujuan:
Keadaan awal, kedua teko dalam keadaan kosong: (0,0);
Tujuan, keadaan dimana pada teko 4 galon berisi tepat 2
galon air: (2,n) untuk sembarang n.
Keadaan Awal Tujuan
(0,0)
(4,0) (0,3)
0 0 2
0 3 9
3 0 2
3 3 7
4 2 5
0 2 9
2 0 solusi
Contoh: Petani, Sayur, dan Kambing
Aturan
Aturan
ke-
1. Kambing menyeberang
2. Sayuran menyeberang
3. Serigala menyeberang
4. Kambing kembali
5. Sayuran kembali
6. Serigala kembali
7. Boat kembali
Salah satu solusi:
(0,1,1,0) (1,0,0,1) 7
(0,1,1,1) (1,0,0,0) 3
(0,0,1,0) (1,1,0,1) 4
(1,0,1,1) (0,1,0,0) 2
(1,0,0,0) (0,1,1,1) 7
(1,0,0,1) (0,1,1,0) 1
B C D
E F G H I J K L M
Keuntungan:
Tidak akan menemui jalan buntu.
Jika ada satu solusi, maka breadth-first search
akan menemukannya. Dan jika ada lebih dari satu
solusi, maka solusi minimum akan ditemukan.
Kelemahan:
Membutuhkan memori yang cukup banyak,
karena menyimpan semua node dalam satu
pohon.
Membutuhkan waktu yang cukup lama, karena
akan menguji n level untuk mendapatkan solusi
pada level yang ke-(n+1)
Depth-First Search
C
Keuntungan
Membutuhkan memori yang relatif kecil, karena
hanya node-node pada lintasan yang aktif saja
yang disimpan.
Secara kebetulan, metode depth-first search akan
menemukan solusi tanpa harus menguji labih
banyak lagi dalam ruang keadaan.
Kelemahan
Memungkinkan tidak ditemukannya tujuan yang
diharapkan.
Hanya akan mendapatkan 1 solusi pada setiap
pencarian.
Pencarian Heuristik
Kasus 8-puzzle
1 2 3 1 2 3
7 8 4 8 4
6 5 7 6 5
Operator
Ubin kosong geser ke kanan
Ubin kosong geser ke kiri
Ubin kosong geser ke atas
Ubin kosong geser ke bawah
Langkah awal
Tujuan
1 2 3 1 2 3
8 4 7 8 4
7 6 5 6 5
kiri atas
kanan
1 2 3 1 2 3 1 2 3
7 8 4 7 8 4 7 4
6 5 6 5 6 8 5
Nilai heuristik
Untuk jumlah ubin yang menempati posisi yang
benar jumlah yang lebih tinggi adalah yang lebih
diharapkan (lebih baik)
Tujuan
1 2 3 1 2 3
8 4 7 8 4
7 6 5 6 5
kiri atas
kanan
1 2 3 1 2 3 1 2 3
7 8 4 7 8 4 7 4
6 5 6 5 6 8 5
h=6 h=4 h=5
Untuk jumlah ubin yang menempati posisi yang
salah jumlah yang lebih kecil adalah yang
diharapkan (lebih baik).
Tujuan
1 2 3 1 2 3
8 4 7 8 4
7 6 5 6 5
kiri atas
kanan
1 2 3 1 2 3 1 2 3
7 8 4 7 8 4 7 4
6 5 6 5 6 8 5
h=2 h=4 h=3
Menghitung total gerakan yang diperlukan untuk
mencapai tujuan jumlah yang lebih kecil adalah
yang diharapkan (lebih baik).
Tujuan
1 2 3 1 2 3
8 4 7 8 4
7 6 5 6 5
kiri atas
kanan
1 2 3 1 2 3 1 2 3
7 8 4 7 8 4 7 4
6 5 6 5 6 8 5
h=2 h=4 h=4
Generate & Test
Pada prinsipnya metode ini merupakan penggabungan antara
depth-first search dengan pelacakan mundur (backtracking),
yaitu bergerak ke belakang menuju pada suatu keadaan awal.
Algoritma:
1. Bangkitkan suatu kemungkinan solusi (membangkitkan
suatu titik tertentu atau lintasan tertentu dari keadaan
awal).
2. Uji untuk melihat apakah node tersebut benar-benar
merupakan solusinya dengan cara membandingkan node
tersebut atau node akhir dari suatu lintasan yang dipilih
dengan kumpulan tujuan yang diharapkan.
3. Jika solusi ditemukan, keluar. Jika tidak, ulangi kembali
langkah yang pertama.
Kasus: Traveling Salesman Problem (TSP).
A 8 B
3 4
7 5
D 6 C
Generate & test akan membangkitkan semua solusi
yang mungkin:
A B C D
A B D C
A C B D
A C D B, dll
A B C D
B C D
C D B D C B
D C D B B C
Alur pencarian
Panjang
Pencarian Panjang
Lintasan Lintasan terpilih Lintasan
ke- Lintasan
terpilih
1. ABCD 19 ABCD 19
2. ABDC 18 ABDC 18
3. ACBD 12 ACBD 12
4. ACDB 13 ACBD 12
5. ADBC 16 ACBD 12
6. ADCB 18 ACBD 12
7. BACD 17 ACBD 12
8. BADC 21 ACBD 12
9. BCAD 15 ACBD 12
10. BCDA 18 ACBD 12
11. BDAC 14 ACBD 12
12. BDCA 13 ACBD 12
Panjang
Pencarian Panjang
Lintasan Lintasan terpilih Lintasan
ke- Lintasan
terpilih
13. CABD 15 ACBD 12
14. CADB 14 ACBD 12
15. CBAD 20 ACBD 12
16. CBDA 16 ACBD 12
17. CDAB 21 ACBD 12
18. CDBA 18 ACBD 12
19. DABC 20 ACBD 12
20. DACD 15 ACBD 12
21. DBAC 15 ACBD 12
22. DBCA 12 ACBD atau DBCA 12
23. DCAB 17 ACBD atau DBCA 12
24. DCBA 19 ACBD atau DBCA 12
Salah satu kelemahan dari metode generate & test
ini adalah perlu membangkitkan semua
kemungkinan sebelum dilakukan pengujian,
sehingga membutuhkan waktu yang cukup besar
dalam pencariannya.
Pendakian Bukit (Hill Climbing)
(19) ABCD
Tk 1,2
Tk 3,4 Tk 4,1
Tk 2,3
(17) BACD ACBD ABDC DBCA
Tk 3,4
Tk 1,2 Tk 2,3
Tk 4,1
(15)
ABCD BCAD BADC DACB
Tk 3,4
Tk 1,2 Tk 2,3
(17) Tk 4,1 (17)
(20) (18)
CBAD BACD BCDA DCAB
Pada simple hill climbing, ada 3 masalah
yang mungkin:
Algoritma akan berhenti kalau mencapai nilai
optimum local.
Urutan penggunaan operator akan sangat
berprngaruh pada penemuan solusi.
Tidak diijinkan untuk melihat satupun langkah
sebelumnya.
Steepest Ascent Hill Climbing
Steepest-ascent hill climbing sebenarnya hampir sama
dengan simple hill climbing, hanya saja gerakan
pencarian tidak dimulai dari posisi paling kiri.
Gerakan selanjutnya dicari berdasarkan nilai heuristik
terbaik.
Dalam hal ini urutan penggunaan operator tidak
menentukan penemuan solusi.
Algoritma
Mulai dari keadaan awal, lakukan pengujian: jika
merupakan tujuan, maka berhenti; dan jika tidak, lanjutkan
dengan keadaan sekarang sebagai keadaan awal.
Kerjakan hingga tujuan tercapai atau hingga iterasi tidak
memberikan perubahan pada keadaan sekarang.
Tentukan SUCC sebagai nilai heuristic terbaik dari
successor-successor.
Kerjakan untuk tiap operator yang digunakan oleh
keadaan sekarang:
Gunakan operator tersebut dan bentuk keadaan baru.
Evaluasi keadaan baru tersebut. Jika merupakan tujuan,
keluar. Jika bukan, bandingkan nilai heuristiknya dengan
SUCC. Jika lebih baik, jadikan nilai heuristic keadaan baru
tersebut sebagai SUCC. Namun jika tidak lebih baik, nilai
SUCC tidak berubah.
Jika SUCC lebih baik daripada nilai heuristic keadaan
sekarang, ubah node SUCC menjadi keadaan sekarang.
Kasus: TSP
(19) ABCD
Tk 1,2 Tk 1,3
Tk 2,3 Tk Tk Tk 2,4
(17) (12) (18) 3,4 4,1 (12) (18) (20)
BACD ACBD ABDC DBCA ADCB CBAD