metode hill climbing - web viewmisalkan biaya untuk tiap edge=l (g=1), masing-masing node b, c, dan...

32
Metode Hill Climbing Penyusun: Denny Agustiawan

Upload: phungngoc

Post on 04-Feb-2018

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

Metode Hill ClimbingPenyusun:

Denny Agustiawan

Page 2: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

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 padafeedback dari prosedur pengetesan. Tes yang berupa fungsi heuristic ini akan

menunjukkan seberapa baiknya nilai terkaan yang diambil terhadap keadaan-keadaan lainnya

yang mungkin.

B.L. Simple Hill Climbing

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 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 iterasi.

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

o Algoritma akan berhenti kalau mencapai nilai optimum lokal.

o Urutan penggunaan operator akan sangat berprngaruh pada penemuan solusi.

. Tidak diijinkan untuk melihat satupun langkah sebelumnya.

Page 3: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

Contoh 2.4: Traveling Salesman Problem dengan eimple hill climbing.

Disini ruang keadaan berisi semua kemungkinan lintasan yang mungkin. Operator digunakan

untuk menukar posisi kota-kota yang bersebelahan. Fungsi heuristik yang digunakan adalah

panjang

lintasan yang terjadi.

Operator yang akan kita gunakan, adalah menukar urutan posisi 2 kota dalam suatu lintasan.

Apabila ada n kota, dan kita ingin mencari kombinasi lintasan dengan menukar posisi urutan 2

kota,

maka kita akan mendapatkan sebanyak : n!

2t(n-2)l

Sehingga kalau ada 4 kota, kita bisa memperoleh :

kombinasi.

Keenam kombinasi ini akan kita pakai semuanya sebagai operator,

yaitu:

* Tukar 1, 2 (menukar urutan posisi kota ke-1 dengan kota ke-2).

* Tukar 2, 3 (menukar urutan posisi kota ke-2 dengan kota ke-3).

Page 4: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

* Tukar 3, 4 (menukar urutan posisi kota ke-3 dengan kota ke-4).

* Tukar 4, 1 (menukar urutan posisi kota ke-4 dengan kota ke-1).

* Tukar 2, 4 (menukar urutan posisi kota ke-2 dengan kota ke-4).

* Tukar 1, 3 (menukar urutan posisi kota ke-1 dengan kota ke-3).

Pada Gambar 2.22 terlihat bahwa, pada keadaan awal, lintasan terpilih adalah ABCD (=19). Pada

level pertama, hill climbing akan mengunjungi BACD (=17) yang ternyata memiliki nilai

heuristic lebih kecil dibandingkan dengan ABCD (17<19), sehingga BACD menjadi pilihan

selanjutnya dengan operator terpakai Tukar1,2. Pada level kedua, hill climbing akan mengunjung

ABCD. Karena operator Tukar 1, 2 sudah digunakan oleh BACD, maka dipilih node yang lain

yaitu BCAD (=15). Karena nilai heuristik BCAD lebih kecil dibanding dengan BACD (15<17),

maka node BCAD akan menjadi pilihan selanjutnya dengan operator Tukar2,3. Kemudian hill

climbing akan mengunjungi CBAD (=20). Karena nilai heuristik CBAD lebih besar jika

dibanding dengan BCAD (20>17), maka dipilih node lain. Pencarian menuju ke node BACD,

karena operator Tukar2,3 sudah pernah digunakan oleh BCAD, maka dipilih node lain.

Kunjungan berikutnya ke node BCDA (=18). Niiai inipun masih lebih besar dari niiai heuristic

BCAD, sehingga dipilih node lain. Node vang dikunjungi berikutnya adalah DCAB (=19). Nilai

heuristic DCAB ternyata juga lebih besar dibanding dengan BCAD, sehingga pencarian

dilarrjutkan di node lainnya lagi, yaitu BDAC (=14). Nilai heuristik ini sudah lebih kecil

daripada nilai heuristik node BCAD (14<15), maka sekarang node ini yang akan diekplorasi.

Pencarian pertama ditemukan node DBAC (=21), yang lebih besar daripada nilai BDAC. Nilai

heuristik yang lebih kecil diperoleh pada node BDCA (=13). Sehingga node BDCA ini akan

diekplorasi. Pencarian pertama sudah mendapatkan node dengan nilai heuristik yang kebih kecil,

yaitu DBCA (=12). Sehingga node ini diekplorasi juga. Dari hasil ekplorasi dengan pemakaian

semua operator, ternyata sudah tidak ada node yang memiliki nilai heuristik yang lebih kecil

disbanding dengan nilai heuristik DBCA, sehingga sebenarnya node DBCA (=12) inilah lintasan

terpendek yang kita cari (SOLUSI). Misalkan kita tidak menggunakan semua operator,

melainkan kita

hanya menggunakan 4 operator pertama saja, yaitu :

* Tukar 1,2 (menukar urutan posisi kota ke'1 dengan kota ke'2).

* Tukar 2, 3 (menukar urutan posisi kota ke-2 dengan kota ke'3).

Page 5: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

* Tukar 3,4 (menukar urutan posisi kota ke-3 dengan kota ke'4).

* Tukar 4, 1 (menukar urutan posisi kota ke-4 dengan kota ke'l).

maka pencarian dengan simple hill climbing ini dapat dilihat pada Gambar 2.23. Lintasan

terpendek yang diperoleh adalah B-C-A-D yaitu sebesar 15. Disini kita akan terjebak pada nilai

minimum local yang disebabkan oleh kurangnya operator yang kita gunakan. Kita tidak dapat

memperoleh nilai minimum globalnya yaitu sebesar 12.

B.2. SteepesLAscent Hill Climbing

Steepest-ascenhti II climbing sebenarnyah ampir sama dengan sirnple hitt ctimbing, hanya saja

gerakan pencarian tidak dimulai dari posisi paling kiri. Gerakan selanjutnya dicari berdasarkan

nilai heuristic 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.

Page 6: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

a. Tentukan succ sebagai nilai heuristik terbaik dari successor-successor.

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

i. Gunakan operator tersebut dan bentuk keadaan baru.

ii. 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 heuristik keadaan sekarang, ubah node suCC menjadi

keadaan sekarang.

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

yaitu:

- Local optimum: keadaan semua tetangga lebih buruk atau sama dengan keadaan dirinya.

- Plateou: keadaan semua tetangga sama dengan keadaan dirinya.

- Ridgez local optimum yang lebih disebabkan karena ketidakmampuan untuk menggunakan 2

operator sekaligus.

Pada Gamb at 2.24, terlihat bahwa, keaclaan awal, iintasan terpiiih adalah ABCD (19). Pada

level pertama, hili climbing akan rnemiiih nilai heuristik terbaik dari keenam succesor yang ada,

yaitu: BACD(17), ACBD(12), ABDC(I8), DBCA(12), ADCB (18) atau CBAD(20). Tentu saja

yang terpilih adalah ACBD, karena memiliki nilai heuristik paling kecil (=12;. Dari ACBD ini

akan dipilih nilai heuristik terbaik dari succesornya yaitu: CABD(15), ABCD(19), ACDB(13),

DCBA(19), ADBC(16) atau BCAD(15). Ternyata dari keenam successor tersebut memiliki nilai

Page 7: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

heuristik yang lebih besar disbanding dengan ACBD. Sehingga tidak akan ada perubahan nilai

keadaan (tetap ACBD). Hasil yang diperoleh, lintasannya adalah ACBD (12).

Contoh 2.6:8-puzzle dengan steepest a,scent hill climbing.

Pada permainan 8-puzzle, keadaan awal dan tujuan adalah sebagai

berikut:

Operator yang digunakan untuk menggerakkan dari satu keadaan ke

keadaan berikutnya adalah:

* Ubin kosongkekanan

* Ubin kosong ke kiri

* Ubin kosong ke atas

* Ubin kosong ke bawah

Dengan menggunakan bentuk pohon untuk merepresentasikan ruang keadaan, gunakanlah

metode Stepest Ascent Hill Climblng untuk mencari langkah-langkah yang harus ditempuh dari

keadaan awal sampai mendapatkan tujuan. Fungsi heuristik yang digunakan adalah jumlah ubin

yang menempati posisi yang benar.

Page 8: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

Pada Gambar 2.26 terlihat bahwa semula ada 3 operator yang bias digunakan, yaitu ubin kosong

digeser ke kanan, kiri dan bawah. Masing-rnasing kondisi hasil dari implementasi operator

memberikan nilai heuristik 4, 6, dan 5. Nilai heuristik terbesar adalah 6, sehingga kondisi kedua

yang dipilih. Pada tahap kedua, operator yang bias digunakan hanya 2, yaitu ubin kosong digeser

ke kanan dan ke bawah. masing-masing dengan nilai heuristik 5 dan 7. Nilai heuristic yang

dihasilkan adalah 7, dan kondisi ini dipilih. Pada tahap ketiga, ada 3 operator yang digunakan,

yaibu ubin kosong digeser ke atas, kanan, dan bawah. Masing-masing kondisi memiliki nilai

heuristik 6, 8, dan 6. Karena nilai 8 merupakan solusi, maka pencarian telah berakhir.

C. Pencarian Terbaik Pertama (Best-First Search)

Metode best-first search ini merupakan kombinasi dari rnetode 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-iirst search,

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

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

Page 9: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

C.1. OR Graph

Pada metode depth-first search mampu menernukan 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 kedua metode

ini sangat dimungkinkan, dirnana pencarian dilakukan dengan hanya melihat satu lintasan,

namun dernikian masih memungkinkan untuk berpindah ke lintasan lain apabila lintasan lain

tersebut lebih menjanjikan untuk mendapatkan solusi. Untuk mengimplementasikan metode ini

dengan mengunakan graph keadaan, dibutuhkan 2 antrian yang herisi node-node, yaitu:

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

namun belum diuji. Umumnya berupa antrian berprioritas yang berisi elemen-elemen dengan

nilai heuristik tertinggi.

- CLOSED berisi node-node yang sudah diuji. Disamping 2 antrian tersebut, kita juga harus

memiliki fungsi heuristik yang akan mengestimasi seberapa baik dibangkitkannya setiap node.

Fungsi f(n) merupakan pendekatan dari fungsi f(n) yang merupakan fungsi evaluasi yang

sebenarnya terhadap node n.Biasanya fungsi f(n) merupakan kombinasi dari 2 komponen, yaitu

g(n) dan h'(n). Fungsi g(n) merupakan biaya yang dikeluarkan dari keadaan awal sampai ke node

n. Nilai yang diperoleh g(n) bukan merupakan hasil estimasi, namun merupakan nilai eksak yang

diperoleh dengan cara menjumlahkan total biaya yang telah dikeluarkan dari keadaan awal

sampai ke node n. Apabila ada beberapa lintasan dari keadaan awal ke node g tersebut, maka kita

ambil lintasan terbaiknya. Fungsi h'(n) merupakan estimasi tambahan biaya yang harus

dikeluarkan dari node n sampai mendapatkan tujuan.

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:

I Jika node tersebut belum pernah dibangkitkan sebelumnva. evaluasi node tersebut dan

masukkan ke OPEN

ii. Jika node tersebut sudah pernah dibangkitkan sebelumnya,ubah parent jika hntasan baru lebih

menjanjikan.Hapus node tersebut dari antrian OPEN.

Page 10: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

Gambar 2..27 rnenunjukkan metode pencarian terbaik pertama. Diasurnsiknn bahwa node

dengan nilai yang lebih besar, memiliki nilai evaluasi yang lebh baik. Pada saat keadaan awal,

antrian berisi

A. Pengujian dilakukan pada level pertama, node D merniliki nilai terbaik, sehingga menempati

antrian pertama, disusul dengan C dan

B. Node D memiiiki cabang E dan F yang masing-rnasing bernilai 2 dan 4. Dengan demikian C

merupakan pilihan terbaik dengan menempati antrian pertama. Demikian seterusnya.

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. Fungsi f sebagai estimasi fungsi

evaluasi terhadap node n, dapatdituliskan:

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

dengan:

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:

o Apabila h' = h, berarti proses pelacakan sudah sampai pada suatu tujuan.

Page 11: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

o Apabila g = h' = 0, maka dikendalikan oleh apapun. f random, artinya sistem tidak dapat r

Apabila g=k (konstanta biasanya menggunakan breadth first search.

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

- OPEN,yang berisi node.node yang sudah dibangkitkan, sudah memiliki fungsi heuristik

namun belum diuji.

- CLOSED berisi node-node yang sudah diuji

Sebelum kita menuju ke algoritma A* lebih lanjut, akan dibahasterlebih dahulu tentang

algoritma A.

Algoritma A:

1. Set: OPEN={S}, dan CLOSED=0, dengan S adalah node yang dipilih sebagai keadaan awal.

2. Kerjakan jika OPEN belum kosong:

a.Cari node n dari OPEN dimana nilai f(n) minimal.Kemudian tempatkan n Pada CLOSED.

b. Jika n adalah node tujuan, keluar. SUKSES.

c. Ekspan node n keanak-anaknya.

d. Kerjakan untuk setiap anak n, yaitu n':

i. Jika n belum ada di OPEN atau CLOSED, maka:

1. Masukkan n ke OPEN' Kemudian set backpointerdari n ke n.

2. Hitung:

a. h(n);

b. g(n) = g(n)+c(n,n); dengan c(n,n) adalah biaya dari n ke n', dan

c. f(n) = g(n)+h(n).

ii. Jika n'telah ada di OPEN atau CLOSED dan jika g(n) lebih kecil (untuk versi n'yang

baru), maka:

1. Buang versi lama n'.

2. Ambil n'di OPEN, dan set backpointer dari n' ke n.

Algoritma A* sebenarnya merupakan pengembangan dari algoritma A, dengan batasan bahwa

h(n) < h*(n), dengan:

o h(n) = biaya yang sebenarnya dari biaya minimal lintasan dari n ke sembarang tujuan.

o g(n) = biaya yang sebenarnya dari biaya minimal lintasan dari S ke n.

o f(n) = h(n) + g(n); adalah biaya ysng sebenarnya dari biaya minimum solusi lintasan dari S ke

sembarang tujuan yang melalui n.

Page 12: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

Nilai h dapat diterima jika h'(n) s h(n). Pencarian dengan algoritma A* ini akan lebih sempurna

jika faktor percabangannya terbatas, dan untuk setiap operator memiliki biaya yang bernilai

positif (total

jumlah node dengan h'(.) < h(tujuan) terbatas.

Contoh 2.7:

Misalkan kita memiliki ruang pencarian seperti terlihat pada Gambar 2.28. Node M merupakan

keadaan awal, dan node T merupakan tujuannya. Biaya edge yang menghubungkan node M

dengan node A

adalah biaya yang dikeluarkan dari untuk bergerak dari kota M ke kota A. Nilai g diperoleh

berdasarkan biaya edge minimal. Sedangkan nilai h' di node A merupakan nilai perkiraan

(estimasi) terhadap

biaya yang harus diperlukan dari node A untuk sampai ke tujuan (nilai ini tidak menjamin

keberadaan solusi, hanya perkiraan saja). h'(n) bernilai co jika sudah jelas tidak ada hubungan

antara node n

dengan node tujuan (alan buntu). Kita bisa merunut nilai untuk setiap node seperti terlihat pada

Tabel 2.6.

Pada Tabel 2.6 tersebut dapat dilihat bahwa, karena h(n) < h(n) untuk setiap n, maka nilai h dapat

diterima.

Page 13: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

Apabila kita menggunakan fungsi evaluasi: f(n) = h'(n), maka solusi yang didapat adalah lintasan

terpendek: M-C-H-T dengan biaya sebesar 7. Alur penelusuran dapat dilihat pada Tabel 2.7.

Apabila masalah ini kita selesaikan dengan menggunakan Algoritma A*, dengan fungsi evaluasi:

f(n) = g(n) + h'(n), maka solusi yang didapat adalah lintasan terpendek: M-C-H-T dengan biaya

sebesar 7. Alur penelusuran dapat dilihat pada Tabel 2.8.

Page 14: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

Dengan menggunakan Algoritma A* ini, nilai h' dari pelacakan yang terjadi mungkin di bawah

dari perkiraan (underestimate) atau bias jadi di atas dari perkiraan (overestirnate) terhadap nilai

h.

Gambar 2.29 menunjukkan nilai h' yang underestimote terhadap h. Misalkan biaya untuk tiap

edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan

5, maka akan

dipilih jalur dengan biaya terendah yaitu ke node B dengan biaya 4 (3+1). Kemudian node B

dieksplorasi. Andaikan node B hanya memiliki 1 cabang, yaitu E dengan h' = 3 juga, maka biaya

yang akan

dikeluarkan dari A sampai E menjadi 5 (3+2). Bila E dieksplore dan hanya dirniliki satu cabang

yaitu F dengan h' = 3 juga, maka biaya yang dikeluarkan dari A sampai E menjadi 6 (3+3).

Keadaan ini jauh lebih buruk dibandingkan jika arah pelacakan sebelumnya dari A ke C.

Page 15: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

Gambar 2.30 menunjukkan nilai h'yang overestimate terhadap h.Misalkan biaya untuk tiap

edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h'sama dengan 3, 4, dan

5, maka akan dipilih jalur dengan biaya terendah yaitu ke node B dengan biaya 4 (3+1).

Kemudian node B diekspansi. Andaikan node B hanya memiliki 1 cabang, yaitu E dengan h'= 2,

maka biaya yang akan dikeluarkan dari A sampai E menjadi 4 (2+2) juga. Bila E diekspansi dan

hanya dimiliki satu cabang yaitu F dengan h' = 1, maka biaya yang dikeluarkan dari A sampai E

menjadi 4 (1+3) juga. Bila F diekspansi dan hanya dimiliki satu cabang yaitu G dengan h' = 0,

maka biaya yang dikeluarkan dari A sampai G menjadi 4 (O+4) juga. Diperoleh nilai estimasi

yang selalu konstan yaitu 4. Jika fungsi heuristik h'dapat diterima, maka dapat dikatakan bahwa

algoritma ini optimal (memiliki lintasan terpendek). Disini, tidak

akan pernah terjadi overestimate dari suatu keadaan ke tujuan. 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 anneoling 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 Tlavelling Salesman

Problem. Pada eimulated annealing, ada 3 parameter yang sangat menentukan, yaitu: tetangga,

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

membentuk perubahan

Page 16: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

pada solusi sekarang. Pembangkitan bilangan random akan berimplikasi adanya probabilitas.

Algoritma

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.

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:

AE = nilai sekarang - nilai keadaan baru.

i. Jika kondisi baru merupakan tujuan, maka pencarian berhasil dan KELUAR.

ii. 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.

iii. Jika nilai kondisi baru tidak lebih baik dari kondisi sekarang, maka tetapkan kondisi

baru sebagai kondisi sekarang dengan probabilitas:

p’= e-AE/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.

Dari algoritma tersebut, sebenarnya secara umum ada 3 hal yang perlu disoroti pada simulated

annealing, yaitu:

a. Nilai awal untuk temperatur (T0).

Nilai T0 biasanya ditetapkan cukup besar (tidak mendekati nol), karena jika T mendekati 0 maka

gerakan simulated annealing akan sama dengan hill climbing.

b. Kriteria yang digunakan untuk memutuskan apakah temperature sistem seharusnya dikurangi.

c. Berapa besarnya pengurangan temperatur dalam setiap waktu.

Page 17: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

Contoh 2.8: masalah TSP

Ada beberapa hal yang periu diperhatikan clalann menyelesaikan permasalahan TSP dengan

simulated anneulirug. Sebagai catatan, perlu diketahui bahwa masalah TSP yang diherikan pada

contoh ini sedikit berbeda dengan TSP sebelurnnya. Pada TSP ini kota asal dan tujuannya adalah

sama.

o Operator

Ada beberapao perator yang bisa digrrniika-n.L lerikut ini adalali salah satu contoh operator

untuk menentukan jalur.Misalkan jumlah kota yang akan dikunjungi adalah NC.

* Kota-kota disimpan pada larik L.

* Kita bangkitkan 2 bilangan random antan'a 1 sampai NC, rnisalkan kedua bilangan itu adalah

Nl dan N2 dengan N1 < N2.

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

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

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

* Kita bangkitkan bilangan random r, apabiia r < 0,5; maka:

o DepanBaru = Depan.

c TengahBaru = Tengah dengan urutan dibalik.

o BelakangBaru = Belakang.

o Lbaru = [DepanBaru TengahBaru BelakangBaru]

* Jika r > 0,5; maka kerjakan:

o Sementara = [Depan Belakangl, 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+L:M).

o Lbaru - [DepanBaru TengahBaru BelakangBaru]

Contoh:

Misalkan jalur yang ada adalah:

L=( 4 3 6 9 11 2 5 1 7 8 12 10) --) NC=12

Kita bangkitkan bilangan random, misal: N1=4 dan N2=10' Maka

Page 18: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

kita bisa dapatkan:

o Depan

. Tengah

. Belakang

Kita bangkitkan bitangan random r, apabila r < 0,5; maka:

. DepanBaru = [4 3 6].

. TengahBaru = [8 7 1 5 2 11 9 ] .

o BelakangBaru = [12 10].

. Lbaru = [4 3 6 8 7 1 5 2 11 9 12 10]

Jika r > 0,5; maka kerjakan:

. Sementara = [4 3 6 12 10], M=5.

. Bangkitkan bilangan random r, misal r=2.r DepanBaru = [4 3].

. TengahBaru = [9 11 2 5 1 7 8].

. BelakangBaru = [6 12 10].

. Lbaru = [ 4 3 9 11 2 5 1 7 8 6 12 10 ]

Apabila data diberikan dalam bentuk koordinat kota ke-i (xi,yi), dengan jumlah kota NC, maka

pseudocode dapat diberikan sebagai

berikut.

c, Pseudocode

Function Pj gJalur(L): real;

1. Panjang= 0;

2. For i=1 to (NC-l) do

3. Panjang = Panjang + sqrt((xi*r - xi)2 + (yi*r - yi)2);

4. PjgJalur = Paniang;

Function JalurBaru(L): arrayNC;

1. Bangkitkan 2 bilangan random N1 dan N2 antara 1 sampai

NC dengan N1< N2

2. Depan = Ul) sarnpd UN1-1);

3. Tengah = UN1) sampd L(Nz);

4. Belakang = UN2+1) sampai UNC);

5. Bangkitkan bilangan random r.

Page 19: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

6. If r < 0,5 then

7. DepanBaru = Depan.

8. TengahBaru(1..NT) = Tengah(NT..l.); dengan NT=N2-N1+1.

9. BelakangBaru = Belakang.

10. Lbaru = [DepanBaru TengahBaru BelakangBaru]

11. else

12. Sementara = [Depan Belakang]; dengan M elemen.

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

14. DepanBaru = Sementara(1..r).

15. TengahBaru = Tengah.

16. BelakangBaru = Sementara(r+1..M).

17. Lbaru - [DepanBaru TengahBaru BelakangBaru]

18. JalurBaru = LBaru

Procedure SimulatedAnneal (T:real; L:arrayNC; NC:integer; var

Lbaru:arrayNC; var sukses:integer);

1. Maxlterasi = 100*NC;

2. MaxSukses = 10xNC:

3. Sukses = 0;

4. Lbaru = L;

5. MinPjgJalul = PjgJalur(L);

6. For i=1 to Maxlterasi do

7 Jalur = JalurBaru(L);

8 P;g = PjgJalur(Jalur);

9 Bangkitkan bilangan random r.

10 If r < e{Pje-MinggJalwthVern Lbaru=Jalur;

11 If Jalur < MinPjgJalur then

12 MinPjgJalur = Pjg;

13 Sukses = Sukses +1;

14 If Sukses = MaxSukses then BREAK:

Misalkan kita ingin mensimulasikan algoritma ini untuk 15 kota, dengan temperatur awal sebesar

50 dan pendinginan sebesar 10% (pengurangan temperatur), maka penyelesaian TSP adalah:

Page 20: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

Program TSP-SA;

1. NC = 15;

2. XC -) bangkitkan bilangan random sebanyak NC'

3. YC -) bangkitkan bilangan random sebanyak NC.

4. T= 50;

5. Sukses = 1;

6. L -) t1 23 4 ... L l l ;

7. While sukses > 0 do

8. SimulatedAnneal(T, L, NC, Lbaru,Sukses);

9. T = 0,9*T;

Misalkan ke-15 kota tersebut memiliki koordinat seperti terlihat pada

Tabel2.9

Jalur terpendek L-O-N-K-D-F-I-A-M-E-H-B-C-GJ, dengan panjang jalur sebesar 3,7384.

sedangkan Gambar 2.31 menunjukkan jalur terpendek yang diperoleh secara grafis

Page 21: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

.

2.3 REDUKSI MASALAH

Pada algoritma-algoritma terdahulu, kita mencari solusi menggunakan pohon OR, dimana

lintasan dari awal sampai tujuan tidak terletak pada satu cabang. Apabila lintasan dari keadaan

awal sampai tujuan dapat terletak pada satu cabang, maka kita akan dapat menemukan tujuan

lebih cepat.

2.3.1 Graph AND-OR

Algoritma Graph AND-OR ini pada dasarnya sama dengan Best-First Search, dengan

mempertimbangkan adanya arc AND. Pada Gambar 2.32 terlihat bahwa untuk mendapatkan TV

orang bisa dengan cara singkat yaitu mencuri atau dengan membeli TV asal orang tersebut punya

uang.

Untuk mendeskripsikan algoritma Graph AND-OR kita menggunakan

nilai F_UTILITY, yaitu biaya solusi.

Page 22: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

Algoritma:

1. Inisialisasi graph ke node awal.

2. Kerjakan langkah-Iangkah di bawah ini hingga node awal

SOLVED atau sampai biayanya lebih tinggi dari F_UTILITY:

(a) Telusuri graph, mualai dari node awal dan ikuti jalur terbaik.Akumulasikan kumpulan node

yang ada pada lintasantersebut dan belum pernah diekspansi atau diberi label SOLVED.

(b) Ambil satu node dan ekspansi node tersebut. Jika tidak ada successor, maka set F_UTILITY

sebagai nilai dari node tersebut. Bila tidak demikian, tambahkan successor-successor dari node

tersebut ke graph dan hitung nilai setiap f (hanya gunakan h' dan abaikan g). Jika f = 0, tandai

node tersebut dengan SOLVED.

(c) Ubah f harapan dari node baru yang diekspansi. Kirimkan perubahan ini secara backward

sepanjang graph. Jika node berisi suatu arc suatu successor yang semua descendant-nya berlabel

SOLVED maka tandai node itu dengan SOLVED.Pada Gambar 2.33, pada langkah -1 semula

hanya ada satu node yaitu

A. Node A diekspansi hasilnya adalah node B, C, dan D. Node D memiliki

biaya yang lebih rendah (6) jika dibandingkan dengan B dan C

(d). Pada langkah-2 node D terpilih untuk diekspansi, menjadi E dan F dengan biaya estimasi

sebesar 10. Sehingga kita harus memperbaiki nilai f dari D menjadi 10" Kembali ke level

sebelumnya, node B dan C memiliki biaya yang lebih rendah daripada D (9 < 10). Pada langkah-

3, kita menelusuri arc dari node A, ke B dan C bersamasama. Jika B dieksplore terlebih dahulu,

maka akan menurunkan node G dan H. Kita perbaiki nilai f dari B menjadi 6 (nilai G=6 lebih

baik daripada H=8), sehingga biaya AND-arc B-C menjadi L2 (6+4+2). Dengan demikian nilai

node D kembali menjadi lebih baik (10 < 12). Sehingga ekspansi dilakukan kembali terhadap D.

Demikian seterusnya.

Page 23: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

2.3.2 NgoritmaAO*

Algoritma AO* menggunakan struktur Graph. Tiap-tiap node pada graph tersebut akan memiliki

nilai h'yang merupakan biaya estimasi jalur dari node itu sendiri sampai suatu solusi.

Algoritma

1. Diketahui GRAPH yang hanya berisi node awal (sebut saja node

INIT). Hitung h(INIT).

2. Kerjakan langkah-Iangkah di bawah ini hingga INI bertanda - SOLVED atau samoai nilai

h'(INIT) menjadi lebih besar daripada FLITILITY:

(a) Ekspand INIT dan ambil salah satu node yang belum pernah diekspand (sebut NODE).

(b) Bangkitkan successor-successor NODE. Jika tida memiliki successor maka set FUTIILITY

dengan nilai h'(NODE). Jika ada successor, maka untuk setiap successor (sebut sebagai SUCC)

yang bukan merupakan ancestor dari NODE, kerjakan:

i. Tambahkan SUCC ke graph.

ii. Jika SUCC adalah terminal node, tandai dengan SOLVED dan set nilai h'-nya sama dengan 0.

iii. Jika SUCC bukan terminal node, hitung nilai h'.

(c) Kirimkan informasi baru tersebut ke graph, dengan cara: tetapkan S adalah node yang

ditandai dengan SOLVED atau node yang nilai h'-nya baru saja diperbaiki, dan sampaikan nilai

ini ke parent-nya. Inisialisasi S = NODE. Kerjakan IangkahJangkah berikut ini hingga S kosong:

i. Jika mungkin, seleksi dari S suatu node yang tidak memiliki descendant dalam GRAPH yang

terjadi pada S. Jika tidak ada, seleksi sebarang node dari S (sebut: CURRENT) dan hapus dari S.

Page 24: Metode Hill Climbing - Web viewMisalkan biaya untuk tiap edge=l (g=1), masing-masing node B, C, dan D memiliki nilai estimasi h' sama dengan 3, 4, dan 5, maka akan. ... iii. Jika nilai

ii. Hitung biaya tiap-tiap arc yang muncul dari CURRENT. Biaya tiap-tiap arc ini sama dengan

jumlah h'untuk tiap-tiap node pada akhir arc ditambah dengan biaya arc itu sendiri. Set

h'(CURRENT) dengan biaya minimum yang baru saja dihitung dari stiap arc yang muncul tadi.

iii. Tandai jalur terbaik yang keluar dari CURRENT dengan menandai arc yang memiliki biaya

minimum.

iv. Tandai CURRENT dengan SOLVED jika semua node yang dihubungkan dengannya hingga

arc yang baru saja ditandai tadi telah ditandai dengan SOLVED.

v. Jika CURRENT telah ditandai dengan SOLVED atau jika biaya CURRENT telah berubah,

maka status baru ini harus disampaikan ke GRAPH. Kemudian tambahkan semua ancestor dari

CURRENT ke S.

Sebagai contoh, pada Gambar 2.34 Jelas bahwa jalur melalui C selalu lebih baik daripada

melalui B. Tetapi jika biaya node E muncul, dan pengaruh perubahan yang diberikan ke node B

tidak sebesar pengaruhnya terhadap node C, maka jalur melalui B bisa jadi lebih baik. Sebagai

contoh, hasil expand node E, misalkan 10, maka biaya node C menjadi 11 (10+1), dengan

demikian biaya node A apabila memilih jalur lewat C adalah 12 (11+1). Tentu saja akan lebih

baik memilih jalur melalui node B (11). Tapi tidak demikian halnya apabila kemudian node D

diekspan. Bisa jadi jalur dengan melalui node B akan lebih buruk lagi ketimbang jalur dengan

melalui node C.