TEKNIK PENCARIAN HEURISTIK
(HEURISTIC SEARCHING)
Teknik pencarian heuristik (heuristic searching)
merupakan suatu strategi untuk melakukan proses pencarian ruang keadaan (state space) suatu
problema secara selektif, yang memandu proses pencarian yang kita lakukan di sepanjang jalur
yang memiliki kemungkinan sukses paling besar, dan mengesampingkan usaha yang bodoh
dan memboroskan waktu.
Heuristik adalah sebuah teknik yang mengembangkan
efisiensi dalam proses pencarian, namum dengan kemungkinan mengorbankan kelengkapan
(completeness)
Fungsiheuristikdigunakan
untuk mengevaluasi keadaan-keadaan problema individual dan menentukan seberapa jauh
hal tersebut dapat digunakan untuk mendapatkan solusi yang diinginkan.
Jenis-jenis Heuristic:
· Generate
and Test
Metode ini
merupakan penggabungan antara depth-first search dengan pelacakan mundur
(backtracking), yaitu bergerak ke belakang menuju pada suatu keadaan awal.
Algoritma :
1.
Bangkitkan suatu kemungkinan solusi (membangkitkan suatu tititk tertentu atau
lintasan tertentu dari keadaan awal).
2. Uji untuk
melihat apakah node tersebut benar-benar merupakan solusinya dengan cara
membandingkan node terebut atau node akhir dari suatu lintasan yang
dipilih dengan kumpulan tujuan yang diharapkan.
3. Jika
solusi ditemukan, keluar. Jika tidak, ulangi kembali langkah pertama.
Contoh :
“Travelling Salesman Problem (TSP)”
*) Seorang
salesman ingin mengunjungi n kota. Jarak antara tiap-tiap kota sudah
diketahui. Kita ingin mengetahui ruter terpendek dimana setaip
kota hanya boleh dikkunjungi tepat 1 kali. Misalkan ada 4
kota dengan jarak antara tiap-tiap kota seperti berikut ini
Alur
pencarian dengan Generate and Test
Pencarian ke-
|
Lintasan
|
Panjang Lintasan
|
Lintasan terpilih
|
Panjang Lintasan terpilih
|
1
|
ABCD
|
19
|
ABCD
|
19
|
2
|
ABDC
|
18
|
ABDC
|
18
|
3
|
ACBD
|
12
|
ACBD
|
12
|
4
|
ACDB
|
13
|
ACBD
|
12
|
5
|
ADBC
|
16
|
ACBD
|
12
|
Dst…..
|
·
Hill Climbing
Metode ini hampir sama dengan metode
pembangkitan dan pengujian, hanya saja proses pengujian dilakukan dengan menggunakan
fungsi heuristic. Pembangkitan keadaan berikutnya tergantung pada feedback dari
prosedur pengetesan. Tes yang berupa fungsi heuristic ini akan menunjukkan
seberapa baiknya nilai terkaan yang diambil terhadap keadaan-keadaan
lainnyayang mungkin.
Algoritma:
1. Cari
operator yang belum pernah digunakan; gunakan operator ini untuk mendapatkan
keadaan yang baru.
a) Kerjakan
langkah-langkah berikut sampai solusinya ditemukan atau sampai tidak ada
operator baru yang akan diaplikasikan pada keadaan sekarang : Cari operator
yang belum digunakan; gunakan operator ini untuk mendapatkan keadaan yang baru.
b) Evaluasi
keadaan baru tersebut :
– Jika keadaan baru merupakan tujuan, keluar
– Jika bukan tujuan, namun nilainya lebih baik daripada keadaan sekarang, maka jadikan keadaan baru tersebut menjadi keadaan sekarang.
– Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi.
– Jika keadaan baru merupakan tujuan, keluar
– Jika bukan tujuan, namun nilainya lebih baik daripada keadaan sekarang, maka jadikan keadaan baru tersebut menjadi keadaan sekarang.
– Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan iterasi.
Contoh: TSP dengan Simple Hill Climbing
Disini ruang keadaan berisi semua kemungkinan lintasan yang mungkin. Operator
digunakan untuk menukar posisi kota-kota yang bersebelahan. Apabila ada n kota,
dan kita ingin mencari kombinasi lintasan dengan menukar posisi urutan 2 kota,
maka kita akan mendapatkan sebanyak n!/2!(n-2)! atau sebanyak 6 kombinasi.
Fungsi heuristic yang digunakan adalah panjang lintasan yang terjadi.
·
Means-End-Anlysis.
MEA adalah strategi penyelesaian
masalah yang diperkenalkan pertama kali dalam GPS (General Problem Solver)
[Newell & Simon, 1963]. Proses pencarian berdasarkan ruang masalah yang
menggabungkan aspek penalaran forward dan backward.
Perbedaan antara state current dan goal digunakan
untuk mengusulkan operator yang mengurangi perbedaan itu. Keterhubungan antara
operator dan perbedaan tsb disajikan sebagai pengetahuan dalam sistem (pada GPS
dikenal dengan Table of Connections) atau mungkin ditentukan sampai beberapa
pemeriksaan operator jika tindakan operator dapat dipenetrasi.
Contoh OPERATOR first-order predicate calculus dan
operator2 tertentu mengijinkan perbedaan korelasi task-independent terhadap
operator yang menguranginya.
Kapan pengetahuan ada tersedia mengenai pentingnya
perbedaan, perbedaan yang paling utama terpilih pertama lebih lanjut
meningkatkan rata-rata capaian dari MEA di atas strategi pencarian Brute-Force.
Bagaimanapun, bahkan tanpa pemesanan dari perbedaan menurut arti penting, MEA
meningkatkan metode pencarian heuristik lain (di rata-rata kasus) dengan
pemusatan pemecahan masalah pada perbedaan yang nyata antara current state
dengan goal-nya.
·
Best
First Search
Metode ini merupakan kombinasi dari
metode depthfirst search dan breadth-first search. Pada metode best-first
search, pencarian diperbolehkan mengunjungi node yang ada di level yang lebih
rendah, jika ternyata node pada level yang lebih tinggi ternyata memiliki nilai
heuristic yang lebih buruk.
Fungsi Heuristik yang digunakan merupakan prakiraan
(estimasi) cost dari initial state ke goal state, yang dinyatakan dengan
:
f’(n) = g(n) + h’(n)
o
f’ = Fungsi
evaluasi
o
g = cost
dari initial state ke current state
o
h’ =
prakiraan cost dari current state ke goal state
Contoh: Misalkan kita memiliki ruang pencarian seperti pada
gambar berikut. Node M merupakan keadaan awal dan node T merupakan tujuannya.
Biaya edge yang menghubungkan node M dengannode A adalah biaya yang dikeluarkan
untuk bergerak dari kota M ke kota A. Nilai g diperoleh berdasarkan biaya edge
minimal. Sedangkan nilai h’ di node A merupakan hasil perkiraan terhadap biaya
yang diperlukan dari node A untuk sampai ke tujuan. h’(n) bernilai ~ jika sudah
jelas tidak ada hubungan antara node n dengan node tujuan (jalan buntu). Kita
bisa merunut nilai untuk setiap node.
·
Constraint
Satisfaction
Problem
search standard :
– state adalah "black box“
– setiap struktur data yang mendukung fungsi successor, fungsi heuristik dan tes goal.
– state adalah "black box“
– setiap struktur data yang mendukung fungsi successor, fungsi heuristik dan tes goal.
CSP: state didefinisikan sebagai variabel Xi
dengan nilai dari domain Di
– Tes goal adalah sekumpulan constraint yang menspesifikasikan kombinasi dari nilai subset variabel.
– Tes goal adalah sekumpulan constraint yang menspesifikasikan kombinasi dari nilai subset variabel.
Contoh
sederhana adalah bahasa representasi formal.
CSP ini
merupakan algoritma general-purpose dengan kekuatan lebih daripada algoritma
pencarian standar.
Contoh : Pewarnaan Peta
Variabel WA,
NT, Q, NSW, V, SA, T
Domain Di =
{red,green,blue}
Constraints
: daerah yang bertetangga dekat harus memiliki warna yang berbeda.
Contoh WA ≠
NT, atau (WA,NT) {(red,green),(red,blue),(green,red),
(green,blue),(blue,red),(blue,green)}
Solusi
lengkap dan konsisten, contoh : WA = red, NT = green,Q = red,NSW = green,V =
red,SA = blue,T = green
Constraint Graf
Binary CSP biner : setiap constraint merelasikan dua
variabel
Graf Constraint : node adalah variabel, arc adalah
constraint
Graph adalah kumpulan dari simpul dan busur yang secara
matematis dinyatakan sebagai :
G = (V, E)
Dimana
G = Graph
V = Simpul atau Vertex, atau Node, atau Titik
E = Busur atau Edge, atau arc
G = (V, E)
Dimana
G = Graph
V = Simpul atau Vertex, atau Node, atau Titik
E = Busur atau Edge, atau arc
Sebuah graph mungkin hanya terdiri dari satu simpul
Sebuah graph belum tentu semua simpulnya terhubung dengan busur
Sebuah graph mungkin mempunyai simpul yang tak terhubung dengan simpul yang lain
Sebuah graph mungkin semua simpulnya saling berhubungan
Graph tak berarah (undirected graph atau non-directed graph) :
Urutan simpul dalam sebuah busur tidak dipentingkan. Mis busur e1 dapat disebut busur AB atau BA
Sebuah graph belum tentu semua simpulnya terhubung dengan busur
Sebuah graph mungkin mempunyai simpul yang tak terhubung dengan simpul yang lain
Sebuah graph mungkin semua simpulnya saling berhubungan
Graph tak berarah (undirected graph atau non-directed graph) :
Urutan simpul dalam sebuah busur tidak dipentingkan. Mis busur e1 dapat disebut busur AB atau BA
Graph berarah (directed graph) :
Urutan simpul mempunyai arti. Mis busur AB adalah e1 sedangkan busur BA adalah e8.
Graph Berbobot (Weighted Graph)
Jika setiap busur mempunyai nilai yang menyatakan hubungan antara 2 buah simpul, maka busur tersebut dinyatakan memiliki bobot.
Bobot sebuah busur dapat menyatakan panjang sebuah jalan dari 2 buah titik, jumlah rata-rata kendaraan perhari yang melalui sebuah jalan, dll.
Istilah pada graph
Urutan simpul mempunyai arti. Mis busur AB adalah e1 sedangkan busur BA adalah e8.
Graph Berbobot (Weighted Graph)
Jika setiap busur mempunyai nilai yang menyatakan hubungan antara 2 buah simpul, maka busur tersebut dinyatakan memiliki bobot.
Bobot sebuah busur dapat menyatakan panjang sebuah jalan dari 2 buah titik, jumlah rata-rata kendaraan perhari yang melalui sebuah jalan, dll.
Istilah pada graph
Incident
Jika e merupakan busur dengan simpul-simpulnya adalah v dan w yang ditulis e=(v,w), maka v dan w disebut “terletak” pada e, dan e disebut incident dengan v dan w.
Degree (derajat), indegree dan outdegree
Degree sebuah simpul adalah jumlah busur yang incident dengan simpul tersebut
Jika e merupakan busur dengan simpul-simpulnya adalah v dan w yang ditulis e=(v,w), maka v dan w disebut “terletak” pada e, dan e disebut incident dengan v dan w.
Degree (derajat), indegree dan outdegree
Degree sebuah simpul adalah jumlah busur yang incident dengan simpul tersebut
0 komentar:
Posting Komentar