Anda di halaman 1dari 11

KAJIAN GENETIC ALGORITHM

DALAM PENYELESAIAN TSP

Arief Widhiyasa
13505126
Program Studi Teknik Informatika
Institut Teknologi Bandung
Jl. Ganesha 10, Bandung
E-mail : arief.clawford@gmail.com

Abstrak
Makalah ini membahas tentang Genetic Algorithm (GA). Genetic Algorithm merupakan suatu
algoritma yang pendekatannya dilakukan melalui kajian sistem genetika kehidupan. Dimana berbagai
kegiatan genetik seperti persilangan dan mutasi merupakan salah satu operasi pada Genetic Algorithm ini.
Memanfaatkan teknik randomisasi dan persilangan serta mutasi, genetik algorithm menjadi suatu teknik
heuristic yang dapat menemukan suatu solusi dengan cukup cepat. Walaupun ada kemungkinan dimana
solusi yang ditemukan terjebak pada suatu optimum lokal, bukan merupakan optimum global, namun
algoritma ini masih merupakan salah satu algoritma yang baik dalam menyelesaikan masalah-masalah NP
dimana waktu eksekusinya yang cukup singkat sangat membantu. Dalam makalah ini akan dikaji mengenai
Genetik Algorithm beserta implementasinya dalam menyelesaikan TSP yang merupakan masalah NP,
dalam waktu eksekusi yang cukup singkat.

Kata-kata kunci: Genetic, TSP, Selection, Crossover, Mutation, Population.

1. PENDAHULUAN sama sekali tidak mengubah kompleksitas dari


Sampai saat ini TSP masih merupakan masalah masalah ini.
yang belum dapat diselesaikan dengan benar-
benar optimal. Berbagai pendekatan telah Bila ditinjau dari segi sejarah, masalah ini
dilakukan dari berbagai sudut. Namun masih pertama kali dikemukakan sejak jaman komputer
juga belum dapat menyelesaikan masalah belum ada. Sekitar abad ke-19 Sir William
tersebut dengan optimal. Rowan Hamilton, seorang ahli Matematika
Irlandia dan Thomas Penyngton Kirkman,
TSP yang merupakan singkatan dari Travelling seorang ahli Matematika Inggris mengemukakan
Salesman/Salesperson Problem yang merupakan masalah ini. Diskui dari hasil pekerjaan mereka
suatu masalah yang cukup terkenal pada teori dapat dilihat pada buku Graph Theory (1736-
grafika. Secara umum deskripsi 1936) karangan N.L. Biggs, E.K. Lloyd, dan R.J.
permasalahannya adalah sebagai berikut : Wilson: Clarendon Press, Oxford, 1976. Bentuk
umum dari permasalahan TSP ini muncul dan
’Diberikan sejumlah kota dan jarak dipelajari mulai tahun 1930 oleh Karl Menger di
antar kota. Tentukan sirkuit terpendek yang Vienna and Harvard. Masalah itu kemudian lebih
harus dilalui oleh seorang pedagang bila lanjut lagi dibahas oleh Hassler Whitney dan
pedangan itu berangkat dari sebuah kota asal dan Merrill Flood di Princeton. Pembahasan lebih
menyinggahi setiap kota tepat satu kali dan detail mengenai hubungan kedua pembelajaran
kembali lagi ke kota asal keberangkatan. Kota diatas dan perkembangan TSP dapat ditemukan
dapat dinyatakan sebagai simpul graf, sedangkan di paper karya Alexander Schrijiver, yang
sisi menyatakan jalan yang menghubungkan berjudul ”On The History of Combinatorial
antar dua buah kota. Bobot pada sisi menyatakan Optimization”.
jarak antara dua buah kota.’ (Dikutip dari Diktat
Kuliah Matematika Diskrit, Ir. Rinaldi Munir, Dilihat dari persoalannya solusi paling pasti
M.T. halaman VIII-48) adalah dengan mencoba semua permutasinya
(ordered combinations) kemudian melihat yang
Masalah ini tidak lain adalah menentukan sirtkui mana yang paling pendek jaraknya. Jadi intinya
hamilton yang memiliki bobot minimum pada menggunakan teknik brute force dimana semua
sebuah graf terhubung. Sehingga kemungkinan dicoba. Jadi jika ada n buah kota,
peraturan ’harus kembali ke tempat semula’

1
akan terjadi n! kali proses perhitungan atau O(n!)
dan ini sangat tidak mangkus (efisien). Saat ini, Genetic Algorithm merupakan salah
satu algoritma yang dicoba untuk mencapai
Jika menggunakan Dynamic Programming, solusi optimal TSP, walaupun sampai saat ini
masalah ini dapat diselesaikan kira-kira dalam masih belum merupakan optimum global,
O(2n). Walaupun ini exponensial, tapi masih jauh algoritma ini sudah menghasilkan solusi yang
lebih baik dari O(n!). Secara sederhana, sangat mendekati solusi optimum global.
Dynamic Programming merupakan teknik
dimana dilakukan penyimpanan data untuk 2. PENGENALAN GENETIC ALGORITHM
sesuatu yang sudah pernah dihitung dan
digunakan lebih dari satu kali. Fisika, Biologi, Ekonomi atau Sosiologi
seringkali harus berurusan dengan masalah
Melihat hasil dari 2 buah cara diatas yang masih optimisasi klasik. Ekonomi sepertinya
menghasilkan runtime yang sangat lama, merupakan salah satu spesialis dalam hal
masalah ini digolongkan ke dalam NP-Hard. NP tersebut1. Secara umum, dapat juga dikatakan
adalah singkatan dari ‘Non-deterministic sebagian besar pengembangan-pengembangan di
Polynomial time’ merupakan suatu kumpulan bidang Matematika pada abad ke-18 berhadapan
problem yang bisa diselesaikan secara sempurna dengan masalah tersebut.
hanya dengan runtime polynomial tergantung
terhadap banyaknya input pada sebuah non- Metoda analisis murni telah membuktikan
deterministic Turing machine. Bila masalah ini effisisensinya. Walaupun begitu, metoda tersebut
merupakan masalah memutuskan, misalnya tetap memiliki kelemahan yang tidak dapat
‘diberikan rute dengan cost x, apakah ada suatu dihilangkan, contohnya : Kenyataan jarangkali
rute yang lebih singkat dari x?’, masalah baru ini mematuhi fungsi-fungsi diferensial tingkat tinggi
merupakan NP-Complete. NP-Complete adalah yang dipertunjukkan para profesor2.
suatu kumpulan masalah-masalah NP-Hard
dimana solusi reduksinya juga masih merupakan Metode lainnya, penggabungan analisis
NP. matematika dengan pencarian acak telah muncul.
Dapat dibayangkan ketika kita menyebarkan
Untuk memecahkan masalah ini, berbagai robot-robot kecil di sebuah pada daerah
pendekatan harus dilakukan. Pendekatan standar pegunungan. Robot-robot tersebut dapat
yang dilakukan ketika menemui suatu NP mengikuti jalan-jalan setapak yang mereka temui.
problem adalah : Ketika sebuah robot mencapai puncak, dia akan
1. Membuat suatu algoritma untuk mencari menyatakan bahwa dia telah menemukan puncak
solusi yang optimal global. (cara ini akan optimum. Metoda ini akan sangat efisien, tapi
bekerja cepat untuk ukuran masalah yang tidak ada bukti bahwa optimum yang ditemukan
kecil). adalah optimum untuk seluruh pegunungan
2. Mencari suatu ’suboptimal’ atau algoritma (optimum global), setial robot bisa saja
heuristic. Algoritma yang akan menemukan hanya optimum lokal. Metoda jenis
menghasilkan suatu solusi yang baik, ini hanya bekerja pada ruang lingkup pencarian
walaupun tidak bisa dibuktikan optimum yang diperkecil.
global.
3. Mencari kasus-kasus spesial dimana dapat Lalu apakah hubungan antara metoda optimasi
diimplementasikan heuristic yang lebih baik tersebut dengan dunia buatan (artificial) dan
atau lebih pasti. bahkan dengan TSP?

Melihat dari hasil pendekatan di atas, pada 2.1. Evolusi dan optimisasi.
akhirnya algoritma yang digunakan adalah
heuristic. Heuristic merupakan suatu metoda Sekarang kita akan mencoba kembali ke 45 juta
pendekatan yang untuk memecahkan suatu tahun yang lalu mengamati seekor
masalah dan tidak peduli apakah solusinya bisa Basilosaurus :
dibuktikan benar atau tidak. Tetapi secara umum
bisa menghasilkan solusi yang baik atau
menyelesaikan masalah yang lebih sederhana
yang mengandung atau berhubungan dengan
masalah yang lebih kompleks.

2
sempurna dengan berbagai tekanan pada
lingkungan perairan.

Proses adaptasi ini, proses optimasi morfologi ini


sangat sempurna sehingga jaman sekarang,
kesamaan antara paus, lumba-lumba dan hiu
sangat banyak. Tetapi kemunculan ikan
Basilosaurus
cartilaginous pertama (Chondrichtyen) berasal
pada jaman Devonian (400 juta tahun lalu), jauh
Basilosaurus dapat dikatakan prototipe dari
sebelum pembentukan mamalia pertama dari
seekor paus. Panjangnya sekitar 15 meter dan
perubahan bentuk Cetacean5.
beratnya kurang lebih 5 ton. Ia juga memiliki
kepala yang setengah bebas (quasi-independent)
Oleh karena itu, mekanisme Darwin juga
dan kaki belakang. Ia bergerak dalam air
merupakan proses optimisasi6, optimasi
menggunakan gerakan yang bergelombang dan
hidrodinamik untuk ikan dan binatang perairan
berburu mangsa-mangsa kecil3.
lainnya, tubuh aerodinamis untuk pterodactyls,
burung atau kelelawar. Observasi ini merupakan
Pergerakan di dalam elemen yang kental (air)
basis dari Genetic Algorithm.
sangatlah susah dan memerlukan usaha yang
cukup keras. Ia harus memiliki banyak energy
untuk bergerak dan mengontrol lengkungan 2.2. Evolusi dan Genetic Algorithms
John Holland, dari University of Michigan
gerakannya. Namun bagian depan anggota tubuh
memulai karyanya pada genetic algorithm pada
basilosaurus tidak benar-benar teradaptasi untuk
awal tahun 1960. Hasil yang pertama
berenang.4. Untuk itu, dua buah fenomena
dikemukakan ke publik adalah Adaptation in
evolusi harus muncul, yaitu : memendeknya
Natural and Artificial System7 pada 1975.
lengan serta pengontrolan pergerakan oleh bahu,
dan pemanjangan jari-jari yang menjadi dasar
Holland mempunyai tujuan ganda, yaitu untuk
struktur flipper-nya.
meningkatkan pengertian di bidang proses
adaptasi alami dan untuk mendesain sistem
buatan yang memiliki ciri-ciri mirip dengan
sistem alami.8.

Ide dasarnya seperti ini. Kumpulan gen dari


sebuah populasi yg diberikan akan memberikan
Tursiops flipper suatu solusi, atau solusi yang lebih baik, atau
Gambar diatas menunjukkan bahwa 2 jari dari memberikan masalah adaptasi. Solusi ini tidak
lumba-lumba standar yang memanjang “active” karena kombinasi genetic dimana solusi
dibandingkan jari-jari lainnya. itu bergantung terbagi menjadi beberapa subjek.
Hanya dengan asosiasi dari berbagai elemen gen
Basilosaurus merupakan hewan pemburu, oleh yang bisa menuju ke solusi. Untuk lebih
karena itu, ia harus cepat dan tepat sasaran. mudahnya, kita bisa mengambil contoh dari
Seiring dengan waktu, subyek-subyek yang perubahan bentuk tubuh basilosaurus yaitu
diteliti mulai muncul dengan lengan yang lebih pemendekan lengan dan pemanjangan jari.
pendek dan jari yang memanjang. Sehingga Perubahan tersebut dikontrol oleh 2 gen.
mereka bisa bergerak lebih cepat dan tepat dari Sebelumnya tidak ada basilosaurus yang
sebelumnya, akibatnya mereka bisa hidup lebih memiliki 2 buah gen tersebut namun seiring
lama dan memiliki banyak keturunan. dengan reproduksi dan persilangan (kawin),
muncul suatu kombinasi genetic baru, dan
Sementara itu, peningkatan-peningkatan lainnya akhirnya muncul makhluk baru yang mewarisi
juga muncul menuju bentuk aerodinamis umum gen-gen terbaik dari induknya. Lengannya kini
seperti integrasi kepala dengan badan, perubahan bisa digunakan sebagai ’flipper’.
pada wajah, penguatan sirip belakang dan lain-
lain. Sehingga pada akhirnya menghasilkan Metoda Holland ini cukup efektif karena ia tidak
sebuah individu yang beradaptasi dengan hanya mendeklarasikan peran sebuag mutasi
(mutasi sangat jarang meningkatkan
ke’mangkus’an algoritma), tetapi ia juga

3
menggunakan rekombinasi genetik Nilai kecocokannya (fitness) sangat mudah
(persilangan).9 Dengan menggunakan teknik dihitung. Kita hanya perlu memberikan satu poin
persilangan ini pada solusi parsial, akan untuk setiap gen yang berkores-pondensi dengan
meningkatkan kapabilitas suatu algoritma untuk gen idealnya. Gen yang sempurna akan
mendekati atau bahkan menemukan solusi memperoleh nilai 4. Kemungkinan bereproduksi
optimum globalnya. pada suatu subyek juga sangat tergantung pada
nilai ini. Pada kasus tadi, kita akan memperoleh
2.3. Penggunaan Genetic Algorithm nilai seperti yang ditunjukan tabel di bawah ini :
Sebagai contoh, kita akan mencoba memasuki Subject Fitness Reproduction probability
sebuah dunia genetik yang disederhanakan.
A 1 1/7 = 0.143
Kromosom merepresentasikan sebuah grup dari
fungsi-fungsi yang saling berhubungan. Gen B 1 1/7 = 0.143
merepresentasikan aktivasi atau deaktivasi dari C 2 2/7 = 0.286
sebuah fungsi. D 3 3/7 = 0.428
Sekarang kita coba mengamati kumpulan global Total 7 7/7=1
genetik dari 4 basilosaurus yang ada di dunia ini.
Kita akan menganggap kromoson yang Sekarang kita akan membuat suatu siklus
merepresentasikan panjang dari tubuh bagian reproduksi dengan 4 keturunan. Subyek D akan
depan. Panjang dari lengan dan panjang dari jari dipilih 4 kali dan akan memperoleh 4 keturunan.
akan direpresentasikan dengan 4 buah gen. Dua Subyek C akan dipilih 2 kali sehingga A dan B
buah gen pertama akan merepresentasikan masing-masing akan dipilih hanya satu kali saja.
panjang lengan dan sisanya merepresentasikan
panjang jari. Pola reproduksinya seperti yang ditunjukkan
pada tabel di bawah ini :
Dalam bentuk representasi genom kita, gambar Received Reproduction
lingkaran pada kotak berwarna latar biru Sbj Genome Fts
genes probability
menyatakan aktivasi fungsi pemanjangan dan
gambar silang pada kotak berwarna latar hijau A:
A' 2 2/10=0.2
menyatakan deaktivasinya. Sehingga genom D:
yang ideal (Lengan pendek dan jari panjang)
B:
akan berbentuk seperti : . B' 2 2/10=0.2
D:
Misalkan kumpulan genetik pada populasi kita D:
C' 3 3/10=0.3
adalah seperti ini : C:
Subject Genome
C:
A D' 3 3/10=0.3
D:
B
C Total 10 10/10=1
D
Selama reproduksi silang yang bermunculan
Bisa dilihat jikalau subyek A dan B sangat
pada tempat-tempat yang acak. Sehingga akan
menyerupai sifat-sifat nenek moyangnya. Dan
memunculkan suatu populasi baru berisi A', B',
sebaliknya, D sangat mendekati optimum, ia
C' dan D'. Populasi ini memiliki hubungan ke
hanya butuh pemanjangan jari sedikit lagi.
gen ideal lebih tinggi dari sebelumnya. Dalam
contoh kita, total nilai kecocokan dari seluruh
Ini adalah dunia yang sangat kejam sehingga
populasi melonjak dari 7 ke 10.
kemampuan untuk bergerak da berpindah tempat
merupakan modal pertama untuk bertahan hidup
Dalam siklus-siklus reproduksi berikutnya, C'
dan bereproduksi. Tidak akan ada betina yang
dan D' akan memiliki keturunan sebagai berikut :
dengan mudah mau mengawini basilosaurus
yang terlihat seperti A. Tetapi mereka akan tetap D' : + C' : =
memimpikan untuk bertemu dengan D suatu hari. Subyek baru ini telah memiliki gen ideal,
lengannya telah menjadi ‘flipper’.

4
Sekarang bisa kita lihat bahwa prinsip-prinsip Penggunaan dari metode ini mau tidak mau akan
dasar dari Genetic Algorithm cukup simpel, membentuk dua buah masalah :
yaitu : 1. Sebuah "super-subject" akan menjadi terlalu
1. Mengkodekan permasalahan dalam string sering dipilih dalam sebuah populasi dan
biner. selalu mencoba untuk mengkonvergenkan
2. Membuat suatu populasi acak. Bagian ini genomnya. Berbagai macam hal pada
termasuk membuat sebuah kumpulan kumpulan genetik harus dikurangi untuk
genetik yang merepresen-tasikan kelompok- melanjutkan proses Genetic Algorithm.
kelompok solusi yang mungkin. 2. Dalam eksekusi Genetic Algorithm,
3. Menghitung nilai kecocokan (fitness) dari perbedaan antara nilai kecocokan (fitness)
masing-masing subyek. Nilai ini akan dapat dikurangi. Nilai yg terbaik akan
langsung bergantung dengan jarak dari mendapatkan nilai kemungkinan seleksi
solusi optimumnya. yang sama dengan yang lain, sehingga
4. Seleksi subyek yang akan berpasangan Genetic Algorithm akan berhenti berfungsi.
sesuai dengan bagiannya pada populasi
kecocokan global. Untuk meringankan masalah ini, sangatlah
5. Perkawinan silang dan mutasi genom. mungkin untuk mengubah nilai kecocokan
6. Kemudian diulangi lagi langkah demi (fitness). Berikut ini adalah 4 metode utama yang
langkah dari langkah ke-3 sampai dapat digunakan :
menemukan optimum. 1. Windowing : untuk setiap subjek, kurangi
nilai fitness dengan nilai fitness subjek yang
Penggunaan dari Genetic Algorithm juga bisa lebih buruk. Hal ini mengijinkan untuk
dimodelkan dengan menggunakan notasi memperkuat subjek terkuat dan untuk
Genotip (Genotype-GTYPE) dan fenotip memperoleh distribusi berbasis nol.
(Phenotype-PTYPE)10. 2. Exponential : metode ini dikemukakan oleh
1. Memilih pasangan GTYPE menurut S.R Ladd11, dengan mengambil nilai akar
kecocokan PTYPE mereka. dari fitness plus one (maksudnya ditambah 1
2. Mengaplikasikan operator genetik seperti ya?). Hal ini mengijinkan untuk mengurangi
perkawinan silang dan mutasi, untuk pengaruh subjek terkuat.
menciptakan GTYPE baru. 3. Linear Transformation: mengaplikasikan
3. Mengembangkan GTYPE baru tersebut dan sebuah perubahan linear pada masing2
mendapatkan PTYPE untuk generasi baru, fitness, contoh: . f ' = a.f + b. Subjek terkuat
kemudian diulangi lagi dari langkah ke-1. sekali lagi dikurangi.
4. Linear normalization: fitness diliniarisasikan.
Persilangan (kawin silang) merupakan basis dari Contoh: dalam sebuah populasi dengan 10
Genetic Algorithm, walaupun selain itu masih subjek, subjek pertaman akan mendapat 100,
ada operator genetik lain yaitu mutasi. subjek kedua 90, kemudia 80…dst, yang
Kenyataannya, solusi yang diinginkan mungkin terakhir akan mendapat 10. kemudian
terjadi tidak pada kumpulan genetik yang hindarilah ketegangan dari perhitungan
diberikan, walaupun pada kumpulan genetik langsung. Bahkan jika perbedaan diantara
yang besar. Mutasi mengijinkan penggabungan subjek terbilang cukup kuat, maka
sebuah konfigurasi genetik baru, dimana akan perbedaap di antara kemungkinan dalam
memperlebar kemungkinan menemukan solusi mereproduksi hanya bergantung pada
optimal. Operasi lain seperti inversi juga rangking dari subjek.
memungkinkan terjadi, tetapi kita tidak akan
berhubungan dengan operasi itu saat ini. Untuk mengilustrasikan metode ini, masi kita
anggap ada sebuah populasi yang terdiri dari
2.4. Masalah Scaling (Pemberian Skala) empat subyek untuk memeriksa akibat dari
Kita telah melihat sebelumnya bahwa pada scaling ini. Untuk setiap subyek, kita akan
genetic algorithm, kemungkinan reproduksi memberikan nilai kecocokan (fitness) dan
sangat tergantung pada nilai kecocokan setiap kemungkinan dipilih yang bersesuaian. Hasilnya
subyek. Kita akan mensimulasi hal tersebut bisa dilihat pada tabel di bawah ini :
dengan memberikan tekanan adaptasi pada
lingkungannya.

5
Subjects 1 2 3 4
Rough
50/50% 25/25% 15/15% 10/10%
Fitness
Windowing 40/66.7% 15/25% 5/8.3% 0/0%
Exponential 7.14/36.5% 5.1/26.1% 4.0/20.5% 3.32/16.9%
Linear
53.3/44.4% 33.3/27.8% 20/16.7 13.3/11.1%
transfo.
Linear
40/40% 30/30% 20/20% 10/10%
normalization

Windowing telah mengeliminasi subyek-subyek mungkin terlalu jauh dari solusi, contohnya,
yang paling lemah, dimana kemungkinannya pengkonvergenan yang terlalu cepat bisa
menjadi 0 dan kemudian akan meningkatkan menghambat proses evolusi. Algoritma ini
kemungkinan subyek terkuat. (subyek terkuat adalah algoritma yang benar-benar mangkus, dan
kemungkinannya bertambah dari 50% menjadi digunakan dalam takaran yang berbeda-beda
67%). dari pertukaran stock, penjadwalan produksi atau
pemograman robot perakit dalam indsutri
Proses exponential akan meratakan distribusinya. otomotif.
Ini sangat berguna ketika sebuah super-subject
menginduksi secara cepat dan konvergen. 3. PROSEDUR GENETIC ALGORITHM

Proses linear transformation secara. umum Suatu Genetic Algorithm standar membutuhkan
memiliki peran yang mirip dengan proses dua hal untuk didefinisikan, yaitu :
exponential. 1. Sebuah genetic representation dari sebuah
solution domain (domain solusi),
Pada akhirnya, proses linear normalization akan 2. Sebuah fitness function untuk mengevaluasi
menetralkan nilai distribusi sesuai dengan nilai sebuah domain solusi.
kecocokannya dan hanya tergantung pada
rankingnya. Proses ini akan menghindari suatu Representasi standar dari solusinya adalah
super-subject yang baik menjadi distribusi yang sebuah array of bits (Larik bit). Larik dari tipe
terlalu homogen. laen atau struktur lain juga bisa digunakan.
Properti utama yang membuat representasi
2.5. Pengertian Umum genetic ini baik adalah bagian-bagiannya yang
Genetic algorithm adalah sistem orisinal yang bisa diakses dengan mudah karena ukuran yang
diharapkan bekerja seperti kehidupan12. pasti (fixed), yang memudahkan suatu operasi
Metodenya sangat berbeda dengan kebanyakan persilangan yang sederhana. Representasi
algoritma optimasi13. Ciri-cirinya sebagai panjang variabel juga digunakan disini, tetapi
berikut : implementasi persilangan jauh lebih sulit pada
1. Menggunakan hasil pengkodean dri kasus ini. Representasi dalam bentuk tree
parameter, bukan parameter itu sendiri. dibahas lebih lanjut pada Genetic programming
2. Bekerja pada populasi bukan pada sesuatu dan representasi bebas dibahas lebih lanjut pada
yang unik. HBGA.
3. Menggunakan nilai satu-satunya pada fungsi
dalam prosesnya. Tidak mengunakan fungsi Fungsi penghitung nilai kecocokan (fitness)
luar atau pengetahuan luar lainnya. didefinisikan pada representasi genetic dan
4. Menggunakan fungsi transisi probabilitas, digunakan untuk mengukur kualitas (quality)
bukan yang pasti. pada solusi yang direpresentasikan. Fungsi
penghitung ini selalu tergantung pada masalah
Sangatlah penting untuk memahami bahwa yang ada (problem dependent). Sebagai contoh,
memfungsikan algoritma seperti itu tidak pada knapsack problem, kita ingin
menjamin kesuksesan. Kita yang ada di dalam memaksimalkan nilai total objek yang bisa
system stochastic dan kumpulan genetik dimasukkan ke knapsack (karung) yang memiliki

6
kapasitas tertentu. Representasi solusinya konvergen solusi pada populasi. Metode seleksi
mungkin bisa sebuah larik bit, dimana setiap yang populer dan telah teruji antara lain roulette
bitnya merepresentasikan obyek yang berbeda, wheel selection dan tournament selection.
dan nilai dari bitnya (0 atau 1) merepresentasikan
apakah obyek itu ada di knapsack atau tidak. Reproduction
Tidak setiap representasi solusi valid, karena bisa Langkah selanjutnya adalah dengan membuat
saja jumlah total obyek-obyeknya melebihi generasi kedua dari populasi yang ada melalui
kapasitas dari knapsack itu sendiri. Nilai genetic-operator: crossover (persilangan), dan
kecocokan (fitness) solusi adalah jumlah total atau mutation (mutasi).
nilai-nilai dari obyek-obyek di dalam knapsack
jika representasinya valid atau nilainya adalah 0 Untuk setiap solusi baru yang dibentuk, sebuah
jika representasinya tidak valid. Pada suatu kasus, pasangan "parent" atau orang tua solusi dipilih
sangat susah atau bahkan tidak mungkin untuk dari kumpulan populasi sebelumnya. Dengan
menemukan representasi dari fitness-nya; pada membuat sebuah "child" atau anak solusi
kasus ini, interactive genetic algorithms menggunakan metoda diatas, yaitu persilangan
digunakan. dan mutasi, sebuah solusi baru telah dibuat,
dimana pada umumnya akan memwarisi bagian-
Setelah kita memiliki representasi genetik dan bagian dari orang tuanya. Orang tua baru dipilih
sebuat fungsi untuk mencari nilai kecocokan lagi dan membuat suatu anak solusi lagi, dan
(fitness) terdefinisi, maka Genetic Algorithm berlanjut sampai suatu populasi solusi baru
akan melanjutkan untuk membentuk suatu dengan ukuran yang cukup terbentuk.
populasi acak, kemudian meningkatkannya
melalui aplikasi yang berulang-ulanng dari Proses ini akan menghasilkan suatu generasi
mutasi, persilangan, dan operator seleksi. baru dimana kromosomnya berbeda dengan
generasi sebelumnya. Secara umum rata-rata
Initialization nilai kecocokannya (fitness) akan meningkat
Pada awalnya solusi individual akan secara acak melalui prosedur ini, karena hanya organisme-
dibuat dalam bentuk sebuah inisial populasi. organisme terbaik yang dipilih dalam
Besar populasinya sangat tergantung pada pembentukan populasi selanjutnya, bersama
keadaan masalah itu sendiri, tapi biasanya dengan beberapa yang agak cocok dengan
populasi mengandung sekitar beberapa ratus atau solusinya, alasannya sudah disebutkan di atas.
bahkan ribuan solusi yang mungkin. Secara
sederhana, populasinya dibuat secara acak, Termination
dengan mengcover seluruh kemungkinkan solusi Proses tersebut diatas akan terus dilakukan
(search space). Cara lainnya, solusinya mungkin sampai suatu kondisi terminasi/berhenti
bisa di "seeded" pada area dimana kemungkinan ditemukan. Kondisi terminasi/berhenti yang
besar ditemukan solusi optimalnya. umum dipergunakan yaitu :
Selection • Suatu solusi ditemukan yang memenuhi
Seiring dengan berjalannya algoritma, suatu kriteria minimum
bagian pada populasi akan dipilih (selected) • Generasi telah mencapai suatu tingkat
untuk membuat suatu generasi baru. Solusi tertentu
individual tersebut dipilih melalui suatu fitness- • Budget yang dialokasikan (misalnya
based process, dimana solusi pencocok (fitter, waktu komputasi) telah dicapai
yang diukur oleh suatu fitness function) akan • Solusi dengan nilai kecocokan tertinggi
menyatakan kemungkinan terpilih. Beberapa akan mencapai atau telah mencapai
metode seleksi menggunakan nilai kecocokan suatu batas dimana proses selanjutnya
tersebut dan kemudian memilih solusi terbaik yang akan dilakukan tidak akan
dari situ. Metode lain hanya menggunakan solusi menghasilkan hasil yang lebih baik
acak dari populasi, sehingga proses ini mungkin • Inspeksi secara manual dan berkala
akan memakan waktu sangat lama. • Kombinasi dari berbagai macam cara
terminasi di atas
Sebagian bear fungsi bersifat stochastic dan
didesain agar sebagian kecil dari solusi yang baik Pseudo-code algorithm
terpilih. Hal ini menolong untuk menjaga 1. Memilih atau membuat suatu populasi
keanekaragaman apda suatu populasi cukup inisial.
besar, mengurangi terjadinya prematur

7
2. Menghitung nilai kecocokan (fitness) • Melakukan opearsi pada set data yang
untuk setiap individu pada populasi dinamik cukup sulit, karena genom
tersebut. mulai untuk berkonvergen lebih awal
3. Proses pengulangan menuju solusi dimana pada akhirnya
1. Memilih beberapa individu bisa menjadi solusi yang tidak valid.
yang memiliki nilai kecocokan Beberapa metode telah dikeluarkan
tertinggi untuk melakukan untuk menghindari proses
proses reproduksi. meningkatnya keanekaragaman genetik
2. Membuat suatu generasi baru dan mengurangi terjadinya proses
melalui proses persilangan dan konvergen yang terlalu dini, antara lain
mutasi (operasi genetika) dengan meningkatkan kemungkinan
sehingga akan memberikan terjadinya mutasi jika kualitas solusinya
kelahiran pada beberapa bibit menurun (triggered hypermutation),
unggul. atau dengan memperkenalkan suatu
3. Menghitung nilai kecocokan yang benar-benar baru, elemen baru
individual pada bibit unggul yang dibuat secara acak ke dalam
tersebut. kumpulan gen (random immigrants).
4. Mengganti individu dengan Hasil penelitian juga menyatakan
rangking terburuk pada bahwa ada keuntungan jika
populasi sebelumnya dengan menggunakan suatu bilogical exaptation
bibit unggul hasil operasi dalam menyelesaikan masalah-masalah
genetika tadi. tersebut.
4. Sampai mencapai suatu kondisi • Genetic Algorithm tidak bisa
terminasi yang sesuai. menyelesaikan secara efektif suatu
masalah dimana nilai kecocokannya
Observations hanya berupa benar/salah (0 dan 1),
Ada beberapa observasi umum tentang pembatan sehingga tidak bisa mengambil
solusi melalui Generic Algorithm, antara lain: solusinya (Seperti tidak ada bukit untuk
• Pada banyak kasus dengan didaki). Dalam kasus seperti ini,
kompleksitas yang cukup rumit, Genetic pencarian random akan mengasilkan
Algorithm memiliki kecondongan untuk suatu solusi secepat jika menggunakan
menuju ke optimum lokal daripada Genetic Algorithm.
mendapatkan suatu optimum global dari • Selection jelas merupakan operator
problem tersebut. Kasus seperti ini genetik yang sangat penting, tetapi
muncul sangat tergantung pada bentuk pendapat kebanyakan orang terbagi atas
dari fungsi pengambilan nilai kepentingan persilangan lawan mutasi.
kecocokannya. Beberapa masalah Beberapa orang berpendapat bahwa
mungkin menyediakan akses yang persilangan merupakan yang paling
mudah ke solusi optimum global, penting, sementara mutasi hanya
sebaliknya yang lain akan memudahkan digunakan untuk meyakinkan bahwa
menemukan solusi optimum lokal. solusi yang berpotensial tidak hilang.
Masalah ini bisa dihindari dengan Sementara yang lain berpendapat bahwa
menggunakan fungsi yang berbeda, persilangan pada suatu populasi yang
memperbanyak jumlah mutasi yang besar dan seragam hanya memberikan
terjadi, atau menggunakan metode suatu inovasi yang aslinya ditemukan
seleksi yang menjaga keanekaragaman oleh mutasi, dan pada suatu populasi
populasi. Teknik yang biasa digunakan yang tidak terlalu seragam, persilangan
untuk menjaga keanekaragaman adalah selalu sangat mirip pada mutasi skala
"niche penalty", dimana, setiap grup besar.
individe memiliki suatu nilai pinalti • Seringkali Genetic Algorithm dapat
(niche radius), yang mana akan menemukan suatu solusi yang baik
mengurangi kemunculan dari grup walaupun pada ruang pencarian yang
tersebut pada generasi selanjutnya, sangat sulit.
sehingga mengijinkan individu lain • Untuk masalah optimasi yang spesifik,
untuk tetap berada pada populasi. beberapa algoritma optimasi mungkin
akan menemukan solusi yang lebih baik

8
daripada Genetic Algorithm (sama- Oleh karena itu digunakan model representasi
sama diberikan waktu perhitungan yang sekuensial pada genom dimana setiap kota di list
sama). Seperti algoritma alternatif pada urutan yang ke berapa kota itu dikunjungi.
berikut ini : simulated annealing, hill Ini adalah cara yang paling biasa dalam
climbing, dan swarm intelligence (ant representasi Genom TSP. Contohnya :
colony optimization, particle swarm
optimization). [9 3 4 0 1 2 5 7 6 8]
• Dengan semua mesin mempelajari
masalah, akan sangat baik untuk Persilangan
meningkatkan parameter seperti Untuk operasi persilangannya, pada umumnya
kemungkinan mutasi, kemungkinan digunakan Greedy Crossover yang dibuat oleh J.
terjadinya rekombinasi dan ukuran Grefenstette. Kutipan dari Sushil J. Louis tentang
populasi untuk menemukan suatu Greedy Crossover ini adalah :
pengaturan yang baik pada masalah ” Greedy crossover selects the first city of
yang sedang dikerjakan. Angka mutasi one parent, compares the cities leaving that city
yang terlalu kecil akan mengakibatkan in both parents, and chooses the closer one to
suatu genetic drift (yang mana sangat extend the tour. If one city has already appeared
jarang terjadi pada alam) atau in the tour, we choose the other city. If both
konvergensi prematur pada optimum cities have already appeared, we randomly select
local sehingga Genetic Algorithm tidak a non-selected city”
bekerja dengan baik. Angka mutasi Atau dalam bahasa indonesia dapat
yang terlalu besar bisa menyebabkan dikatakan bahwa Greedy crossover akan memilih
kemungkinan menghilangnya solusi- kota pertama dari salah satu induknya, kemudian
solusi yang baik. Saat ini sudah ada membandingkan kota berikutnya pada kedua
basis teori untuk batas atas dan batas orang tuanya, lalu melanjutkan perjalanan. Jika
bawah untuk parameter-parameter ini suatu kota telah dikunjungi, akan dilanjutkan ke
yang mungkin bisa membantu pada kota lainya. Jika kedua kota orang tua
proses seleksi, namun masih belum selanjutnya telah ditemui, akan dipilih suatu kota
terlalu sering dipraktekkan. yang belum dikunjungi secara acak.
• Implementasi dan evaluasi fungsi nilai
kecocokan (fitness) merupakan suatu Mutasi
faktor yang sangat penting demi Dalam operasi mutasi tradisional, kita bisa
kecepatan dan ke’mangkus’an langsung mengganti bit-bit pada gen. Namun
(efisiensi) algoritma. untuk TSP kita tidak dapat melakukannya.
Karenanya, dilakukan suatu pertukaran pada
4. IMPLEMENTASI PADA TSP urutan kota yang tercantum di genom.
Contohnya :
Seusai dengan judul makalah ini, sekarang akan
dibahas mengenai implementasi Genetic Sebelum mutasi : [0 1 2 3 4 5 6]
Algorithm ini untuk menyelesaikan TSP. Setelah mutasi : [0 1 3 2 4 5 6]

Implementasi Standar
Berikut adalah Implementasi Standar dalam Banyak cara untuk melakukan operasi pertukaran
implementasi Genetic Algorithm untk tersebut. Cara paling sederhana dan mudah
menyelesaikan TSP. Implementasi ini bekerja adalah dengan menggunakan pertukaran acap
dengan cukup baik, namun ada kemungkinan (random swap tech). Namun cara seperti ini
cukup besar akan ditemukannya local optimum tidak akan dapat menemukan solusi optimum
dibanding global optimum. dengan cepat namum dapat mengurangi
kemungkinan terjadinya konvergensi pada
Genom optimum lokal. Cara yang umum digunakan
Dalam membuat genom untuk TSP, kita tidak adalah mutasi greedy-swap. Satu lagi kutipan
bisa menggunakan model representasi standar. dari Sushil J. Louis :
Karena setiap kota haruslah unik dalam gen dan ”The basic idea of greedy-swap is to
tidak bisa diduplikasi. randomly select two cities from one chromosome
and swap them if the new (swapped) tour length
is shorter than the old one”

9
Atau dapat dikatakan ide dasarnya Terjemahannya, seleksi ini
sedikit mirip dengan random swap tech, hanya merupakan suatu mekanisme pemilihan
saja sebelum dilakukan pertukaran dilakukan individu dalam suatu populasi, dimana
pengecekan apakah rute terbaru lebih singkat sebuah grup (biasanya terdiri dari 2
daripada yang lama atau tidak. Jika iya, akan sampai 7 individu) dipilih secara acak
dilakukan pertukaran tersebut, jika tidak akan dan populasi dan yang terbaik (biasanya
dilakukan lagi pengambilan acak untuk cuma satu, namun mungkin lebih)
dilakukan pertukaran. dipilih dari salah satu golongan elit
yang merupakan individu terbaik yang
Seleksi (Selection) ditemukan sejauh ini.
Untuk proses seleksi ada beberapa metode yang
bisa dipakai (dipakai salah satu atau Co-Evolutions. Migrations
dikombinasikan), antara lain : Genetic Algorithm merupakan algoritma yang
1. Roulete Wheel Selection cukup rapi. Namun dia datang dengan kumpulan
Definisi dari situs Marek Obitko : persoalannya sendiri. Jika mendapat suatu
Cost Selection : Orang tua dipilih masalah skala besar, ada kemungkinan besar
berdasarkan nilai kecocokannya Genetic Algorithm akan tertahan pada optimum
(fitness). Kromosom yang lebih baik local. Atau dengan kata lain, algoritma ini akan
memiliki persentasi dipilih yang lebih menemukan solusi yang cukup baik, namun
besar. Bisa dibayangkan sebuah roda bukan merupakan solusi yang terbaik. Ada
roulette dimana diletakkan semua beberapa cara untuk mengatasi masalah ini, dan
kromosom pada suatu populasi, setiap salah satunya adalah dengan co-evolution.
kromosom memiliki ukuran tempat bola
yang berbeda-beda sesau dengan nilai Dapat dikatakan jikalau co-evolution ini
kecocokannya. memanfaatkan fitur SMP pada WinNT/2k, yang
Rank Selection : Metode seleksi dioperasikan pada banyak CPU sekaligus. Kita
sebelumnya memiliki masalah ketika bisa dengan mudah menjalankan beberapa
nilai kecocokannya berbeda sangat jauh. Genetic Algorithm secara terpisah tanpa ada
Misalkan saja kromosom terbaik penalti. Untuk pertukaran data antar CPU kita
memiliki nilai kecocokan (fitness) bisa memigrasikan (migrate) gen-gen terbaik
sebesar 90 %. Maka kemungkinan pada masing-masing populasi.
kromosom lain dipilih akan menjadi
sangat kecil. Dengan metoda Rank Basis Implementasi
Selection, pertama-tama akan dilakukan Genetic Algorithm class mengimplementasikan
perankingan untuk populasi. Dan setiap basis logika dari Genetic Algorithm, yaitu :
kromosom akan mendapat nilai rekombinasi dan mutasi. User bisa mengatur
kecocokan berdasarkan rankingnya populasi gen dan isi gen, metode seleksi dan
pada populasi. Jadi kromosom terburuk metode randomisasi. User juga bisa
akan mendapat nilai 1, kedua terburuk menspesifikasi tingkah laku class ini dengan
mendapat nilai 2, demikian seterusnya, menggunakan template. Berikut contoh
sehingga yang terbaik akan mendapat templatenya dalam bahasa C :
nilai N, dimana N adalah jumlah total
kromosom pada populasi. template <typename Traits,
typename Selection> class GA {…}
2. Tournament Selection dan Elitism
Definisi dari W. B. Langdon, University
College, London : Parameter template Traits harus mengdefinisikan
“A mechanism for choosing typedef unuk class gen, class random, container
individuals from a population. A group populasi, dan sinkronisasi class.
(typically between 2 and 7 individuals)
are selected at random from the Parameter template Selection harus menyediakan
population and the best (normally only metode seleksi Genetic Algorithm. Sekarang ada
one, but possibly more) is chosen An 3 jenis class, yaitu : selection_tournament<>,
elitist genetic algorithm is one that selection_roulette_cost<>, dan
always retains in the population the best selection_roulette_rank<>.
individual found so far, Tournamnet
Selection is naturally elitist”

10
Interface GA<> kasus sekitar 200 kota. Walaupun solusinya tidak
• init – menginisialisasi populasi selalu merupakan optimal global.
• update – menghitung nilai kecocokan
(fitness) dan mengembalikan gen 6. DAFTAR PUSTAKA
optimal atau end() • http://en.wikipedia.org/wiki/Genetic_al
• find_best – mencari gen dengan nilai gorithm (2 Januari 2007)
kecocokan terbaik • http://www.google.com (1 Januari
• epoch – membuat populasi berikutnya 2007)
(via selection, persilangan, mutasi dsb) • http://www.generation5.org/content/200
• recombine – membuat seleksi, 1/tspapp.asp (3 Januari 2007)
menghasilkan gen-gen baru, menghapus • http://www-
orang tua yang tidak elit, dan cse.uta.edu/~cook/ai1/lectures/applets/g
menghilangkan gen-gen yang kembar atsp/TSP.html (3 Januari 2007)
• mutate – melaksanakan proses mutasi • http://www.gcd.org/sengoku/docs/arob9
gen 8.pdf (3 Januari 2007)
• migration – menukarkan gen-gen • http://www.rennard.org/alife/english/ga
terbaik antar populasi vintrgb.html (2 Januari 2007)
• sort – mengurutkan gen-gen pada • Crosby, Jack L. (1973), Computer
populasi berdasarkan nilai Simulation in Genetics, John Wiley &
kecocokannya (fitness), meletakkan Sons, London.
yang terbaik pada urutan paling pertama • Fraser, Alex S. (1957), Simulation of
populasi. Genetic Systems by Automatic Digital
• begin – mengembalikan iterator pada Computers. I. Introduction. Australian
gen terbaik pertama di populasi Journal of Biological Sciences vol. 10
• end – mengembalikan iterator pada 484-491.
posisi setelah akhir dari populasi • Goldberg, David E (1989), Genetic
• size – mengembalikan nilai ukuran dari Algorithms in Search, Optimization and
populasi Machine Learning, Kluwer Academic
Publishers, Boston, MA.
Contoh penggunaan dari class GA<>, adalah
sebagai berikut (masih dalam bahasa C) :
typedef ga_traits<RandomCRT> traits;
typedef GA<traits,
selection_tournament<traits> > tGA;
traits::Gene::Context context;
tGA ga(50, &context);
tGA::iterator it = ga.update();
while(it == ga.end())
{
ga.epoch();
it = ga.update();
}
traits::Gene* gnp = (*it);

5. KESIMPULAN

Genetic Algorithm yang merupakan algoritma


heuristic yang dikembangkan dari teori genetika
kehidupan, merupakan salah satu algoritma yang
sangat bermanfaat. Walaupun solusi yang
didapatkannya tidak pasti merupakan solusi yang
optimal, namun algoritma ini masih
menghasilkan solusi yang cukup baik. Dalam
menyelesaikan TSP, Genetic Algorithm dapat
menyelesaikan TSP dengan cukup baik untuk

11

Anda mungkin juga menyukai