search

35
Search

Upload: rodney

Post on 04-Jan-2016

65 views

Category:

Documents


2 download

DESCRIPTION

Search. Pada bagian ini akan dibahas bagaimana cara memecahkan masalah dengan teknik pencarian atau search. Contoh Pemasalahan: Penentuan Rute Perjalanan. Agent sedang berlibur di Romania dan saat ini sedang berada di kota Arad. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Search

Search

Page 2: Search

Pada bagian ini akan dibahas bagaimana cara memecahkan masalah dengan teknik pencarian atau search.

Page 3: Search

Contoh Pemasalahan: Penentuan Rute Perjalanan

Agent sedang berlibur di Romania dan saat ini sedang berada di kota Arad.

Agent harus menentukan rute terbaik menuju Bucharest, karena besok harus berangkat meninggalkan Romania.

Page 4: Search

Pendefinisian Masalah Secara umum suatu permasalahan

dapat didefinisikan dengan menggunakan 4 komponen berikut: Keadaan awal (initial state)

Misal: In(Arad) Deskripsi mengenai kumpulan aksi

(actions) yang tersedia bagi agent. Biasanya digunakan successor function.

Misal dari keadaan awal In(Arad), successor function dapat digunakan untuk mendapatkan pasangan aksi dan successor sebagai berikut:

• {(Go(Sibiu), In(Sibiu)), (Go(Timisoara), In(Timisoara)), (Go(Zerind), In(Zerind))}

Initial state dan successor function secara bersama-sama akan menggambarkan ruang keadaan (state space) dari permasalahan tersebut.

Page 5: Search

Goal test, untuk memeriksa apakah goal atau tujuan telah tercapai.

Misal, pada state In(Sibiu), diperiksa apakah state ini merupakan goal. Ternyata bukan karena goal adalah In(Bucharest).

Sebuah path cost function, yang akan memberikan nilai cost untuk tiap jalur yang ada.

Misal, bagi agent yang akan menuju Bucharest waktu tempuh sangat penting, sehingga cost yang dipilih adalah jarak tempuh (kilometer).

Page 6: Search

State Space dari permasalahan

Page 7: Search

Solusi Permasalahan

Solusi dari permasalahan tersebut adalah rute dari keadaan awal (initial state) menuju keadaan tujuan (goal state).

Kualitas solusi diukur oleh path cost function.

Solusi optimal adalah solusi yang path cost-nya paling rendah.

Proses untuk mencari solusi ini disebut search.

Page 8: Search

Vacuum world state space graph

states? actions? goal test? path cost?

Page 9: Search

Vacuum world state space graph

states? Posisi vacuum, dan kotor/tidaknya lokasi.

actions? Left, Right, Suck goal test? Apakah semua kotoran telah bersih? path cost? 1 untuk tiap aksi yang dilakukan

Page 10: Search

Contoh: 8-puzzle

states? actions? goal test? path cost?

Page 11: Search

Contoh: 8-puzzle

states? Posisi ubin actions? Geser yang kosong ke kiri, kanan,

naik atau turun goal test? Apakah telah mencapai goal

state? path cost? 1 untuk tiap pergerakan ubin

Page 12: Search

Contoh: Perakitan dengan robot

states?: Koordinat dari sendi robot, sudut, bagian dari objek yang akan dirakit.

actions?: Pergerakan kontinu dari sendi robot goal test?: Perakitan lengkap? path cost?: Waktu yang dihabiskan

Page 13: Search

Metode-metode Pencarian (Search)

Terdapat banyak metode pencarian yang telah digunakan.

Pada dasarnya metode-metode pencarian yang ada dapat dikelompokkan ke dalam salah satu kelompok berikut:

Pencarian buta atau tanpa informasi (blind search atau uninformed search)

Pencarian heuristik atau dengan informasi (heuristic atau informed search)

Page 14: Search

Ukuran kinerja metode pencarian

Terdapat 4 kriteria yang digunakan untuk mengukur kinerja suatu metode pencarian, yaitu: Completeness: apakah metode

tersebut menjamin penemuan solusi jika solusinya memang ada?

Time complexity: berapa lama waktu yang diperlukan?

Space complexity: berapa banyak memori yang diperlukan?

Optimality: apakah metode tersebut menjamin penemuan solusi yang terbaik jika terdapat beberapa solusi yang berbeda?

Page 15: Search

Blind / Uninformed Search Di sini digunakan istilah blind atau

buta karena memang tidak ada informasi awal yang digunakan untuk membantu proses pencarian.

Di sini hanya akan dibahas 6 metode yang tergolong blind search, yaitu: Breadth First Search (BFS) Uniform Cost Search (UCS) Depth First Search (DFS) Depth-Limited Search (DLS) Iterative-Deepening Search (IDS) Bi-directional Search (BDS)

Page 16: Search

Breadth-First Search (BFS) Pencarian dilakukan pada semua

simpul (node) dalam setiap level secara berurutan dari kiri ke kanan.

Jika pada satu level belum ditemukan solusi, maka pencarian dilanjutkan pada level berikutnya, demikian seterusnya sampai ditemukan solusi.

Page 17: Search

Breadth-First Search (BFS)

Page 18: Search

Sifat-sifat Breadth-First Search (BFS) Dengan cara seperti itu, BFS

menjamin ditemukannya solusi (jika solusinya memang ada), dengan kata lain complete.

Solusi yang ditemukan pasti yang terbaik, dengan kata lain optimal.

Tetapi, BFS harus menyimpan semua simpul yang pernah dibangkitkan agar dapat melakukan penelusuran simpul-simpul sampai di level bawah.

Page 19: Search

Sifat-sifat Breadth-First Search (BFS) Jika dimisalkan b adalah faktor

percabangan (jumlah simpul anak yang dimiliki oleh suatu simpul) dan d adalah kedalaman solusi, maka jumlah simpul yang harus disimpan adalah sebanyak O(bd).

Misalkan, b=10 dan d=8, maka BFS harus membangkitkan dan menyimpan 100 + 101 + 102 + 103 + 104 + 105 + 106 + 107 + 108 =111.111.111 108 simpul.

Page 20: Search

Sifat-sifat Breadth-First Search (BFS)

Jika diasumsikan bahwa dalam satu detik komputer bisa membangkitkan dan menguji 106 simpul, maka waktu proses yang diperlukan untuk menemukan solusi di level 8 adalah 100 detik.

Jika satu simpul direpresentasikan dalam struktur data sebesar 100 byte, maka diperlukan memori sebesar 1010 byte atau 10 gigabytes.

Karena membutuhkan memori yang sangat besar, BFS sangat sulit diimplementasikan untuk permasalahan di dunia nyata.

Page 21: Search

Uniform Cost Search (UCS) Konsepnya hampir sama dengan BFS,

bedanya adalah bahwa BFS menggunakan level dari yang paling rendah sampai yang paling tinggi.

UCS menggunakan urutan biaya dari yang paling kecil sampai yang terbesar.

UCS berusaha menemukan solusi dengan total biaya terendah yang dihitung berdasarkan biaya dari simpul asal menuju ke simpul tujuan.

Karena mengikuti konsep BFS, maka UCS menjamin ditemukannya solusi dan solusi yang ditemukannya selalu yang terbaik (complete dan optimal).

Page 22: Search

Uniform Cost Search (UCS)

Page 23: Search

Depth First Search (DFS) Pencarian dilakukan pada suatu simpul

dalam setiap level dari yang paling kiri. Jika pada level yang terdalam solusi

belum ditemukan, maka pencarian dilanjutkan pada simpul sebelah kanan dan simpul 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.

Page 24: Search

Depth First Search (DFS)

Page 25: Search

Depth First Search (DFS)

Page 26: Search

Depth First Search (DFS)

Page 27: Search

Sifat-sifat Depth-First Search (DFS) Kelebihan DFS adalah pemakaian

memori yang lebih sedikit. DFS hanya menyimpan sekitar bd

simpul, di mana b adalah faktor percabangan dan d adalah kedalaman solusi. Jika b=10 dan d=3, maka jumlah

simpul yang disimpan di memori adalah 1 + 10 + 10 + 10 = 31. Bandingkan dengan BFS yang menyimpan 1.111 simpul untuk kasus yang sama.

Page 28: Search

Sifat-sifat Depth-First Search (DFS) Kelemahan DFS adalah, jika pohon

(tree) yang dibangkitkan mempunyai level yang sangat dalam (tak terhingga), maka tidak ada jaminan menemukan solusi. Atau dengan kata lain, DFS tidak complete.

Kelemahan lainnya adalah, jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda, maka DFS tidak menjamin untuk menemukan solusi yang paling baik. Dengan kata lain, DFS tidak optimal.

Page 29: Search

Depth-Limited Search (DLS) Metode ini berusaha mengatasi

kelemahan DFS (tidak complete) dengan membatasi kedalaman maksimum dari suatu jalur solusi.

Batasan kedalaman ini dinyatakan sebagai l, di mana simpul pada kedalaman l dianggap tidak memiliki simpul anak.

Sebelum menggunakan DLS harus diketahui berapa level maksimum dari suatu solusi. Jika batasan kedalaman terlalu kecil, maka DFS tidak akan dapat menemukan solusi yang ada (tidak complete).

Page 30: Search

Iterative-Deepening Search (IDS) IDS melakukan pencarian secara

iteratif menggunakan penelusuran Depth-Limited Search (DLS) dimulai dengan batasan level 0.

Jika belum ditemukan solusi, maka dilakukan iterasi ke-2 dengan batasan level 1.

Demikian seterusnya sampai ditemukan solusi.

Page 31: Search

Iterative-Deepening Search (IDS)

Page 32: Search

Bi-Directional Search (BDS) Pencarian dilakukan dari dua

arah: 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, yaitu dengan cara menggabungkan kedua jalur yang bertemu.

Page 33: Search

Bi-Directional Search (BDS) Jika pencarian maju menggunakan BFS

dan pencarian mundur juga menggunakan BFS, maka jumlah langkah yang diperlukan adalah sebanyak O(2bd/2) O(bd/2).

Misalkan untuk b=10 dan d=6, maka BFS akan membanglitkan 1 + 10 + 102 + 103 + 104 + 105 + 106 =1.111.111 simpul.

Sebaliknya, BDS hanya membangkitkan 2 x (1 + 10 + 102 + 103) = 2.222 simpul

Jadi BDS menghemat waktu dan memori dan selalu memberikan solusi yang optimal jika solusinya memang ada.

Permasalahannya, melakukan pencarian mundur tidaklah sederhana.

Page 34: Search

Bi-Directional Search (BDS)

Page 35: Search

Perbandingan metode pencarian berdasarkan empat kriteriaKriteria BFS UCS DFS DLS IDS BDS

Time bd bd bm bl bd bd/2

Space bd bd bm bl bd bd/2

Complete?

Ya Ya Tdk Ya, jika l≥d

Ya Ya

Optimal? Ya Ya Tdk Tdk Ya Ya