Materi kecerdasan Buatan dan id

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
2013
1

Best First Search

Pengertian Best-first Search

Best-First Search merupakan sebuah metode yang membangkitkan simpul
dari simpul sebelumnya. Best-first search memilih simpul baru yang memiliki
biaya 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 biaya perkiraan tersebut.
Pada set iap langkah proses pencarian terbaik pertama, kita memilih nodenode dengan menerapkan fungsi heurist ik yang memadai pada set iap 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 problema secara selekt if, yang memandu proses
pencarian yang kita lakukan sepanjang jalur yang memiliki kemungkinan sukses
paling besar.
Ada beberapa ist ilah yang sering digunakan pada metode best-first search,
yait u:
1.

Start node adalah sebuah terminology untuk posisi awal
sebuah pencarian

2.

Curret node adalah simpul yang sedang dijalankan dalam
algorit ma pencarian jalan terpendek


3.

Suksesor adalah simpul-simpul yang yang akan diperiksa
setelah current node

4.

Simpul (node) merupakan representasi dari area pencarian

2

5.

Open list adalah tempat menyimpan data simpul yang
mungkin diakses dari starting node maupun simpul yang
sedang dijalankan

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
search dapat dilihat pada gambar 3.4 dibawah ini.


3

Untuk mengimplementasikan algorit ma pencarian ini, diperlukan dua buah
senarai, yaitu: OPEN untuk mengelola node-node yang pernah dibangkitkan
tetapi belum dievaluasi dan CLOSE untuk mengelola node-node yang pernah
dibangkitkan dan sudah dievaluasi. Algorit ma selengkapnya adalah sebagai
berikut.
1.

OPEN berisi init ial state dan CLOSED masih kosong.

2.

Ulangi sampai goal ditemukan atau sampai t idak ada di dalam OPEN.
a.

Ambil

simpul


b.

Jika

c.

Jika

d.

Bangkit kan

e.

Untuk set iap suksesor kerjakan:

simpul
tidak,


terbaik

yang

ada

di

OPEN.

maka

sukses

tersebut

sama

dengan


goal,

masukkan

simpul

tersebut

ke

semua

aksesor

dari

dalam

CLOSED


simpul

i. Jika suksesor tersebut belum pernah dibangkit kan, evaluasi
suksesor tersebut, tambahkan ke OPEN, dan catat parent.
4

tersebut

ii. Jika suksesor tersebut sudah pernah dibangkit kan, ubah
parent-nyajika jalur melalui parent ini lebih baik daripada
jalur melalui 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 biaya perkiraan (est imated cost) saja, yakni f(n)
= h(n). Biaya yang sebenarnya (actual cost) tidak diperhitungkan. Dengan hanya
memperhitungkan biaya 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
biaya sebenarnya ditambah dengan biaya perkiraan. Dalam notasi matemat ika
dituliskan sebagai f(n)= g(n) + h(n). Dengan perhit ungan biaya sepert i ini,
algorit ma A* adalahcomplete dan optimal.

5

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.
Keterangan:
S. Pancoran
A. Kuningan
B. Palbatu
C. Cawang
D. Casablanca
E. Tebet
F. Bukit duri
G. Manggarai

S

A B C

h(n)

D E

F

G H

1 rb 1,5 rb 3 rb 1 rb 1,5 rb 2,5 rb 0

2 rb

Simpul dengan tanda kotak menyatakan bahwa simpul tersebut berada di CLOSED
(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
terdapat pada gambar di atas.

6

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
perkiraan dari S ke B atau biaya perkiraan dari S ke B melalui A & D berbeda (yaitu h(B) =
7

1,5 rb) maka parent dari B perlu diubah yaitu D. Langkah ketiga menghasilkan OPEN =
[B,C,H,F] & CLOSED = [S,A,D]

Langkah 4.

B dengan biaya terkecil (yaitu f(B) = h(B) =
1,5 rb) terpilih sebagai simpul terbaik &
dipindahkan

ke

CLOSED.

Selanjutnya,

semua susesor B dibagkitkan, yaitu: E. karena
E belum ada di OPEN & CLOSED maka E
dimasukan
menghasilkan

ke

OPEN.
OPEN

=

Langkah

ini

[C,E,F,H]

&

CLOSED = [S,A,B,D]

Langkah 5.
E dengan biaya terkecil (yaitu f(E) = h(E) = 1,5 rb) terpilih sebagai simpul terbaik &
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
f(E) = h(E) = 1,5 rb) terpilih
8

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
4,5 km. hal ini menunjukan bahwa Greedy best first search tidak optimal.

9

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
didasarkan nilai fungsi tujuan. Pemeriksaan nilai fungsi tujuan lebih didahulukan sebelum
10

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 firstbest 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
ditemukan.

11

Skema Algoritma Tabu Search

12

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
berguna untuk merancang solusi dekat-ke-optimal.

13

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 sewenangwenang iterasi, terpenuhi. Setelah pencarian tabu sederhana berhenti, ia mengembalikan
solusi terbaik ditemukan selama pelaksanaannya (solusi dengan jarak terpendek perjalanan
saat mengunjungi semua kota).

14

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

sisi (x, y) dari grafik (di mana d menunjukkan panjang tepi itu), maka hdisebut monoton, atau
15

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
tertutup node yang sudah dilalui dapat digunakan untuk membuat pencarian lebih efisien.

16

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)
sementara openset tidak kosong
saat ini: = node di openset memiliki f_score terendah [nilai]
jika tujuan = arus
kembali reconstruct_path (came_from, tujuan)
hapus arus dari openset
menambahkan saat ini untuk closedset
untuk setiap tetangga di neighbor_nodes (saat ini)
tentative_g_score: = g_score [saat ini] + dist_between (saat ini, tetangga)
tentative_f_score: = tentative_g_score + heuristic_cost_estimate (tetangga, tujuan)
jika tetangga di closedset dan tentative_f_score> = f_score [tetangga]
terus
jika tetangga tidak di openset atau tentative_f_score Random(0 ..1) :
SolusiSementara

= SolusiBaru

NilaiEvaluasiSementara = NilaiEvaluasiBaru
T = 0.9*T

// Turunkan temperatur sesuai jadwal tertentu

Keterangan Pseudo Code
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
ada loop lagi di dalam while ini, untuk mengulang simulasi pada suhu yang sama).

21

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

G = {V, A,E}

22

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

dari graph.
23

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
yang sama.

24

Diagram alir dari algoritma SA untuk penjadwalan job shop diberikan dalam Gambar 2.

25

DAFTAR PUSTAKA

http:/ / tomatcoklat.w ordpress.com/ 2012/ 07/ 10/ simulated-annealing/ 7 Oktober 2013
http:/ / thesis.binus.ac.id/ Doc/ Bab2NoPass/ 2010-1-00510-M TIF%20Bab%202.pdf/ 7 Oktober 2013
http:/ / drw .politekniktelkom.ac.id/ Bebas/ Bachelor%20Degree/ M ateri%20Kuliah%20AI/ BAB%20III.p
df./ 7 Oktober 2013
http:/ / blogaqu.w ordpress.com/ 2009/ 11/ 09/ penerapan-greedy-best-first-search-dalamimplementasi-pencarian-lintasan-terpendek-dan-efisien-berdasarkan-jalur-dan-tarif-relatifangkutan-kota-angkot-dari-pancoran-ke-manggarai/ 7 Oktober 2013
http:/ / priyandari.staff.uns.ac.id/ 200909/ tabu-search-introduction/ 5 Oktober 2013

26