1
KECERDASAN BUATAN
Materi Best First Search,Tabu Search, A* dan
Simulated Annealing
DISUSUN OLEH: Nama: ERIN YUNI REVA NPM: G1A012040
Kelas : B. Teknik Informatika
DOSEN PENGAJAR :
RUSDI EFENDI, ST.,M.Kom
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS BENGKULU
2
Best First Search
Pengertian Best-first Search
Best-First Search merupakan sebuah metode yang membangkitkan simpu l
dari simpul sebelumnya. Best-first search memilih simpul baru yang memiliki
bia ya terkecil diantara semua leaf nodes (simpul-simpul pada level terdalam)
yang pernah dibangkitkan. Penentuan simpul terbaik dilakukan dengan
menggunakan sebuah fungsi yang disebut fungsi evaluasi f(n). fungsi evaluasi
best-first search dapat berupa biaya perkiraan dari suatu simpul menuju ke goal
atau gabungan antara biaya sebenarnya dan bia ya perkiraan tersebut.
Pada set iap langkah proses pencarian terbaik pertama, kita me milih
node-node dengan menerapkan fungsi heurist ik yang memadai pada set iap node-node/simpul
yang kita pilih dengan menggunakan aturan-aturan tertentu untuk menghasilkan
penggant inya. Fungsi heurist ic merupakan suatu strategi untuk melakukan proses
pencarian ruang keadaan suatu proble ma secara selekt if, yang memandu proses
pencarian yang kita lakukan sepanjang ja lur yang memilik i kemungkinan sukses
paling besar.
Ada beberapa ist ilah yang sering digunakan pada metode best-first search,
yait u:
1. Start node adalah sebuah termino logy untuk posisi awal
sebuah pencarian
2. Curret node adalah simpul yang sedang dijalankan dalam
algorit ma pencarian ja lan terpendek
3. Suksesor adalah simpul-simpul yang yang akan diperiksa
setelah current node
3
5. Open list adalah tempat menyimpan data simpul yang
mungk in diakses dari starting node maupun simpul yang
sedang dija lankan
6. Closed list adalah tempat menyimpan data simpul yang juga
merupakan bagian dari jalur terpendek yang telah berhasil
didapatkan
7. Goal node yaitu simpul tujuan
8. Parent adalah curret node dari suksesor.
Algoritma best-first search
Pertama kali, dibangkitkan node A. Kemudian semua suksesor A
dibangkitan, dan dicari harga paling minimal. Pada langkah 2, node D terpilih
karena harganya paling rendah, yakni 1. Langkah 3, semua suksesor D
dibangkitkan, kemudian harganya akan dibandingkan dengan harga node B dan
C. Ternyata harga node B paling kecil dibandingkan harga node C, E, dan F.
Sehingga B terpilih dan selanjutnya akan dibangkitkan semua suksesor B.
Demikian seterusnya sampai dit emukan node tujuan. Ilustrasi algorit ma best-first
4
Untuk mengimplementasikan algorit ma pencarian ini, diperlukan dua buah
senarai, ya itu: OPEN untuk mengelo la node-node yang pernah dibangkitkan
tetapi belum dievaluasi dan CLOSE untuk mengelo la node-node yang pernah
dibangkitkan dan sudah dievaluasi. Algo rit ma selengkapnya adalah sebagai
berikut.
1. OPEN beris i init ial state dan CLOSED masih kosong.
2. Ulangi sampai goal ditemukan atau sampai t idak ada di dalam OPEN.
a. Ambil simpul terbaik ya ng ada di OPEN.
b. Jika simpul tersebut sama dengan goal, maka sukses
c. Jika tidak, masukkan simpul tersebut ke dalam CLOSED
d. Bangkit kan semua aksesor dari simpul tersebut
e. Untuk set iap suksesor kerjakan:
i. Jika suksesor tersebut belum pernah dibangkit kan, evaluasi
5
ii. Jika suksesor tersebut sudah pernah diba ngkit kan, ubah
parent-nyajika jalur melalu i parent ini lebih baik daripada
jalur melalu i parent yang sebelumnya. Selanjut nya perbarui
biaya untuk suksesor tersebut dn nodes lain yang berada di
level bawahnya.
Algorit ma yang menggunakan metode best-first search, yaitu:
a. Greedy Best-First
Greedy Best-First adalah algorit ma best-first yang paling sederhana
dengan hanya memperhitungkan bia ya perkiraan (est imated cost) saja, yakni f(n)
= h(n). Biaya yang sebenarnya (actual cost) tidak diperhitungkan. Dengan hanya
memperhitungkan bia ya perkiraan yang belum tentu kebenarannya, maka
algorit ma ini menjadi t idak optimal.
b. A*
A* adalah algorit ma best-first search yang menggabungkan Uniform Cost
Search dan Greedy Best-First Search. Biaya yang diperhitungkan didapat dari
bia ya sebenarnya ditambah dengan bia ya perkiraan. Dala m notasi matemat ika
dituliskan sebagai f(n)= g(n) + h(n). Dengan perhit ungan biaya sepert i ini,
6
Contoh Kasus
kebutuhan manusia akan informasi semakin meningkat. Oleh karena itu dibutuhkan
waktu yang cepat untuk mencapai kebutuhan tersebut. algoritma pencarian merupakan suatu
urutan langkah-langkah (program) yang tepat untuk meningkatkan efisiensi waktu. yang
dimaksud efisien dalam bahasan kali ini adalah mencari jalur angkot terpendek dari Pancoran
ke Manggarai.
Sebagai contoh, berikut adalah rincian jarak tempuh dan tarif angkot. Rincian berikut ini
adalah pengeluaran dari Pancoran ke Manggarai yang dapat ditempuh dengan jarak sekitar ±
10 km. yang akan membuat masalah harus dipecahkan kembali yaitu “tarif angkot” yang
harganya selalu relative (harga jauh atau dekat bisa berbeda-beda) berdasarkan jalur dan tarif
angkotnya masing-masing.
(penah terpilih sebagai bestNode). Sedangkan simpul tanpa tanda kotak menyatakan simpul
yang berada di OPEN
Berikut adalah langkah-langkahnya dalam menyelesaikan masalah jalur angkot yang
7
Langkah 1.
Langkah pertama OPEN berisi satu simpul yaitu S,
maka S jadi simpul terbaik dan dipindahkan ke
CLOSED. Kemudian dibangkitkan semua suksesor S,
yaitu A,B,C karena ketiga suksesor belum ada di
OPEN maupun CLOSED maka kelimanya dimasukan
ke OPEN. Langkah pertama menghasilkan OPEN =
[A,B,C] & CLOSED = [S]
Langkah 2.
A dengan biaya terkecil (yaitu f(A) = h(A) = 1
rb) terpilih sebagai simpul terbaik &
dipindahkan ke CLOSED. Selanjutnya, semua
susesor A dibagkitkan, yaitu: H & D. karena
keduanya belum ada di OPEN & CLOSED
maka keduanya dimasukan ke OPEN Langkah
Kedua menghasilkan OPEN = [B,C,D,H] & CLOSED = [S,A]
Langkah 3.
D dengan biaya terkecil (yaitu f(D) = h(D) =
1 rb) terpilih sebagai simpul terbaik &
dipindahkan ke CLOSED. Selanjutnya,
semua susesor D dibagkitkan, yaitu: B & F.
karena F belum ada di OPEN & CLOSED
maka F dimasukan ke OPEN. Karena hanya
menghitung biaya perkiraan (h), maka biaya
8
dipindahkan ke CLOSED. Selanjutnya,
semua susesor B dibagkitkan, yaitu: E. karena
E belum ada di OPEN & CLOSED maka E
dipindahkan ke CLOSED. Selanjutnya, semua
susesor E dibagkitkan, yaitu: C & F. kedua
suksesor ini sudah ada di OPEN. Karena hanya
menghitung biaya perkiraan (h), maka biaya
perkiraan dari S ke C atau biaya perkiraan dari
S ke C melalui E adalah sama (yaitu h(C)=3
rb) oleh karena itu, parent dari C tidak perlu
diubah lagi. Langkah ini menghasilkan OPEN
= [C,F,H] dan CLOSED = [S,B,D,E]
Langkah 6.
E dengan biaya terkecil (yaitu
9
sebagai simpul terbaik & dipindahkan ke CLOSED. Selanjutnya, semua susesor E
dibagkitkan, yaitu: C & F. kedua suksesor ini sudah ada di OPEN. Karena biaya perkiraan
dari S ke C atau biaya perkiraan dari S ke C melalui E adalah sama (yaitu h(C)=3 rb) oleh
karena itu, parent dari C tidak perlu diubah lagi. sedangkan biaya perkiraan dari D ke F atau
biaya perkiraan dari E ke F berbeda (yaitu h(B) = 1,5 rb) maka parent dari F perlu diubah
yaitu E. Langkah ini menghasilkan OPEN = [C,H,G] & CLOSED = [S,A,B,D,E,F]
Langkah berikutnya G dengan biaya terkecil terpilih sebagai simpul terbaik. Karena simpul
terbaik tersebut adalah goal, berarti solusi telah ditemukan. Hasil penerusuran menghasilkan
rute S-A-B-D-E-F-G dengan total jarak 14 km. Rute yang dihasilkan ini bukanlah rute
terpendek karena masih ada rute lain yang lebih pendek, yaitu S-C-G dengan total jaraknya
10
Tabu search
Tabu search (TS) pertama kali diperkenalkan oleh Glover sekitar tahun 1986. Glover
menyatakan bahwa TS adalah salah satu prosedur metaheuristik tingkat tinggi untuk
penyelesaian permasalahan optimisasi kombinatorial. TS ini dirancang untuk mengarahkan
metode-metode lain (atau komponen proses TS itu sendiri) untuk keluar atau menghindari
dari masuk dalam solusi optimal yang bersifat lokal. Kemampuan TS dalam menghasilkan
solusi yang mendekati optimal telah dimanfaatkan dalam beragam permasalahan klasik dan
parktis dari berbagai bidang mulai bidang penjadwalan hingga bidang telekomunikasi .
Glover mengatakan bahwa prosedur TS ini dapat ditemukan dalam tiga pola (scheme)
utama. Pola pertama adalah adanya penggunaan struktur memori berbasiskan atribut-atribut
fleksibel yang dirancang untuk membolehkan sebuah kriteria evaluasi dan hasil pencarian di
masa lalu dieksploitasi lebih mendalam. Pola ini menjadikan TS berbeda dengan aplikasi lain
yang menggunakan struktur memori yang rigid (kaku) atau tanpa menggunakan struktur
memori (seperti simulated annealing).
Pola kedua adalah penggunaan mekanisme atau kondisi yang dapat membatasi atau
membebaskan suatu proses pencarian yang sedang berlangsung. Pola kedua ini dikenal
sebagai mekanisme tabu restriction danaspiration criteria. Pola ketiga adalah pelibatan suatu
fungsi memori dengan rentang waktu yang berbeda yakni berupa memori jangka pendek
(short term memory) dan memori jangka panjang (long term memory) untuk menjalankan
strategi intensifikasi dan diversifikasi dalam proses pencarian solusi.
Strategi intensifikasi adalah strategi pencarian yang mengarahkan/ mengfokuskan
pencarian pada suatu area tertentu, sedangkan strategi diversifikasi adalah strategi pencarian
yang mengarahkan pencarian pada area baru.
Skema umum TS disajikan pada gambar di bawah ini. Pemilihan kandidat terbaik
11
pemeriksaan status tabu. Apabila nilai fungsi tujuan sebuah kandidat lebih baik dari yang
lain, maka kandidat tersebut berpotensi untuk diterima sehingga perlu diperiksa status
tabunya.
Urutan pemeriksaan nilai fungsi tujuan kemudian status tabu memberikan
kemungkinan proses penyelesaian program yang lebih cepat. Pemilihan kandidat solusi
terbaik yang dilakukan oleh TS menggunakan prinsip global-best strategy (GB) bukan
first-best strategy(FB). GB adalah strategi dimana algoritma akan mengganti solusi terbaik saat ini
dengan solusi terbaik yang ada pada neighborhood. Adapun FB adalah strategi dimana
algoritma akan mengganti solusi terbaik saat ini secara langsung jika solusi yang lebih baik
12
13
Gendreau et.al (1998) menyatakan bahwa TS adalah pendekatan yang paling efektif
untuk pemecahan masalah penentuan rute kendaraan. Kelebihan TS terletak pada struktur
memori yang fleksibel. Struktur memori itu akan membolehkan pencarian terus dilakukan
meskipun solusi yang diperoleh saat ini tidak ada yang lebih baik dari solusi terbaik yang
telah diperoleh.
Struktur memori tersebut juga mampu menjaga agar proses pencarian tidak jatuh pada
lokal optimal yang pernah muncul pada pencarian sebelumnya. Adanya strukur memori
fleksibel ini yang membedakan TS dengan branch and bound yang menggunakan struktur
memori kaku atau simulated annealing yang tidak menggunakan struktur memori (Glover,
1990)
TS umumnya tidak menggunakan pembentukan kandidat solusi secara acak
sebagaimanasimulated annealing dan genetic algorithm. Pemilihan kandidat solusi dalam TS
juga tidak dilakukan secara probabilistik sebagaimana ant colony system, simulated
annealingdan genetic algorithm. Karakteristik ini menjadikan solusi yang dihasilkan TS akan
sama setiap kali dilakukan proses pencarian solusi terhadap suatu permasalahan. Karakterstik
ini juga menjadi salah satu keunggulan TS dibanding ant colony system, simulated
annealingdan genetic algorithm.
Contoh Travelling Salesman Problem
Travelling Salesman Problem (TSP) kadang-kadang digunakan untuk menunjukkan
fungsi pencarian tabu. Masalah ini menimbulkan pertanyaan langsung diberikan daftar kota,
apakah ada cara untuk memesan daftar itu untuk meminimalkan jarak tempuh sementara
masih mengunjungi setiap kota.
Misalnya, jika kota A dan kota B yang sebelah satu sama lain, sementara kota C
adalah jauh, jarak total yang ditempuh akan lebih pendek jika kota A dan B mengunjungi satu
demi satu sebelum mengunjungi kota C. Sejak menemukan solusi optimal untuk TSP
adalah NP-keras tugas, metode pendekatan berbasis heuristik (seperti pencarian lokal) yang
14
Untuk mendapatkan solusi TSP benar berkualitas, adalah penting untuk
mengeksploitasi struktur grafik TSP. Nilai mengeksploitasi struktur masalah adalah tema
yang berulang dalam metode metaheuristik, dan mencari tabu sangat cocok untuk membuat
eksploitasi tersebut mungkin. Sebuah kelas strategi yang dikaitkan dengan pencarian tabu
disebut metode rantai ejeksi telah memungkinkan untuk mendapatkan solusi TSP berkualitas
tinggi secara efisien.
Di sisi lain, sederhana (naif) tabu pencarian dapat digunakan untuk
menemukan satisficing solusi untuk masalah salesman keliling (yaitu, solusi yang memenuhi
kriteria kecukupan, meskipun tidak dengan kualitas tinggi yang diperoleh dengan
memanfaatkan struktur grafik) . Pertama, pencarian dimulai dengan solusi awal, yang dapat
dihasilkan secara acak atau sesuai dengan semacam algoritma tetangga terdekat . Untuk
menciptakan solusi baru, agar dua kota yang dikunjungi dalam solusi potensial swap.
Total jarak perjalanan antara semua kota yang digunakan untuk menilai seberapa
cocok satu solusi dibandingkan dengan yang lain. Untuk mencegah siklus yaitu, berulang
kali mengunjungi set tertentu solusi - dan untuk menghindari menjadi terjebak dalam lokal
optima , solusi ditambahkan ke daftar tabu jika diterima dalam lingkungan solusi, .
Solusi baru terus dibuat sampai beberapa kriteria berhenti, seperti jumlah
sewenang-wenang iterasi, terpenuhi. Setelah pencarian tabu sederhana berhenti, ia mengembalikan
solusi terbaik ditemukan selama pelaksanaannya (solusi dengan jarak terpendek perjalanan
15
A star (A*)
Dalam ilmu komputer , A * adalah algoritma komputer yang banyak digunakan
dalam merintis dan grafik traversal , proses merencanakan jalur efisien dilintasi antara titik,
yang disebut node. Dicatat untuk kinerja dan akurasi, menikmati digunakan secara
luas. (Namun, dalam perjalanan sistem-routing praktis, umumnya mengungguli oleh
algoritma yang dapat pra-memproses grafik untuk mencapai kinerja yang lebih baik. )
Peter Hart , Nils Nilsson dan Bertram Raphael dari Stanford Research Institute
(sekarang SRI International ) pertama kali dijelaskan algoritma pada tahun 1968. Ini adalah
perpanjangan dari Edsger Dijkstra 1959 algoritma . A * mencapai kinerja waktu yang lebih
baik dengan menggunakanheuristik .
A * menggunakan pencarian terbaik pertama dan menemukan sedikit-biaya jalur dari
awal yang diberikan simpul satu simpul tujuan (dari satu atau beberapa tujuan
mungkin). Sebagai * melintasi grafik, mengikuti jalan yang terendah diharapkan biaya total
jarak, menjaga diurutkan prioritas antrian segmen jalur alternatif sepanjang jalan.
Ini menggunakan pengetahuan-plus- heuristik fungsi biaya simpul x (biasanya
dinotasikan f (x)) untuk menentukan urutan pencarian mengunjungi node di pohon.Fungsi
biaya adalah jumlah dari dua fungsi:
fungsi jalur-biaya masa lalu, yang merupakan jarak yang diketahui dari node awal ke
node x arus (biasanya dinotasikan g (x))
fungsi jalur-biaya di masa depan, yang merupakan diterima "heuristik perkiraan" dari
jarak dari x ke tujuan (biasanya dinotasikan h (x)).
H (x) bagian dari f (x) fungsi harus menjadi heuristik diterima , yaitu, tidak harus
melebih-lebihkan jarak ke tujuan. Jadi, untuk aplikasi seperti Routing , h (x)mungkin
mewakili garis lurus jarak ke tujuan, karena itu adalah fisik yang mungkin jarak terkecil
antara dua titik atau node.
Jika heuristik h memenuhi kondisi tambahan untuk setiap
16
konsisten . Dalam kasus seperti itu, A * dapat dilaksanakan dengan lebih efisien-berbicara
kasar, tidak ada node perlu diproses lebih dari sekali (lihat ditutup ditetapkan di bawah)-dan
A * setara dengan menjalankan algoritma Dijkstra dengan mengurangi biaya d '(x, y): = d (x,
y) - h (x) + h (y).
Algoritma
Seperti semua algoritma pencarian informed , pertama kali akan mencari rute
yang tampaknya paling mungkin untuk memimpin menuju tujuan. Apa yang membuat A *
terlepas dari serakahpencarian best-first adalah bahwa hal itu juga mengambil jarak sudah
bepergian ke rekening; g (x) bagian dari heuristik adalah biaya dari titik awal, bukan hanya
biaya lokal dari sebelumnya diperluas simpul.
Dimulai dengan node awal, ia mempertahankan antrian prioritas node yang akan
dilalui, dikenal sebagai set terbuka. Semakin rendah f (x) untuk node yang
diberikan x, semakin tinggi prioritas.Pada setiap langkah algoritma, simpul dengan terendah f
(x) nilai akan dihapus dari antrian, f dan g nilai tetangganya diperbarui sesuai, dan tetangga
ini ditambahkan ke antrian. Algoritma ini berlanjut sampai node tujuan memiliki nilai f lebih
rendah dari setiap node dalam antrian (atau sampai antrian kosong). (Node Goal bisa
dilewatkan beberapa kali jika masih ada node lain dengan nilai-nilai f lebih rendah, karena
dapat menyebabkan jalan pendek ke tujuan.) Nilai f tujuannya adalah maka panjang jalur
terpendek, karena jam pada tujuannya adalah nol dalam heuristik diterima.
Algoritma dijelaskan sejauh memberi kita hanya panjang jalan terpendek. Untuk
menemukan urutan yang sebenarnya langkah-langkah, algoritma dapat dengan mudah
direvisi sehingga setiap node pada jalur melacak pendahulunya. Setelah algoritma ini
dijalankan, node berakhir akan mengarah ke pendahulunya, dan seterusnya, sampai beberapa
node pendahulunya adalah node awal.
Selain itu, jika heuristik yang monoton (atau konsisten , lihat di bawah), satu set
17
Berikut pseudocode menjelaskan algoritma:
berfungsi A * (start, tujuan)
closedset: = himpunan kosong / / Himpunan node yang sudah dievaluasi.
openset: = {start} / / Himpunan node tentatif untuk dievaluasi, awalnya berisi node awal came_from: = peta kosong / / The peta navigasikan node.
g_score [start]: = 0 / / Biaya dari awal sepanjang jalan yang paling dikenal. / / Perkiraan total biaya dari awal sampai gol lewat y.
f_score [start]: = g_score [start] + heuristic_cost_estimate (start, tujuan)
18
Keterangan
pseudocode di atas mengasumsikan bahwa fungsi heuristik monoton (atau konsisten ,
lihat di bawah), yang merupakan kasus sering terjadi di banyak masalah praktis, seperti Jarak
Shortest Path di jaringan jalan. Namun, jika asumsi tersebut tidak benar, node di
set tertutup dapat kembali dan biaya mereka meningkat. Dengan kata lain, himpunan
tertutup dapat diabaikan (menghasilkan algoritma pencarian pohon) jika sebuah solusi
dijamin ada, atau jika algoritma tersebut diadaptasi sehingga node baru ditambahkan ke set
terbuka hanya jika mereka memiliki nilai lebih rendah dari f pada setiap iterasi sebelumnya.
Contoh
Contoh dari A star (A *) algoritma dalam aksi di mana node kota terhubung dengan
jalan dan h (x) adalah jarak garis lurus untuk menargetkan titik:
Kunci: hijau: mulai; biru: Tujuan; oranye: dikunjungi
19
SIMULATED ANNEALING
Simulated annealing (SA) adalah salah satu algoritma untuk untuk optimisasi yang
bersifat generik. Berbasiskan probabilitas dan mekanika statistik, algoritma ini dapat
digunakan untuk mencari pendekatan terhadap solusi optimum global dari suatu
permasalahan. Masalah yang membutuhkan pendekatan SA adalah masalah-masalah
optimisasi kombinatorial, di mana ruang pencarian solusi yang ada terlalu besar, sehingga
hampir tidak mungkin ditemukan solusi eksak terhadap permasalahan itu. Publikasi tentang
pendekatan ini pertama kali dilakukan oleh S. Kirkpatrick, C. D. Gelatt dan M. P. Vecchi,
diaplikasikan pada desain optimal hardware komputer, dan juga pada salah satu masalah
klasik ilmu komputer yaitu Traveling Salesman Problem.
Annealing adalah satu teknik yang dikenal dalam bidang metalurgi, digunakan dalam
mempelajari proses pembentukan kristal dalam suatu materi. Agar dapat terbentuk susunan
kristal yang sempurna, diperlukan pemanasan sampai suatu tingkat tertentu, kemudian
dilanjutkan dengan pendinginan yang perlahan-lahan dan terkendali dari materi tersebut.
Pemanasan materi di awal proses annealing, memberikan kesempatan pada atom-atom dalam
materi itu untuk bergerak secara bebas, mengingat tingkat energi dalam kondisi panas ini
cukup tinggi. Proses pendinginan yang perlahan-lahan memungkinkan atom-atom yang
tadinya bergerak bebas itu, pada akhirnya menemukan tempat yang optimum, di mana energi
internal yang dibutuhkan atom itu untuk mempertahankan posisinya adalah minimum.
Simulated Annealing berjalan berdasarkan analogi dengan proses annealing yang
telah dijelaskan di atas. Pada awal proses SA, dipilih suatu solusi awal, yang
merepresentasikan kondisi materi sebelum proses dimulai. Gerakan bebas dari atom-atom
pada materi, direpresentasikan dalam bentuk modifikasi terhadap solusi awal/solusi
sementara. Pada awal proses SA, saat parameter suhu (T) diatur tinggi, solusi sementara yang
sudah ada diperbolehkan untuk mengalami modifikasi secara bebas.
Kebebasan ini secara relatif diukur berdasarkan nilai fungsi tertentu yang
20
evaluasi hasil modifikasi ini membaik (dalam masalah optimisasi yang berusaha mencari
minimum berarti nilainya lebih kecil/downhill) solusi hasil modifikasi ini akan digunakan
sebagai solusi selanjutnya. Bila nilai fungsi evaluasi hasil modifikasi ini memburuk, pada saat
temperatur annealing masih tinggi, solusi yang lebih buruk (uphill) ini masih mungkin
diterima. Dalam tahapan selanjutnya saat temperatur sedikit demi sedikit dikurangi, maka
kemungkinan untuk menerima langkah modifikasi yang tidak memperbaiki nilai fungsi
evaluasi semakin berkurang. Sehingga kebebasan untuk memodifikasi solusi semakin
menyempit, sampai akhirnya diharapkan diperoleh solusi yang mendekati solusi optimal.
Menurut Kirkpatrick ada empat hal utama yang perlu diperhatikan dalam penggunaan
SA untuk memodelkan suatu permasalahan :
Representasi yang akurat dari konfigurasi dalam suatu permasalahan.
Proses modifikasi, langkah acak atau perubahan apa yang harus dilakukan terhadap
elemen-elemen konfigurasi untuk menghasilkan konfigurasi berikutnya.
Fungsi evaluasi atau fungsi objektif yang dapat menyatakan baik-buruknya suatu solusi
terhadap permasalahan
WHILE (belum tercapai konvergensi yang diinginkan) :
21
Evaluasi : Fungsi evaluasi (cost function). Contoh dalam Traveling Salesman
Problem (TSP) fungsi ini adalah jarak yang harus ditempuh oleh si penjaja keliling.
Modifikasi : Mekanisme sederhana untuk mengubah solusi yang sudah ada, untuk
menghasilkan solusi baru yang berbeda tidak terlalu jauh dengan solusi yg sudah ada.
Biasanya disebut neighbour solution. Contoh dalam TSP bila solusi sementara dari TSP
dengan 3 kota adalah : A B C. Hasil fungsi modifikasi adalah solusi baru dengan urutan A C
B.
exp(-Delta/T) : Probabilitas bahwa langkah/solusi baru yang tidak lebih baik, akan
diterima sebagai solusi sementara. Perhatikan tanda minus dalam kurung. Delta bernilai
positif, yang berarti solusi baru pada tahap ini lebih buruk daripada solusi sementara yang
sudah ada. Expresi ini menyatakan bahwa semakin buruk solusi baru, kemungkinan diterima
sebagai solusi sementara semakin kecil. Tetapi pada awal proses Annealing, karena faktor T
sebagai pembagi masih bernilai besar, probabilitas ini akan tetap cukup besar. Tidak
demikian halnya setelah T menurun, dalam proses pendinginan.
T = 0.9*T : hanya merupakan salah satu contoh jadwal penurunan temperatur.
Sebenarnya tidak selalu harus seperti ini. Biasanya juga dalam implementasi SA, diadakan
perulangan proses modifikasi dan update solusi sementara untuk suhu tertentu. (Jadi mestinya
22 PERMASALAHAN
Simulated annealing pertama kali digunakan untuk memecahkan permasalahan
VLSI layout pada awal tahun 1980. Digunakan secara luas untuk penjadwalan pabrik dan
tugas optimisasi skala besar lainnya. Dimisalkan :
Penerapan Algoritma SA untuk Penjadwalan Job Shop
Untuk mengaplikasikan algoritma SA ke dalam masalah optimasi kombinatorial,
perlu didefinisikan tiga hal dengan tepat:
1. konfigurasi (dalam masalah job shop berarti konfigurasi jadwal)
2. fungsi biaya (cost function)
3. struktur neighbourhood.
Model algoritma SA untuk penjadwalan job shop ini dibagi ke dalam 4 tahapan, yaitu
:
(a) Tahap pemilihan jadwal awal.
Diketahui graph berarah G = {V, A,E} untuk masalah job shop yang akan
diselesaikan. Algoritma Giffler dan Thompson digunakan untuk mendefinisikan jadwal awal.
Algoritma ini membuat sebuah jadwal dengan memperhatikan semua operasi pada semua
mesin. Kriteria yang digunakan adalah nilai ES (earliest start time) dan waktu pengerjaan
dari tiap operasi. Pada setiap tahap dipilih sebuah operasi yang belum termasuk dalam jadwal
dan membutuhkan waktu pengerjaan minimum. Operasi tersebut dimasukkan ke dalam
jadwal. Jadwal ini menjadi sebuah jadwal lengkap apabila semua operasi dari semua job
sudah dimasukkan ke dalamnya. Jadwal ini direpresentasikan dengan suatugraph
23
V = himpunan node (simpul) yang mewakili operasi-operasi
A = himpunan busur conjunctive yang menghubungkan operasi-operasi dalam suatu job
tertentu
E = himpunan busur disjunctive yang menghubungkan operasi-operasi pada mesin yang
sama
(b) Tahap evaluasi fungsi biaya dari jadwal.
Setelah diperoleh sebuah graph untuk jadwal awal, dihitung nilai ES(earliest start
time) dan LS (latest start time) dari setiap operasi dalam graph dengan menggunakan critical
path method (CPM).Makespan jadwal adalah nilai ES atau LS dari operasi terakhir
(operasidummy). Nilai ini disebut juga biaya dari jadwal.
(c) Tahap komputasi lintasan kritis.
Setelah menghitung makespan jadwal, diidentifikasi lintasan kritisdalam graph, yaitu
himpunan busur – busur dari node pertama menujunode terakhir yang memenuhi
syarat berikut :
Nilai ES dan LS dari setiap node yang dihubungkan oleh busurbusurtersebut harus sama.
Untuk busur u à v, hasil penjumlahan start time dan waktu pengerjaan dari operasi u harus
sama dengan start time dari operasiv. Sebuah busur dalam lintasan kritis dibalik arahnya
untuk membuat sebuah neighbour yang baru.
(d) Tahap pembuatan neighbour baru.
Neighbourhood dari sebuah jadwal ialah himpunan jadwal yang dapat diperoleh
dengan menerapkan fungsi transisi terhadap jadwal tersebut. Karena itu terlebih dahulu harus
dipilih sebuah fungsi transisi sederhana. Fungsi transisi dalam kasus penjadwalan job
shop memilihnode v dan w sedemikian rupa sehingga:
v dan w adalah dua operasi berurutan sebarang yang dikerjakan pada mesin k .
busur (v,w) Î Ei adalah sebuah busur kritis, atau (v,w) berada pada lintasan kritis
24
Sebuah neighbour, yaitu anggota dari neighbourhood suatu jadwal, dibuat dengan
membalikkan urutan pengerjaan operasi v dan w pada mesin k. Struktur neighbourhood ini
didasarkan pada dua kenyataan bahwa :
· Pembalikan sebuah busur kritis dalam graph Di tidak akan pernah menghasilkan
sebuah graph Dj yang cyclic.
· Jika pembalikan sebuah busur non kritis dalam Di menghasilkan sebuah graph
acyclic Dj, maka lintasan kritis q dalam Dj tidak mungkin lebih pendek daripada
lintasan kritis p dalam Di, karena
Dj masih memuat lintasan p.
Dengan cara ini, dapat dihindari beberapa jadwal yang tidak menghasilkan
penurunan makespan dan semua jadwal yang mengakibatkan terjadinya cyclic graph.
Struktur neighbourhood ini memungkinkan model untuk hanya meninjau graph-graph yang
mewakili solusi yang feasibel.
Jadi, transisi ini menyebabkan pembalikan busur yang menghubungkanv dan w dari
(v,w) menjadi (w,v) dan penggantian busur(u,v) dan (w,x) dengan busur (u,w) dan (v,x),
dimana u adalah operasi sebelum v pada mesin k, danx adalah operasi setelah w pada mesin
25
26
DAFTAR PUSTAKA
ht t p:/ / t om at coklat .w ordpress.com / 2012/ 07/ 10/ sim ulat ed-annealing/ 7 Okt ober 2013
ht t p:/ / t hesis.binus.ac.id/ Doc/ Bab2NoPass/ 2010-1-00510-M TIF%20Bab%202.pdf/ 7 Okt ober 2013
ht t p:/ / drw .polit eknikt elkom.ac.id/ Bebas/ Bachelor%20Degree/ M at eri%20Kuliah%20AI/ BAB%20III.p
df./ 7 Okt ober 2013
ht t p:/ / blogaqu.w ordpress.com / 2009/ 11/ 09/ penerapangreedybest first searchdalam
-im plem ent asi-pencarian-lint asan-t erpendek-dan-efisien-berdasarkan-jalur-dan-t arrelat
if-angkut an-kot a-angkot -dari-pancoran-ke-m anggarai/ 7 Okt ober 2013