Ruang Keadaan (state space)
Mendefinisikan Masalah Sebagai Suatu Ruang Keadaan Ruang Keadaan (State Space), yaitu suatu ruang yang berisi semua keadaan yang mungkin. Kita dapat memulai bermain missionair dan kanibal dengan menetapkan keadaan awal, kemudian bergerak dari satu keadaan ke keadaan yang lain sesuai dengan aturan yang ada, dan mengakhiri permainan jika salah satu telah mencapai tujuan. Jadi untuk mendeskripsikan masalah dengan baik harus : 1. Mendefinisikan suatu ruang keadaan (state space) 2. Menetapkan satu atau lebih keadaan awal (initial state) 3. Menetapkan satu atau lebih tujuan (goal state) 4. Menetapkan kumpulan aturan
Representasi Ruang Keadaan Graph keadaan Pohon pelacakan/pencarian Pohon AND/OR
Graph Keadaan Graph terdiri dari node-node yang menunjukkan keadaan yaitu keadaan awal dan keadaan baru yang akan dicapai. Node-node dalam graph keadaan saling dihubungkan dengan menggunakan arc (busur) yang diberi panah untuk menunjukkan arah dari suatu keadaan ke keadaan berikutnya.
Lintasan buntu atau lintasan yang tidak sampai ke tujuan : Graph keadaan dengan node M menunjukkan keadaan awal, node T adalah tujuan. Ada 4 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 buntu atau lintasan yang tidak sampai ke tujuan : 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/Pencarian Struktur pohon digunakan untuk menggambarkan keadaan secara hirarkis. Node yg terletak pada level 0 disebut ’akar’ (root). Node akar : menunjukkan keadaan awal & memiliki beberapa percabangan yang terdiri atas beberapa node yg disebut ’anak’ . Node-node yg tidak memiliki anak disebut ’daun’ (leaf) menunjukkan akhir dari suatu pencarian, dapat berupa tujuan yang diharapkan (goal) atau jalan buntu (dead end).
POHON AND/OR Masalah M dicari solusinya dengan 4 kemungkinan yaitu A OR B OR C OR D. Masalah M hanya dapat diselesaikan dengan A AND B AND C AND D
Pengubahan ke Pohon AND/OR
Searching
Pada umumnya manusia mempertimbangkan sejumlah alternatif strategi dalam menyelesaikan suatu problema. Dalam permainan catur misalnya, seorang pemain mempertimbangkan sejumlah kemungkinan tentang langkah langkah berikutnya, memilih yang terbaik menurut kriteria tertentu seperti kemungkinan respon lawannya. Aspek tingkahlaku cerdas yang mendasari teknik penyelesaian problema seperti dalam permainan catur tersebut dinamakan proses pencarian ruang keadaan (space state search).
Exhaustive search – adalah proses pencarian terhadap seluruh ruang keadaan serangkaian langkah yang paling dimungkinkan untuk menghasilkan kemenangan. Walaupun metode ini dapat diterapkan pada setiap ruang keadaan, namun ukuran ruang keadaan yang sangat besar membuat pendekatan ini secara praktis tidak dimungkinkan (dalam permainan catur terdapat 10120 keadaan) Bila kasus ini diimplementasikan ke dalam sistem komputer, maka akan membutuhkan memori yang sangat besar, dan waktu pencarian yang sangat lama. Dengan kata lain metode exhaustive search ini tidak efisien dan tidak efektif, sehingga tidak praktis untuk diimplementasikan. Untuk mengatasi kendala tersebut di atas, ada beberapa cara yang dapat dilakukan, diantaranya: pertama teknik pencarian parsial (Blind Search) dan yang kedua teknik pencarian heuristic (Heuristik Search).
Macam Blind Search Heuristik Search Breadth First Search Depth First Search Heuristik Search Pembangkit dan pengujian (generate and test) hill climbing Best first search A*
Breadth First Search Semua node pada level n akan dikunjungi terlebih dahulu sebelum mengunjungi node n+1. Pencarian dimulai dari root lalu ke level 1 dari kiri ke kanan, kemudian ke level berikutnya hingga ditemukan solusi.
Breadth First Search (2) Kelebihan Kelemahan tidak akan menemui jalan buntu jika ada satu solusi, maka akan ditemukan jika >1 , solusi minimum akan ditemukan membutuhkan memori cukup banyak, karena menyimpan semua node dalam satu pohon membutuhkan waktu cukup lama, karena akan menguji n+1 level untuk mendapatlan solusi pada level n
OPEN=[A]; CLOSED=[] A≠GOAL OPEN =[B,C,D]; CLOSED =[A] B≠GOAL OPEN : berisi node-node yang sudah dibangkitkan. Umumnya berupa antrian berprioritas yang berisi elemen-elemen dengan nilai heuristik. CLOSED : berisi node-node yang sudah diuji. Misal GOAL = J OPEN=[A]; CLOSED=[] A≠GOAL OPEN =[B,C,D]; CLOSED =[A] B≠GOAL OPEN =[C,D,E,F,G]; CLOSED =[B,A] C≠GOAL OPEN =[D,E,F,G,H,I,J]; CLOSED =[C,B,A] D≠GOAL OPEN =[E,F,G,H,I,J,K,L,M]; CLOSED =[D,C,B,A] E≠GOAL OPEN =[F,G,H,I,J,K,L,M]; CLOSED =[E,D,C,B,A] F≠GOAL Dst sampai GOAL ditemukan atau open=[]
Depth First Search Pencarian dilakukan dari node awal (root) lalu ke simpul anak hingga yang paling akhir (leaf) Jika tujuan yang diinginkan belum tercapai maka pencarian dilanjutkan ke cabang sebelumnya
Depth First Search (2) Kelebihan Kekurangan membutuhkan memori relatif kecil, karena hanya node-node pada lintasan aktif saja yang disimpan menemukan solusi tanpa harus menguji lebih banyak lagi dalam ruang keadaan. Hanya mendapatkan 1 solusi Memungkinkan tidak ditemukannya tujuan yang diharapakan
Misal GOAL = J OPEN=[A]; CLOSED =[] A≠GOAL OPEN =[B,C,D]; CLOSED =[A] B≠GOAL OPEN =[E,F,G,C,D]; CLOSED =[B,A] E≠GOAL OPEN =[F,G,C,D]; CLOSED =[E,B,A] F≠GOAL OPEN =[G,C,D]; CLOSED =[F,E,B,A] G≠GOAL OPEN =[C,D]; CLOSED =[H,G,F,E,B,A] C≠GOAL OPEN =[H,I,J,D]; CLOSED =[C,G,F,E,B,A] H≠GOAL Dst sampai GOAL ditemukan atau open=[]
Metode Heuristik Pencarian buta tidak selalu dapat diterapkan dengan baik, hal ini disebabkan waktu aksesnya yang cukup lama & besarnya memori yang diperlukan. Terutama untuk permasalah dengan ruang masalah yang besar. Heuristik adalah sebuah teknik yang mengembangkan efisiensi dalam proses pencarian, namun dengan kemungkinan mengorbankan kelengkapan (completeness). Metode heuristic search menggunakan suatu fungsi yang menghitung biaya perkiraan (estimasi) dari suatu simpul tertentu menuju ke simpul tujuan
Contoh : 8-puzzle Ada 4 operator yang dapat digunakan untuk menggerakkan dari satu keadaan ke keadaan yang baru 1. Ubin kosong digeser ke kiri 2. Ubin kosong digeser ke kanan 3. Ubin kosong digeser ke bawah 4. Ubin kosong digeser ke atas
Langkah awal
Pada pencarian heuristik perlu diberikan informasi khusus, yaitu jumlah ubin yang menempati posisi yang benar. Jumlah yang lebih tinggi adalah yang lebih diharapkan (lebih baik).
Untuk jumlah ubin yang menempati posisi yang salah Jumlah yang lebih kecil adalah yang diharapkan (lebih baik)
Generate and Test Gabungan dari Depth First Search dan backtracking, bergerak ke belakang menuju pada suatu keadaan awal. Algoritma : 1. Bangkitkan suatu kemungkinan solusi (membangkitkan suatu tititk tertentu atau lintasan tertentu dari keadaan awal). 2. Uji untuk melihat apakah node tersebut benar-benar merupakan solusinya dengan cara membandingkan node terebut atau node akhir dari suatu lintasan yang dipilih dengan kumpulan tujuan yang diharapkan. 3. Jika solusi ditemukan, keluar. Jika tidak, ulangi kembali langkah pertama.
Contoh : “Travelling Salesman Problem (TSP)” Seorang salesman ingin mengunjungi n kota. Jarak antara tiap-tiap kota sudah diketahui. Kita ingin mengetahui ruter terpendek dimana setaip kota hanya boleh dikkunjungi tepat 1 kali. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti berikut ini :
Hill Climbing Metode ini hampir sama dengan metode pembangkitan dan pengujian, hanya saja proses pengujian dilakukan dengan menggunakan fungsi heuristik. Pembangkitan keadaan berikutnya tergantung pada feedback dari prosedur pengetesan. Tes yang berupa fungsi heuristic ini akan menunjukkan seberapa baiknya nilai terkaan yang diambil terhadap keadaan-keadaan lainnya yang mungkin.
Algoritma Simple Hill Climbing Cari operator yang belum pernah digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru. Kerjakan langkah-langkah berikut sampai solusinya ditemukan atau sampai tidak ada operator baru yang akan diaplikasikan pada keadaan sekarang : Cari operator yang belum digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru. Evaluasi keadaan baru tersebut : Jika keadaan baru merupakan tujuan, keluar Jika bukan tujuan, namun nilainya lebih baik daripada keadaan sekarang, maka jadikan keadaan baru tersebut menjadi keadaan sekarang. Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi.
Pada simple hill climbing, ada 3 masalah yang mungkin: Algoritma akan berhenti kalau mencapai nilai optimum local Urutan penggunaan operator akan sangat berpengaruh pada penemuan solusi Tidak diijinkan untuk melihat satupun langkah sebelumnya.
Contoh : TSP dengan Simple Hill Climbing Operator digunakan untuk menukar posisi kota-kota yang bersebelahan. Apabila ada n kota, dan kita ingin mencari kombinasi lintasan dengan menukar posisi urutan 2 kota, maka kita akan mendapatkan sebanyak 6 kombinasi. (1,2) menukar posisi kota 1 dan 2 (1,3) menukar posisi kota 1 dan 3 (1,4) menukar posisi kota 1 dan 4 (2,3) menukar posisi kota 2 dan 3 (2,4) menukar posisi kota 2 dan 4 (3,4) menukar posisi kota 3 dan 4
Steepest Ascent Hill Climbing Hampir sama dengan simple hill climbing, hanya gerakan pencarian tidak dimulai dari posisi paling kiri. Gerakan selanjutnya dicari berdasarkan nilai heuristik terbaik. Dalam hal ini urutan operator tidak menentukan penemuan solusi.
Best First Search Kombinasi Depth-First search dan Breadth-First search Pada metode best-first search, pencarian diperbolehkan mengunjungi node yang ada di level yang lebih rendah, jika ternyata node pada level yang lebih tinggi ternyata memiliki nilai heuristic yang lebih buruk.
Algoritma Tempatkan node awal pada antrian OPEN Kerjakan langkah-langkah berikut hingga tujuan ditemukan atau antrian OPEN sudah kosong : Ambil node terbaik dari OPEN Bangkitkan semua successor Untuk tiap successor, lakukan : Jika node tersebut belum pernah dibangkitkan, evaluasi node tersebut dan masukkan ke OPEN Jika node sudah pernah dibangkitkan, ubah parent jika lintasan baru lebih menjanjikan dan hapus node dari antrian OPEN Asumsi : node terbaik memiliki nilai paling kecil nilai pada setiap node menyatakan estimasi jarak lurus dari node ke GOAL
START=A GOAL=E A B D C E F G H OPEN CLOSED [A(0)] [] A≠GOAL [D(1), B(3), C(5)] [A] D ≠GOAL [B(3), E(4), C(5), F(6)] [A,D] B ≠GOAL [E(4), C(5), H(5), F(6), G(7)] [A,D,B] E=GOAL Lakukan backtracking sehingga diperoleh jalur : ADE dengan A B D C E F 3 5 1 3 5 4 6 G H 5 7 5 4 6
A* Perbaikan dari metode Best-First search dengan memodifikasi fungsi heuristiknya A* meminimumkan total biaya lintasan. Pada kondisi yang tepat, A* akan memberikan solusi yang terbaik dalam waktu yang optimal.
Fungsi Heuristik yang digunakan merupakan prakiraan (estimasi) cost dari initial state ke goal state, yang dinyatakan dengan : f’(n) = g(n) + h’(n) dimana : f’ = Fungsi evaluasi g = cost dari initial state ke current state h’ = prakiraan cost dari current state ke goal state
Contoh Misalkan kita memiliki ruang pencarian seperti pada gambar berikut. Node M merupakan keadaan awal dan node T merupakan tujuannya. Biaya edge yang menghubungkan node M dengan node A adalah biaya yang dikeluarkan untuk bergerak dari kota M ke kota A. Nilai g diperoleh berdasarkan biaya edge minimal. Sedangkan nilai h’ di node A merupakan hasil perkiraan terhadap biaya yang diperlukan dari node A untuk sampai ke tujuan. h’(n) bernilai ~ jika sudah jelas tidak ada hubungan antara node n dengan node tujuan (jalan buntu). Kita bisa merunut nilai untuk setiap node.
Penelusuran dengan f’(n)=h’(n) Node diekspansi Antrian OPEN M C H T [M(6)] [C(2), A(3), B(4)] [H(2), A(3), B(4), I(~)] [T(0), A(3), B(4), L(~), I(~)] [A(3), B(4), L(~) , I(~)] Penelusuran dengan f’(n)=g(n)+h’(n) [C(6), B(7), A(8)] [H(7), B(7), A(8), I(~)] [T(7), B(7), A(8), L(~), I(~)] [B(7), A(8), L(~), I(~)]
Latihan – Blind Search Diketahui gambar pohon berikut : Implementasikan algoritma BFS dan DFS untuk pohon diatas jila GOAL=J S A B I D C J* H E F G
Latihan – Hill Climbing Carilah lintasan terpendek dari graph di bawah dengan metode simple hill climbing dan stepest hill climbing. Jika operator yang digunakan hanya 4, yaitu (1,2), (2,3), (3,4) dan (4,1)
Latihan – Best 1st Search & A* 4 4 Jika h’(n) sbb : A-G=10,4; B-G=6,7; C-G=4; D-G=8,9; E-G=6,9; F-G=3, S-G=11. Carilah lintasan terpendek dimulai dari S ke G! 3 G S 5 5 3 4 D E F 2 4