BAB2 LANDASAN TEORI .1 Kecerdasan Buatan Kecerdasan

advertisement
BAB2
LANDASAN TEORI
.1
Kecerdasan Buatan
Kecerdasan buatan (Artificial Intelligence) merupakan salah satu cabang
dalam ilmu komputer yang membuat seolah-olah sebuah komputer menunjukkan
suatu perilaku cerdas. Perilak:u cerdas tersebut seolah-olah membuat komputer
menirukan apa yang dikerjakan oleh otak manusia.
Definisi kecerdasan buatan merturut Andri Kristanto yang mengutip Paul
Y. Gloess (Kristanto, 2004, p2)
adalah ilmu
yang mempelajari bagaimana
membuat suatu mesin seolah-olah memiliki kecerdasan dalam memecahkan
suatu masalah yang diberikan kepadanya.
Adapun definisi kecerdasan buatan adalah sebagai berikut (Kristanto,
2004,p2):
®
Kecerdasan buatan adalah cabang ilmu komputer yang berhubungan dengan
studi dan kreasi sistim komputer yang mempertunjukan beberapa bentuk
kecerdasan.
"
Sistim yang mempelajari konsep-konsep barn dan tugas-tugas.
" Sistim yang dapat berpikir dan menarik kesimpulan yang berguna bagi dunia
di sekitar kita.
..
Sistim yang dapat mengerti bahasa dan memaharni pemandangan visual.
..
Sistim
yang
rnelak:ukan
tipe-tipe
yang
lain
seperti
prestasi
yang
8
membutuhkan kecerdasan manusia.
Dari definisi-definisi tersebut maka dapat diambil suatu kesimpulan
bahwa kecerdasan buatan adalah salah satu
cabang ilmu
komputer yang
mempelajari pembuatan suatu sistim terotomatisasi, dimaua sistim tersebut
mempunyai kemampuau untuk
tindakan yang
mengerti, berpikir dan
mengambilkan suatu
sesuai berdasarkan suatu prinsip kecerdasan yang
diterapkan
kepadanya.
Dengan
adanya
sistim
yang
cerdas
ini
maka
pekerjaan
yang
membutuhkan. kecerdasan manusia dapat dikerjakan olehnya.
.2
Algmritma, Permasalahan dan Kompleksitas.
2.:u
Definisi Algoritma
Algoritma berasal dari
kata
Algoris dan
Ritmis diungkapkan
pertama kali oleh Abu Ja'far Mohammad Ibn Musa AI Khowarizmi dari
buku Al-Jabr w'almuqabala (Horowitz dan Sahni, 1978, pl). Menumt
Ellis Horowitz dan Sartaj Sahni (1978, pl) ada beberapa definisi yang
diberikan mengenai pengertian a!goritma diantara yaitu :
1. Menumt Abu Ja'far Mohammad lbn Musa Al Khowarizmi.
/>.Jgoritma adalah suatu metode k.husus untuk menyelesaikan suatu
permasalahan.
2. Menurut Goodman Hedetniemi.
Algoritma adalah umt-umtan terbatas dari operasi-operasi yang
terdefinisi dengan baik, yang masing-masing membutuhkan suatu
9
memori
dan
waktu
yang
terbatas dalam
menyelesaikan suatu
problem.
3. Dalam ilmu komputer.
A!goritma adalah suatu metode yang
terdiri dari
suatu rangkaian
langkah-langkah yang terstruktur dan dituliskan secara sistematis
yang
kelak dikerjakan dalam penyelesaian suatu
masalah dengan
bantuan komputer.
[ Masalah
I ..-.j
Algoritma
I..-.[
Solusi
Gambar 2.1 Hubungan Antara Masalah, Algoritma dan Solusi
Tetapi algoritma menurut Horowitz et. a!. (Horowitz et .al., 1997,
p1 ) harus memenuhi kriteria :
1. Input. Nol atau sejumlah kuantitas harus disuplai secara eksterual.
2. Output. Paling sedikit dihasilkan satu kuantitas.
3. Definiteness. Setiap instruksijelas dan tidak ambigu.
4. Finitness. Jika suatu instruksi algoritma akan ditelusuri, dan dalam
semua kasus, algoritma berakhir dalam beberapa langkah yang
terbatas.
5. Effectiveness. Setiap instruksi haruslah bersifat mendasar sehingga
mudah diterapkan, secara prinsip, dapat dikeljakan oleh
walaupun dengan menggunakan pensil dan kertas.
seseorang
10
2.2.2
Permasalalmn Optimalillasi Kombinatlllrial
Permasalahan optimalisasi kombinatorial banyak dijumpai dalam
kehidupan sehari-ha:ri terlebih lagi dalam bidang telmik. Karakteristik
dari permasalahan optimalisasi kombinatorial adalab jumlab solusi yang
mungkin adalah terbatas (Gen dan Cheng, 1997, p97).
Solusi optimal dari suatu permasalahan secara prinsip diperoleh
dari perhitungan sederhana, tetapi pada kenyataannya seringkali hal ini
tidak climungkinkan. Terutama untuk pennasalaban yang real
jmnlab
dengan
kemungkinan solusi yang sangat besar. Sehingga tantangan
terbesar dalarn pemecahan masalah optimalisai kombinatorial adalah
menghadapi ledakan kombinatorial (Gen dan Cheng, 1997, p97).
2.2.3 Kompleksitas Waktu Algoritma dan Masalah
Salah satu ukuran biaya dalam rnengeksekusi sebuah algoritma
adalah
lamanya
waktu yang dibutuhkan.
Pengulruran waktu
yang
clilakukan pada saat mengeksekusi suatu algoritma dinamakan dengan
kompleksitas waktu (Liu, C. L, 1995, p272).
Besa:ran wakiu
yang
clibutuhkan suatu
algoritma
untuk
mengeljakan suatu problem akan tergantung dari banyalmya input yang
cliberikan dalam problem tersebut. Biasanya semakin banyak input yang
dimasukkan akan semakin besar waktu yang clibutuhkan, misalnya untuk
mengurutkan 10000 data
daripada
100
data.
akan clibutuhkan waktu yang lebih besar
Tetapi
dalam
kenyataannya
suatu algoritma
11
dipengaruhi oleh banyak faktor misalnya kecepatan dari prosesor
komputer yang digunakan, kualitas kompiler dan kualitas programnya
(Weiss, 1996, p277)_
Berdasarkan pengertian tersebut terdapat beberapa problem yang
tidak
mempunyai
algoritma
solusi_
Sehingga permasalahan dibagi
menjadi duajenis (Leahy, Billy, 2000, p21-24) yaitu:
1. Permasalahan yang dapat dipecahkan (Decidable I Solvable problem)
Permasalahan yang termasuk dalam klasifikasi ini adalah semua jenis
permasalal1an yang
mempunya
algoritma
solusi
walaupun
kadangkala tidalc praktis dalam segi komputasi_ Permasalahan dalam
klasifikasi ini dapat dibedakan dalam 3 jenis yaitu:
a. Pennasalahan Tractable (Mudah dalam segi komputasi). Suatu
masalah
dikatakan
tractable
jika
masalah
tersebut
dapat
dipecabkan oleh suatu algoritma yang efisien_
b. Permasalahan Intractable (Sulit dalan segi komputasi)_ Suatu
masalah dikatakan intactable jika tidak ada algoritma yang efisien
untuk memecahkan masalah tersebut
c_ Permasalahan Non-deterministik Polinomial
(NP) Complete.
Suatu masalah dikatalcan NP Complete apabila masalah tersebut
telah berhasil dibuktikan tennasuk dalam masalah intractable_
2. Pennasalahan
yang
tidak
dapat
dipecahkan
(Undecidable
Unsolvable problem)_ Pennasalahan yang termasuk dalam klasifikasi
ini adalah semua permasalahan yang tidak mempunyai algoritma
I
12
dipengaruhi oleh banyak faktor misalnya kecepatan dari prosesor
jawaban da1arn waktu yang terbatas).
Untuk mengulrur kompleksitas masalah
digunakan beberapa
definisi (Weiss, 1996, pl61) yaitu:
1. Big-Oh
Definisi:
T(n) O(F(n)).
Jika ada konstanta positif c dan No dimana T(n)<cF(n)
ketika N>= No
2.
Big-Omega
Definisi:
T(n)
Q
(F(n))
Jika ada konstanta positif c dan N0 dimana T(n)2 cF(n)
ketika N2N0•
3.
BigTheta
Definisi:
T(n) 8(F(n))
Jika dan hanyajika T(n) O(F(n)) dan T(n) Q (F(n))
4. Litt!e-Oh
Defmisi:
T(n) o(F(n))
Jika dan hanyajika T(n) O(F(n)) dan T(n)
* 8(F(n))
2.2.4 Geometri Komputasi, l'ermutasi dan Kombinasi
Geometri komputasi (computational geometry) ada!ah suatu studi
tentang algoritrna yang efisien dalarn memecahkan
geometri (Weisstein, 1999, p1)
suatu masalah
13
Permutasi adalah jika terdapat r dan n, dan r merupakan bagian
dari n. dan r disusun diantara n benda untuk memenuhi suatu aturan (Liu.
C. L., 1995, p70). Secara matematik ditulis:
P(n,r)=
n'
·
(n -r)!
Sedangkan kombinasi adalah banyaknya kemungkinan cara untuk
mengambil r benda dari
n benda (Liu.
C. L., 1995, p76).
Secara
maternatik dituliskan sebagai berikut :
c(n,r) =
.3
nl
·
r!(n -r)l
Evolutionary Computing
Evolutionmy Computing (Algoritma Evolusi) pertama kali diperkenalkan
sekitar tahun
"Evolution
1960-an oleh I. Rechenberg dalam karyanya yang
strategie"'
beljudul
(bahasa Perancis : Evolutions Strategie). Metode ini
diperkenalkan karena terdapat permasalahan yang sangat kompleks dan sulit
untuk diselesaikan dengan tekni.k optimisasi yang biasa.
Penyimulasian proses evolusi
alami manusia menghasilkan teknik
optimasi stokastik yang disebut evolutionary algorithms (Gen dan Cheng, 1997,
pl). Dalam prakteknya evolutionmy algorithms dibagi menjadi tiga bagian besar
yaitu: Genetic Algorithms (Algoritma Genetik), Evolutionmy Programming, dan
Evolution strategies. Masing - masing bidang juga berkembang sesuai dengan
variasi dan parameter yang digunakan dalam suatu perrnasalahan, sehingga tidak
dapat dinilai algoritma evolusi yang mana yang terbaik karena menurut Xin Yao
14
(1996, pl) tidak ada algoritma terbaik yang berlaku universal yang dapat
memberikan hasil yang terbaik untuk semua pennasalahan.
Algoritma evolusi mempunyai dua
karalcteristik yang
berbeda dengan Search Algorithm (Algoritn1a pencarian) yang
membuatnya
lain.
Pertarna
algoritma evolusi ini didasarkan pada populasi dari solusi yang mungkin. Kedua
terdapat komunikasi dan pertukaran infonnasi dari individn - individn dalam
populasi tersebnt untul( menghasilkan solusi yang lebih baik.
Algoritma Evolusi yang sederhana dapat ditu!iskan dalam pseudo code
beriknt:
1. Buat populasi awal P(O) secara random, dan set i
=0
2. REPEAT
a) Evaluasi fitness (kelayakan) untuk masing- masing individu dalam P(i);
b) Pilih induk dari P(i) yang didasarkan pada fitness dalam P(i);
c) terapkan operator pencarian terhadap induk dan hasilkan genera.si P(i+1);
3. UNTIL populasi konvergen atau waktu yang cliten1-ukan selesai.
Dalam a!goritma genetik operator pencarian sering disebut dengan
operator genetik. Jika metode presentasi atan peng-e:ncoding, skema seleksi, dan
operator pencariannya berbeda maka akan rnenghasilkan algoritma evolusi yang
berbeda pula.
silang) dan
Misalnya algoritma genetik menggunakan crossover
(pindah
mutation (mutasi I perubahan diri) sebagai operator pencarian
sedangkan Evolutionary Programming hanya menggunakan mutation. Algoritma
genetik seringkali menekankan pada evolusi genetik sedangkan Evolutionary
Programming menekaukan pada evolution of behaviours (evolnsi tingkah laku)
2.4
15
(Xin Yao, 1996, pl)
Aigoritma Genetik
Telah dijelaskan sebelumnya bahwa Genetic Algorithm (Algoritma
Genetik) merupakan salah satu
cabang evolutionary computing yang
juga
digunakan dalam kecerdasan buatan. Algoritma ini diperkenalkan oleh John
Holland dan kemudian dikembangkan olehnya beserta para murid dan rekanrekannya. Pemikiran John Holland ini kemudian dituliskan dalam bukunya yang
berjudul Adnption in Natural and Artificial Systems yang diterbitkan pada tahun
1975 (http://cs.felk.evut.cz/ xobitko/gal).
2.4.1
Lamr Beliakang Bioliogi
Algoritma genetik didasarkan pada teori Darwin tentang evolusi.
Teori darwin berprinsip bahwa makh.!uk hidup yang mampu bertahan
hiduplah
yang
terbaik
(menang).
Sehingga makhluk
hidup
hams
berevolusi untuk bertahan hidup dan akibatnya ia hams berupaya untuk
memperbaiki spesiesnya dari
generasi ke generasi agar
sesuai dengan
perkembangan alam. Dan jika ia tidak mampu melakukan perubahan
maka akhimya ia akan tersisih dan kemudian mati.
Semua makhluk hidup terdiri dari sel - se!. Dan masing - masing
sel terdiri dari kromosom- kromosom yangjumlahnya sama untuk setiap
sel. Kmmosom dapat dianggap sebagai suatu untaian dari DNA dan
merupakan model dari organisme tersebut. Sebuah Kromosom terdapat
16
gen - gen yang merupakan kelompok- kelompok DNA (blocks ofDNA).
Setiap gen berhubungan dengan protein tertentu dalam tubuh organisme
yang menandakan suatu sifat tertentu dari makhluk hidup misalnya saja
wama mata. Kemungkinan dari sifat - sifat tersebut dinamakan alleles.
Setiap gen diposisikan pada tempat - tempat tertentu dalam kromosom.
Posisi ini dinamakan locus.
Suatu kelompok kromosom makhluk hidup lengkap disebut
genome. Sekelompok gene
dalam genome disebut dengan genotype.
Genotype inilah yang menjadi basis perkembangan makhluk hidup
(phenotype) setelah kelahirannya, misalnya karakteristik fisik dan
mentalnya seperti warna mata, tingkat kecerdasan dan lain - lain.
Ketika
makhluk
hidup
bereproduksi,
kombinasi
ulang
(recombination) teljadi. Gen dari masing- masing induk dikombinasikan
untuk membentuk suatu kromosom yang barn. Anak (Offspring) yang
barn dihasilkan dapat juga
termutasi. Mutasi berarti elemen - elemen
tertentu pada DNA-nya sedikit berubah. Perubahan ini dapat disebabkan
dari penggandaan yang kurang sempuma dari induknya.
Kemampuan makhluk hidup tersebut bertahan hidup (Fitness of
an organism) diulrur dari kemampua1mya untuk hidup.
Untuk memudahkan pemetaan dari
permasalahan
penjelasannya.
berikut
ini
adalah
tabel
genetik ke dalam suatu
istilah
genetik
beserta
18
populasi atau diketemukannya solusi terbaik ) terpenuhi.
Berikut ini struktur algoritma genetik yang sederhana
L
[start] generasikan populasi secara acak dari n kromosom (solusi yang
mungkin dari suatu problem)
2.
[fitness] Evaluasi fitness f(x) untuk setiap kromosom x dalam
populasi
3.
[New population] Bentuk populasi barn dengan mertgulang langkahlangkah berikut sampai pembentukannya selesai
a.
[Selection] Pilih dua indul' kromosom dari populasi berdasarkan
tingkat kelayakatmya (fitness), semakin besar tingkat kelayakannya semakin besar kesempatannya untuk dipilih)
b.
[Crossover]
Dengan
tingkat
peluang
crossover
(persentase
kemungkinan kawin silang) terbentuklah anAA (offipring) dari
pengawinsilangan kedua induk. Dan jika tidAA teljadi kawin
silang mAAa anAA mernpakan duplikat dari induknya.
c. [Mutation] Dengan tingkat peluang Mutasi, mutasikan anal< pada
locus-nya (posisi dalam kromosom).
4.
[Accepting] Taruh anak dalam populasi barn
5. [Replace] Gunakan populasi yang barn dihasilkan untuk digunAAan
sebagai ganti populasi yang lama.
6.
[Test] Jika kondisi akhir terpenuhi, berhenti, dan berikan hasil terbaik
dari populasi yang paling akhir
7.
[LoopJ ulangi langkal12
19
Genetic
Algorithms
HOOlll H!IO
Hlli!OUiO
cl!romOS<>mes
ing
r
1!0010!010
Wi!IO!HO
l
001101!00!
1100!10001
1
t--
t
UOOlOUIO
llll!IO lOHl
"'"tation
I OOWHIOOII
f--
J
[I 00!10 OlOO!l
:J
evaluation
selectitm
offspring
I-
!
®
1100!0 I!RO
IOlllO IIllO
1--
001 !001001
f d«oding
!'Oillette wl!eel
fi!rless
\
oomplnation
Gambar 2.2 Struktur Umum A!goritma Genetik
Strulrur tersebut dituliskan dalam pseudo code dan gambar berikut
ini (Gen dan Cheng, 1997, p3)
Procedure : Genetic Algorithms
Begin
t 0;
initialize P(t);
evaluate P(t);
20
while ( not tennination condition ) do
recombine P(t) to yield C(t);
evaluate C(t);
select P(t+1) from P(t) and C(t);
t
t+1;
end
end
2.4.3 Operator Algoritma Genetik
Dalam algoritma genetik dapat dilihat bahwa didalamnya terdapat
dua operator yang culmp penting, yaitu operator crossover dan operator
mutation. Baik atau buruknya suatu pennasalahan diselesaikan dengan
algoritma ini tergantung dari kedua operator ini
2.4.3.1 Encode Kromosom
Sebuah kromosom dalam algorima genetik hams memiliki
infonnasi tentang suatu penyelesaian masalah. Umumnya encode
kromosom menggunakan suatu string biner. Berikut adalah
contoh sebuah kromosom.
Kromosom 1
1101100100110110
Kromosom 2
1101111000011110
Setiap kromosom diwujudkan dalam bentuk string biner
dan setiap bit dalam string tersebut mewakili karateristik suatu
21
solusi.
Kemungkinan
lainnya,
keseluruhan
string
tersebut
mewakili suatu angka.
Teknik peng-encode kromosom diantaranya adalah
o
Binary Encoding -
menggunakan
angka
biner
nntuk
merepresentasikan solusi.
e
Permutation Encoding
menggnnakan representasi urutan
dari suatu solusi.
e
Value Encoding - menggnnakan representasi nilai dari suatu
solusi
e
Tree Encoding - menggnnakan representasi struktur tree
dalam penyelesaian masalah (misalnya ekspresi aritmetik).
2.4.3.2 KawiKI Sililmg (Crossover)
Setelah memutuskan encoding mana yang akan digunakan
maka langkah se!anjutnya adalah menentukan operasi crossover.
Crossover beroperasi pada gen tertentu dari kromosom indulrnya
dalam
membuat
suatu
offspring. Cam
termudah
nntuk
menerapkan operator ini adalah dengan memilih secara random
titik crossover dan meng-copy semua bit sebelwn titik crossover
tersebut dari induk pertama dan meng-copy semua bit setelah titik
crossover dari induk kedua.
Operasi crossover dapat diilustrasikan sebagai berikut
(dengan I sebagai titik crossovernya).
22
Kromosom 1
11011J00100110110
Kromosom 2
11011111000011110
Offspring l
11011111000011110
Offspring 2
11011100100110110
Terdapat berbagai metode untuk
crossover, misa1nya
satu
titik
dengan memilih titik
Tingkat
kerumitan
membuat skenario
crossover lebih dari
crossover
tergantung
dari
pendekatan yang digunakan dalam meng-encode kromosom.
Beberapa metode crossover yang
biasa digunakan jika
teknik encoding kromosom yang digunakan adalah permutation
encoding, antara lain adalah:
Uniform Order-Based Crossover
Langkah-langkah untuk mendapatkan Child 1 dari Parent 1 dan
Parent 2 adalah sebagai berikut
L Buatlah satu
bit
string yang
sama panJangnya dengan
kromosom parent.
2. kemudian isi gen-gen pada kromosom Child 1 sesuai dengan
gen-gen pada kromosom Parent 1 jika bit string berisi angka 1.
3. Sisa gen pada Parent l yang belum diisi pada Child l
dipermutasi sehingga urutannya sesuai dengan Parent 2.
23
4. Isi gen yang kosong pada Child 1 sesuai dengan gen hasil
permutasi pada langkah 3 diatas.
Untuk tnembuat Child 2 dengan cara
yang sama seperti diatas
hanya ditukar antara Parent 1 dan Parent 2.
Partially Matclt Crossover (PMX)
llustrasi berikut ini akan menjelaskan bagaimana menghasilkan 2
child dari 2 parent yang diberikan.
Misalkan terdapat 2 parent:
Pl
=9
8 4 I 5 6 7 ll 3 2
P2=871[239[546
Maka untuk menghasilkan child diambil 2 titik potong seperti
pada gambar diatas, kemudian bagian yang tengah dipertukarkan
secara utuh yaitu "5 6 7" dengan "2 3 9". Sisa gen yang lain akan
dipetakan sesuai dengan pertukaran tersebut. Pada Pl gen 2, 3,
dan 9 akan ditukar dengan gen 5, 6, dan 7. Demikian pula
sebaliknya, sehingga dihasilkan child seperti berikut:
Cl
=7
8 4[2 3 9! l 6 5
C2=891[567[243
2.4.3.3 Mutasi (Mutation)
Setelab crossover diproses langkah selanjutnya adalah
mutation.
Mutasi
diperlukan
untuk
mencegah
solusi
yang
dijalankan masuk ke dalam local optimum dari solusi masalah.
24
Mutasi beroperasi secara random dalam mengubah offspring yang
dihasilkan crossover. Misalnya dalam encoding biner dengan
mengubah beberapa bit secara random dari 1 ke 0 atau dari 0 ke 1
Operasi mutasi di ilustrasikan sebagai berikut.
Offspring Asli l
1101111000011110
Offspring As!i 2
1101100100110110
Offspring Mutasi 1
1100111000011110
Offspring Mutasi 2
1101101100110110
Teknik mutasi juga tergantung dari pendekatan yang
digunakan dalam
meng-encode kromosom.
encoding yang digunakan adalah
pennutasi,
Misalnya jika
maka
mutasi
dilakukan dengan mempertukarkan dua gene.
2.4.3.4 Tingkat Kemungkinan Crossover dan Mutasi
Tingkat kemungkinan Crossover (Crossover Probability)
adalah kadar kekerapan crossover akan dilakukan. Jika
tidak
teljadi crossover, maka offspring tepat sama dengan induknya.
Jika terdapat crossover, offspring merupakan campuran dari dua
buah induk kromosom. Jika tingkat kemungkinannya 100% maka
semua offspring dibentuk dari crossover begitu juga tingkat
kemungkinannya 0%
maka seluruk generasi dibentuk dari
kromosom yang sama dengan populasi sebelumnya (ini
bukan
berarti generasi yang baru adalah sama dengan generasi yang
25
terdahulu).
Crossover dibentuk dengan harapan kromosom yang barn
akan berisi bagian yang
terbaik dari
kromosom yang
lama
sehingga kromosom yang barn akan lebih baik dari kromsom yang
lama.
Tingkat kemungkinan mutasi adalah kadar kekerapan
suatu kromosom akan
termutasi. Jika
tidak
terjadi mutasi,
offtpring akan dihasilkan tepat setelah crossover dilakukan tanpa
ada perubahan. Jika mutasi diterapkan maka satu
atau lebih
bagian kromosom akan diubah. Jika tingkat kemungkinan mutasi
100% malca seluruh kromosom akan diubah dan jika 0% maka
tidak akan teljadi perubahan.
Mutasi berfungsi untuk mencegah algoritma genetik jatuh
ke dalam pencarian lokal saja, na.mun mutasi jangan diterapkan
dengan kadar
yang
sering, karena
algoritma genetik akan
mengarah kepada pencarian sepenuhnya random.
2.4.3.5 Popu1asi
Da!am algoritma genetik terdapat beberapa parameter lain
yang sering digunakan, yaitu Uknran Populasi (Population size)
adalah banyaknya kromosom dalam suatu populasi. Jika populasi
terlalu sedikit maka algoritma genetik hanya mempunyai sedikit
kesempatan untuk melakukan crossover dan hanya sebagian
26
lingkup pencarian yang dieksplorasi. Dan sebaliknya jika populasi
terlalu banyak akan
mengakibatkan performa algorima genetik
akan menurun.
2.4.4
Tal:mp Seleksi (Selection)
Untuk menghasilkan kromosom yang
baru
maka diperlukan
seleksi dari kromosom yang lama. Dalam hal ini yang terbaiklah yang
mempunyai kesempatan tertinggi untuk membuat offipring. Terdapat
berbagai metode untuk memilil1 kromosom yang
terbaik, diantaranya
adalah:
Roulette Wheel Selection (Seleksi Roda Rolet)
Induk dipilih berdasarkan kelayakarmya (fitness). Semakin baik
suatu kromosom, semakin tinggi kesempatarmya untuk dipi!ih. Seleksi ini
diilustrasikan dengan Roda
Rolet dimana semua kromosom dalam
populasi dipetakan. Besar wilayah dalam roda rolet sebanding dengan
nilai
kelayakan dari
setiap kromosom (semakin tinggi nilainya maka
besar wilayahnya dalarn lingkaran.
Seleksi ini digambarkan sebagai berikut :
...-:-:----:=-:;-]
la Kromosom 1:
Irl':i Kro.mosom?_[,
!o
Kromosom
31
!oKromosom 4!
Gambar 2.3 Diagram Seleksi pada metode seleksi roda rolet
27
Rank Selection (Seleksi Tingkllt)
Dalam Seleksi. Rocla Rolet jika tingkat kelayakan kromosom
terbaik aclalah 90% maka jumlah seluruh kelayakan akan didominasi
olehnya sehingga akan mempersulit kromosom yang lain untulc dipilih.
Seleksi tingkat membuat peringkat clari populasi clan kemudian
setiap kromosom diberikan suatu tingkat kelayakan sendiri yang
ditentukan clari peringkatnya. Misalnya yang terburuk akan bemilai 1 clan
yang terbaik akan bemilai N (Jumlah kromosom clalam populasi). Seleksi
i ni dii!Iustrasikan pada gambar 2.4.
Walaupun dalam seleksi
1m
setiap
kromosom
mempunym
kesempatan untuk dipilih tetapi metode ini mengakibatkan konvergensi
yang lambat karena kromosom yang terbaik dianggap tidak berbecla
dengan kromosom yang lain.
l0 Kromosom 1 !
! m Kromosom 2j
Kromosom -.; t
Kromosom 4!
·
Kondisl Sebelum diranking {Graph of fitnesses)
j a Kromosom
im Kromosom :
io Kromosom
1
-:<
o Kromosom 4
Kondisi Setelah diranking (Graph of order numbers)
Gambar 2.4 Gambar perbandingan antara seleksi roda rolet dan seleksi tingkat
28
Steady-State Selection
Ide
utama dari
seleksi ini
menghasilkan kromosom untuk
generasi akan
offiprirtg
adalah memilih yang
generasi yang
terdapat kromosom yang
daripada
yang
kesempatan lebih untuk
lain,
maka
dipilih. Dan
barn.
terbesar
Dalam setiap
menghasilkan lebih banyak
kromosom
untuk
ini
mempunyai
kromosom yang sedikit
menghasilkan offipring akan dibuang dan posisinya akan digantikan oleh
yang lain.
Elitism
Dalam setiap penyeleksian untuk
menghasilkan populasi barn
akan terdapat kemungkinan kromosom yang terbaik akan hilang, dan
oleh sebab itu dengan metode seleksi Elitism, kromosom yang terbaik
dimasukkan ke dalam populasi yang baru. Sisa dari populasi kemudian
dibentuk dengan crossover dan (atau) mutasi.
2.4.5
Algoritma genetik hibrid.
Walaupun algoritma genetik dapat memberikan hasil yang cukup
baik dalam menyelesaikan masalah optimasi tetapi tetap terdapat dimana
situasi yang membuat algoritma genetik berfungsi k:urang baik dan untuk
menanggulanginya, beberapa kombinasi dengan algoritma lain
dikembangkan. Algoritma genetik yang
seperti ini
algoritma genetik hibrid (Hybrid Genetic algorithm).
mulai
disebut dengan
29
Salah satu tujuan untuk mengembangkan algoritma genetik hibrid
adalah untuk: mempercepat optimasi lokal sebagai tambahan pada proses
perulangan di saat kombinasi ulang (t;rossover) dan seleksi. Dengan
pendekatan ini, optimasi lokal diterapkan untuk: setiap generasi bam yang
dihasilkan, sehingga akan memasuk:i local optimum sebelum masuk ke
dalam populasi (Gen dan Cheng, 1997, p31)
Kombinasi
1m
memanfaatkan
algoritma
genetik
untuk
penjelajahan global (global exploration) diantara populasi dan metode
lain (heuristik m:isalnya) untuk melakukan penjelajahan lokal (local
exploration) diantara kromosom-kromosom (Gen dan Cheng, 1997, p31).
.5
Metode Greedy
Metode greedy merupakan salah satn metode heuristik yang digunakan
untuk: mempercepat pemecahan masalah dalam algorima genetik.
Metode greedy dimisalkan ada n input, maka akan dicari suatu subset
{xl, x2, x3,... ,xn} yang memenulri suatu kendala (constrain) yang ditentuk:an,
Subset yang memenulri kendala yang ditentnkan pada suatu persoalan disebut
solusi yang mungkin (feasible solution).
Jika dapat dicari suatu subset dari solusifeasible yang meng-optimalkan
fungsi tujuan (objective jUnction) maka subset demikian disebut solusi optimal
(optimal solution). Metode greedy adalah salah satu cam untuk mencari solusi
yang optimal dari solusi feasible secara bertahap, dengan memperhatikan fungsi
tnjuan demikian sehingga didapat solusi optimal. Langkah-langkah
untuk:
30
mencari set solusi optimal dari metode greedy dapat dilihat pada gambar 2.5.
( Start )
!
<
i -7 n
I
>
'
X e Set solusi
feasible
j
Masukl<an X
sebagai anggota
solusi optimal
Dapatkan solusi
I optimal
dari set solusi
I feasible denaan
. memperhatikan fungsi
I tujuan
(
j
End
,
I
1
)
Gambar 2.5 Flow chart algoritma Greedy
Container Loading Problem adalah masalah dimana sejumlah kotak
(hoks) akan dimasukkan ke suatu kontainer yang herdi.me:nsi tc:tr (Pisinger.
2002,
r1 ).
PermasBlahan ini mempunyai tingkat kesulitan yang tinggi dan dalam
prakteknya sulit nntuk dipecahkan, dan digolongkan sebagai permasa\ahan NP-
hard.
31
Penempatan yang optimal akan mengurangi biaya pengmman
dan
menambah stabilitas dan dulrungan daya beban. Menurut Pisinger (Pisinger,
2002, p2) terdapat beberapa variasi dari pennasalahan ini yaitu:
..
Strip Packing. Dalam masalah ini, kontainer diasumsikan mempunyai Iebar
dan tinggi yang tetap, tetapi kedalamannya diasumsikan tidak terbatas. Dan
semua kotak hams dimasukkan ke dalam kontainer sehingga menghasilkan
keda!aman yang minimal.
w
Knapsack Loading. Dalam masalah ini setiap kotak berhubungan dengan
.suatn keuntungan (profit) dan dikehendaki memuat beberapa
kotak dari
-
.
keseluruhan kotak yang ada ke dalam satu kontainer tetapi keuntungan yang
didaoat dari pemuatan kotak tersebut adalah v- ang
g op
.....-_palin
. timal.
"-
,.
Bin
Packing.
Dalam
masalah
ini
terdapat
beberapa
kontainer
yang
berdimensi tetap dan semua kotak hams dimasukkan kedalam kontainerkontainer tersebut, namun diharapkan kontainer yang dibutJ.Jhlmn minimal
..
Multi Container Loading. MaBalah ini hampir sama dengan pennasalah;m
bin packing, hanya saja kontainer-kontainer yang digunakan memiliki ukuran
dimensi yang berbeda-beda. Pemecahan yang diharapkan adalah dengan
memilih sejumlah kontainer sehingga menghasilkan biaya pengiriman yang
minimal.
Pemecahan masalah muatan
kontainer tidak mempunyai
algoritma
pemecahan yang .khusus, namun terdapat beberapa pendekatan yang digunakan
untuk memecahkan masalah ini (Pisinger, 2002, p3) diantaranya yaitu:
"
Pendekatan Wall Building. Mengisi !container dengan sejumlah layer yang
32
memenuhi suatu kedalaman dari kontainer.
®
Pendekatan Stack Building. Menempatkan kotak ke dalam suatu susunan dan
kemndian mengatumya pada lantai kontainer dengan solusi penempatan dua
dimensi_
*
Pendekatan Guilloutine Cutting. Didasarkan pada pembagian guilloutine
suatu kontainer ke da1am bagian-bagian kecil dimana node-node merupakan
representasi kotak
"
Pendekatan Cuboid Arrangement_ Secara rekursif mengisi kontainer dengan
pengaturan knboid (diatur berdasarkan kotak-kotak yang sama)_
Download