algoritma pencarian

Upload: dede-noverdi

Post on 20-Jul-2015

737 views

Category:

Documents


13 download

TRANSCRIPT

Nama : Gede Noverdi Indra Wirawan Nim : 0915051050 Kelas : VI A

ALGORITMA PENCARIANAlgoritma pencarian (searching algorithm) adalah algoritma yang menerima sebuah argumen kunci dan dengan langkah-langkah tertentu akan mencari rekaman dengan kunci tersebut. Setelah proses pencarian dilaksanakan, akan diperoleh salah satu dari dua

kemungkinan, yaitu data yang dicari ditemukan ( successful ) atau tidak ditemukan (unsuccessful).

1. Iterative-Deepening Depth-First Search (IDS)a. Pengertian Merupakan metode yang berusaha menggabungkan keuntungan BFS (Complete dan Optimal) dengan keuntungan DFS (Space Complexity yang rendah). Tetapi konsekuensinya adalah Time Complexity-nya menjadi tinggi. Perhatikan gambar 1 Pencarian dilakukan secara iteratif (menggunakan penelusuran DFS) dimulai dari

Gambar 1 Penelusuran Depth First Search untuk Water Jug Problem.

batasan level 1. Jika belum ditemukan solusi, maka dilakukan iterasi ke-2 dengan batasan level 2. Demikian seterusnya sampai ditemukan solusi. Jika solusi ditemukan maka tidak diperlukan proses backtracking (penelusuran balik untuk mendapatkan jalur yang dinginkan). b. Algoritma IDS :function ITERATIVEDEEPENINGSEARCH (problem) returns solution or failure for depth0 to do result DEPTHLIMITEDSEARCH(problem,depth) if result 6cutoff then return result

Prinsip dari algoritma IDS ini adalah melakukan depth-limited search secara bertahap dengan nilai yang incremental sampai tidak cut off. Berikut ini bagaimana algoritma IDS ini bekerja. Proses 1

Pada Proses pertama ini batas kedalamannya masih 0 atau kosong sehingga akan dilihat apakah solusi sudah ditemukan pada node root. Jika belum ditemukan maka nilai akan dinaikkan menjadi 1. Proses 2

Pada proses kedua batas kedalaman akan bertambah 1 sehingga pencarian solusi secara DFS akan bertambah satu level. Proses 3

Proses ketiga batas kedalaman sudah menjadi 2 sehingga pencarian akan dilakukan sampai level 2. Jika belum menemukan solusinya, akan kembali dinaiikan menjadi 3. Proses 4

Pada proses ketiga pencarian akan dihentikan pada node M karena itu merupakan goal state.

c. Contoh Kasus ROMANIA

Carilah rute untuk mencapai kota Bucharest dari kota Arad!

Penyelesaian

Gambar 2 Bentuk akar dari contoh kasus.

Pada contoh kasus kali ini solusi akan ditemukan pada level ke 4 atau pada saat iterasi dari sama dengan 4. seperti berikut :

Gambar 3 Penyelesaian dengan algoritma IDS.

2. Algoritma Branch and Bounda. Pengertian Algoritma Branch and Bound (B&B) juga merupakan metode pencarian di dalam ruang solusi secara sistematis. Algoritma runut-balik skema DFS Algoritma B&B skema BFS

Untuk mempercepat pencarian ke simpul solusi, maka setiap simpul diberi sebuah nilai ongkos (cost). Simpul berikutnya yang akan diekspansi tidak lagi berdasarkan urutan pembangkitannya (sebagaimana pada BFS murni), tetapi simpul yang memiliki ongkos yang paling kecil (least cost search). Nilai ongkos pada setiap simpul i menyatakan taksiran ongkos termurah lintasan dari simpul i ke simpul solusi (goal node):

c(i ) = nilai taksiran lintasan termurah dari simpul status i ke status tujuan Dengan kata lain, dari status i. Prinsip Pencarian Solusi pada Algoritma B&B Skema BFS = skema FIFO (First In First Out). Tinjau kembali persoalan 4-ratu yang diselesaikan dengan skema BFS (murni).1

c (i )

menyatakan batas bawah (lower bound) dari ongkos pencarian solusi

x1=1

x1=2

x1=3

x1=4

2

3

4

5

x2=2

x2=3

x2=4

x2=1

x2=4 x1=110 11

x2=1

x2=2

x2=4

x2=1

x2=2

x2=3

6

7 x3=2 x3=2 x3=4

8

9

12

13

14

15

16

17

B x3=3

B x3=2 x3=1 x3=3 x3=4

B

B x3=1 x3=2 x3=3 x3=3

B

18

19

20

21

22

23

24

25

26

27

28

29

B

B

B

B x4=3

B

B

B

B

B

30

Gambar 4 Pohon ruang status yang terbentuk untuk persoalan 4-Ratu dengan metode BFS Solusi pertama dicapai pada simpul 30, yaitu X = (2, 4, 1, 3). Dengan skema BFS murni / FIFO, kita harus memperluas dulu simpul 12, simpul 15, dan simpul 16 sebelum memperluas simpul 22 yang melahirkan simpul solusi, yaitu simpul 30. Pada algoritma B&B, pencarian ke simpul solusi dapat dipercepat dengan memilih simpul hidup berdasarkan nilai ongkos (cost). Setiap simpul hidup diasosiasikan dengan sebuah ongkos yang menyatakan nilai batas (bound). Simpul hidup yang menjadi simpul-E ialah simpul yang mempunyai nilai batas terkecil (strategi pencarian berdasarkan biaya terkecil (least cost search). Untuk setiap simpul X, nilai batas ini dapat berupa [HOR78]:

(a) jumlah simpul dalam upapohon X yang perlu ditemukan, atau

dibangkitkan sebelum simpul solusi

(b) panjang lintasan dari simpul X ke simpul solusi terdekat (dalam upapohon X ybs) Misal digunakan ukuran (b):1

4x1=1 x1=2 x1=3 x1=4

2

3

4

5

Bx2=1 x1=110

3x2=4

3

B

9

11

B

Bx3=1

2x3=3

22

23

1x4=3

B

30

simpul solusi

Pemberian nilai batas seperti pada persoalan N-Ratu di atas adalah nilai batas yang ideal, karena letak simpul solusi diketahui. Pada umumnya, untuk kebanyakan persoalan, letak simpul solusi tidak diketahui, karena itu, dalam prakteknya, nilai batas untuk setiap simpul umumnya berupa taksiran atau perkiraan. Fungsi heuristik untuk menghitung taksiran cost:

c (i ) f (i ) g (i ) c(i ) = ongkos untuk simpul i f (i ) = ongkos mencapai simpul i dari akar

g (i ) = ongkos mencapai simpul tujuan dari simpul i. Simpul berikutnya yang dipilih untuk diekspansi adalah simpul yang memiliki

c

minimum.

b. Algoritma B&B: 1. Masukkan simpul akar ke dalam antrian Q. Jika simpul akar adalah simpul solusi (goal node), maka solusi telah ditemukan. Stop. 2. Jika Q kosong, tidak ada solusi. Stop. 3. Jika Q tidak kosong, pilih dari antrian Q simpul i yang mempunyai

c (i )

paling kecil.

Jika terdapat beberapa simpul i yang memenuhi, pilih satu secara sembarang.

4. Jika simpul i adalah simpul solusi, berarti solusi sudah ditemukan, stop. Jika simpul i bukan simpul solusi, maka bangkitkan semua anak-anaknya. Jika i tidak mempunyai anak, kembali ke langkah 2. 5. Untuk setiap anak j dari simpul i, hitung tersebut ke dalam Q. 6. Kembali ke langkah 2.

c( j ) ,

dan masukkan semua anak-anak

c. Contoh KasusPermainan Puzzle Permainan 15-puzzle ditemukan oleh Sam Loyd pada Tahun 1875.1 2 7 8 6 9 3 4 5 11 10 15 12 14 13 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12

(a) Susunan awal

(b) Susunan akhir Gambar 5 Susunan puzzle

(c)

Terdapat 16! (= 20,9 1012) susunan ubin yang berbeda pada bidang kerangka. Sebelum menelusuri ruang status untuk mencapai susunan akhir, kita patut menentukan apakah status tujuan dapat dicapai atau tidak dari status awal. POSISI(i) = posisi ubin bernomor i pada susunan akhir. KURANG(i) = jumlah ubin j sedemikian sehingga j < i dan POSISI(j) > POSISI(i). Misalkan X = 1 jika pada status awal slot kosong berada pada salah satu posisi yang diarsir pada Gambar 7.3c, dan X = 0 jika slot kosong berada pada posisi lainnya. Status tujuan hanya dapat dicapai dari status awal jika

KURANG (i ) Xi 1 16

16

bernilai genap.

Pada Gambar 5 mempunyai X = 0 dan

KURANG (i ) = 37, sehingga 37 + 0 = 37 (ganjil).i 1

Oleh karena itu, status tujuan tidak dapat dicapai dari status awal pada Gambar 5.

1 1 5 2 6 3 4 8

9 10 7 11 13 14 15 12

up right 2 1 5 2 6 3 4 8 3 1 5 2 6 3 8 4 4 1 5 2 6 3 7 4 8 11 down

left

5 1 5 2 3 6 4 8

9 10 7 11 13 14 15 12

9 10 7 11 13 14 15 12

9 10

9 10 7 11 13 14 15 12

13 14 15 12

right 6 1 5 2 6 4 3 8 7 1 5

left 8 2 6 3 4 8 1 5 2 6

up 9 3 8 4 1 5

down 10 2 6 3 4 1 5 2 6 3 7

right 11 4 8 1 5

down

left 12 13 1 5 9 2 6 3 7 4 8 1 5 7

up

down 14

left 15 2 3 4 8 1 2 5 3 6 4 8

2 6

3 7

4 8

3 6

4 8

1

8 11

5 10 6 9

9 10 7 11 13 14 15 12

9 10 7 11 13 14 15 12

9 10 7 11 13 14 15 12

9 10 7 13 14 15 12

9 10 11 13 14 15 12 up

9 10 15 11 13 14 down 12

10 11

9 10 7 11 13 14 15 12

7 11

9 10 7 11 13 14 15 12

13 14 15 12

13 14 15 12

down 16 1 5 2 6 4 3 8 19 down left 1 5 2 6

left down 3 8 4 left

22 1 5 2 6 3 7 4 1 5 2 6 3 7

23 4 8

9 10 7 11 13 14 15 12 17 1 5 6 2 3 4 8 5 18 1 6

9 10 7 11 13 14 15 12 20 2 3 4 8 1 5 2 6 3 4 21 1 5 2 6

9 10 11 8 13 14 15 12

9 10 11 12 13 14 15

3

4

8 11

8 11 7

9 10 7 11 13 14 15 12

9 10 7 11 13 14 15

9 10 7 12 13 14 15

9 10

13 14 15 12

Gambar 6 Sebagian pohon ruang status untuk permainan puzzle

Algoritma B&B: Nilai ongkos untuk simpul P:

c( P) f ( P) g ( P)

f(P) = adalah panjang lintasan dari simpul akar ke P

g ( P)

= taksiran panjang lintasan terpendek dari P ke simpul solusi pada upapohon yang

akarnya P. Salah satu cara menghitung

g ( P) :

g ( P) = jumlah ubin tidak kosong yang tidak terdapat pada susunan akhir Paling sedikit sejumlah g ( P) perpindahan harus dilakukan untuk mentransformasikan status

P ke status tujuan.

1 1 5 9 2 6 10 7 3 4 8 11

13 14 15 12

up right 2 1 5 9 2 6 10 3 7 4 8 11 3 1 5 9 2 6 10 3 8 7 11 4 4 1 5 9 2 6 10 3 7 4 8 11 down

left

5 1 5 9 10 2 3 6 7 4 8 11

13 14 15 12

13 14 15 12

13 14 15 12

13 14 15 12

5

5right 10 1 5 9 2 6 3 7 4 8 11 1 5 9 2 6 3 7 4 8 down

3left 12 1 5 9 2 6 3 7 4 8

5

10 11

10 15 11 12

10 11

13 14 15 12

13 14

13 14 15 12

3up 22 1 5 9 2 6 3 7 8 4 23 1 5 9 2 6 3 7 4 8 down

5

5

10 11

10 11 12

13 14 15 12

13 14 15

simpul solusi Gambar 7 Pohon ruang status untuk permainan puzzle yang dibentuk dengan algoritma B&B. Angka yang dicetak tebal pada bagian bawah setiap simpul menyatakan nilai c() .

3. Algoritma Pencarian Hill Climbing a. Pengertian Metode hill climbing terinspirasi akan langkah-langkah yang dilakukan oleh para pendaki dalam menemukan camp mereka yang terletak diatas lereng gunung bagian atas. Para pendaki salalu akan mencari jalan yang lebih pintas untuk mencapai tujuannya. Penentuan rute yang dipilih pada metode Hill Climbing akan dibandingkan ketiga jalur tersebut mana yang paling sedikit cost yang arus dikeluarkan, apakah rute yang pling pendek ataupun tinngkat kemacetan yang paling kecil, pemilihan akan bergantung pada informasi yang diberikan pada peta yang akan dilalui. Dalam ilmu komputer , mendaki bukit adalah optimasi matematika teknik yang dimiliki oleh keluarga pencarian lokal . Meskipun algoritma yang lebih maju bisa memberikan hasil yang lebih baik, dalam beberapa situasi mendaki bukit bekerja sama dengan baik. Mendaki bukit dapat digunakan untuk memecahkan masalah-masalah yang banyak solusi, beberapa yang lebih baik daripada yang lain. Dimulai dengan solusi (berpotensi miskin) secara acak, dan iteratif membuat perubahan kecil untuk solusi, setiap kali memperbaikinya sedikit. Ketika algoritma tidak bisa melihat perbaikan apapun lagi, itu berakhir. Idealnya, pada titik bahwa solusi saat ini dekat dengan optimal, tetapi tidak menjamin bahwa mendaki bukit itu akan datang dekat dengan solusi optimal. Terdapat dua jenis HC yang sedikit berbeda, yakni : 1. Simple HC (HC Sederhana) 2. Steepest-Ascent HC (HC dengan memilih kemiringan yang paling tajam / curam) Hampir sama dengan Simple HC, hanya saja gerakan pencarian tidak dimulai dari paling kiri. Gerakan selanjutnya dicari berdasarkan nilai heuristik terbaik. b. Algoritma Buat sebuah antrian dengan menginialisasi node pertama dengan root dari tree. Bila nilai node pertama, jika tidak sama dengan nilai akhir, node dihapus dan diganti dengan anak-anaknyadengan urutan yang paling kecil jaraknya Bila node pertama sama dengan kondisi akhir (GOAL) maka pencarian selesai.

c. Contoh Kasus Pada 8-puzzle, satu kali proses evaluasi menggunakan Hill Climbing hanya akan melibatkan maksimal 4 state untuk kondisi initial state, dan maksimal 3 state untuk kondisi state selain initial state. Sehingga state space untuk algoritma ini dapat dikatakan relatif sangat kecil. Berikut adalah contoh bagaimana algortima Hill Climbing dijalankan untuk suatu kasus state tertentu. Perlu diingat bahwa proses evaluasi yang dilakukan akan selalu mengambil nilai heuristic yang paling kecil.

Daftar Pustaka

Majid, Abdul. 2004

Hill

Climbing

yang

diakses

di

situs

http://jidun12ispcom.blogspot.com/2010/04/hill-climbing.html pada tanggal 18 April 2012. Rinaldi, Munir, 2004. ALGORITMA BRANCH AND BOUND. Bandung: Institut Teknologi Bandung. Dr.Sutoyo, 2004. INTELEGENSI BUATAN TEORI DAN PEMROGRAMAN, Yogyakarta : GAVA MEDIA. Andik, Taufiq. 2010 8-puzzle Problem (bagian 2) yang diakses di situs pada

http://andiktaufiq.wordpress.com/2010/05/02/8-puzzle-problem-bagian-2 tanggal 18 April 2012.