Professional Documents
Culture Documents
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.
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;.
!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.
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 =.=.
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 .
(=.=)
%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
) = 0 + :( 3 1 + 3 31 + 3 331) =
3 =C:3
0 11B3
3 1203
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 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
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
(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 +
(=.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>
( 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.
#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.
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
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
perlu dibuat satu atau beberapa kopinya. "rosedur ini kenal sebagai elitisme.
>. "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
"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.
ambar$." (ampilan lingkungan 2$(3$'.(erdapat dua buah komponen command window dan workspace.
/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.
(:.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.
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
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.
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.
"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
% ': 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
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
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)
% ':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
$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 $.$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.
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
H Probabilitas pindah silang H Fumplah individu maksimum /ang dievaluasi H Digunakan untuk menghindari pembagian dengan :
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
+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
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
"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.
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)
(?.>)
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.
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. ...
!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.
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