Teknik Pencarian 1 Blind Search Muhammad Zidny Naf’an, M.Kom Disadur dari Slide Kecerdasan Buatan oleh Suyoto, M.Sc. Telkom University
TEKNIK PENCARIAN
Searching dalam sebuah struktur data telah menjadi dasar bagi algoritma komputer, tetapi proses searching pada KB memiliki perbedaan. Metoda searching pada KB merupakan searching terhadap problem space bukan searching data (e.g., angka, karakter, string) tertentu.
Proses searching ini berupa jalur yang menggambarkan keadaan awal sebuah masalah menuju kepada penyelesaian masalah yang diinginkan (i.e., the solved problem). Jalur-jalur ini mengambarkan langkah-langkah penyelesaian masalah. Melalui proses searching menuju sebuah penyelesaian akan terbentuk sebuah solution space.
Perhatikan contoh penyelesaian masalah komputer pada Gambar 1.4. Langkah pertama untuk mengetahui apakah komputer dapat digunakan atau tidak adalah men-switch ON. Selanjutnya dengan melakukan inspeksi terhadap kondisi lampu indikator kita dapat menentukan langkah berikutnya. Misalnya kondisi lampu OFF. Dengan melakukan searching terhadap problem space kita akan tiba pada sebuah penyelesaian masalah agar komputer dapat diaktifkan kembali.
Searching-Based Systems Konversi masalah ke ruang keadaan Sistem Produksi dalam AI: Sebuah himpunan aturan Satu atau lebih pengetahuan atau basis data yang berisi informasi apapun untuk tujuan tertentu. Strategi kontrol (metode searching) Menentukan urutan dimana aturan akan dibandingkan dengan basis data; Menentukan cara pemecahan masalah jika beberapa aturan dapat dilakukan pada waktu yang sama. A rule applier (pengaplikasi aturan). Himpunan aturan, masing-masing terdiri dari sisi kiri (pola) yang menentukan kemampuan aplikasi dari aturan tersebut dan sisi kanan yang menggambarkan operasi yang dilalukan jika aturan dilaksanakan. Satu atau lebih pengetahuan atau basis data yang berisi informasi apapun untuk tugas tertentu. Beberapa bagian basis data bisa permanen, dan bagian yang lain bisa hanya merupakan solusi untuk masalah saat ini. Informasi dalam basis data ini disusun secara tepat. Strategi kontrol yang menspesifikasikan urutan dimana aturan akan dibandingkan dengan basis data dan menspesifikasikan cara pemecahan masalah yang timbul ketika beberapa aturan sesuai sekaligus pada waktu yang sama. A rule applier (pengaplikasi aturan).
Syarat-syarat Strategi Kontrol cause motion Jika hanya memilih satu aturan pertama pada daftar aturan, maka kita tidak akan pernah memecahkan masalah. Strategi kontrol yang tidak menyebabkan motion tidak akan pernah mencapai solusi. systematic Pada setiap siklus, pilih secara random aturan-aturan yang dapat diaplikasikan. Pada akhirnya strategi tersebut akan mencapai solusi.
Tetapi mungkin akan mengunjungi beberapa state yang sama selama proses tersebut dan mungkin menggunakan lebih banyak langkah dari jumlah langkah yang diperlukan. Hal ini disebabkan strategi kontrol tersebut tidak sistematik. strategi kontrol yang sistematik telah diusulkan searching.
Representasi dalam Pohon Pelacakan:
Penyelesaian Aturan Ke- Jika Maka 1 (x,y) x < 4 (4,y) Isi ember A 2 Isi Ember B 3 x > 0 (x-d,y) Tuang sebagian air dari ember A 4 y > 0 (x,y-d) Tuang sebagian air dari ember B 5 (0,y) Kosongkan ember A dgn mmbuang airnya 6 (x,0) Kosongkan ember B dgn mmbuang airnya 7 x+y≥4 dan y>0 (4,y – (4 – x)) Tuang air dari ember B ke ember A sampai ember A penuh 8 x+y≥3 dan x>0 (x – (3 – y),3) Tuang air dari ember A ke ember B sampai ember B penuh 9 x+y≤4 dan y>0 (x+y, 0) Tuang seluruh air dari ember B ke ember A 10 x+y≤3 dan x>0 (0,x+y) Tuang seluruh air dari ember A ke ember B 11 (0,2) (2,0) Tuang 2 galon air dari ember B ke ember A Penyelesaian
Ukuran Performansi Completeness Apakah metode tersebut menjamin penemuan solusi jika solusinya memang ada? Optimality Apakah metode tersebut menjamin menemukan solusi yang terbaik jika terdapat beberapa solusi berbeda? Time complexity Berapa lama waktu yang diperlukan? Space complexity Berapa banyak memori yang diperlukan? Jelaskan terlebih dahulu jenis-jenis strategi pencarian
Kompleksitas waktu dan memori diukur dalam terminologi berikut: b: faktor pencabangan maksimal dari pohon pencarian (jumlah child) d: kedalaman dari solusi berbiaya terendah m: kedalaman maksimum dari ruang pencarian (mungkin ∞)
Metode-metode pencarian Blind (un-informed) Tanpa informasi Kompleksitas tinggi Heuristic (informed) Dengan informasi Kompleksitas relatif rendah
Bagaimana memecahkan masalah dengan Pencarian? Mendefinisikan ruang masalah untuk suatu masalah Bisa berupa: himpunan keadaan (state), atau Himpunan rute dari keadaan awal (initial state) menuju keadaan tujuan (goal state) Mendefinisikan aturan produksi Untuk mengubah dari satu state ke state lain Memilih metode pencarian yang tepat
Blind (Un-informed) Search Breadth-First Search (BFS) Depth-First Search (DFS) Depth-Limited Search (DLS) Uniform Cost Search (UCS) Iterative-Deepening Search (IDS) Bi-Directional Search (BDS)
Ruang Pencarian Penghitungan ruang pencarian: 8-Puzzle b = 2,13 Faktor pencabangan atau branching factor (b) Kedalaman solusi atau depth (d) 8-Puzzle b = 2,13 Rubik’s cube b = 13,34 Permainan Catur rata-rata b = 35
Breadth-First Search (BFS) Source: http://aima.eecs.berkeley.edu/slides-ppt/m3-search.ppt
Breadth-First Search (BFS) Pencarian semua node setiap level secara berurutan dari kiri ke kanan. Jika pada satu level belum ditemukan solusi, maka pencarian dilanjutkan pada level berikutnya sampai ditemukan solusi. Solusi yang ditemukan adalah yang paling baik (Optimal). Tetapi BFS harus menyimpan semua node yang pernah dibangkitkan. Hal ini harus dilakukan untuk penelusuran balik jika solusi sudah ditemukan. Pembangkitan suksesor dari suatu node bergantung pada urutan dari Aturan Produksi yang
BFS baik digunakan jika: Ruang memory tidak menjadi masalah; Untuk menemukan solusi yang mengandung busur paling sedikit; Beberapa solusi mungkin ada, dan setidaknya satu memiliki panjang jalur yang pendek; dan Jalur yang tak terbatas mungkin ada, karena mengeksplorasi semua ruang pencarian, bahkan dengan jalan yang tak terbatas. BFS buruk ketika semua solusi memiliki jalan yang panjang atau ada beberapa pengetahuan heuristik yang tersedia.
Breadth-First Search (BFS)
Performansi BFS Complete Optimal Time complexity = O(bd) Space complexity = O(bd)
Breadth-first search Expand shallowest unexpanded node Implementation: fringe is a FIFO queue, i.e., new successors go at end 14 Jan 2004 CS 3243 - Blind Search
Breadth-first search Expand shallowest unexpanded node Implementation: fringe is a FIFO queue, i.e., new successors go at end 14 Jan 2004 CS 3243 - Blind Search
Breadth-first search Expand shallowest unexpanded node Implementation: fringe is a FIFO queue, i.e., new successors go at end 14 Jan 2004 CS 3243 - Blind Search
Breadth-first search Expand shallowest unexpanded node Implementation: fringe is a FIFO queue, i.e., new successors go at end 14 Jan 2004 CS 3243 - Blind Search
Properties of breadth-first search Complete? Yes (if b is finite) Time? 1+b+b2+b3+… +bd = O(bd) Space? O(bd) (keeps every node in memory) Optimal? Yes (if cost = 1 per step) Space is the bigger problem (more than time) 14 Jan 2004 CS 3243 - Blind Search
Kompleksitas BFS b d Simpul Waktu Memory 10 6 106 1 detik 100 MB 8 108 Asumsi: 1 simpul = 100 bytes dan kecepatan komputer = 106 simpul/detik. b d Simpul Waktu Memory 10 6 106 1 detik 100 MB 8 108 100 detik 10 GB 12 1012 11,57 hari 100 TB 14 1014 3,17 tahun 10.000 TB b = faktor percabangan d = kedalaman
Depth-First Search (DFS)
Depth-First Search (DFS) Pencarian satu node dalam setiap level dari yang paling kiri. Jika pada level yang paling dalam, solusi belum ditemukan, maka pencarian dilanjutkan pada node sebelah kanan. Node yang kiri dapat dihapus dari memori. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi. Jika solusi ditemukan maka tidak diperlukan proses backtracking (penelusuran balik untuk mendapatkan jalur yang dinginkan).
Depth-First Search (DFS)
Kelebihan DFS adalah: Pemakain memori sedikit, Jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka DFS akan menemukannya secara cepat. Kelemahan DFS adalah: Jika pohon yang dibangkitkan mempunyai level yang dalam (tak terhingga), maka tidak ada jaminan untuk menemukan solusi (Tidak Complete). Jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda, maka pada DFS tidak ada jaminan untuk menemukan solusi yang paling baik (Tidak Optimal).
Performansi DFS Tidak Complete Tidak Optimal Time complexity = O(bm) Space complexity = O(bm) m : kedalaman maksimum pohon pencarian.
Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front 14 Jan 2004 CS 3243 - Blind Search
Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front 14 Jan 2004 CS 3243 - Blind Search
Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front 14 Jan 2004 CS 3243 - Blind Search
Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front 14 Jan 2004 CS 3243 - Blind Search
Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front 14 Jan 2004 CS 3243 - Blind Search
Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front 14 Jan 2004 CS 3243 - Blind Search
Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front 14 Jan 2004 CS 3243 - Blind Search
Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front 14 Jan 2004 CS 3243 - Blind Search
Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front 14 Jan 2004 CS 3243 - Blind Search
Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front 14 Jan 2004 CS 3243 - Blind Search
Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front 14 Jan 2004 CS 3243 - Blind Search
Depth-first search Expand deepest unexpanded node Implementation: fringe = LIFO queue, i.e., put successors at front 14 Jan 2004 CS 3243 - Blind Search
Properties of depth-first search Complete? No: fails in infinite-depth spaces, spaces with loops Modify to avoid repeated states along path complete in finite spaces Time? O(bm): terrible if m is much larger than d but if solutions are dense, may be much faster than breadth-first Space? O(bm), i.e., linear space! Optimal? No 14 Jan 2004 CS 3243 - Blind Search
Uniform Cost Search (UCS) BFS menggunakan urutan level dari yang paling rendah sampai yang paling tinggi. UCS menggunakan urutan biaya dari yang terkecil sampai yang terbesar. UCS mencari solusi dengan total biaya terendah yang dihitung berdasarkan biaya dari simpul asal ke simpul tujuan. g(n) = biaya dari simpul asal ke simpul n.
Performansi UCS Complete Optimal Time complexity = O(bd) Space complexity = O(bd)
Depth-Limited Search (DLS) Mengatasi kelemahan DFS (tidak complete) dengan membatasi kedalaman maksimum dari suatu jalur solusi. Tetapi harus diketahui atau ada batasan dari sistem tentang level maksimum. Jika batasan kedalaman terlalu kecil, DLS tidak complete.
Depth-Limited Search (DLS)
Performansi DLS Complete jika l d Tidak Optimal Time complexity = O(bl) Space complexity = O(bl) l : batasan kedalaman.
Iterative-Deepening Search (IDS) BFS complete dan optimal DFS space complexity rendah IDS = gabungan BFS dan DFS IDS complete, optimal, space complexity rendah. IDS Time complexity-nya menjadi sangat tinggi Mengapa? Karena proses pencarian dilakukan secara iteratif sehingga terjadi proses penelusuran menggunakan algoritma DFS yang berulang-ulang.
Performansi IDS Complete Optimal Time complexity = O(bd) Space complexity = O(bd)
Bi-directional Search (BDS) Pencarian maju (dari start ke goal) dan pencarian mundur (dari goal ke start). Ketika dua arah pencarian telah membangkitkan simpul yang sama, maka solusi telah ditemukan. Gabungkan kedua jalur yang bertemu.
Masalah BDS Pencarian mundur berarti membangkitkan predecessor (simpul induk/parent) dari suatu simpul. Pembangkitan predecessor berarti memerlukan pembalikan operator. Apakah semua operator dapat dibalik? Jika terdapat beberapa simpul tujuan yang berbeda? Harus selalu menguji apakah simpul baru yang dibangkitkan sudah pernah dibangkitkan oleh pencarian dari arah yang berlawanan. Bagaimana menentukan metode pencarian untuk kedua arah tersebut?
Pembalikan Operator (x,y) If x < 4 (4,y) Isi penuh jurigen 4 galon (4,y) (x,y) x < 4 Kurangi air dalam jurigen 4 galon sehingga menjadi x galon x bisa bernilai 0, 1, 2, atau 3. Tanpa skala ukuran, kita tidak mungkin membuang sebagian air sehingga tersisa 1, 2, atau 3 galon. Satu-satunya cara adalah membuang semua air dari jurigen 4 galon sehingga nilai x yang mungkin adalah 0.
Performansi BDS Complete Optimal Time complexity = O(bd/2) Space complexity = O(bd/2)
Perbandingan metode pencarian [RUS95] Kriteria BFS UCS DFS DLS IDS BDS Time bd bm bl bd/2 Space Complete? Yes No Yes, if l d Optimal? b : faktor pencabangan (the branching factor) d : kedalaman solusi (the depth of solution) m : kedalaman maksimum pohon pencarian (the maximum depth of the search tree) l : batasan kedalaman (the depth limit)
Tugas Berkelompok Carilah contoh implementasi/aplikasi dari metode-metode searching yang telah dibahas: BFS DFS DLS UCS IDS BDS
Referensi Blog Dosen STMIK Tri Guna Dharma. http://herriyance.trigunadharma.ac.id/wp-content/uploads/2012/06/Bab2_AI.pdf Slide CS3243 Kecerdasan Mesin dan Artifisial, Informatics Eng. Dept. – IT Telkom Ahmad Zaki, Kecerdasan Buatan (Pertemuan 3; Masalah, Ruang Keadaan Dan Pencarian 1), Univ. Narotama