metode pencarian dan pelacakan (prolog)

25
Metode Pencarian Dan Pelacakan Hal penting dalam menentukan keberhasilan sistem berdasarkan kecerdasan adalah dalam pencarian dan pencocokan. Pada dasarnya ada 2 teknik pencarian dan pelacakan yang digunakan, yaitu pencarian buta (blind search) dan pencarian terbimbing (heuristic search). 1. Pencarian Buta (Blind Search) A. Pencarian Melebar Pertama (Breadth-First Search) Pada metode Breadth-First Search, Semua node pada level n akan dikunjungi terlebih dahulu sebelum level n+1. Pencarian dimulai dari akar terus ke level 1 dari kiri ke kanan, kemudian ke level selanjutnya hingga solusi ditemukan (Gambar 1.0) 1

Upload: din-afriansyah

Post on 01-Jul-2015

988 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Metode Pencarian Dan Pelacakan (prolog)

Metode Pencarian Dan Pelacakan

Hal penting dalam menentukan keberhasilan sistem berdasarkan kecerdasan

adalah dalam pencarian dan pencocokan. Pada dasarnya ada 2 teknik pencarian dan

pelacakan yang digunakan, yaitu pencarian buta (blind search) dan pencarian

terbimbing (heuristic search).

1. Pencarian Buta (Blind Search)

A. Pencarian Melebar Pertama (Breadth-First Search)

Pada metode Breadth-First Search, Semua node pada level n akan dikunjungi

terlebih dahulu sebelum level n+1. Pencarian dimulai dari akar terus ke level 1 dari

kiri ke kanan, kemudian ke level selanjutnya hingga solusi ditemukan (Gambar 1.0)

Gambar 1.0 Metode Breadth-First Search

1

Page 2: Metode Pencarian Dan Pelacakan (prolog)

Algoritma

1. Buat suatu variabel Node_List dan tetapkan sebagai keadaan awal.

2. Kerjakan langkah-langkah berikut ini sampai tujuan tercapai atau Node_List

dalam keadaan kosong :

Hapus elemen pertama dari Node_List, sebut dengan nama C. Jika Node_List

kosong, keluar.

Pada setiap langkah yang aturannya cocok dengan C, kerjakan :

(i) Aplikasi aturan tersebut untuk membentuk suatu keadaan baru.

(ii) Jika keadaan awal adalah tujuan yang diharapkan,

sukses dan keluar.

(iii) Jika tidak demikian, tambahkan keadaan awal yang

baru tersebut pada akhir Node_List.

Keuntungan

1. Tidak akan menemui jalan buntu.

2. Menjamin ditemukannya solusi (jika solusinya memang ada) dan solusi yang

ditemukan pasti yang paling baik.

3. Jika ada satu solusi maka bread-first search akan menemukannya.

Kelemahannya

1. Membutuhkan memori yang cukup banyak.

2. Membutuhkan waktu yang cukup lama karena akan menguji n level untuk

mendapatkan solusi pada level yang ke-(n+1).

B. Pencarian mendalam pertama (Depth-First Search)

2

Page 3: Metode Pencarian Dan Pelacakan (prolog)

Proses pencarian 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 (Gambar 1.1).

Gambar 1.1 Metode Depth-First search

Algoritma

1. Jika keadaan awal merupakan tujuan, keluar (sukses).

2. Jika tidak demikian, kerjakan langkah-langkah berikut ini sampai tercapai

keadaan sukses atau gagal.

Bangkitkan successor C dari keadaan awal. Jika tidak ada successor,

maka akan terjadi kegagalan.

Panggil depth-first search dengan C sebagai keadaan awal.

Jika sukses berikan tanda sukses. Namun jika tidak, ulangi langkah-2

Keuntungan

1. Memori yang relatif kecil

3

C

A

B

Page 4: Metode Pencarian Dan Pelacakan (prolog)

2. Secara kebetulan, akan menemukan solusi tanpa harus menguji lebih banyak

lagi.

Kelemahan

1. Memungkinkan tidak ditemukannya tujuan yang diharapkan.

2. Hanya akan mendapatkan 1 solusi pada setiap pencarian.

2. Pencarian Heuristik (Heuristic Search)

Pencarian buta tidak selalu dapat diterapkan dengan baik, hal ini disebabkan

waktu aksesnya yang cukup lama serta besarnya memori yang diperlukan. Metode

heuristic search diharapkan bisa menyelesaikan permasalahan yang lebih besar.

Metode heuristic search menggunakan suatu fungsi yang menghitung biaya perkiraan

(estimasi) dari suatu simpul tertentu menuju ke simpul tujuan disebut fungsi heuristic.

Sebagai contoh aplikasi yang menggunakan fungsi heuristic : Google, Deep Blue

Chess Machine.

Misalkan pada kasus 8 puzzle (Gambar 2.0)

Ada 4 operator yang dapat kita gunakan 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

4

Page 5: Metode Pencarian Dan Pelacakan (prolog)

Keadaan awal                           Tujuan

Gambar 2.0 Kasus 8 puzzle

Tujuan

Gambar 2.1 Langkah awal kasus 8-puzzle

1 2 3

7 8 4

6 5

1 2 3

8 4

7 6 5

1 2 3

8 4

7 6 5

1 2 3

8 4

7 6 5

1 2 3

7 8 4

6 5

1 2 3

7 4

6 8 5

1 2 3

7 8 4

6 5

5

Page 6: Metode Pencarian Dan Pelacakan (prolog)

Langkah Awal hanya 3 operator yang bisa digunakan ubin kosong digeser ke

kiri, ke kanan dan ke atas. Jika menggunakan pencarian buta, tidak perlu mengetahui

operasi apa yang akan dikerjakan (sembarang). Pada pencarian heuristik perlu

diberikan informasi khusus dalam domain tersebut.

Informasi yang bisa diberikan, antara lain:

Untuk jumlah ubin yang menempati posisi yang benar jumlah yang lebih

tinggi adalah yang lebih diharapkan (lebih baik), Gambar 2.2.

Tujuan

h=6 h=4 h=5

Gambar 2.2 Fungsi heuristic pertama kasus 8-puzzle

Dari 3 operator yang digunakan, diperoleh hasil: pergeseran ubin kosong ke

kiri bernilai 6 (h=6), pergeseran kosong ke kanan bernilai 4 (h=4), dan pergeseran

ubin kosong ke atas bernilai 5 (h=5). Sehingga nilai bilangannya adalah 6 (terbesar).

1 2 3

8 4

7 6 5

1 2 3

8 4

7 6 5

1 2 3

7 8 4

6 5

1 2 3

7 8 4

6 5

1 2 3

7 4

6 8 5

6

Page 7: Metode Pencarian Dan Pelacakan (prolog)

Sehingga langkah selanjutnya yang harus dilakukan adalah menggeser ubin kosong

ke kiri.

Untuk jumlah ubin yang menempati posisi yang salah jumlah yang lebih kecil

adalah yang diharapkan (lebih baik), Gambar 2.3.

Tujuan

h=2 h=4 h=3

Gambar 2.3 Fungsi heuristic kedua kasus 8-puzzle

1 2 3

8 4

7 6 5

1 2 3

8 4

7 6 5

1 2 3

7 4

6 8 5

1 2 3

7 8 4

6 51 2 3

7 8 4

6 5

7

Page 8: Metode Pencarian Dan Pelacakan (prolog)

Nilai terbaik diperoleh dengan menggeser ubin kosong ke kiri (h=2). Karena nilai ini

paling kecil diantara nilai lainnya (4 & 3). Sehingga langkah selanjutnya adalah

menggeser ubin kosong ke kiri.

Menghitung total gerakan yang diperlukan untuk mencapai tujuan jumlah

yang lebih kecil adalah yang diharapkan (lebih baik), Gambar 2.4.

Tujuan

h=2

h=4 h=4

1 2 3

8 4

7 6 5

1 2 3

8 4

7 6 5

1 2 3

8 4

7 6 5

1 2 3

8 4

7 6 5

1 2 3

8 4

7 6 5

8

Page 9: Metode Pencarian Dan Pelacakan (prolog)

Gambar 2.4 Fungsi heuristic ketiga kasus 8-puzzle

Nilai terbaik adalah 2 (h=2) yang diperoleh dengan menggeser ubin kosong ke kiri.

Nilai ini paling kecil dibandingkan dengan nilai lainnya (4). Sehingga menggeser

ubin ke kiri adalah yang harus dilakukan selanjutnya.

Ada 4 metode pencarian heuristic:

A. Pembangkit & Pengujian (Generate and Test)

B. Pendakian Bukit (Hill Climbing)

C. Pencarian Terbaik Pertama (Best First Search)

D. Simulated Annealing

A. Pembangkit & Pengujian (Generate and Test)

Pada prinsipnya metode ini merupakan penggabungan antara depth-first

search dengan pelacakan mundur (backtracking), yaitu bergerak ke belakang menuju

pada suatu keadaan awal. Nilai pengujian berupa ‘ya’ atau ‘tidak’.

Algoritma

1. Bangkitkan suatu kemungkinan solusi (membangkitkan suatu titik tertentu

atau lintasan tertentu dari keadaan awal).

2. Uji untuk melihat apakah node tersebut benar-benar merupakan solusinya

dengan cara membandingkan node tersebut atau node akhir dari suatu lintasan

yang dipilih dengan kumpulan tujuan yang diharapkan.

3. Jika solusi ditemukan, keluar. Jika tidak, ulangi kembali langkah yang

pertama.

9

Page 10: Metode Pencarian Dan Pelacakan (prolog)

Contoh : Traveling Salesman Problem (TSP)

Seorang salesman ingin mengunjungi n kota. Jarak antara tiap-tiap kota sudah

diketahui. Ingin diketahui rute terpendek dimana setiap kota hanya boleh dikunjungi

tepat 1 kali. Disini, penyelesaian dengan menggunakan generate & test akan

membangkitkan semua solusi yang mungkin denagn menyusun kota-kota dalam

urutan abjad, yaitu:

– A – B – C – D

– A – B – D – C

– A – C – B – D

– A – C – D – B, dll

Kelemahan dari Pembangkit & Pengujian (Generate and Test) yaitu ;

– Perlu membangkitkan semua kemungkinan sebelum dilakukan pengujian

– Membutuhkan waktu yang cukup lama dalam pencariannya.

B. Pendakian Bukit (Hill Climbing)

Metode ini hampir sama dengan metode pembangkitan & pengujian, hanya saja

proses pengujian dilakukan dengan menggunakan fungsi heuristik. Pembangkitan

keadaan berikutnya sangat 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.

B.1. Simple Hill Climbing

Algoritma

10

Page 11: Metode Pencarian Dan Pelacakan (prolog)

1. Mulai dari keadaan awal, lakukan pengujian: jika merupakan tujuan, maka

berhenti; dan jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan

awal.

2. Kerjakan langkah-langkah berikut sampai solusinya ditemukan, atau sampai

tidak ada operator baru yang akan diaplikasikan pada keadaan sekarang:

(a) Cari operator yang belum pernah digunakan; gunakan operator ini untuk

mendapatkan keadaan yang baru.

(b) Evaluasi keadaan baru tersebut.

(i) Jika keadaan baru merupakan tujuan, keluar.

(ii) Jika bukan tujuan, namun nilainya lebih baik daripada keadaan

sekarang, maka jadikan keadaan baru tersebut menjadi keadaan

sekarang.

(iii) Jika keadaan baru tidak lebih baik daripada keadaan sekarang,

maka lanjutkan itera

Pada simple hill climbing ini, ada 3 masalah yang mungkin, yaitu:

Algoritma akan berhenti kalau mencapai nilai optimum local.

Urutan penggunaan operator akan sangat berpengaruh pada pemuan

solusi.

Tidak diijinkan untuk melihat satupun langkah sebelumnya.

Contoh : Traveling Salesman Problem dengan simple hill climbing

Disini ruang keadaan berisi semua kemungkinan lintasan yang mungkin. Operator

digunakan untuk menukar posisi kota-kota yang bersebelahan. Fungsi heuristic yang

digunakan adalah panjang lintasan yang terjadi.

11

Page 12: Metode Pencarian Dan Pelacakan (prolog)

Operator : Tukar kota ke-i dengan kota ke-j (Tk i,j)

• Untuk 4 kota:

– Tk 1,2 : tukar kota ke-1 dengan kota ke-2.

– Tk 1,3 : tukar kota ke-1 dengan kota ke-3.

– Tk 1,4 : tukar kota ke-1 dengan kota ke-4.

– Tk 2,3 : tukar kota ke-2 dengan kota ke-3.

– Tk 2,4 : tukar kota ke-2 dengan kota ke-4.

– Tk 3,4 : tukar kota ke-3 dengan kota ke-4.

B.2 Steepest Ascent Hill Climbing

Steepest-ascent hill climbing sebenarnya hampir sama dengan simple hill

climbing, hanya saja gerakan pencarian tidak dimulai dari posisi paling kiri. Gerakan

selanjutnya dicari berdasarkan nilai heuristik terbaik. Dalam hal ini urutan

penggunaan operator tidak menentukan penemuan solusi.

Algoritma

1. Mulai dari keadaan awal, lakukan pengujian: jika merupakan tujuan, maka

berhenti; dan jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan

awal.

2. Kerjakan hingga tujuan tercapai atau hingga iterasi tidak memberikan perubahan

pada keadaan sekarang.

a. Tentukan SUCC sebagai nilai heuristic terbaik dari successor-successor.

b. Kerjakan untuk tiap operator yang digunakan oleh keadaan sekarang:

12

Page 13: Metode Pencarian Dan Pelacakan (prolog)

Gunakan operator tersebut dan bentuk keadaan baru..

Evaluasi keadaan baru tersebut. Jika merupakan tujuan, keluar. Jika bukan,

bandingkan nilai heuristiknya dengan SUCC. Jika lebih baik, jadikan nilai

heuristic keadaan baru tersebut sebagai SUCC. Namun jika tidak lebih baik,

nilai SUCC tidak berubah..

c. Jika SUCC lebih baik daripada nilai heuristic keadaan sekarang, ubah node

SUCC menjadi keadaan sekarang.

Pada steepest-ascent hill climbing ini, ada 3 masalah yang mungkin, yaitu:

Local optimium: keadaan semua tetangga lebih buruk atau sama dengan

keadaan dirinya.

Plateau: keadaan semua tetangga sama dengan keadaan dirinya.

Ridge: local optimum yang lebih disebabkan karena ketidak mampuan untuk

menggunakan 2 operator sekaligus.

C. Pencarian Terbaik Pertama (Best First Search)

Metode best-first search ini merupakan kombinasi dari metode depth-first

search dan metode breadth-first search dengan mengambil kelebihan dari kedua

metode tersebut. Apabila pada pencarian dengan metode hill climbing tidak

diperbolehkan untuk kembali ke node pada level yang lebih rendah meskipun node

pada level yang lebih rendah tersebut memiliki nilai heuristik yang lebih baik, lain

halnya dengan metode best-first search ini. Pada metode best-first search, pencarian

diperbolehkan mengunjungi node yang ada di level yang lebih rendah, jika ternyata

node pada lebih yang lebih tinggi ternyata memiliki nilai heuristik yang lebih buruk.

C.1. OR Graph

13

Page 14: Metode Pencarian Dan Pelacakan (prolog)

Pada metode depth-first search mampu menemukan solusi tanpa harus

mengeksplorasi semua cabang dalam level yang sama. Pada metode breadth-first

search juga cukup bagus, karena mampu mengantisipasi adanya lintasan yang

mengalami jalan buntu. Kombinasi medua metode ini sangat dimungkinkan, dimana

pencarian dilakukan dengan hanya melihat satu lintasan, namun demikian masih

memungkinkan untuk berpindah ke lintasan lain apabila lintasan lain tersebut lebih

menjanjikan untuk mendapatkan solusi.

Untuk mengimplementasikan metode ini dengan menggunakan graph keadaan,

dibutuhkan 2 antrian yang berisi node-node solusi.

OPEN, berisi node,node yang sudah dibangkitkan, namun belum diuji.

Umumnya berupa antrian berprioritas yang berisi elemen-elemen dengan

nilai heuristik tertinggi.

CLOSED berisi node-node yang sudah diuji .

Algoritma

1. Tempatkan node awal A pada antrian OPEN.

2. Kerjakan langkah-langkah berikut hingga tujuan ditemukan atau antrian OPEN

sudah kosong:

a. Ambil node terbaik dari OPEN;

b. Bangkitkan semua successornya;

c. Untuk tiap-tiap successor kerjakan:

14

Page 15: Metode Pencarian Dan Pelacakan (prolog)

A

D

A

CB

E

DCB

A

G

DCB

A

H E F

F

(i) Jika node tersebut belum pernah dibangkitkan sebelumnya,

evaluasi node tersebut dan masukkan ke OPEN;

(ii) Jika node tersebut sudah pernah dibangkitkan sebelumnya, ubah

parent jika lintasan baru lebih menjanjikan. Hapus node tersebut

dari antrian OPEN.

Gambar 2.27 menunjukkan metode pencarian terbaik pertama. Diasumsikan bahwa

node dengan nilai yang lebih besar, memiliki nilai evaluasi yang lebih baik. Pada saat

keadaan awal, antrian berisi A. Pengujian dilakukan pada level pertama, node D

memiliki nilai terbaik, sehingga menempati antrian pertama, disusul dengan C dan B.

Node D memiliki cabang E dan F yang masing-masing bernilai 2 dan 4. Dengan

demikian C merupakan pilihan terbaik dengan menempati antrian pertama. Demikian

seterusnya.

15

Page 16: Metode Pencarian Dan Pelacakan (prolog)

Gambar 2.27 Metode Best-First Search

C.2. Algoritma A*

Algoritma A* merupakan perbaikan dari metode best-first search dengan

memodifikasi fungsi heuristiknya. A* akan meminimumkan total biaya lintasan. Pada

kondisi yang tepat, A* akan memberikan solusi yang terbaik dalam waktu yang

optimal.

Funsi f sebagai estimasi evaluasi terhadap node n, dapat dituliskan:

f(n) = g(n) + h’(n)

denagan :

f(n) = fungsi evaluasi

g(n) = biaya yang sudah dikeluarkan dari keadaan awal sampai keadaan n.

h’(n) = estimasi biaya untuk sampai pada suatu tujuan mulai dari n.

Dengan demikian dapat dikatakan bahwa:

Apabila h’ = h berarti proses pelacakan sudah sampai pada suatu tujuan.

16

Page 17: Metode Pencarian Dan Pelacakan (prolog)

Apabila g = h’ = 0, maka f random, artinya system tidak dapat dikendalikan

oleh apapun.

Apabila g = k (konstanta biasanya 1) dan h’ = 0 berarti system menggunakan

breadth-first search.

Pada Algoritma A*, juga dibutuhkan 2 antrian, yaitu:

OPEN, yang berisi node-node yang sudah dibangkitkan, sudah memiliki

fungsi heuristic namun belum diuji.

CLOSED berisi node-node yang sudah diuji.

D. Simulated Annealing

Ide dasar simulated annealing terbentuk dari pemrosesan logam. Annealing

(memanaskan kemudian mendinginkan) dalam pemrosesan logam ini adalah suatu

proses bagaimana membuat bentuk cair berangsur-angsur menjadi bentuk yang lebih

padat seiring dengan penurunan temperatur. Simulated annealing biasanya digunakan

untuk penyelesaian masalah yang mana perubahan keadaan dari suatu kondisi ke

kondisi yang lainnya  membutuhkan ruang yang sangat luas, misalkan perubahan

gerakan dengan menggunakan permutasi pada masalah Travelling Salesman Problem.

Pada simulated annealing, ada 3 parameter yang sangat menentukan, yaitu: tetangga,

gain, temperatur, pembangkitan bilangan random. Tetangga akan sangat berperan

dalam membentuk perubahan pada solusi sekarang. Pembangkitan bilangan random

akan berimplikasi adanya probabilitas.

Algoritma

Algoritma Simulated Annealing adalah sebagai berikut:

1. Evaluasi keadaan awal. Jika keadaan awal merupakan tujuan, maka  pencarian

berhasil dan KELUAR. Jika tidak demikian, lanjutkan dengan menetapkan keadaan

awal sebagai kondisi sekarang.

2. Inisialisasi BEST_SO_FAR untuk keadaan sekarang.

17

Page 18: Metode Pencarian Dan Pelacakan (prolog)

3. Inisialisasi T sesuai dengan annealing schedule.

4. Kerjakan hingga solusi ditemukan atau sudah tidak ada operator baru lagi akan

diaplikasikan ke kondisi sekarang.

a. Gunakan operator yang belum pernah digunakan tersebut untuk menghasilkan

kondisi baru.

b. Evaluasi kondisi yang baru dengan menghitung:

∆E = nilai sekarang – nilai keadaan baru.

Jika kondisi baru merupakan tujuan, maka pencarian berhasil dan

KELUAR.

Jika bukan tujuan, namun memiliki nilai yang lebih baik daripada

kondisi sekarang, maka tetapkan kondisi baru sebagai kondisi

sekarang. Demikian pula tetapkan BEST_SO_FAR untuk kondisi

yang baru tadi.

Jika nilai kondisi baru tidak lebih baik dari kondisi sekarang, maka

tetapkan

  kondisi baru sebagai kondisi sekarang dengan probabilitas:

p’=e-∆E/T

Langkah ini biasanya dikerjakan dengan membangkitkan suatu

bilangan random r pada range [0 1]. Jika r < p’, maka perubahan

kondisi baru menjadi kondisi sekarang diperbolehkan. Namun jika

tidak demikian, maka tidak akan dikerjakan apapun.

c. Perbaiki T sesuai dengan annealing scheduling.

5. BEST_SO_FAR adalah jawaban yang dimaksudkan.

Operator untuk Penyelesaian TSP dengan Simulated Annealing.

Ada beberapa operator yang bisa digunakan untuk penyelesaian TSP dengan

Simulated Annealing. Berikut adalah salah satu contoh operator untuk menentukan

jalur. Misalkan jumlah kota yang akan dikunjungi adalah NC.

a. Kota-kota disimpan pada larik L.

18

Page 19: Metode Pencarian Dan Pelacakan (prolog)

b. Kita bangkitkan 2 bilangan random antara 1 sampai NC, misalkan kedua bilangan

itu adalah N1 dan N2 dengan N1 < N2.

c. Depan = L(1) sampai L(N1-1).

d. Tengah = L(N1) sampai L(N2).

e. Belakang = L(N2+1) sampai L(NC).

f. Bangkitkan bilangan random r, apabila r < 0,5; maka:

o DepanBaru = Depan.

o TengahBaru = Tengah dengan urutan dibalik.

o BelakangBaru = Belakang.

o Lbaru = [DepanBaru TengahBaru BelakangBaru]

g. Jika r = 0,5; maka kerjakan:

o Sementara = [Depan Belakang], misalkan memiliki M elemen.

o Bangkitkan bilangan random r dengan nilai antara 1 sampai M.

o DepanBaru = Sementara(1:r).

o TengahBaru = Tengah.

o BelakangBaru = Sementara(r+1:M).

o Lbaru = [DepanBaru TengahBaru BelakangBaru]

19