You are on page 1of 57

Pendahuluan

Algoritme Genetika (AG) banyak dipengaruhi oleh ilmu biologi. Bab ini membahas berbagai konsep dan istilah biologi yang diharapkan dapat membantu pembaca untuk memahami konsep AG. Bab ini juga membahas aplikasi-aplikasi yang sudah berhasil dibangun menggunakan AG.

1.1 Terminologi
Evolutionary algoritma merupakan terminologi umum yang menjadi payung bagi empat istilah: genetic algoritma genetic programming evolution strategies dan evolutionary programming. !etapi jenis evolutionary algorithm yang paling popular dan banyak digunakan adalah genetic algorithm (algoritma genetika). "ada buku ini yang dibahas hanya AG saja. #emunculan AG diinspriaikan dari teori-teori dalam buku biologi sehingga banyak istilah dan konsep biologi yang digunakan dalam AG. $esuai dengan namanya proses-proses yang terjadi dalam AG sama dengan apa yang terjadi pada evolosi biologi. %alam ilmu biologi sekumpulan individu yang sama yang disebut spicies hidup bereproduksi dan mati dalam satu area yang disebut populasi. &ika anggota-anggota populasi (individu) terpisah misalnya karena terjadi banjir atau gempa maka individu-individu tersebut akan membentuk beberapa populasi yang terpisah. %aslam 'aktu yang cukup lama mungkin saja akan terjadi proses pembentukan species baru atau dikenal dengan istilah speciation. %alam hal ini terjadi perubahan hereditas (heredity) secara bertahap yang membentuk cirri-ciri baru pada species tersebut. $ebagai contoh species pemangsa mengalami perubahan bertahap sehingga memiliki gigi taring yang lebih panjang dan tajam. (al ini terjadi akhibat evolusi yang terjadi pada mangsa yang memiliki kulit yang semakin tebal dan keras. "erubahan bertahap secara bersamaan pada kedua species tersebut dikenal sebagai co-evolution.

#onsep yang penting disini adalah hereditas yaitu sebuah ide yang menyatakan bah'a si)at-si)at individu yang dapat dikodekan dengan cara tertentu sehingga si)at-si)at tersebut dapat diturunkan kepada generasi berikutnya. Bagaimana in)ormasi yang dapat diturunkan ini disimpan dalam suatu individu* &a'abnya adalah bah'a setiap individu dari suatu spesies mem-ba'a sebuah genome yang berisi beberapa kromosom dalam bentuk molekul-molekul %+A. $etiap kromosom berisi sejumplah gen dimana unitunit hereditas dan pengodean in)ormasi diperlukan untuk membangun dan menjaga suatu individu. $etiap gen dibangun dari suatu urutan bases. !erdapat empat bases dalam kromosom yang dinyatakan sebagai A , G dan !. &adi in)ormasi disimpan dalam pola digital menggunakan keempat simbul tersebut. $elama perkembangan dan juga selama kehidupan suatu individu %+A dibaca dengan suatu en-im yang disebut +.A polymerase. "roses ini dikenal sebagai transcription yang menghasilkan messenger .+A (m.+A). $elanjutnya protein dibentuk dalam suatu proses yang disebut translation menggunakan m.+A sebagai sebuah template. /asing-masing gen bisa memiliki beberapa setting. $ebagai contoh adalah gen yang mengkodekan 'arna mata manusia. /anusia bisa memiliki 'arna mata berbeda-beda: coklat biru hitam dan sebagainya. $etting gen ini dikenal sebagai allele. $elanjutnya genome yang lengkap dari suatu individu dengan semua setting-nya (mengkodekan 'arna mata 'arna rambut dsb) disebut sebagai genotype. $uatu individu dengan semua si)at-si)atnya dikenal dengan istilah phenotype. #onsep penting dlam teori evolusi adalah fitness dan selection untuk proses reproduksi. "ada proses evolusi di dunia nyata terdapat dua cara reproduksi yaitu sexual reprokduction dan asexual reproduction. "ada sexual reproduction kromosom-kromosom dari dua individu (sebagai orang tua) dikombinasikan untuk menghasilkan individu baru. Artinya kromosom pada individu baru berisi beberapa gen yang diambil dari orang tua ke dua. (al ini disebut sebagai crossover (pindah silang). +amun demikian proses pengopian gen orang tua ini tidak luput dari kesalahan. #esalahan pengkopian gen ini dikenal dengan istilah mutation (mutasi). $edangkan pada asexual reproduction hanya satu individu orang tua yang diperhatikan sehingga tidak terjadi proses crossover. !etapi proses mutasi juga mungkin terjadi pada asexual reproduction.

1.2 Aplikasi Algoritma Genetika


$ejak pertama kali dirintis oleh &ohn (olland pada tahun 0123-an AG telah dipelajari diteliti dan diaplikasikan secara luas pada berbagai bidang. AG banyak digunakan pada masalah praktis yang ber)okus pada pencarian parameter-paramter optimal. (al ini membuat banyak orang mengira bah'a AG hanya bisa digunakan untuk masalah opsimasi. "ada kenyataannya AG juga memiliki per)ormasi yang bagus untuk masalah-masalah selain opsimai. #euntungan penggunaan AG sangat jelas terlihat dari kemudahan implementasi dan kemampuannya untuk menemukan solusi yang 4bagus4 (bisa diterima) secara cepat untuk masalah-masalah berdimensi tinggi. AG sangat berguna dan e)isien untuk masalah dengan karakterirtik sebagai berikut: a. .uang masalah sangat besar komplek dan sulit dipahami b. #urang atau bahkan tidak ada pengetahuan yang memadai untuk merepresentasikan masalah ke dalam ruang pencarian yang lebih sempit c. !idak tersedianya analisis matematika yang memadai d. #etika metode-metode konvensional sudah tidak mampu menyelesaikan masalah yang dihadapi e. $olusi yang diharapkan tidak harus paling optimal tetapi cukup 4bagus4 atau bisa diterima ). !erdapat batasan 'aktu misalnya dalam real time systems atau sistem 'aktu nyata.

AG telah banyak diaplikasikan untuk penyelesaian masalah dan pemodelan dalam bidang teknologi bisnis dan entertaiment seperti: a. Optimasi AG digunakan untuk optimasi numerik dan opsimasi kombinato-rial seperti !raveling $alesman "roblem ($!") perancangan 5ntegrated ,ircuit atau 5, 67891:; &ob $hop $cheduling 6G8710; optimasi video dan suara.

b. Pemrograman Otomatis AG telah digunakan untuk melakukan proses evolusi terhadap program komputer untuk merangcang struktur komputasional seperti celluler automata dan sorting networks. c. Machine Learning AG telah berhasil diaplikasikan untuk memprediksi struktur protein. AG juga berhasil diaplikasikan dalam perancangan neural net'orks (jaringan shar) tiruan) untuk melakukan proses evolusi terhadap aturan-aturan pada learning classifier systems atau symbolic production systems. AG juga digunakan untuk mengkontrol robot. d. Model Ekonomi AG telah digunakan untuk memodelkan prose-proses inovasi dan pembangunan bidding strategies. e. Model Sistem Imunisasi AG telah berhasil digunakan untuk memodelkan berbagai aspek pada sistem imunisai alamiah termasuk somatic mutation selama kehidupan individu dan menemukan keluarga dengan gen ganda (multi-gene families) sepanjang 'aktu evolusi. f. Model Ekologis AG telah berhasil digunakan untuk memodelkan )enomena ekologis seperti host-parasite co-evolotions sisbiosis dan aliran sumber day dalam ekologi. g. Interansi antara Evolosi dan Belajar AG telah digunakan untuk mempelajari bagaiman proses belajar suatu individu bisa mempengaruhi proses evolusi suatu species dan sebaliknya 6/5!12;.

ALGORITMA GENETIKA DASAR

!erdapat banyak sekali variasi pada algoritma gen<tica di banyak re)erensi. Bab ini sengaja dibatasi pada masalah-masalah dan komponen-komponen AG yang paling dasar. (al ini untuk memudahkan pembaca dalam memahami cara kerja algoritma gen<tica dalam menyelesaikan masalah.

2.1 Algoritma Gentica untuk Optimasi


%alam bukunya %E Goldberg mende)inisikan algoritma gentika sebagai algoritma pencarian yang didasarkan pada mekanisme seleksi alamiah dan gen<tica alamiah 60;. 9ntuk lebih memahami de)inisi ini marilah kita perhatikan statu masalah sederhana berikut ini. Berapakah nilai x0 dan x = yang membuat )ungsi

h( x0 x = ) = ? x0 > x =

(=.0)

/enjadi maksimum* &ika diketahui bah'a x0 x = [ ? :] . "ada interval tersebut )ung@s h mencapai maksimum yakni bernilai := pada saat x0 = : dan x = = ? . Bagaimana menyelesaikan masalah tersebut menggunakan AG* "ertama kedua variabel x0 dan x = dikodekan kedalam kromosom. /asingmasing kromosom berisi sejumplah gen yang mengkodekan in)ormasi yang disimpan didalam kromosom. 9ntuk menyelesaikan masalah diatas misal digunakan binary encoding dengan panjang kromosom =3 gen masing-masing variabel dikodekan dengan 03 gen. Gambar =.0 berikut ini mengilustrasikan skema pengkodean tersebut.

x0 g0
0 3 3 0 0 3 3 0

x=
0 0 3 3 3 3 0 0

g 03 g 00

3 0 0

g =3

ambar!." Representasi kromoom menggunakan binary encoding. Kromosom tresebut mengkodekan dua variabel x0 dan x = , masing-masing 1 bit !binaey digit".

$etelah skema pengkodean ditentukan AG diinisialiasi untuk sebuah populasi dengan # kromosom. Gen-gen yang mengisi masing-masing

kromosom dibangkitkan secara random biasanya menggunakan distribusi seragam (uniform distribution). /asing-masing kromosom akan didekodekan menjadi individu dengan niali fitness tertentu. $ebuah populasi baru dihasilkan dengan menggunakan mekanisme seleksi alamiah yaitu memilih individu-individu secara proporsional terhadap nilai fitness-nya dan genetika alamiah yakni pindah silang dan mutasi. $ebuah pseducode pada Gambar =.= di ba'ah ini memperlihatkan langkah-langkah AG. Inisialisasi populasi, N kromosom Loop Loop untuk N kromosom Dekodekan kromosom Evaluasi kromosom End Buat satu atau dua kopi kromosom terbalik (elitisme) Loop sampai didapatkan N kromosom baru Pilih dua kromosom Pindah silang Mutasi End End ambar !.! Pseducode $lgoritma %enetika. "ada algoritma genetika diatas digunakan skema penggantian populasi yang disebut generational replecement. Artinya # kromosom dari suatu generasi digantikan sekaligus oleh + kromosom baru hasil pindah silang dan mutasi. "enjelasan mengenai komponen-komponen AG secara lebih detil dibahas pada $ubbab =.=.

2.2 Komponen-komponen Algoritma Genetika


"ada dasarnya AG memiliki tujuh komponen. !etapi banyak metode yang bervariasi yang diusulkan pada masing-masing komponen tersebut. /asingmasing metode mempunyai kelebihan dan kekurangan. $uatu metode yang bagus untuk penyelesaian masalah A belum tentu bagus untuk masalah B atau bahkan tidak bisa digunakan untuk masalah ,. 9ntuk memudahkan pemahaman tentang cara kerja AG pada $ubbab =.: akan dibahas AG standar yang dipakai pada buku ini.

2.2.1 Skema Pengkodean


!erdapat tiga skema yang paling umum digunakan dalam pengkodean yaitu:

Real-number encoding. "ada skema ini nilai gen berada dalam interval 63 .; di mana . adalah bilangan real positi) dan biasanya . A 0. &icrete decimal encoding. $etiap gen bisa bernilai salah satu bilangan bulat dalam interval 63 1;. 'inary encoding. $etiap gen hanya bisa bernilai 3 atau 0.

x0
3 =:13

x=
0 3333

x:
3 30:0

g0
= 3 g0 : 1 1 g0 g= g:

g=
1 1 3 g? g> g2 gB

g:
0 : gC g1

0 3 0 0 0 3 3 3 g= g: g? g> g2 gB gC g1

ambar ! # $ (iga )enis skema pengkodean. 'inary encoding !bawah", dicret decimal encoding !tengah", dan real-number encoding !atas". "ada contoh di atas terdapat tiga variabel yaitu x0 x = x: yang dikodekan ke dalam sebuah kromosom yang terdiri dari : gen (untuk realnumber encoding). $edangkan pada discrete decimal encoding maupun binary encoding ketiga variabel dikodekan ke dalam kromosom yang terdiri dari 1 gen (masing-masing variabel dikodekan ke dalam : gen). Berdasarkan contoh diatas pada real-number encoding sebuah gen g digunakan untuk meresprosentasikan suatu bilangan real antara 3 sampai 0(dalam contoh ini . A 0). %engan menggunakan suatu interval tertentu batas ba'ah rb dan batas atas ra pendekodean dapat dilakukan dengan cara sebagai berikut:
x = rb + ( ra rb ) g .

(=.=)

$edangkan pendekodean untuk discrete decimal encoding adalah sebagai berikut:

x = rb + ( ra rb ) g0 x03 0 + g = x03 = + ... + g # x03 #


(=.:)

%an prosedur pendekodean untuk binary encoding adalah: x = rb + ( ra rb ) g 0 x = 0 + g = x = = + ... + g # x03 # (=.?) di mana + adalah jumplah gen dalam kromosom (panjang kromosom).

&ika ketiga variabel dibatasi pada interval nilai tertentu misalkan 6-0 =; /aka hasil pendekodean dari contoh di atas adalah sebagai berikut: Pendekodean pada skema real%number encoding

x: = 0 + ( = ( 0) ) xg : = 0 + : x3 30:0 = 3 123B Pendekodean pada skema discrete decimal encoding

x0 = 0 + ( = ( 0) ) xg0 = 0 + : x3 =:13 = 3 =C:3 x = = 0 + ( = ( 0) ) xg = = 0 + : x0 3333 = = 3333

x0 = 0 + ( = ( 0) ) ( g 0 x03 0 + g = x03 = + g : x03 : ) = 0 + :( 3 = + 3 3: + 3 331) = x = = 0 + ( = ( 0) ) ( g ? x03 + g > x03 + g 2 x03


0 = :

) = 0 + :( 3 1 + 3 31 + 3 331) =

3 =C:3

0 11B3

x: = 0 + ( = ( 0) ) ( g B x03 0 + g C x03 = + g 1 x03 : ) = 0 + :( 3 + 3 30 + 3 33:) =

3 1203

Pendekodean pada skema binar& encoding

x0 = 0 + ( = ( 0) ) g0 x = 0 + g = x = = + g : x = : = 0 + :( 3 + 3 => + 3) = 3 =>33 x=
0 :

( = 0 + ( = ( 0) ) ( g x = (

+ g > x = = + g 2 x = :

) ) = 0 + :( 3 > + 3 => + 3 0=>) =

0 2=>3

x: = 0 + ( = ( 0) ) g B x = 0 + g C x = = + g 1 x = : = 0 + :( 3 + 3 + 3) = 0 3333

%engan skema pendekodean dicrete decimal di atas nilai x = yang dihasilkan adalah 0 11B3 tidak maksimum seperti pada real-number encoding (yaitu = 3333). (al ini disebabkan nilai maksimum dari decrete decimal emcoding adalah kurang dari 0 yaitu:

03 i =
i =0

03 : 0 111 = 0333 03 :

(=.>)

9ntuk permasalahan di mana solusi yang dicari ternyata berada pada batas atas interval yang diberikan maka )ormula pendekodean tersebut di atas perlu diubah menjadi:

x = rb +
(=.2)

( ra rb )

03
i =0

( g x03
0

+ g = x03 = + ... + g # x03 # )

di mana + adalah jumplah gen dalam kromosom (panjang kromosom). %engan rumus pendekodean yang baru ini didapat:
x0 = 0 + x = = 0 + x: = 0 + : ( 3 = + 3 3: + 3 331) = 3 =C== 111 D 0333 : ( 3 1 + 3 31 + 3 331 ) = = 3333 111 D 0333 : ( 3 + 3 30 + 3 33:) = 3 1231 111 D 0333

(=.B) (=.C) (=.1)

(al ini sama juga terjadi pada skema pendekodean binary di mana nilai
x = yang dihasilkan adalah 0 2=>3. hal ini disebabkan nilai maksimum dari

binary encoding adalah kurang dari 0 (bahkan jauh lebih kecil dari 0) yaitu:

= i =
i =0

=: 0 B = = 3 CB> C =:

(=.03)

%engan cara yang sama seperti pada decrete decimal maka )ormula pendekodean untuk binary adalah:

x = rb +

( ra rb )

=
i =0

( g x=
0

+ g = x = = + ... + g # x = #

(=.00)

di mana + adalah jumplah gen dalam kromosom (panjang kromosom). %engan humus pendekodean yang baru ini didapatkan:
x0 = 0 + : ( 3 + 3 => + 3) = 3 0?=C BDC

(=.0=)

x = = 0 +

: ( 3 > + 3 => + 3 0=>) = = 3333 B DC

(=.0:)

x: = 0 +

: ( 3 + 3 + 3) = 0 3333 BDC

(=.0?)

"ada pendekodean binary dihasilkan nilai x0 ( 3 0?=C) yang $angat jauh berbeda dengan nilai x0 pada skema real-number encoding (yakni -3 =C:3). (al ini disebabkan terlalu sedikitnya jumplah gen yang digunakan pada binary encoding (hanya :). 9ntuk permasalahan yang membutuhkan ketelitian tinggi diperlukan jumplah gen yang lebih banyak pada skema pengkodean binary. Begitu juga dengan decrete decimal encoding. !etapi perlu disadari bah'a jumplah gen yang terlalu banyak akan mempengaruhi kecepatan proses dari algoritma gen<tica secara signi)ican. 9ntuk itu perlu dipertimbangkan jumplah gen yang sesuai. Beberapa aplikasi sederhana menggunakan binary encoding dengan 03 gen untuk satu variable. %engan 03 gen maka nilai maksimum yang bisa dikodekan adalah
=03 0 ( =03 ) 3 1113=:?:B>

yang berarti sudah cukup mendekati 0.

2.2.2 Nilai Fi ne!!


$uatu individu dievaluasi berdasarkan statu )ung@s tertentu sebagai usuran per)ormansinya. %idalam evolusi alam individu yang bernilai )itness tinggi yang akan bertahan hidup. $edangkan individu yang bernilai )itness rendah akan mati. "ada masalah optimasi jika solusi yang dicari adalah memaksimalkan sebuah )ung@s h (dikenal sebagai masalah maksimasi) maka nilai )itness yang digunakan adalah nilai dari )ungsi h tersebut yakni f * h (di mana f adalah nilai )itness). !etapi jika masalahnya adalah meminimalkan )ung@s h (masalah minimasi) maka )ung@s h tidak dapat digunakan secara langsung. (al ini disebabkan adanya aturan bah'a individu yang memiliki nilai )itness tinggi lebih mampu bertahan hidup pada generasi berikutnya. 8leh karena itu nilai )itness yang bisa digunakan adalah f * 1+h yang artinya semakin kecil nilai h semakin besar nilai f. tetapi hal ini akan menjadi masalah jika h bisa bernilai 3 yang mengakibatkan f bisa bernilai tak ingE. 9ntuk mengatasinya h perlu ditambah sebuah bilangan yang dianggap $angay kecil sehingga nilai )itnessnya menjadi:
f =

( h + a)

'

(=.0>)

di mana a adalah bilangan yang dianggap $angat kecil dan bervariasi sesuai dengan masalah yang akan diselesaikan. $ebagai contoh perhatikan masalah berikut ini. &ika diketahui bah'a x0 x = [ = >] bagaimana nilai )itness yang bisa digunakan untuk mencari nilai maksimal dari )ungsi pada persamaan =.02 di ba'ah ini* %an bagaimana nilai )itness untuk mencari nilai minimalnya*
= h( x0 x = ) = x0= + x =

(=.02)

Fungsi h di atas mencapai ekstrem maksimum >3 pada saaat x0 = > dan x = = > . +ilai )itness untuk masalah maksimasi adalah h itu sendiri. Fungsi h mencapai ekstrem minimum 3 pada saat x0 = 3 dan x = = 3 . #arena h bisa bernilai 3 maka nilai )itness yang bisa digunakan untuk masalah ini adalah f * 1+!h,a". 9ntuk suatu )ungsi h yang memiliki variansi yang kecil seperti pada persamaan =.0B di ba'ah ini bagaimana nilai )itness yang bisa digunakan*
= h( x0 x = ) = 0333 + x0= + x =

(=.0B)

"ada )ungsi =.0B di atas nilai-nilai h berada dalam kisaran 0333 sehingga semua individu memliki nilai )itness yang hampir sama. (al ini berakibat buruk pada proses seleksi yang memilih orang tua secara proprosional sesuai nilai )itness-nya. 9ntuk itu diperlukan statu mekanisme yang disebut linear fitness ranking. /ekanisme ini bertujuan untuk melakukan penskalaan nilai-nilai )itness. 5ndividu bernilai )itness tertinggi diberi )itness # (jumplah individu dalam populasi). 5ndividu bernilai )itness tertinggi kedua diberi nilai fitnees #-1 dan seterusnya sehingga individu bernilai )itness terendah diberi nilai fitness 0. /isalkan R!i" menyatakan anking individu ke i, R!i" * 1 &ika i adalah individu bernilai )itness terendah maka nilai )itness yang baru adalah:
f ( i ) = ( # + 0 R( i ) )

(=.0C)

!etapi penggunaan nilai )itness =.0C di atas bisa berakibat evolusi akan mencapai optimum lokal karena kecilnya perbedaan nilai-nilai )itness pada

semua individu dalam populasi. #ecenderungan untuk konvergen pada optimum lokal dapat dikurangi dengan menggunakan persamaan =.01 di ba'ah ini. %engan demikian diperoleh nilai )itness yang berada dalam interval [ f min f maG ]
R( i ) 0 f ( i ) = f maG ( f maG f min ) # 0

(=.01)

"enentuan nilai )itness sangat berpengaruh pada per)ormansi AG secara keseluruhan. %alam beberapa kasus nilai )itness yang sangat sederhana bisa ditemukan dengan mudah. !etapi dalam beberapa kasus lain diperlukan nilai )itness yang sangat kompleks dan sulit ditemukan.

2.2." Selek!i O#ang Tua


"emilihan dua buah kromosom sebagai orang tua yang akan dipindah silangkan biasanya dilakukan secara proporsional sesuai dengan nilai )itnessnya. $uatu metode seleksi yang umum digunakan adalah roulette-wheel (roda roulette). $esuai dengan namanya metode ini menirukan permainan roulette-'heel di mana masing-masing kromosom menmpati potongan lingkaran pada roda roulette secara proporsional sesuai dengan nilai )itnessnya. kromosom yang memiliki nilai )itness lebih besar menempati potongan lingkaran yang lebih besar dibandingkan dengan keomosom bernilai )itness rendah. Gambar =.? di ba'ah ini mengilustrasikan sebuah contoh penggunaan metode roulette-'heel.
#romosom #0 #= #: #? &umplah +ilai /itness 0 = 3> 3> ? #? #:

#0

#=

ambar!.( -ontoh penggunaan mrtode roulette-wheel selection. K. dengan nilai fitness paling besar, menempati potongan sebesar setengah lngkaran.

&engan demikian , K. memiliki peluang sebesar ,0 !. dibagi 1" untuk tepilih sebagai orang tua

2etode roulette-wheel selection sangat mudah diimplementasikan dalam pemrograman. "ertama dibuat interval nilai kumulati) (dalam interval 63 0;) dari nilai )itness masing-masing kromosom dibagi total nilai )itness dari semua kromosom. $ebuah kromosom akan terpilih jika bilangan random yang dibangkitkan berada dalam interval akumulati)nya. "ada Gambar =.? di atas #0 menempati interval nilai kumulati) 63 =>; #= berada dalam interval (3 =>:3 B>; #: dalam interval (3 B>:3 CB>; dan #? dalam interval (3 CB>:0). /isalkan jika bilangan random yang dibangkitkan adalah 3 2 maka kromosom #= terpilih sebagai orang tua. !etapi jika bilangan random yang dibangkitkan adalah 3 11 maka kromosom #? yang terpilih.

2.2.$ Pindah Silang


$alah satu komponen paling penting dalam algoritma genetika adalah crossover atau pindah silang. $ebuah kromosom yang mengarah pada solusi yang bagus bisa diperoleh dari proses memindah-silangkan dua buah kromosom. "erhatikan contoh pada Gambar =.> di ba'ah ini.
!itik potong

x0
0 0 3 0 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3

x=
0 0 0 0 3 3 0 0 3 3 3 3 3 3 3

8rang tua 0 8rang tua = Anak 0 Anak =

3 3 3

g0
3

0 0 0 3 3 3 3

g 03 g 00
3 0 0 0

g =3
3

3 3 3

3 3 3 0 0 0

3 3 3 3

3 3 3 0 0 0

g0

0 0 0 0 0 0

g 03 g 00

0 0 0

g =3

ambar!.) -ontoh proses pindah silang, )ika solusi yang dicari adalah x1* dan x. * , maka kromosom $nak 1 memiliki nilai fitness tinggi dan menu)u pada solusi yang dicari. "indah silang bisa juga berakibat buruk jika ukuran populasinya sangat kecil. %alam suatu populasi yang sangat kecil suatu kromosom dengan gengen yang mengarah ke solusi akan sangat cepat menyebar ke kromosomkromosom lainnya. 9ntuk mengatasi masalah ini digunakan suatu aturan bah'a pindah silang hanya bisa dilakukan dengan suatu probabilitas tertentu p c . Artinya pindah silang bisa dilakukan hanya jika suatu bilangan random

63 0) yang dibangkitkan kurang dari p c yang ditentukan. "ada umumnya p c diset mendekati 0 nisalnya 3 C.

"indah silang bisa dilakukan dalam beberapa cara berbeda. Hang paling sederhana adalah pindah silang satu titik potong ( one-point crossover). $uatu titik potong dipilih secara random kemudian bagian pertama dari orang tua 0 digabungkan dengan bagian kedua dari orang tua = (lihat Gambar =.>). untuk kromosom yang sangat panjang misalkan 0333 gen mungkin saja diperlukan beberapa titik potong. "indah silang lebih dari satu titik potong disebut npoint crossover, di mana n titik potong dipilih secara rndom dan bagianbagiab kromosom dipiilih dengan probabilitas 3 > dari salah satu orang tuanya. $atu skema pindah silang yang lain adalah uniform crossover yang merupakan kasus khusus dari n-point crossover di mana n sama dengan jumplah gen dikurangi satu.

2.2.% Mu a!i
"rosedur mutasi sangatlah sederhana. 9ntuk semua gen yang ada jika bilangan random yang dibangkitkan kurang dari probabilitas mutasi p mut yang ditentukan maka ubah gen tersebut menjadi nilai kebalikannya (dalam binary encoding 3 diubah 3 dan 0 diubah 3). Biasanya p mut disebut sebagai 0Dn di mana n adalah jumplah gen dalam kromosom. %engan p mut sebesar ini berarti mutasi hanya tejadi pada sekitar satu gen saja. "ada AG sederhana nilai p mut adalah tetap sama evolusi. Gambar =.2 menggambarkan proses mutasi yang terjadi pada gen g 03 .

3 3 #romosom asal

0 0 0

x0

0 0 0

0 0 0 0 0 0 0

x=

g0 g0
3 3 3 0 0 0 3 0 0

g 03 g 03
3 0 0 0 0 0 0

g =3
0 0 0 0

(asil mutasi

ambar!.* -ontoh proses mutasi, bilangan random yang dihasilkan lebih kecil dari probobilitas mutasi p mut ter)adi pada gen g 03 sehingga gen g 03 beru-bah dari 1 men)adi .

g =3

2.2.& Eli i!me


#arena seleksi dilakukan secara tandom maka tidak ada jaminan bah'a suatu individu bernilai )itness tertinggi akan selalu terpilih. #alaupun individu bernilai )itness tertinggi terpilih mungkin saja individu akan rusak (nilai )itnessnya menurun) karena proses pindah silang. 9ntuk menjaga agar individu bernilai )itness tertinggi tersebut tidak hilang selama evolusi maka

perlu dibuat satu atau beberapa kopinya. "rosedur ini kenal sebagai elitisme.

2.2.' Penggan ian Po(ula!i


%alam algoritma genetika dikenal skema penggantian populasi yang disebut generational replacement yang berarti semua individu ( misal # individu dalam satu populasi ) dari suatu generasi digntikan sekaligus oleh # individu baru hasil pindah silang dan mutasi. $kema pengganti ini tidak realistis dari sudut pandang biologi. %i dunia nyata individu-individu dari generasi berbeda bisa berada dalam 'aktu yang bersamaan. Fakta lainnya adalah individu-individu muncul dan hilang secara konstan tidak pada generasi tertentu. $ecara umum skema penggantian populasi dapat dirumuskan berdasarkan suatu ukuran yang disebut generational gap %. 9kuran ini menunjukan persentase populasi yang digantikan dalam setiap generasi. "ada skema generational replacement % A 0. $kema penggantian yang paling ekstrem adalah hanya mengganti satu individu dalam setiap generasi yaitu % * 1+# di mana # adalah jumplah individu dalam populasi. $kema penggantian ini disebut sebagai steady-state reproduction. "ada skema tersebut % biasanya sama dengan 1+# atau .+#. %alam setiap generasi sejumplah +G individu harus dihapus untuk menjaga ukuran populasi tetap #. !erdapat beberapa prosedurpenghapusan individu yaitu penghapusan individu yang bernilai )itness paling rendah atau penghapusan individu yang paling tua. "enghapusan bisa berlaku hanya pada individu orang tua saja atau bisa juga berlaku pada semua individu dalam populasi.

2.2.) Algo#i ma Gene ika S anda#


"ada $ubbab =.= telah dibahas bah'a terdapat banyak cara berbeda dalam mengimplementasikan AG. 9ntuk memudahkan pemahaman dalam buku ini dibuat sebuah AG standar yang terdiri dari: 0. $atu populasi dengan + kromosom (individu) =. Binary encoding :. 7inear )itness ranking ?. .oulette-'heel selection

>. "indah silang satu titik potong 2. "robabilitas pindah silang dan probabilitas mutasi bernilai tetap selama evolusi B. Elitisme satu atau dua buah kopi dari individu bernilai )itness tertinggi C. Generational replacement. "enggantian semua individu sekaligus. III

IMPLEMENTASI ALGORITMA GENETIKA DALAM MATLA*

"emilihan bahasa pemrograman /A!7AB lebih didasari pada kemudahan di dalam pengimplementasikan komponen-komponen AG yang banyak menggunakan operasi matriks. &ika dibandingkan dengan bahasa , &AJA ataupun %E7"(5 bahasa /A!7AB jauh lebih lambat dalam proses komputasi. (al ini disebabkan banyaknya )ungsi atau prosedur yang dibuat umum sehingga banyak redundansi. Bab ini membahas sedikit tentang lingkungan dan pemrograman dalam /A!7AB. &uga membahas secara detil bagaimana mengimplementasikan AG standar ke dalam bahasa /A!7AB untuk menyelesaikan sbuah masalah optimasi sederhana.

3.1 Sekilas tentang MATLAB


$esuai dengan namanya K/A!riG 7ABoratoryK /A!7AB adalah suatu bahasa pemrograman untuk komputasi numerik yang berorientasi pada matriks. %alam versi 2.> rilis 0: /A!7AB menyediakan operasi-operasi matriks secara lengkap. (al ini jelas akan sangat memudahkan pemakai dalam mengimplementasikan AG.

".1.1 Lingkungan MATLA*


"ada Gambar :.0 terlihat lingkungan /A!7AB yang terdiri dari +ommand ,indo, untuk mengetikkan baris-baris perintah dan -orkspace yang menunjukkan variabel-variabel yang sedang akti) pada direktori yang ditunjukkan oleh +urrent .irector&.

ambar$." (ampilan lingkungan 2$(3$'.(erdapat dua buah komponen command window dan workspace.

".1.2 Pem#og#aman MATLA*


%i dalam /A!7AB setiap variabel dipandang sebagai matriks. Jariabel tidak perlu dideklarasikan karena sudah ditangani oleh /A!7AB. 9kuran sebuah matriks dapat dengan mudah diperbesar maupun diperkecil. (al ini membuat sebuah variabel menjadi sangat )leksibel. "ada Gambar :.0 di atas terlihat bagaimana sebuah variabel A dapat dengan mudah diubah dari matriks kosong manjadi matriks baris sampai menjadi matriks dua dimensi =G=. "embuatan program atau )ungsi dilakukan di dalam suatu )ile berekstensi m. File ini dapat dieksekusi melalui command window dengan cara mengetikan nama )ile atau )ungsi tersebut. Agar dapat dieksekusi penamaan )ile harus sesuai dengan nama )ungsinya. Gambar :.= menunjukkan layar editor dari m-)ile. Fungsi InisialisasiPopulasi disimpan ke dalam )ile dengan nama yang sama InisialisasiPopulasi. m. "embuatan m-)ile bisa juga dilakukan di teGt editor yang lain seperti +otepad.

/A!7AB membedakan huru) besar dan huru) kecil (case sensitive). Artinya variabel A dan variabel a dikenali sebagai dua variabel berbeda. %i dalam /A!7AB i dan j menunjukan bagian imanier dari suatu bilangan kompleks. 9ntuk menghindari kesalahan semantik sebaiknya tidak menggunakan i dan j sebagai nama variabel. $ebagai altrnati) sebaiknya gunakan ii dan jj.

ambar$.! (ampilan layar editor untuk m-file. 9ntuk lebih memahami pemrograman /A!7AB dalam pengimplementasian AG berikut ini dibahas beberapa konsep penting dan perintahperintah /A!7AB yang sering digunakan dalam pengimplementasian AG. Matriks /atriks adalah kumpulan angka berbentuk persegu@. %alam /A!7AB setiap variable dipandang sebagai matriks. 8leh karena itu sebuah bilangan skalar dinyatakan dalam matriks 0G0. sedangkan vektor dinyatakan oleh matriks baris atau matriks kolom. "erhatikan beberapa contoh perintah di ba'ah ini. !anda LMM menyatakan command prompt pada command window.

"erintah di ba'ah ini menyatakan pembuatan matriks :G: dan disimpan pada variabel A. !anda L:4 yang pertama menyatakan pemisah antarbaris. $edangkan tanda L:4 pada akhir perintah menyatakan variable A tidak ditampilkan di ,ommand 'indo'. MM A A 6 = : > N ? 0 B N 2 : 1 ; N MM &ika tanda LN4 pada akhir perintah tersebut dihilangkan seperti perintah di ba'ah ini maka isi variable A akan ditampilkan di command 'indo'. MM A A 6 = : > N ? 0 B N 2 : 1 ; A A = : > ? 0 B 2 : 1 Sum, transpose' dan diag "enjumplahan matriks berdasarkan kolom direpresentasikan oleh operasi sum di ba'ah ini. MM sum (A) ans A 0= B

=0

$edangkan operasi transpose mengubah baris menjadi kolom dan sebaliknya dinyatakan dengan tanda petik (L). MM A4 ans A = : > ? 0 B 2 : 1

Elemen matriks pada posisi-posisi diagonal dapat dicari dengan operasi diag. MM diag (A) ans A = 0 1

Indeks Matriks "enunjukan elemen matriks dapat dilakukan berdasarkan indeknya. "enunjukan dilakukan dengan menggunakan aturan A(baris kolom). #edua indeks baris dan kolom adalah bilangan bulat positi). "erhatikan contoh di ba'ah ini. ,ontoh pertama penjumplahan semua baris pada kolom pertama matriks A dan hasilnya disimpan pada variabel O. "erintah ini valid sehingga O bernilai 0=. contoh kedua satu jenis kesalahan yang sering terjadi adalah indeks bukan bilangan bulat positi) lebih dari nol. ,ontoh ketiga indeks di luar jangkauan. %alam kasus ini matriks A tidak memiliki baris keempat sehingga perintah A(? 0) tidak bisa menunjuk ke elemen matriks A. MM A 6 = : > N ? 0 B N 2 : 1 ; A = : > ? 0 B 2 : 1 MM O A (0 0) P (= 0) P (: 0) ! A 0= MM " A (0 3) *** subs#ript indi#es must either be real positive intergers or logi#als MM D A (? 3) *** Indeks$ e$#eeds matriks dimensions. MM Operator /01 2titik dua3 8perator ini sangat penting dalam pemrograman /A!7AB. Banyak sekali perintah yang menggunakan operator ini. LN4 pada perintah di ba'ah ini menyatakan deretan bilangan bulat dengan kelipatan 0. MM F A 0:> FA 0 = : ? >

L:4 pada perintah diba'ah ini menyatakan deretan bilangan bulat dengan kelipatan > MM B A :3 : -> : 0 B A :3 => =3 0> 03 >

"enujukan elemen vector ataupun matriks juga bias dilakukan dengan operator L:4. "erintah pertama di ba'ah ini menyatakan bah'a , berisi elemen-elemen vector B baris ke-0 sampai ke-:. MM , A B (0 : :) , A :3 => =3 "ada perintah di ba'ah ini % diisi dengan matriks A semua baris kolom 0 sampai =. dalam hal ini A adalah sebuah matriks yang telah dide)inisikan di atas. MM % A A ( : 0 : =) % A = ? 2 : 0 :

Membangkitkan Matriks $ebuah matriks dapat dibangkitkan dengan cara berikut: 4eros5 semua nol Ones5 semua $atu 6and5 elemen random dengan distrbusi unigorm 6andn5 elemen random dengan distribusi normal

MM # A -eros (= >) # A 3 3 3 3 3 3 3 3 3 3

. MM 7 A > I ones (: ?) 7 A > > > > > > > > > MM / A rand (= 2) / A 3.?:=1 3.==>1 3.>B1C 3.B23? 3.>=1C 3.2?3> 3.=310 3.:B1C 3.BC:: 3.2C3C 3.?200 3.>2BC > > >

MM + A randn (= 2) + A 3.C0>2 3.B001 0.=13= 3.22C2 0.013C -0.=3=> -3.301C -3.0>2B -0.23?0 3.=>B: -0.3>2> 0.?0>0

+oncatenation "enggambungan beberapa matriks kecil menjadi sebuah matriks besar disebut dengan concatenation. %alam /A!7AB operasi ini dilakukan dengan sangat sederhana seperti terlihat diba'ah ini. "enggabungan tampa titik koma (LN4) menyatakan bah'a kedua matriks digabungkan berdasarkan barisnya. &ika menggunakan titik koma (LN4) maka kedua matriks digabungkan berdasarkan kolomnya. &ika matriks-matriks yang digabungkan memiliki jumplah baris atau jumplah kolom yang berbeda penggabungan tidak bisa dilakukan sehingga keluar pesan kesalahan4*** error using %%M vert#at&. MM " A 6/ +; " A "olumns ' through 2 3.?:=1 3.>B1C 3.>=1C 3.==>1 3.B23? 3.2?3> "olumns B through 0= 3.C0>2 0.=13= 0.013C 3.B001 3.22C2 -0.=3=> 3.=310 3.:B1C -3.301C -3.0>2B 3.BC:: 3.2C3C -0.23?0 3.=>B: 3.?200 3.>2BC -0.3>2> 0.?0>0

MM Q A 6/ N +; Q A 3.?:=1 3.==>1 3.C0>2 3.B001 3.>B1C 3.B23? 0.=13= 3.22C2 3.>=1C 3.2?3> 0.013C -0.=3=> 3.=310 3.:B1C -3.301C -3.0>2B 3.BC:: 3.2C3C -0.23?0 3.=>B: 3.?200 3.>2BC -0.3>2> 0.?0>0

MM . A 6# N 7; ((( Error using %%M vert#at ll ro)s in the bra#keted e$pression must have the same number o* #olumns. Operasi%operasi Matriks 8perator-operator yang digunakan /A!7AB untuk memanipulasi variable (matriks) adalah sebagai berikut: + . pen,umplahan pengurangan perkalian matriks, dengan s/arat 0,umplah kolom matriks pertama harus sama dengan ,umplah baris matriks kedua, dan ,umplah baris matriks pertama harus sama dengan ,umplah kolom matriks kedua& perkalian elemen per elemen pembagian elemen per elemen (variabel kiri dibagi variabel kanan) pembagian elemen per elemen (variabel kanan dibagi variabel kiri) perpangkatan elemen per elemen

.. .1 .2 .3

Beberapa contoh di ba'ah ini mengilustrasikan pemakaian operator matriks tersebut. "enjumplahan dan pengurangan memiliki cara pemakaian yang sama. MM $ A / R 3.> $ A -3.32B0 3.3B1C -3.=B?0 3.=23? MM ! A / I +4 ! A -3.30>B 3.==C2 3.CC30 3.C0C= 3.3=1C 3.0?3> -3.=131 -3.0=3= 3.=C:: 3.0C3C -3.3:C1 3.32BC

MM 9 A / .I + 9 A 3.:>:0 3.0231 3.B?C0 3.>3C? 3.2:31 -3.BB3= -3.33?0 -3.3>1> -0.=>2> 3.0B>= -3.?CB0 3.C3:2

8perator-operator yang lain dapat dicari di help. Atau dengan mengetikkan kata kunci yang ada pada command 'indo'. ,ontoh: MM help sum 45M 4um o* elements 6or ve#tors, 45M (!) is the sum o* the elements o* !. *or matri#es, 45M (!) is a ro) ve#tor )ith the sum over ea#h #olumn. 6or N 7 D arra/s, 45M (!) operates along the *irst non-singleton dimension. 45M (!,DIM) sums along the dimension DIM. E$ample 8 i* $ % 9: ' ; < = >? then sum ($,') is 9< > @? and sum($,;) is 9 < '; ? A 4ee also PBCD, "5M45M, DI66.

3.2 mplementasi algoritma Genetika


$ubbab ini menjelaskan bagaimana mengimplementasikan AG standar untuk mencari nilai minimal dari sebuah )ungsi sederhana. Fungsi h pada persamaan :.0 di ba'ah ini di mana x0 x = [ > 0=N> 0=] digunakan sebagai studi kasus. $ekilas dapat kita lihat bah'a )ungsi h mencapai nilai minimal yaitu 3 pada saat x0 = 0 dan x = = 3 > . h( x0 x = ) = 0333( x0 = x = ) + (0 x0 )
= =

(:.0)

#ode-kode program yang digunakan untuk menyelesaikan masalah di atas terdiri dari sembilan m-)ile berikut ini: 0. 5nisialisasi"opulasi.m =. %ekodekan#romosom :. Evaluasi5ndividu.m

?. 7inearFitness.anking.m >. .ouletteSheel.m 2. "indah$ilang.m B. /utasi.m C. AGstandar=%.m(program utama dengan gra)is = dimensi) 1. Agstandar:%.m(program utama dengan gra)is : dimensi) $emua )ile tersebut tersimpan pada direktori 4 ...1 :' D 4tandar& di dalam disket. $ubbab :.=.0 sampai :.=.1 membahas masing-masing )ile tersebut secara detail.

".2.1 Ini!iali!a!i Po(ula!i.m


!ujuan dari )ungsi ini adalah membangkitkan sebuah populasi yang berisi sejumplah kromosom. $etiap kromosom berisi sejumplah gen. /asukan untuk )ungsi ini adalah jumplah kromosom dan jumplah gen. !erdapat banyak cara untuk mengimplementasikan )ungsi inisialisasi populasi ke dalam /A!7AB. %i sini hanya dibahas dua cara saja. ,ara pertama adalah dengan menggunakan perintah for dan if. "erhatikan kode program berikut ini:
+un, ion Populasi % Inisialisasi Populasi (5EPop, FumDen)

for E%' 8 5EPop


+o# g % ' 8 FumDen a % randA i+ (a G :.>) Populasi (k,g) % : A el!e Populasi (k,g) % ' A end end end

program di atas nama )ungsi dinyatakan oleh /asukan untuk )ungsi tersebut adalah 5kPop yang menyatakan ukuran populasi (jumplah kromosom dalam populasi) dan FumDen yang menyatakan jumplah gen dalam satu kromosom. $edangkan
InisialisasiPopulasi.

"ada

kode

#eluaran dari )ungsi tersebut adalah variabel populasi berupa matriks dua dimensi berukuran 5kPop $ FumDen yang bernilai biner (3 dan 0). rand adalah )ungsi yang disediakan oleh /A!7AB untuk membangkitkan sebuah bilangan real dalam interval 63 0). "roses pembangkitan kromosom dilakukan gen per gen dengan cara melihat kondisi bilangan random yang dibangkitkan dengan rand. &ika kurang dari 3.> maka gen yang dibangkitkan adalah 3. &ika lebih dari 3.> maka gen yang dibangkitkan adalah 0. "ada perintah Populasi(k,g), k menyatakan nomor urut kromosom sedangkan g menyatakan nomor urut gen. lambatnya proses pada perintah for' maka )ungsi InisialisasiPopulasi juga dapat diimplementasikan menggunakan kode program yang lebih cepat yaitu sebagai berikut: TA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
H Membangkitkan se,umplah 5kPop kromosom, masing-masing kromosom H berisi bilangan biner ( : dan ') se,umplah FumDen H H Masukan H 5kPop 8 ukuran populasi atau ,umplah kromosom dalam populasi H FumDen 8 ,umplah gen dalam kromosom H H Eeluaran H Populasi 8 kumpulan kromosom, matriks berukuran 5kPop $ FumDen H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % +un, ion Populasi % Inisialisasi Populasi (5kPop, FumDen) Populasi % *i$ (;.rand (5kPop, FumDen) A

#arena

"ada cara kedua ini perintah rand (9k"op &umGen) menghasilkan sebuah matriks du dimensi berukuran 9k"op G &umGen yang berisi nilai real dalam interval 63 0). $edangkan *i$ digunakan untuk pembulatan ke ba'ah. %engan demikian *i$(=Irand(9k"op &umGen)) menghasilkan sebuah matriks dua dimensi 9k"op G &umGen yang bernilai biner (3 dan 0).
InisialisasiPopulasi.m berisi

#arena cara implementasi kedua ini lebih cepat dan sederhana maka )ile kode program tersebut.

".2.2 DekodeanK#omo!om.m
Fungsi ini bertujuan untuk mendekodekan sebuah kromosom yang berisi bilangan biner menjadi individu G yang bernilai real dalam interval yang diinginkan. "roses pendekodean dilakukan berdasarkan persamaan =.? di atas. "ada )ungsi ini istilah kromosom mengacu pada vektor baris yang berisi bilangan biner sedangkan individu mengacu pada variabel G yang berisi bilangan real. #edua istilah ini akan terus dipakai secara konsisten dalam buku ini. $elanjutnya perhatikan kode program berikut ini:
H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % H Mendekodekan kromosom /ang berisi bilangan biner men,adi individu $ /ang H bernilai real dalam interval /ang ditentukan 9Ba,Bb? H H Masukan H Eromosom 8 kromosom, matriks berukuran ' $ FumDen H Nvar 8 ,umplah variabel H Nbit 8 ,umplah bit /ang mengkodekan saeu variabel H Ba 8 batas atas interval H Bb 8 batas ba)ah interval H H Eeluaran H ! 8 individu hasil dekode kromosom H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % +un, ion $ % DekodekanEromosom (kromosom,Nvar,Nbit,Ba,Bb) +o# ii % '8 Nvar $( ii ) % :A +o# ,, % i 8 Nbit, $( ii ) % $( ii ) + kromosom (( ii-' ) .Nbit +,, ) .;3 ( -,, ) A end $ ( ii ) % Bb + ( Ba 7 Bb ) .$ ( ii ) A end

kromosom adalah sebuah matriks berukuran 0 G &umGen atau biasa dikenal sebagai vektor baris. +var adalah jumplah variabel yang terdapat pada )ungsi yang dioptimasi. $edangkan +bit adalah jumplah bit yang digunakan untuk mengkodekan satu variabel. .a adalah batas atas interval sedangkan .b adalah batas ba'ah interval. #eluaran dari )ungsi ini adalah G yaitu sebuah individu yang bernilai real dalam interval 6.a .b;. &ika +var sama

dengan = dan +bit sama dengan 03 maka individu G terdiri dari dua kolom G(0) dan G(=). %engan skema ini G(0) adlah hasil dekode dari kromosom(0) sampai kromosom(03).$edangkan G(=) adalah hasil dekode dari kromosom (00) sampai kromosom(=3). %alam hal ini keomosom(ii) mengacu pada nilai gen ke-ii.

".2." E-alua!iIndi-idu
Fungsi ini bertujuan untuk menghitung nilai )iness dari suatu individu G. Fungsi ini sangat bergantung pada masalah yang akan diselesaikan. #ode program berikut ini digunakan khusus untuk menyelesaikan masalah minimasi untuk )ungsi h pada persamaan :.0 di atas. !anda T menyatakan baris komentar.
H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %H Mengevaluasi individu sehingga didapatkan nilai *itness-n/a H H Masukan H ! 8 individu H BilEe#il 8 bilangan ke#il digunakan untuk menghindari pembagian dengan : H H Eeluaran H *itness H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %% % % +un, ion *itness % EvaluasiIndividu($, BilEe#il) *itness % ' 1 (':::.) 7 ;.$(;))3; + ('-$('))3;) + BilEe#il) A

5ndividu G terdiri dari dua kolom G(0) dan G(=). !anda U menyatakan perpangkatan. #arena tujuannya adalah minimasi maka nilai fitness yang digunakan adalah seperti pada persamaan (=.0>) yaitu 0( hPa) di mana h adalah )ungsi yang diminimasi dan a adalah sebuah bilangan yang dianggap sukup kecil untuk menghindari pembagian dengan 3. pada )ungsi diatas a direpresentasikan oleh Bil#ecil. 9ntuk menjaga agar individu bernilai )itness tertinggi tidak hilang selama evolusi maka perlu dilakukan prosedur elitisme dengan cara membuat satu atau dua kopi dari individu bernilai )itness tertinggi tersebut. "ada kode program di ba'ah ini dilakukan suatu prosedur pencarian individu

bernilai )itness tertinggi dan terendah yang disimpan sebagai variable /aGF dan /inF. $edangkan indeks dari individu bernilai )itness tertinggi disimpan dalam variable IndeksIndividuIerbaik. Agar tidak tertimpa populasi baru disimpan di dalam variabel IemPopulasi. Elitisme dilakukan dengan mengkopi satu atau dua individu terbaik dari "opulasi dan disimpan dalam
IemPopulasi. ! % DekodekanEromosom (Populasi (', 8 ), Nvar, Nbit, Ba, Bb) A 6itness (') % EvaluasiIndividu (!,BilEe#il) A Ma$6 % 6itness (') A Min6 % 6itness (') A IndeksIndividuIerbaik % ' A +o# ii % ; 8 5kPop, Eromosom % Populasi (ii, 8 ) A ! % DekodekanEromosom (Eromosom, Nvar, Nbit, Ba, Bb) A 6itness (ii) J Ma$6), I+ (6itness (ii), Ma$6 % 6itness (ii), IndeksIndividuIerbaik % ii A Best! % ! A end i+ (6itness (ii) G Min6), Min6 % 6itness (ii) A end end IenPopulasi % Populasi A H Elitisme 8 H - Buat satu kopi kromosom terbaik ,ika ukuran populasi gan,il H - Buat dua kopi kromosom terbaik ,ika ukuran populasi genap I+ mod (5kPop,;) % % :, H ukuran populasi genap InterasiMulai % < A IemPopulasi (', 8 ) % Populasi (IndeksIndividuIerbaik, 8 ) A IemPopulasi (;, 8 ) % Populasi (IndeksIndividuIerbaik, 8 ) A el!e . ukuran populasi genap InterasiMulai % ; A IemPopulasi (', 8 ) % Populasi (IndeksIndividuIerbaik, 8 ) A end

".2.$ Linea#Fi ne!!Ranking.m


9ntuk menghindari kecenderungan konvergen pada optimum local maka digunakan penskalaan nilai )itness seperti pada persamaan (=.01) sehingga diperoleh nilai )itness baru yang lebih baik yaitu yang memiliki variasi tinggi. "erhatikan kode program berikut ini :
H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % H Menskalakan nilai *itness ke dalam rangking sehingga diperoleh H nilai-nilai *itness baru /ang berada dalam rentang 9Ma$6, Min6? H H Masukan H 5kPop 8 ukuran populasi atau ,umplah kromosom dalam populasi H 6itness 8 nilai 6itness, matriks ukuran ' $ 5kPop H Ma$6 8 nilai *itness ma$imum H Min6 8 nilai *itness minimum H H Eeluaran H L6B 8 Linear 6itness Banking H H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % +un, ion L6B % Linear6itnessBanking(5kPop, 6itness, Ma$6, Min6) 946, Ind6? % sort (6itness) A +o# rr%' 8 5kPop L6B (Ind6 (5kPop 7 dd + ')) % Ma$6 7 (Ma$6 7 Min6) . ((rr 7 ') 1 (5kPop 7 ')) A end

Fungsi sort sudah tersedia dalam /A!7AB digunakan untuk meng-urutkan nilai )itness dari kecil ke besar (ascending). Jariable $F berisi nilai-nilai )itness hasil pengurutan sedangkan Ind6 berisi indeks dari nilai-nilai )itness tersebut.

".2.% Roule e/heel.m


Fungsi roulette-'heel secara sederhana diimplementasikan dengan kode program berikut ini:

H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % H Memilih orang tua menggunakan Linear6itness, /aitu nilai *itness hasil H pen-skala-an. Pemilhan dilakukan se#ara proporsional sesuai dengan H nilai *itness-n/a H H Masukan H 5kPop 8 ukuran populasi atau ,umplah kromosom dalam populasi H Linear6itness 8 nilai *itness /ang sudah di-skala-kan H H Eeluaran H Pinde$ 8 indeks dari kromosom /ang terpilih (bernilai ' sampai 5kPop) H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % +un, ion Pinde$ % BouletteKheel (5kPop, Linear6itness) A Fum6itness % sum (Linear6itness) A Eumulati*6itness % : A BN % randA ii % 'A 0hile ii G% Pop4iLe, Eumulati*6itness % Eumulati*6itness + Linear6itness (ii)A I+ (Eumulati*6itness % Eumulati*6itness) J BN, Pinde$ % ii A 1#eakA end ii % ii + ' A end

$ebuah perintah yang sudah tersedia dalam /A!7AB sum digunakan untuk menjumplahkan semua nilai pada vector Linear6itness. "erintah break digunakan untuk keluar dari suatu penggulangan *or atau )hile (/A!7AB tidak menyediakan pengulangan repeat unit ). #eluaran dari )ungsi ini adalah Pinde$ yaitu indeks dari individu yang terpilih sebagai orang tua.

".2.& PindahSilang.m
$kema pindah silang satu titik potong yang dijelaskan pada sub bab =.=.? diimplementasikan dalam kode program berikut ini:

H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % H Memindah-silangkan bagian kromosom Bapak dan Ibu /ang dipotong H se#ara random, sehingga dihasilkan dua buah kromosom nak H H Masukan H Bapak 8 kromosom, matriks berukuran ' $ FumDen H Ibu 8 kromosom, matriks berukuran ' $ FumDen H FumDen 8 ,umplah gen H H Eeluaran H nak 8 Eromosom hasil pindah silang, matriks berukuran ' $ FumDen H%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +un, ion nak % Pindah4ilang (Bapak, Ibu, FumDen) A

IP % ' + *i$ (rand. (FumDen 7 ')) A nak (', 8 ) % 9Bapak (' 8 IP) Ibu (IP+' 8 FumDen)? A nak (;, 8 ) % 9Ibu (' 8 IP) Bapak(IP+' 8 FumDen)? A

$ebuah bilangan antara 0 sampai &umGen dibangkitkan secara random dan disimpan dalam variable !". Jariable Anak(0 :) menyatakan anak baris ke-0 semua kolom. Baris 0 menunjukkan kromosom anak pertama hasil pindah silang. $edangkan semua kolom menunjukkan bah'a kromosom anak tersebut berisi gen-gen gabungan dari bagian depan kromosom Bapak dan bagian belakang kromosom 5bu.

".2.' Mu a!i.m
/utasi bias terjadi secara random pada setiap gen dalam kromosom. Berikut ini adalah baris-baris perintah untuk )ungsi nutasi:
H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % H Mutasi gen dengan probabilitas sebesar Pmutasi H Den-gen /ang terpilih diubah nilain/a8 : men,adi ', dan ' men,adi : H H Masukan H Eromosom 8 Eromosom, matriks berukuran ' $ FumDen H FumDen 8 ,umplah gen H Pmutasi 8 Probabilitas mutasi H H Eeluaran H MutErom 8 kromosom hasil mutasi, matriks berukuran ' $ FumDen H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %

+un, ion MutErom + Mutasi (Eromosom, FumDen,Cmutasi) A mutErom + EromosomA +o# ii % ' 8 FumDen, i+ (rand G Pmutasi), i+ Eromosom (ii) %%:, MutErom (ii) % 'A el!e MutErom (ii) % :A end end end

&ika suatu bilangan random 63 0) yang dibangkitkan oleh perintah rand kurang dari probabilitas mutasi "mutasi maka gen yang bersesuaian akan diganti dengan nilai kebalikannya (nilai 3 diubah menjadi 0 dan 0 diubah menjadi 3). #eluaran dari )ungsi mutasi ini adalah /ut#rom yaitu kromosom hasil mutasi.

".2.) Ag! anda#2D.m


"ada program utama berikut ini diberikan sedikit tambahan perintah gra)is untuk membanggun gra)ik dua dimensi. "rogram ini merupakan AG standar yang sudah lengkap yang memanggil tujuh )ungsi yang telah dijelaskan di atas.
H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % H lgoritma Denetika 4tandar (dengan gra*is ;D) terdiri dari8 H H '. 4atu populasi dengan 5kPop kromosom H ;. Binar/ en#oding H <. Linear *itness ranking H =. Boulette-)heel sele#tion H >. Pindah silang satu titik potong H M. Probabilitas pindah silang dan probabilitas mutasi bernilai tetap H @. Elitisme, satu atau dua buah kopi dari individu bernilai *itness tertinggi H N. Denerational repla#ement 8 mengganti semua individu dengan individu baru H H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %

"l# "lear all Nvar Nbit FumDen Bb Ba 5kPop Psilang Pmutasi Ma$D % % % % % % % % % ;A ':A Nbit.NvarA ->.';A >.';A ;::A :.NA :.:>A '::A

H Me-re*resh #ommand )indo) H Menghapus semua variable /ang sedang akti* H H H H H H H H H Fumplah variable pada *ungsi /ang dioptimasi Fumplah bit /ang mengkodekan satu variabel Fumplah grn dalam kromosom Batas ba)ah interval Batas atas interval Fumplah kromosom dalam populasi Probabilitas pindah silang Probabilitas mutasi Fumpla, generasi

BilEe#il 6threshold Bgra*

% ': U -'A H Digunakan untuk menghindari pembagian dengan : % '1BilEe#ilA H Ihreshold untuk nilai 6itness % 6threshold H 5ntuk menanggani tampilan gra*is

H Inisialisasi gra*is ;D h*ig % *igure hold on title (0Cptimasi *ungsi menggunakan D standar dengan gra*is ; dimensi&) set (h*ig, 0position&, 9>:,>:,M::,=::?)A set (h*ig, 0DoubleBu**er&, 0on&)A a$is (9' Ma$D : Bgra*?)A hbestpolat % plot (' 8 Ma$D, Leros(', Ma$D))A hte$t' %te$t (:.M.Ma$D,:.;>.Bgra*, sprint* (06itnss terbaik8 H@ m =*& , :.:))A hte$t; %te$t (:.M.Ma$D,:.;:.Bgra*, sprint* (0Oariabel !' 8 H> , =*& , :.:)) A hte$t< %te$t (:.M.Ma$D,:.'>.Bgra*, sprint* (0Oariabel !; 8 H> , =*& , :.:)) A hte$t= %te$t (:.M.Ma$D,:.':.Bgra*, sprint* (0Nilai minimum 8 H> , =*& , :.:)) A $label (0Denerasi&) A /label (06itness terbaik&) A hold o** dra)no) A H Inisialisasi populasi Populasi % Inisialisasi populasi (5kPop, FumDen) A H Loop evolusi +o# grnerasi % ' 8 Ma$D ! % DekodekanEromosom (Populasi (', 8 ) , Nvar, Nbit , Ba , Bb) A 6itness (') % EvaluasiIndividu ( $ , BilEe#il ) A Ma$6 % 6itness (') A Min6 % 6itness (') A

IndeksIndividuIerbaik % ' A +o# ii % ; 8 5kPop, kromosom % Populasi ( ii, 8 ) A ! % DekodekanEromosom 6itness (ii) % EvaluasiIndividu (!, BilEe#il ) A i+ ( 6itness (ii) J Ma$6 ) , Ma$6 % 6itness (ii) A IndeksIndividuIerbaik % ii A Best! % $A end i+ ( 6itness (ii) G Min6 ) , Min6 % 6itness (ii) A end end H Penanganan gra*is ;D Plotve#tor % get (hbestplot, 0Pdata& ) A Plotve#tor (generasi) % Ma$6 A 4et ( hbestplot, 0Pdata& , Plotve#tor ) A 4et (hte$t',& 4tring&, sprint* (06itness terbaik 8 H@ , =*&, Ma$6 )) A 4et (hte$t;,& 4tring&, sprint* (0Oariabel !' 8 H> . =*& , Best! (')) A 4et (hte$t<,& 4tring&, sprint* (0Oariabel !; 8 H> . =*& , Best! (;)) A 4et (hte$t=,& 4tring&, sprint* ( 0Nilai minimum 8 H> . =*& , ( ' 1Ma$6 ) 7 BilEe#il )) A dra)no) i+ Ma$6 J% 6threshold, 1#eak A end IemPopulasi % Populasi A H Elitisme 8 H - Buat satu kopi kromosom terbaik ,ika ukuran populasi gan,il H - Buat dua kopi kromosom terbaik ,ika ukuran populasi genap i+ mod (5kPop, ; ) %%:, H ukuran populasi genap IterasiMulai % < A IemPopulasi ( ', 8 ) % Populasi (IndeksIndividuIerbaik, 8 ) A IemPopulasi ( ;, 8 ) % Populasi (IndeksIndividuIerbaik, 8 ) A el!e H ukuran populasi gan,il IterasiMulai % ; A IemPopulasi ( ', 8 ) % Populasi (IndeksIndividuIerbaik, 8 ) A end

Linear6itness % Linear6itnessBanking (5kPop, 6itness , Ma$6 , Min6 ) A

H Boulette-)heel dan pindah silang +o# ,, % IterasiMulai 8 ; 8 5kPop, IP' % Boulette-)heel (5kPop , Linear6itness) A IP; % Boulette-)heel (5kPop , Linear6itness) A i+ (rand G Psilang) , nak % Pindah4ilang (populasi ( IP', 8 ) , Populasi (IP; , 8 ) , FumDen) A IemPopulasi ( , , , 8 ) % nak (' , 8 ) A IemPopulasi ( , , + ', 8 ) % nak (; , 8 ) A el!e IemPopulasi ( , , , 8 ) % Populasi (IP' , 8 ) A IemPopulasi ( , , + ', 8 ) % Populasi (IP; , 8 ) A end end H Mutasi dilakukan pada semua kromosom +o# kk % InterasiMulai 8 5kPop, IemPopulasi ( kk, 8 ) % Mutasi (IemPopulasi ( kk, 8 ), FumDen, Pmutasi) A end H Denerational Bepla#ement 8 semua kromosom sekaligus Populasi % IemPopulasi A end

".2.2 Ag! anda#"D.m


"ada program utama berikut ini diberikan sedikit tambahan perintah gra)is untuk membangun gra)ik tiga dimensi. "rogram ini merupakan AG standar yang sudah lengkap yang memanggil tujuh )ungsi yang telah dijelaskan di atas.
H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % H lgoritma Denetika 4tandar ( dengan gra*is <D ) terdiri dari 8 H H '. 4atu populasi dengan 5kPop kromosom H ;. Binar/ en#oding H <. Linear 6itness ranking H =. Boulette-)heel sele#tion H >. Pindah silang satu titik potong

H M. Probabilitas pindah silang dan probabilitas mutasi bernilai tetap H @. Elitisme, satu atau dua buah kopi dari individu bernilai *itness tertinggi H N. Denerational repla#ement 8 mengganti semua individu dengan individu baru H H% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % #l# #lear all Nvar % Nbit % FumDen % Bb % Ba % 5kPop Psilang Pmutasi Ma$D % % % % ;A ':A Nbit.NvarA ->.';A >.';A ;::A :.NA :.:>A '::A H Me-re*resh #ommand )indo) H Menghapus semua variabel /ang sedang akti* H H H H H H H H H Fumplah variabel pada *ungsi /ang dioptimasi Fumplah bit /ang mengkodekan satu variabel Fumplah gen dalam kromosom Batas ba)ah interval Batas atas interval Fumplah kromosom dalam populasi Probabilitas pindah silang Probabilitas mutasi Fumplah generasi

H Inisialisasi gra*is <D h*ig % *igureA hold onA title (0Cptimasi *ungsi menggunakan D standar dengan gra*is < dimensi&) set (h*ig, 0DoubleBu**er& , 0on& )A delta % :.:;A limit % *i$ (;.Ba1delta) + 'A 9$g,/g? % meshgrid (Bb 8 delta 8 Ba,Bb 8 delta 8 Ba)A Lg % Leros (limit, limit)A +o# , % ' 8 limit +o# k % ' 8 limit Lg ( ,,k ) % EvaliasiIndividu (9Lg ( , , k ) /g ( , , k )?, BilEe#ilA end end sur*l ($g, /g, Lg) #olormap gra/A shading interpA vie) ( 9 < > ; ? )A $ind % Leros (5kPop,<)A h indplot % plot< ($ind( 8,'), $ind( 8,;), $ind( 8,<),&k.&)A hold o** dra)no)

BilEe#il 6theshold Bgra*

% ':U -'A H Digunakan untuk menghindari pembagian dengan : % '1BilEe#ilA H Ihreshold untuk nilai 6itness % 6theshold H 5ntuk menangani tampilangra*is

H Inisialisasi populasi Populasi % Inisialisasi populasi (5kPop, FumDen)A H Loop evolusi +o# generasi % ' 8 Ma$D,

O A %ekodekan#romosom ("opulasi (0 :) +var +bit .a .b)N Fitness (0) A Evaluasi5ndividu (G Bil#ecil)N T Gind digunakan untuk tampilan gra)is
!ind( ',' ) % $('), !ind( ',; ) % $(;), !ind( ',< ) % $(<), Ma$6 % 6itness ('), Min6 % 6itness ('), IndeksIndividuIerbaik % 'A +o# ii % ; 8 5kPop, kromosom % Populasi ( ii, 8 )A $ % DekodekanEromosom (kromosom, Nvar, Nbit, Ba, Bb)A 6itness ( ii ) % EvaluasiIndividu (!, BilEse#il)A H $ind digunakan untuk tampilan gra*is !ind ( ii, ' ) % $( ' )A !ind ( ii, ; ) % $( ; )A !ind ( ii, < ) % $( < )A % 6itness ( ii ) A i+ (6itness ( ii ) J Ma$6), Ma$6 % 6itness ( ii ) A IndeksIndividuIerbaik % iiA Best! % $ A end i+ (6itness ( ii ) G Min6) , Min6 % 6itness ( ii ) A end end

H Penanganan gra*is <D 4et (hVindplot, 0!data&,$ind (8,'), 0Pdata& ,$ind (8,;), 0Qdata&,$ind(8,<))A Dra)no)A i+ Ma$6 J% 6threshold , 1#eak3 end IampPopulasi % PopulasiA H ElitismeA H - Buat satu kopi kromosom terbaik ,ika ukran populasi gan,il H - Buat dua kopi kromosom terbaik ,ika ukran populasi genap i+ mod (5kPop,;)%%:, H ukuran populasi genap IterasiMulai % <A IempPopulasi (', 8) % Populasi (IndeksIndividuIerbaik, 8) A IempPopulasi (;, 8) % Populasi (IndeksIndividuIerbaik, 8) A el!e IterasiMulai % ;A IempPopulasi (', 8) % Populasi (IndeksIndividuIerbaik, 8) A end Linear6itness % Linear6itnessBanking (5kPop, 6itness, Ma$6, Min6) A H Boulette-)heel sele#tion dan pindah silang +o# ,, % IterasiMulai 8 ; 8 5kPop, IP' % Boulette-)heel (5kPop, Linear6itness) A IP; % Boulette-)heel (5kPop, Linear6itness) A i+ (rand G Psilang), nak % Pindah4ilang (Populasi (IP' , 8) , Populasi (IP; , 8), FumDen) A IempPopulasi ( ,,, 8) % nak ( ', 8 )A IempPopulasi ( ,,+', 8) % nak ( ;, 8 )A el!e IempPopulasi ( ,,, 8) % Populasi (IP' , 8) IempPopulasi ( ,,+', 8) % Populasi (IP; , 8) end end H Mutasi dilakukan pada semua kromosom +o# kk % IterasiMulai 8 5kPop, IempPopulasi (kk,8) % Mutasi (IempPopulasi (kk,8), umDen, Pmutasi) A end

H Denerational Bepla#ement 8 mengganti semua kromosom sekaligus Populasi % IempPopulasi A end

".2.14 Men5alankan P#og#am


"ertama bukalah aplikasi /A!7AB. #emudian pada menu +urrent .irector& ubahlah direktori menjadi ...78" 9 standar. "ada direktori tersebut terdapat dua )ile sebagai program utama yaitu Ag! anda#2D.m dan Ag! anda#"D.m . 9 standar dengan grafis ! dimensi

$etelah direktori diubah ke lokasi yang sesuai pada command 'indo' ketikkan gstandar;D.m. "ada layar akn muncul sebuah 'indo' seperti pada Gambar :.:a atau :.:b di ba'ah ini. Gambar tersebut menunjukan hasil evolusi dari generasi 0 sampai 033. pada running pertama (gambar :.:a) AG tidap dapat mencapai nilai )itness maksimum. Fitness terbaik yang dicapai hanya ?.1:C:. tetapi pada running kedua (Gambar :.:b) AG dapat mencapai nilai ditness maksimum dengan cepat sebelum generasi ke-=3. )itness terbaik yang dicapai adalah 03. +ilai minimum daru )ungsi h pada persamaan :.0 di atas adalah 3 dengan G0 A 0 dan G= A 3.>.

ambar $.$a $% standar gagal mencapai fitness maksimum.

ambar $.$b $% standar berhasil mencapai fitnees maksimum. #enapa AG bisa menghasilkan solusi yang berbeda-beda* (al ini bisa dipahami karena semua komponen AG berbasis pada )ungsi random sehingga AG bisa menghasilkan solusi yang berbeda-beda pada setiap kali running. !etapi dengan memilih nilai-nilai parameter yang tepat AG bisa memberikan solusi paling optimal. Aubbab :.: menjelaskan bagaimana mencari parameter AG yang optimal. 9 standar dengan grafis $ dimensi

$etelah direktori diubah ke lokasi yang sesuai pada command 'indo' ketikkan gstandar<D. "ada layar akan muncul sebuah 'indo' seperti pada Gambar :.? diba'ah ini. "ada gambar tersebut tanda bintang menunjukkan individu-individu dalam populasi. "ada 'indo' tersebut di bagian paling kanan terdapat ikon rotasi untuk mengubah sudut pandang. &uga terdapat ikon-ikon untuk -oom in dan -oom out untuk memperbesar dan memperkecil obyek.

ambar $.( $% standar dengan grafis 4 dimensi

3.3 Mencari !arameter AG "ang Optimal


"ada program utama di atas terdapat tiga variabel yang harus ditentukan oleh user: 5kPop, Psilang, Pmutasi. 9kuran populasi biasanya berkisar antara :3 sampai 0333. jika ukuran populasi terlalu kecil AG akan cepat konvergen disebabkan oleh rendahnya variasi pada kromosom-kromosom dalam populasi. !etapi ukuran populasi yang terlalu besar akan menyebabkan proses AG menjadi lambat. "ada umumnya probabilitas pindah silang ditentukan antara 3 2 sampai 3 1. sebaliknya probabilitas mutasi biasanya sangat kecil sekitar 0 dibagi dengan jumplah gen. Artinya peluang mutasi hanya tejadi pada sekitar satu gen saja. !entu saja penentuan ketiga parameter tersebut sangat bergantung pada masalah yang diselesaikan. #ita bisa menggunakan teknik tril-end-error dengan melakukan percobaan untuk beberapa kombinasi dari ketiga parameter tersebut.

".".1 O1!e#-a!i Nilai Pa#ame e# O( imal


%alam AG standar dua parameter penting yang sangat sensiti) adalah ukuran populasi dan probabilitas mutasi. 8leh karena itu biasanya observasi dilakukan untuk setiap kombinasi kedua parameter tersebut. "ada masing-

masing kombinasi perlu dilakukan beberapa kali running misalnya 03 kali dengan populai a'al yang berbeda-beda. $upaya adil jumplah individu maksimum yang dievaluasi harus sama. Artinya beberapa ukuran populasi jumplah individu maksimum yang dievaluasi tetap sama. #ode program di ba'ah ini bertujuan untuk melakukan observasi guna mencari nilai optimal dari kedua parameter ukuran populasi dan probabilitas mutasi. 8bservasi dilakukan untuk empat niali berbeda pada setiap parameter sehingga terdapat 02 kombinasi. "ada setiap kombinasi dilakukan 03 kali running. "ada setiap kali running paling banyak 23333 individu yang dievaluasi yang dinyatakan oleh variabel Ma$FumDen. (asil dari program ini adalah sebuah variabel CbData, yang berisi tabel perbandingan per)ormasi AG dengan beberapa kombinasi nilai parameter. Jariabel CbData ini disimpan dalam )ile CbData.mat dan juga ditampilkan ke layar. !anda 4...4 menyatakan lainnya dapat ditemukan pada baris-baris komentar.
H%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% H Men#ari parameter optimal 8 ukuran populasi dan peobabilitas mutasi H H Pen#arin parameter optimal dilakukan dengan mengkombinasikan kedua H parameter tersebut. Dalam observasi ini, digunakan empat nilai untuk H masing-masing parameter, sehingga diperoleh 'M kombinasi. H Nilai untuk kedua parameter adalah sebagai berikut 8 H - 5kPop8 >:, '::, ;::, dan =:: H - Pmutasi 8 :.:', :.:>, :.', dan :.; H H%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #l# #lear all Nvar Nbut FumDen Bb Ba % % % % % ;A ': A Nbit.NvarA ->.';A >.';A H Me-re*resh #ommant )indo) H Menghapus semua variable /ang sedang akti* H H H H H Fumplah variable pada *ungsi /ang dioptlmasi Fumplah bit /ang mengkodekan satu variable Fumplah gen dalam kromosom Batas ba)ah interval Batas atas interval

Psilang % :.NA Ma$FumInd % M::::A BilEe#il % ': U -'A

H Probabilitas pindah silang H Fumplah individu maksimum /ang dievaluasi H Digunakan untuk menghindari pembagian dengan :

6threshold % '1BilEe#ilA Bgra* % 6thresholdA

H 6threshold untuk nilai 6itness H 5ntuk menangani tampilan gra*is H 5kuran populasi /ang diobservasi H Probabilitas mutasi /ang diobservasi

Cb5kPop % 9 >: ':: ;:: =:: ?A CbPmutasi % 9 :.:' :.:> : .' :.; ?A CbData % 9 ? A

H Data hasil observasi

+o# ukp % ' 8 'ength (Cb5kPop)A 5kPop % Cb5kPop (ukp)A Ma$D % *i$ (Ma$FumInd15kPop) A +o# pm % ' 8 ' ength (CbPmutasi) , Pmutasi % CbPmutasi (pm) A +o# observasi % ' 8 ':, 5kPop, Pmutasi (5kPop, FumDen) A H Inisialisasi populasi Populasi % Inisialisasi populasi (5kPop, FumDen)A H Loop evolusi +o# generasi % ' 8 Ma$D, ! % DekodekanEromosom (Populasi (', 8), Nvar, Nbit, Ba, Bb) A 6itness (') % EvaluasiIndividu ($, Bilke#il) A Ma$6 % 6itness (') A Min6 % 6itness (') A IndeksIndividuIerbaik % 'A +o# ii % ; 8 5kPop, Eromosom % Populasi ( ii, 8 ) A $ % DekodekanEromosom(kromosom, Nvar, Nbit,Ba, Bb) A 6itness (ii) % EvaluasiIndividu ($, Bilke#il) A i+ (6itness (ii) J Ma$6), Ma$6 % 6itness (ii) IndeksIndividuIerbaik % ii A Best! % $A end i+ (6itness (ii) G Min6), Min6 % 6itness (ii) A end end IempPopulasi % PopulasiA

H Elitisme 8 H - Buat satu kopi kromosom terbaik ,ika ukuran populasi gan,il H - Buat dua kopi kromosom terbaik ,ika ukuran populasi genap i+ mod (5kPop,;) %%:, H ukuran populasi genap IterasiMulai % < A IempPopulasi ( ', 8 ) % Populasi (IndeksIndividuIerbaik, 8 ) A IempPopulasi ( ;, 8 ) % Populasi (IndeksIndividuIerbaik, 8 ) A el!e H ukuran populasi gan,il IterasiMulai % ; A IempPopulasi ( ', 8 ) % Populasi (IndeksIndividuIerbaik, 8 ) A end Linear6itness % Linear6itnessBanking (5kPop,6itness,Ma$6,Min6)A H Boulette-)heel sele#tion dan pindah silang +o# ,, % InterasiMulai 8 ; 8 5kPop, IP' % Boulette-)heel (5kPop, Linear6itness) A IP; % Boulette-)heel (5kPop, Linear6itness) A i+ (rand G Psilang) , nak % Pindah4ilang(Populasi (IP,8),(Populasi (IP;,8),FumDen)A IempPopulasi ( ,,, 8 ) % nak ( ', 8 ) A IempPopulasi ( ,,+', 8 ) % nak ( ;, 8 ) A el!e IempPopulasi ( ,,, 8 ) % nak ( IP', 8 ) A IempPopulasi ( ,,+', 8 ) % nak ( IP;, 8 ) A end end H Mutasi dilakukan pada semua kromosom +o# kk % InterasiMulai 8 5kPop, IempPopulasi(kk,8)%Mutasi (IempPopulasi (kk, 8),FumDen,Pmutasi)A end H Deneration Bepla#ement8 mengganti semua kromosom sekaligu ! Populasi % IempPopulasiA i+ Ma$6 J% 6threshold, FumIndData (observasi) % generasi.5kPopA Ma$6Data (observasi) % Ma$6A 1#eak A el!e

i+ generasi %% Ma$D FumIndData (observasi) % Ma$D.5kPopA Ma$Data (observasi) % Ma$6A end end end H loop evaluasi end H loop observasi CbData % 9CbData A 95kPop Pmutasi mean (Ma$6Data) ... Mean (FumIndData) ? ? A end end save CbData.mat CbData #l# H me-re*resh la/ar disp ( 9 &Men#ari nilai optimal 8 5kuran Populasi dan Prob. Mutasi 0 ? ) A disp ( 9 0Fumplah maksimum individu /ang dievaluasi adalah 0 , R. Num;str (Ma$FumInd) ? ) A disp ( 9 0 0?)A disp ( 9 0 -------------------------------------------------------------------------- 0 ? ) A disp ( 9 0 5kuran Probabilitas Bata-rata Bata-tara 0?)A disp ( 9 0 -------------------------------------------------------------------------- 0 ? ) A +o# ii % ' 8 'ength (CbData ( 8 , ' ) , disp ( 9 0 0 , num;str (CbData ( ii, < ) ,& num;str (CbData( ii, = ) ) ? ) A end disp ( 9 0 -------------------------------------------------------------------------- 0 ? ) A

".".2 6a!il O1!e#-a!i


!abel :.0 di ba'ah ini adalah hasil running dari program pencarian parameter optimal di atas.

Ta1el ".1 Hasil observasi untuk mencari parameter AG yang optimal Men#ari nilai optimal 8 5kuran Populasi dan Prob . Mutasi Fumplah maksimum individu /ang dievaluasi adalah M:::: SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS 5kuran Probabilitas Bata-rata Bata-rata Populasi mutation 6itness Fumplah individu SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS >: :.:' @.>TM; >=TM: >: :.:> N.>@N@ <'M;: >: :.' N.M:T> <@'>> >: :.; T.N'>T =:M@: ':: :.:' @.@;MM =>=;: ':: :.:> N.MN'M ;>=<: ':: :.' T.TTM: ;=N@: ':: :.; T.@:@= >N<M: ;:: :.:' N.>:NT =:@=: ;:: :.:> T.>>;M <<==: ;:: :.' T.T;<T =<==: ;:: :.; T.MN>< M:::: =:: :.:' N.;T<N >:::: =:: :.:> T.;<TM ;<;N: =:: :.' T.N@<= >:'M: =:: :.; N.>'TM >>M:: SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

"ada tabel tersebut ukuran populasi sebanyak 033 krpmosom dan probabilitas mutasi sebesar 3.0 merupakan nilai yang paling optimal. %engan kedua nilai parameter tersebut AG bisa mendapatkan rata-rata )itness sebesar 1.1123. Artinya AG akan menberikan solusi paling optimum (dengan )itnes 03) dengan probabilitas 3.1123. .ata-rata jumplah individu yang dievaluasi juga sangat sedikit yakni =?CB3 jauh lebih kecil dari jumplah individu maksimum yang dievaluasi (23333). "ada tabel tersebut juga terlihat bah'a ukuran populasi yang semakin besar justru menbuat per)ormasi AG menjadi turun. (al yang sama juga terjadi pada probabilitas mutasi. $emakin besar probabilitas mutasi per)ormasi AG menjadi semakin turun. III

KARAKTERISTIK ALGORITMA GENETIKA

"ada Bab = telah dijelaskan bah'a komponen-komponen AG dibangun dari )ungsi-)ungsi random. Apakag AG sama dengan pencarian secara random* &a'abnya tentu saja tidak. 8perasi-operasi AG sangat berbeda dengan pencarian random. "roses mutai pada AG memang random tetapi proses seleksi orang tua tidaklah random. Bagaimana sesungguhnya cara kerja AG* Bab ini akan memberikan sebagian ja'aban dari pertanyaan tersebut melalui suatu teori yang dikenal sebagai schema theorem. Bab ini juga membahas masalah konvergensi prematur.

#.1 Sc$ema T$eorem


%alam AG yang menggunakan binary encoding suatu schema dide)inisikan sebagai suatu pola yang berisi posisi-posisi tetap yang berisi gen-gen bernilai 3 atau 0 dan posisi-posisi tidak tetap yang berisi gen-gen bernilai G (di mana G bisa bernilai 3 atau 0). ,ontoh-contoh s chema adalah 03GG GG30 0G03 dan sebagainya. $chema 03GG dapat digunakan untuk merepresentasikan empat buah kromosom 0333 0303 dan 0300. %engan adanya imbul G masing-masing posisi dalam schema bisa bernilai 3 0 atau G. oleh karena itu sebuah kromosom dengan panjang n mempunyai sejumplah :K schema. %alam suatu populasi schema yang berbeda memiliki nilai )itness yang juga berbeda. $ebagai contoh dua variabel yang dikodekan ke dalam kromosom menggunakan enam bit (masing-masing variabel tiga bit) digunakan untuk memaksimalkan )ungsi h( x0 x = ) = > x0 + x = di mana x0 x = [ 3 0] . %engan skema pengkodean tersebut kromosom #0 333000 memberikan nilai x0 = 3 dan x = = = 0 + = = + = : = 3 CB> sehingga #0 memiliki nilai )itness sebesar 3 CB> (0 G 3 CB>). $edangkan kromosom #= 000333 memberikan x0 = = 0 + = = + = : = 3 CB> dan x = = 3 . #= memiliki nilai )itness sebesar ? :B> (diperoleh dari > G 3 CB>) yang lebih besar dari #0. oleh karena itu schema 000GGG tentu saja mempunyai nilai )itness lebih

tinggi dibandingkan schema 333GGG. 5de dasar schema theorem adalah bah'a AG akan memproses skema-skema dengan suatu cara untuk meningkatkan jumplah schema yang memiliki nilai )itness tinggi. /isalkan f ( 5 ) menyatakan rata-rata )itness dari suatu schema $ dalam suatu populasi. f ( 5 ) dide)inisikan sebagai rata-rata )itness dari semua kromosom yang termasuk dalam schema $ tersebut. %engan menggunakan seleksi orang tua yang proporsional terhadap nilai )itnessnya maka probabilitas terpilihnya suatu kromosom dengan )itness f i adalah f i D f (di mana f = i =0 f i adalah total )itness dari semua + kromosom dalam
#

populasi tersebut). $elanjutnya misalkan f menyatakan rata-rata )itness dalam populasi dengan + kromosom yaitu f = f D # . Banyaknya kopi dari schema $ yang diharapkan pada generasi berikutnya g P 0 adalah
( 5 g +0) = # f ( 5 )( 5 g ) f

(?.0)

( 5 g ) menyatakan jumplah kopi dari schema $ pada generai g. di mana %engan menggunakan )akta bah'a # D f =0 D f maka diperoleh persamaan berikut ini:
( 5 g +0) = # f (5 ) ( 5 g ). f

(?.=)

&ika suatu schema dihubungkan secara koe)isien dengan rata-rata )itnessnya yakni f ( 5 ) D f =0 + a >0 di mana adalah konstanta maka jumplah kopi dari schema saat ini dalam populasi akan tumbuh secara eksponensial berdasarkan 'aktu k.
( 5 g + k ) = ( 5 g )(0 + ) .
k

(?.:)

$etelah proses seleksi orang tua terdapat dua proses pindah silang dan mutasi yang cenderung merusak schema-schema yang panjang. $ebelum membahas permasalahan ini lebih jauh perlu sedikit penjelasan tentang kedua istilah defining length dan order. 5stilah defining length %($) dari suatu schema $ dide)inisikan sebagai jarak antara posisi simbol bukan G yang

pertama dan posisi simbol bukan G yang terakhir. $ebagai contoh schema $ 0 A 0GG03GG memiliki de)ining length %($0) A > R 0 A ? karena simbol bukan G yang pertama (yaitu 0) berada pada posisi 0 dan simbul bukan G yang

terakhir (yaitu 3) berada pada posisi >. adapun order 6!5" dari suatu schema adalah jumplah posisi tetap (simbul bukan G) dalam schema tersebut. %engan demikian schema $0 di atas memiliki order 8($0) A :. $elanjutnya perhtikan proses yang terjadi pada pindah silang. %alam hai ini digunakan datu titik potong. %i mana posisi satu titik potong tersebut dipilih secara random. "robabilitas perusakan selama pindah silang terhadap schema dengan de)ining length %($) adalah:
7d = &( 5 ) n 0

(?.?)

&adi schema yang de)ining length-nya sama dengan n-0 (schema tampa simbol G) akan dirusak dengan probabilitas 0. jalas sekali bah'a yang menjadi masalah hanyalah de)ining length. #arena pindah silang tejadi dengan probabilita 7c maka schema $ akan bertahan hidup dengan 0 p c &( 5 ) probabilitas sekitar ( n 0) . .umus probabilitas tersebut sedikit lebih kecil dari probabilitas sesungguhnya. (al ini bisa dipahami dengan alasan bah'a meskipun suatu schema dirusak schema tersebut masih mungkin muncul lagi jika digabungkan dengan bagian schema lain yang sesuai. /isalnya schema $0 G03GGG akan rusak jika dipotong pada titik antara = dan :. !etapi jika potongan pertama G0 digabungkan dengan potongan schema lain 3GGG maka schema $0 tetap bertahan hidup. $elama proses mutasi suatu schema akan rusak jika ada gen yang bukan G diubah. 9ntuk setiap gen probabilitas mutasi adalah sama dengan p mut. &adi probabilitas bah'a schema $ tidak akan termutasi pada gen-gen yang bukan 6( 5 ) G adalah sama dengan (0 p c ) di mana 8($) adalah order (jumplah simbol bukan G dari schema $). %engan memasukkan pengaruh kedua proses pindah silang dan mutasi jumplah kopi dari schema $ pada generasi gP0 adalah:

( 5 g + 0)

f (5) &( 5 ) 6( 5 ) ( 5 g )0 p c (0 p mut ) n 0 f

f (5) &( 5 ) ( 5 g )0 p c (0 6( 5 ) p mut ) n 0 f


f (5) &( 5 ) ( 5 g )0 p c 6 ( 5 ) p mut n 0 f

(?.>)

di mana pada langkah kedua di atas p mut diasumsikan jauh lebih kecil dari 0. "ada persamaan ?.> dapat disimpulkan bah'a jumplah kopi dari suatu schema dengan de)ining length yamh rendah order rendah dan )itness di atas ratarata akan meningkat secara eksponensial terhadap 'aktu. $chema seperti ini disebut sebagai building blocks. (asil yang diperoleh dalam persamaan ?.> di atas dikenal sebagai schema theorem.

#.2 Kon%ergen !rematur


"ermasalahan yang paling umum terjadi pada AG adalah komvergensi premature di mana populasi konvergen pada suatu solusi suboptimal. "erhatikan Gambar ?.0 di ba'ah ini.

Gam1a# $.1 Komvergen premature. Aksi vertical menunjukan nilai fitness, sedangkang titik-titik hitam pada arah hori ontal menunjukan individu-individu dalam suatu populasi. !ada gambar sebelah kiri, suatu individu A memiliki nilai fitness sedikit lebih baik dibanding semua individu yang lain. "an pada gambar sebelah kanan, populasi konvergen pada suatu solusi suboptimal #optimum local$, dekat dengan lokasi individu A.

/ula-mula semua kromosom sangat jauh dari nilai optimum. !etapi ada satu kromosom diberi tanda A yang memiliki nilai )itness paling tinggi dan mendekati suatu optimal lokal. #arena nilai )itnessnya lebih tinggi dari semua kromosom lainnya romosom A akan memproduksi banyak anak. "ada suatu generasi tertentu kromosom A dan anak-anaknya akan mendomonasi populasi. "ada kondii yang tidak menguntungkan pindah silang dan mutasi hanya akan menghasilkan kromosom-kromosom yang mendekati lokal optimum sehingga terjadilah konvergensi prematur. Bagaimana mencegah terjadinya konvergensi prematur* ,ara pertama adalah dengan menggunakan fitness ranking yang bisa menurunkan perbedaan nilai )itness antar individu. "ada Gambar ?.0 di atas rasio antara nilai )itness terbaik dengan nilai )itness terbaik kedua adalah sekitar =. jika terdapat # individu )itness ranking akan menurunkan rasio ini menjadi # + ( # 8 1 ) atau mendekati 0 jika # cukup besar. %engan kata lain )itness ranking tidak selalu dapat menyelesaikan masalah ini. ,ara lainnya adalah dengan menggunakan subpopulasi. "ada metode ini # kromosom dalam satu populasi dibagi menjadi #k kelompok. /asingmasing kelompok berisi v * # + #k individu. %alam metode ini pindah silang dan mutasi hanya terjadi didalam subpopulasi. !etapi dengan tunneling probabilitas p t suatu individu bisa dipindah ke subpopulasi lain. Agar jumplah individu dalam suatu subpopulasi tidak berubah suatu individu dipilih secara random untuk dipindah ke subpopulasi lainnya. ,ara lain untuk menghindari konvergensiprematur adalah dengan menggunakan probabilitas mutasi yang bervariasi. #etika konvergensi terjadi perbedaan nilai )itness antar individu menjadi sangat kecil. %engan kata lain variasinya menjadi rendah. %engan demikian jika variasi sudah berada diba'ah nilai tertentu probabilitas mutasi dinaikkan. %an jika variasi sudah melebihi nilai tertentu probabilitas mutasi diturunkan. ...

ALGORITMA GENETIKA LAN78T

!erdapat banyak sekali variasi dari komponen AG. !etapi bab ini hanya membahas beberapa variasi pada komponen AG: skema pengkodean seleksi orang tua nilai )itness dan pindah silang.

&.1 Skema !engko'ean


"ada masalah tertentu skema pengkodean binary encoding menghadapi masalah serius. "ada masalah lain seperti traveling salesman problem binary encoding tidak dapat digunakan. "ada subbab ini akan dibahas beberapa skema pengkodean lain.

%.1.1 Pengkodean Rumi 9Mess" (nco'ing:


"ada schema theorem subbab ?.0 dijelaskan bah'a suatu schema dengan de)ining length yang panjang akan memiliki probabilitas tinggi untuk dirusak. "erhatikan kembali persamaan ?.? di atas. $ebagai contoh schema $0 A 0GGG30 akan lebih mudah rusak selama proses pindah silang dibandingkan dengan schema $= A 030GGG. !etapi jika schema $ 0 memiliki nilai )itness tinggi sangat disayangkan jika schema ini rusak. "adahal schema bernilai )itness tinggi seharusnya dipertahankan. Bagaimana agar schema $0 tidak mudah rusak* $uatu metode pengkodean rumit atau messy encoding bisa digunakan untuk masalah ini. 5denya adalah dengan membuat representasi kromosom yang tidak bergantung pada posisi. &ika schema $0 diubah menjadi GGG300 maka schema tersebut tidak akan mudah rusak karena de)ining length menjadi lebih pendek. "erhatikan Gambar >.0 di ba'ah ini.
> ' ; : ' : < ' = '

Gam1a# %.1 %epresentasi kromosom menggunakan messy encoding.

Angka pertama dalam setiap pasangan ('arna abu-abu) diterjemahkan sebagai posisi gen sedangkan angka kedua ('arna putih) menunjukkan nilai gen. "ada Gambar >-0 di atas posisi > berisi 0 posisi = berisi 3 posisi 0 berisi 3 posisi : berisi 0 dan posisi ? berisi 0. jadi kromoson pad gambar tersebut merepresentasukan 33000. dengan demikian jika schema $ A 0GGG3 memliki niali )itness tinggi maka schema tersebut tidak akan mudah rusak jika direpresentasikan dalam messy encoding dimana gen 0 dan gen > bertetangga. (al ini tidak bisa dilakukan dalam binary encoding biasa. +amun ada du masalah dalam messy encoding. "ertama adanya kemungkinan kromosom akan berisi beberapa posisi gen yang sama tetapi nilai gen-nya berbeda. #edua posisi gen tidak direpresentasikan sama sekali.
> ' ' : = ' < ' = :

Gam1a# %.2 &ebuah masalah dalam messy encoding. 'erdapat dua posisi gen ( dengan nilai gen berbeda. &ebaliknya posisi gen ) tidak direpresentasikan sama sekali

"enyelesaian masalah pertama adalah dengan mengambil posisi gen yang pertama kali. "ada Gambar >.= di atas diputuskan bah'a posisi gen ? adalah bernilai 0 dan posisi ? yang bernilai 3 diabaikan. /asalah kedua

You might also like