Hal penting dalam menentukan keberhasilan sistem cerdas adalah kesuksesan dalam pencarian. 3
Teknik Search menentukan simpul mana yang dibuat lebih dulu dan mana yang kemudian sampai ditemukannya simpul solusi Dari proses search dihasilkan diagram tree, sehingga perlu penjelasan beberapa terminologi diagram tree seperti berikut : Simpul Level/Cabang Path Parent Child Root Leave Jumlah Ruang Simpul Langkah solusi (Solusi) e a b c d f 4
Pencarian Buta (Blind / Uninformed Search) a) Pencarian melebar pertama /Breadth-First Search b) Pencarian mendalam pertama (Depth First Search) Pencarian Terbimbing (Informed /Heuristics Search) a) Generate and Test b) Pendakian Bukit (Hill Climbing) c) Pencarian Terbaik Pertama (Best First Search) d) Tabu Search e) Simulated Annealing 5
Uninformed tidak memanfaatkan informasi tertentu Informed memanfaatkan informasi tertentu Informasi tertentu tersebut disebut Heuristik Heuristik berfungsi untuk mempercepat proses pencarian Heuristik = Intelligent 6
Pada metode Breadth-First Search, semua node pada level n akan dikunjungi terlebih dahulu sebelum mengunjungi node-node pada level n+1 Pencarian dimulai dari node akar terus ke level ke-1 dari kiri ke kanan, kemudian berpindah ke level berikutnya demikian pula dari kiri ke kanan hingga ditemukannya solusi 7
A B C D E F G H I J K L M 8
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) 9
Pada Depth-First Search, proses pencarian akan dilakukan pada semua anaknya sebelum dilakukan pencarian ke node-node yang selevel. Pencarian dimulai dari node akar ke level yang lebih tinggi. Proses ini diulangi terus hingga ditemukannya solusi 10
A B C 11
Keuntungan Membutuhkan memori yang relatif kecil, karena hanya nodenode 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. 12
Ilustrasi proses BFS Ilustrasi proses DFS Kualitasnya dibedakan berdasarkan : Jumlah ruang simpul Solusi (Jumlah langkah mencapai Solusi) Breadth First Search (BFS) Jumlah ruang simpul relatif (umumnya) lebih banyak Solusi dijamin optimal Depth First Search (DFS) Jumlah ruang simpul relatif (umumnya) lebih sedikit Solusi tidak dijamin optimal 13
Breadth-first search S A D B D A E C E E B B F D F B F C E A C G Move downwards, level by level, until goal is reached. G C G F G 14
Example: Traveling from Arad To Bucharest 15
16 Breadth-first search
17
18
Completeness Apakah strategi tersebut menjamin penemuan solusi jika solusinya memang ada? Time complexity Berapa lama waktu yang diperlukan? Space complexity Berapa banyak memori yang diperlukan? Optimality Apakah strategi tersebut menemukan solusi yang paling baik jika terdapat beberapa solusi berbeda pada permasalahan yang ada? 19
Completeness: Yes, if b is finite Time complexity: 1+b+b 2 + +b d = O(b d ), i.e., exponential in d Space complexity: O(b d ), keeps every node in memory Optimality: Yes (assuming cost = 1 per step) Why keep every node in memory? To avoid revisiting already-visited nodes, which may easily yield infinite loops. 20
If a goal node is found on depth d of the tree, all nodes up till that depth are created. b G d m Thus: O(b d ) 21
Largest number of nodes in QUEUE is reached on the level d of the goal node. b G d m QUEUE contains all and G nodes. (Thus: 4). In General: b d 22
S A B C E D F G 23
24
25
26
Completeness: No, fails in infinite state-space (yes if finite state space) Time complexity: O(b m ) Space complexity: O(bm) Optimality: No Remember: b = branching factor m = max depth of search tree 27
In the worst case: the (only) goal node may be on the right-most branch, b m G Time complexity == b m + b m-1 + + 1 = b m+1-1 Thus: O(b m ) b - 1 28
Largest number of nodes in QUEUE is reached in bottom leftmost node. Example: m = 3, b = 3 :... QUEUE contains all nodes. Thus: 7. In General: ((b-1) * m) + 1 Order: O(m*b) 29