Anda di halaman 1dari 19

ALGORITMA GENETIKA DAN CONTOH

APLIKASINYA
Algoritma genetika adalah algoritma komputasi yang diinspirasi
teori evolusi yang kemudian diadopsi menjadi algoritma
komputasi untuk mencari solusi suatu permasalahan dengan
cara yang lebih alamiah. Salah satu aplikasi algoritma
genetika adalah pada permasalahan optimasi kombinasi, yaitu
mendapatkan suatu nilai solusi optimal terhadap suatu
permasalahan yang mempunyai banyak kemungkinan solusi.
Dalam tulisan ini akan dibahas teori dasar algoritma genetika
beserta contoh aplikasinya dalam menyelesaikan suatu
permasalahan optimasi kombinasi sederhana.

Teori Dasar Algoritma Genetika

Algoritma genetika yang dikembangkan oleh Goldberg adalah


algoritma komputasi yang diinspirasi teori evolusi Darwin yang
menyatakan bahwa kelangsungan hidup suatu makhluk
dipengaruhi aturan yang kuat adalah yang menang. Darwin
juga menyatakan bahwa kelangsungan hidup suatu makhluk
dapat dipertahankan melalui proses reproduksi, crossover, dan
mutasi. Konsep dalam teori evolusi Darwin tersebut kemudian
diadopsi menjadi algoritma komputasi untuk mencari solusi
suatu permasalahan dengan cara yang lebih alamiah.

Sebuah solusi yang dibangkitkan dalam algoritma genetika


disebut sebagai chromosome, sedangkan kumpulan
chromosome-chromosome tersebut disebut sebagai populasi.
Sebuah chromosome dibentuk dari komponen-komponen
penyusun yang disebut sebagai gen dan nilainya dapat berupa
bilangan numerik, biner, simbol ataupun karakter tergantung
dari permasalahan yang ingin diselesaikan.

Chromosome-chromosome tersebut akan berevolusi secara


berkelanjutan yang disebut dengan generasi. Dalam tiap
generasi chromosome-chromosome tersebut dievaluasi tingkat
keberhasilan nilai solusinya terhadap masalah yang ingin
diselesaikan (fungsi_objektif) menggunakan ukuran yang
disebut dengan fitness. Untuk memilih chromosome yang tetap
dipertahankan untuk generasi selanjutnya dilakukan proses
yang disebut dengan seleksi. Proses seleksi chromosome
menggunakan konsep aturan evolusi Darwin yang telah
disebutkan sebelumnya yaitu chromosome yang mempunyai
nilai fitness tinggi akan memiliki peluang lebih besar untuk
terpilih lagi pada generasi selanjutnya.

Chromosome-chromosome baru yang disebut dengan


offspring, dibentuk dengan cara melakukan perkawinan antar
chromosome-chromosome dalam satu generasi yang disebut
sebagai proses crossover. Jumlah chromosome dalam populasi
yang mengalami crossover ditetukan oleh paramater yang
disebut dengan crossover_rate. Mekanisme perubahan susunan
unsur penyusun mahkluk hidup akibat adanya faktor alam yang
disebut dengan mutasi direpresentasikan sebagai proses
berubahnya satu atau lebih nilai gen dalam chromosome
dengan suatu nilai acak. Jumlah gen dalam populasi yang
mengalami mutasi ditentukan oleh parameter yang dinamakan
mutation_rate. Setelah beberapa generasi akan dihasilkan
chromosome-chromosome yang nilai gen-gennya konvergen ke
suatu nilai tertentu yang merupakan solusi terbaik yang
dihasilkan oleh algoritma genetika terhadap permasalahan
yang ingin diselesaikan.

Aplikasi Algoritma Genetika

Berikut adalah contoh aplikasi algoritma genetika yang


digunakan untuk menyelesaikan masalah kombinasi. Misalkan
ada persamaan a+2b+3c+4d = 30, kita mencari nilai a, b, c,
dan d yang memenuhi persamaan diatas. Kita mencoba
menggunakan algoritma genetika untuk menyelesaikan
permasalahan diatas.

Penjelasan mengenai langkah-langkah penyelesaian


permasalahan diatas menggunakan algoritma genetika adalah
sebagai berikut:

1. Pembentukan chromosome
Karena yang dicari adalah nilai a, b, c, d maka variabel a, b, c,
d dijadikan sebagai gen-gen pembentuk chromosome. Batasan
nilai variabel a adalah bilangan integer 0 sampai 30.
Sedangkan batasan nilai variabel b, c, dan d adalah bilangan
integer 0 sampai 10.
2. Inisialisasi
Proses inisialisasi dilakukan dengan cara memberikan nilai awal
gen-gen dengan nilai acak sesuai batasan yang telah
ditentukan.
Misalkan kita tentukan jumlah populasi adalah 6, maka:
Chromosome[1] = [a;b;c;d] = [12;05;03;08]
Chromosome[2] = [a;b;c;d] = [02;01;08;03]
Chromosome[3] = [a;b;c;d] = [10;04;03;04]
Chromosome[4] = [a;b;c;d] = [20;01;10;06]
Chromosome[5] = [a;b;c;d] = [01;04;03;09]
Chromosome[6] = [a;b;c;d] = [20;05;07;01]

3. Evaluasi Chromosome
Permasalahan yang ingin diselesaikan adalah nilai variabel a,
b, c, dan d yang memenuhi persamaan a+2b+3c+4d = 30,
maka fungsi_objektif yang dapat digunakan untuk
mendapatkan solusi adalah

fungsi_objektif(chromosome) = | (a+2b+3c+4d) 30 |
Kita hitung fungsi_objektif dari chromosome yang telah
dibangkitkan:
fungsi_objektif(chromosome[1]) = Abs(( 12 + 2*5 + 3*3 + 4*8 )
30)
= Abs((12 + 10 + 9 + 32 ) 30)
= Abs(63 30)
= 33
fungsi_objektif(chromosome[2]) = Abs(( 2 + 2*1 + 3*8 + 4*3 )
30)
= Abs(( 2 + 2 + 24 + 12 ) 30)
= Abs(40 30)
= 10
fungsi_objektif(chromosome[3]) = Abs(( 10 + 2*4 + 3*3 + 4*4 )
30)
= Abs(( 10 + 8 + 9 + 16 ) 30)
= Abs(43 30)
= 13
fungsi_objektif(chromosome[4]) = Abs(( 20 + 2*1 + 3*10 + 4*6
) 30)
= Abs(( 20 + 2 + 30 + 24 ) 30)
= Abs(76 30)
= 46
fungsi_objektif(chromosome[5]) = Abs(( 1 + 2*4 + 3*3 + 4*9 )
30)
= Abs(( 1 + 8 + 9 + 36 ) 30)
= Abs(54 30)
= 24
fungsi_objektif(chromosome[6]) = Abs(( 20 + 2*5 + 3*7 + 4*1 )
30)
= Abs(( 20 + 10 + 21 + 4) 30)
= Abs(55 30)
= 25
Rata-rata dari fungsi objektif adalah:
rata-rata = (33+10+13+46+24+25)/6
= 151 / 6
= 25.167
4. Seleksi Chromosome
Proses seleksi dilakukan dengan cara membuat chromosome
yang mempunyai fungsi_objektif kecil mempunyai
kemungkinan terpilih yang besar atau mempunyai nilai
probabilitas yang tinggi. Untuk itu dapat digunakan fungsi
fitness = (1/(1+fungsi_objektif)), fungsi_objektif perlu ditambah
1 untuk menghindari kesalahan program yang diakibatkan
pembagian oleh 0.

fitness[1] = 1 / (fungsi_objektif[1]+1)
= 1 / 34
= 0.0294
fitness[2] = 1 / (fungsi_objektif[2]+1)
= 1 / 11
= 0.0909
fitness[3] = 1 / (fungsi_objektif[3]+1)
= 1 / 14
= 0.0714
fitness[4] = 1 / (fungsi_objektif[4]+1)
= 1 / 47
= 0.0212
fitness[5] = 1 / (fungsi_objektif[5]+1)
= 1 / 25
= 0.0400
fitness[6] = 1 / (fungsi_objektif[6]+1)
= 1 / 26
= 0.0385
total_fitness = 0.0294 + 0.0909 + 0.0714 + 0.0212 + 0.04
+ 0.0385
= 0.2914

Rumus untuk mencari probabilitas: P[i] = fitness[i] /


total_fitness

P[1] = 0.0294 / 0.2914


= 0.1009
P[2] = 0. 0909 / 0.2914
= 0.3119
P[3] = 0. 0714 / 0.2914
= 0.2450
P[4] = 0. 0212 / 0.2914
= 0.0728
P[5] = 0.04 / 0.2914
= 0.1373
P[6] = 0.0385 / 0.2914
= 0.1321

Dari probabilitas diatas dapat kita lihat kalau chromosome ke 2


yang mempunyai fitness paling besar maka chromosome
tersebut mempunyai probabilitas untuk terpilih pada generasi
selanjutnya lebih besar dari chromosome lainnya. Untuk proses
seleksi kita gunakan roulete wheel, untuk itu kita harus mencari
dahulu nilai kumulatif probabilitasnya:
C[1] = 0.1009
C[2] = 0.1009+ 0.3119
= 0.4128
C[3] = 0.1009+ 0.3119 + 0.2450
= 0.6578
C[4] = 0.1009+ 0.3119 + 0.2450 + 0.0728
= 0.7306
C[5] = 0.1009+ 0.3119 + 0.2450 + 0.0728 + 0.1373
= 0.8679
C[6] = 0.1009+ 0.3119 + 0.2450 + 0.0728 + 0.1373 +
0.1321
=1
Setelah dihitung cumulative probabilitasnya maka proses
seleksi menggunakan roulete-wheel dapat dilakukan. Prosesnya
adalah dengan membangkitkan bilangan acak R dalam range 0-
1.
Jika R[k] < C[1] maka pilih chromosome 1 sebagai induk, selain
itu pilih chromosome ke-k sebagai induk dengan syarat C[k-1]
< R < C[k]. Kita putar roulete wheel sebanyak jumlah populasi
yaitu 6 kali (bangkitkan bilangan acak R) dan pada tiap
putaran, kita pilih satu chromosome untuk populasi baru. Misal:
R[1] = 0.201
R[2] = 0.284
R[3] = 0.009
R[4] = 0.822
R[5] = 0.398
R[6] = 0.501
Angka acak pertama R[1] adalah lebih besar dari C[1] dan lebih
kecil daripada C[2] maka pilih chromosome[2] sebagai
chromosome pada populasi baru, dari bilangan acak yang telah
dibangkitkan diatas maka populasi chromosome baru hasil
proses seleksi adalah:
chromosome[1] = chromosome[2]
chromosome[2] = chromosome[2]
chromosome[3] = chromosome[1]
chromosome[4] = chromosome[5]
chromosome[5] = chromosome[2]
chromosome[6] = chromosome[3]

Chromosome baru hasil proses seleksi:


chromosome[1] = [02;01;08;03]
chromosome[2] = [02;01;08;03]
chromosome[3] = [12;05;03;08]
chromosome[4] = [01;04;03;09]
chromosome[5] = [02;01;08;03]
chromosome[6] = [10;04;03;04]

5. Crossover
Setelah proses seleksi maka proses selanjutnya adalah proses
crossover. Metode yang digunakan salah satunya adalah one-
cut point, yaitu memilih secara acak satu posisi dalam
chromosome induk kemudian saling menukar gen.
Chromosome yang dijadikan induk dipilih secara acak dan
jumlah chromosome yang mengalami crossover dipengaruhi
oleh parameter crossover_rate ( c ).
Pseudo-code untuk proses crossover adalah sebagai berikut:
begin
k 0;
while(k<populasi) do
R[k] random(0-1);
if (R[k] < c ) then
select Chromosome[k] as parent;
end;
k = k + 1;
end;
end;

Misal kita tentukan crossover probability adalah sebesar 25%,


maka diharapkan dalam satu generasi ada 50% Chromosome
(3 chromosome) dari satu generasi mengalami proses
crossover. Prosesnya adalah sebagai berikut:
Pertama kita bangkitkan bilangan acak R sebanyak jumlah
populasi
R[1] = 0.191
R[2] = 0.259
R[3] = 0.760
R[4] = 0.006
R[5] = 0.159
R[6] = 0.340

Maka Chromosome ke k akan dipilih sebagai induk jika R[k] <


c, dari bilangan acak R diatas maka yang dijadikan induk
adalah chromosome[1], chromosome[4] dan chromosome[5].

Setelah melakukan pemilihan induk proses selanjutnya adalah


menentukan posisi crossover. Ini dilakukan dengan cara
membangkitkan bilangan acak dengan batasan 1 sampai
(panjang chromosome-1), dalam kasus ini bilangan acak yang
dibangkitkan adalah 1 3. Misalkan didapatkan posisi crossover
adalah 1 maka chromosome induk akan dipotong mulai gen ke
1 kemudian potongan gen tersebut saling ditukarkan antar
induk.
chromosome[1] >< chromosome[4]
chromosome[4] >< chromosome[5]
chromosome[5] >< chromosome[1]

Posisi cut-point crossover dipilih menggunakan bilangan acak 1-


3 sebanyak jumlah crossover yang terjadi, misal
C[1] = 1
C[2] = 1
C[3] = 2

offspring[1] = chromosome[1] >< chromosome[4]


= [02;01;08;03] >< [01;04;03;09]
= [02;04;03;09]
offspring[4] = Chromosome[4] >< Chromosome[5]
= [01;04;03;09] >< [02;01;08;03]
= [01;01;08;03]
offspring[5] = Chromosome[5] >< Chromosome[1]
= [02;01;08;03] >< [02;01;08;03]
= [02;01;08;03]
Dengan demikian populasi Chromosome setelah mengalami
proses crossover menjadi:
chromosome[1] = [02;04;03;09]
chromosome[2] = [02;01;08;03]
chromosome[3] = [12;05;03;08]
chromosome[4] = [01;01;08;03]
chromosome[5] = [02;01;08;03]
chromosome[6] = [10;04;03;04]

6. Mutasi
Jumlah chromosome yang mengalami mutasi dalam satu
populasi ditentukan oleh parameter mutation_rate. Proses
mutasi dilakukan dengan cara mengganti satu gen yang terpilih
secara acak dengan suatu nilai baru yang didapat secara acak.
Prosesnya adalah sebagai berikut. Pertama kita hitung dahulu
panjang total gen yang ada dalam satu populasi. Dalam kasus
ini panjang total gen adalah total_gen = (jumlah gen dalam
chromosome) * jumlah populasi
=4*6
= 24
Untuk memilih posisi gen yang mengalami mutasi dilakukan
dengan cara membangkitkan bilangan integer acak antara 1
sampai total_gen, yaitu 1 sampai 24. Jika bilangan acak yang
kita bangkitkan lebih kecil daripada variabel mutation_rate
(m) maka pilih posisi tersebut sebagai sub-chromosome yang
mengalami mutasi. Misal m kita tentukan 10% maka
diharapkan ada 10% dari total_gen yang mengalami populasi:
jumlah mutasi = 0.1 * 24
= 2.4
=2
Misalkan setelah kita bangkitkan bilangan acak terpilih posisi
gen 12 dan 18 yang mengalami mutasi. Dengan demikian yang
akan mengalami mutasi adalah chromosome ke-3 gen nomor 4
dan Chromosome ke-5 gen nomor 2. Maka nilai gen pada posisi
tersebut kita ganti dengan bilangan acak 0-30.

Misalkan bilangan acak yang terbangkitkan adalah 2 dan 5.


Maka populasi chromosome setelah mengalami proses mutasi
adalah:
chromosome[1] = [02;04;03;09]
chromosome[2] = [02;01;08;03]
chromosome[3] = [12;05;03;02]
chromosome[4] = [01;01;08;03]
chromosome[5] = [02;05;08;03]
chromosome[6] = [10;04;03;04]

Setelah proses mutasi maka kita telah menyelesaikan satu


iterasi dalam algoritma genetika atau disebut dengan satu
generasi. Maka fungsi_objective setelah satu generasi adalah:

chromosome[1] = [02;04;03;09]
fungsi_objektif[1] = Abs(( 2 + 2*4 + 3*3 + 4*9 ) 30)
= Abs(( 2 + 8 + 9 + 36 ) 30)
= Abs( 55 30)
= 25

chromosome[2] = [02;01;08;03]
fungsi_objektif[2] = Abs(( 2 + 2*1 + 3*8 + 4*3 ) 30)
= Abs(( 2 + 2 + 24 + 12 ) 30)
= Abs(40 30)
= 10

chromosome[3] = [12;05;03;02]
fungsi_objektif[3] = Abs(( 12 + 2*5 + 3*3 + 4*2 ) 30)
= Abs(( 12 + 10 + 9 + 8 ) 30)
= Abs(39 30)
=9

chromosome[4] = [01;01;08;03]
fungsi_objektif[4] = Abs(( 1 + 2*1 + 3*8 + 4*3 ) 30)
= Abs(( 1 + 2 + 24 + 12 ) 30)
= Abs(39 30)
=9

chromosome[5] = [02;05;08;03]
fungsi_objektif[5] = Abs(( 2 + 2*5 + 3*8 + 4*3 ) 30)
= Abs(( 2 + 10 + 24 + 12 ) 30)
= Abs(48 30)
= 18

chromosome[6] = [10;04;03;04]
fungsi_objektif[6] = Abs(( 10 + 2*4 + 3*3 + 4*4 ) 30)
= Abs(( 10 + 8 + 9 + 16 ) 30)
= Abs(43 30)
= 13

Rata-rata fungsi objektif setelah satu generasi adalah:


rata-rata = ( 25 + 10 + 9 + 9 + 18 + 13) / 6
= 84 / 6
= 14.0

Dapat dilihat dari hasil perhitungan fungsi objektif diatas bahwa


setelah satu generasi, nilai hasil rata-rata fungsi_objektif lebih
menurun dibandingkan hasil fungsi_objektif pada saat sebelum
mengalami seleksi, crossover dan mutasi. Hal ini menunjukkan
bahwa chromosome atau solusi yang dihasilkan setelah satu
generasi lebih baik dibandingkan generasi sebelumnya. Maka
pada generasi selanjutnya chromosome-chromosome yang
baru adalah:

chromosome[1] = [02;04;03;09]
chromosome[2] = [02;01;08;03]
chromosome[3] = [12;05;03;02]
chromosome[4] = [01;01;08;03]
chromosome[5] = [02;05;08;03]
chromosome[6] = [10;04;03;04]

Chromosome-chromosome ini akan mengalami proses yang


sama seperti generasi sebelumnya yaitu proses evaluasi,
seleksi, crossover dan mutasi yang kemudian akan
menghasilkan chromosome-chromosome baru untuk generasi
yang selanjutnya. Proses ini akan berulang sampai sejumlah
generasi yang telah ditetapkan sebelumnya.

Setelah 50 generasi didapatkan chromosome yang terbaik


adalah:
Chromosome = [07;05;03;01]
Jika didekode maka:
a=7 ; b=5 ; c=3 ; d=1
Jika dihitung terhadap persamaan f = a+2b+3c+4d:
7 + (2*5) + (3*3) + (4*1) = 30

Penutup
Pada contoh diatas telah diberikan contoh mengenai penerapan
algoritma genetika untuk mencari solusi suatu persamaan
matematis sederhana. Source code dalam bahasa Java untuk
contoh diatas dapat didownload di milis sc-ina yahoogroups:

Algoritma Genetika

Algoritma Genetika adalah algoritma pencarian heuristik yang didasarkan atas


mekanisme evolusi biologis.
Keberagaman pada evolusi biologis adalah variasi dari kromosom antar individu
organisme. Variasi kromsom akan mempengaruhi lajur eproduksi dan tingkat
kemampuan oraginisme untuk tetap hidup.
Ada4 kondisi yang sanga tmempengaruhi proses evolusi, yaitu:
1. Kemampuan organisme untuk melakukan reproduksi
2. Keberadaan populasi organisme yang bisa melakukan reproduksi
3. Keberagaman organisme dalam suatu populasi
4. Perbedaan kemampuan untuk survive
Algoritma genetika pertamakali diperkenalkan olehJohn Holland dari
Universitas Michigan (1975), Setiap masalah yang berbentuk adaptasi dapat
diformulasikan dalam terminologi genetika.

Struktur Umum
Populasi, istilah pada teknik pencarian yang dilakukan sekaligus atas sejumlah
solusi yang mungkin
Kromosom, individu yang terdapat dalam satu populasi dan merupakan suatu solusi
yang masih berbentuk simbol.
Generasi, populasi awal dibangun secara acak sedangkan populasi selanjutnya
merupakan hasil evolusi kromosom-kromosom melalui iterasi.
FungsiFitness, alat ukur yang digunakan untuk proses evaluasi kromosom. Nilai
fitness dari suatu kromosom akan menunjukkan kualitas kromosom dalam populasi
tersebut.
Generasi berikutnya dikena ldengan anak(offspring) terbentuk dari gabungan2
kromosom generasi sekarang yang bertindak sebagai induk(parent) dengan
menggunakan operator penyilang (crossover).
Mutasi, operator untuk memodi-fikasi kromosom.

Komponen Utama
Ada 6 komponen utama algoritma genetika:
1.Teknik Penyandian
-Teknik penyandian meliputi penyandian gen dari kromosom
-Gen merupakan bagian dari kromosom, satu gen biasanya akan mewakili satu
variabel
-Gen dapat direpresentasikan dalam bentuk: string bit, pohon, array bilangan real,
daftar aturan, elemen permutasi, elemen program dan lain-lain.
Kromosom dapat direpresentasikan dengan menggunakan:
String bit: 10011, 11101
Bilangan Real: 65.65, 562.88
Elemen Permutasi: E2, E10
Daftar Aturan: R1, R2, R3
Elemen Program : pemrograman genetika
Struktu rlainnya

2.ProsedurInisialisasi
-Ukuran populasi tergantung pada masalah yang akan dipecahkan dan jenis operator
genetika yang akan diimplementasikan.
Setelah ukuran populasi ditentukan, kemudian harus dilakukan inisialisasi
terhadap kromosom yang terdapat pada populasi tersebut
Inisialisasi kromosom dilakukan secara acak, namun demikian harus tetap
memperhatikan domain solusi dan kendala permasalahan yang ada
3.Fungsi Evaluasi
Ada2 hal yang harus dilakukan dalam melakukan evaluasi kromosom yaitu: evaluasi
fungsi objektif dan konversi fungsi objektif kedalam fungsi fitness
4.Seleksi
-Bertujuan untuk memberikan kesempatan reproduksi yang lebih besar bagi anggota
populasi yang paling fit
-Ada beberapa metode seleksi dari induk, antara lain :
Rank-based fitness assigment
Roulette wheel selection
Stochastic universal sampling
Local selection
Truncation selection
Tournament selection
5.Operator Genetika
Ada 2 operator genetika:
a.Operator untuk melakukan rekombinasi, yang terdiri dari:
-Rekombinasi bernilai real
1. Rekombinasi diskrit
2. Rekombinasi intermediate
3. Rekombinasi garis
4. Rekombinasi garisyang diperluas
-Rekombinasi bernilai biner(Crossover)
1. Crossover satu titik
2. Crossover banyak titik
3. Crossover seragam
-Crossover dengan permutasi
b.Mutasi
-Mutasi bernilai real
-Mutasi bernilai biner
6.Penetuan Parameter
-Parameter adalah parameter kontrol algoritma genetika, yaitu: ukuran
populasi(popsize), peluang crossover (pc) dan peluang mutasi(pm).
-Rekomendasi menentukan nilai parameter :
-Untuk permasalahan yang memiliki kawasan solusi cukup besar, De Jong
merekomendasikan nilai parameter :
(popsize; pc; pm) = (50;0,6;0,001)
-Bilarata-rata fitness setiap generasi digunakan sebagai indikator, maka Grefenstette
merekomendasikan:
(popsize; pc; pm) =(30;0,95;0,01)
-Bila fitness dari individu terbaik dipantau pada setiap generasi, maka usulannya
adalah:
(popsize; pc; pm) = (80;0,45;0,01)
-Ukuran populasi sebaiknya tidak lebih kecil dari30, untuk sembarang jenis
permasalahan

Seleksi
Seleksi akan menentukan individu-individu mana saja yang akan dipilih untuk
dilakukan rekombinasi dan bagaimana off-spring terbentuk dari individu-individu
terpilih tersebut.
Langkah pertama: pencarian nilai fitness
Langkah kedua: Nilai fitness yang diperolah digunakan pada tahap-tahap seleksi
selanjutnya
Ada beberapa definisi yang bias digunakan untuk melakukan perbandingan
terhadap beberapa metode yang akan digunakan, antara lain :
-Selective Pressure : probabilitas darii ndividu terbaik yang akan diseleksi
dibandingkan dengan rata-rata probabilitas dari semua individu yang diseleksi.
-Bias : perbedaan absolut antara fitness ternormalisasi dari suatu individu dan
probabilitas reproduksi yang diharapkan.
-Spread : range nilai kemungkinan untuksejumlah off-spring dari suatu individu
-Loss of diversity: proposi dari individu-individu dalam suatu populasi yang tidak
terseleksi selama fase seleksi.
-Selection intensity : nilai fitness rata-rata yang diharapkan dalam suatu populasi
setelah dilakukan seleksi (menggunakan distribusi Gauss ternormalisasi).
-Selection variance : variansi yang diharapkan dari distribus ifitness dalam populasi
setelah dilakukan seleksi (menggunakan distribus iGauss ternormalisasi).

1.Rank-based Fitness
Populasi diurutkan menurut nilai objektifnya. Nilai fitness dari tiap-tiap individu
hanya tergantung pada posisi individu tersebut dalam urutan, dan tidak dipengaruhi
oleh nilai objektifnya.

2.Roulette Wheel Selection


Istilah lain adalah stochastic sampling with repalcement.
Individu-individu dipetakan dalam suatu segmen garis secara berurutan sedemikian
hingga tiap-tiap segmen individu memiliki ukuran yang sama dengan ukuran
fitnessnya
Sebuah bilangan random di-bangkitkan dan individu yang memiliki segmen dalam
kawasan segmen dalam kawasan bilangan random tersebut akan terseleksi. Proses
ini berulang hingga didapatkan sejumlah individu yang diharapkan.

3.Stocastic Universal Sampling


Memiliki nilai bias nol dan penyebaran yang minimum
Individu-individu dipetakan dalam suatu segmen garis secara berurut sedemikian
hingga tiap-tiap segmen individu memiliki ukuran yang sama dengan ukuran
fitnessnya seperti halnya pada seleksi rodaroulette. Kemudian diberikan sejumlah
pointer sebanyak individu yang ingin diseleksi pada garis tersebut.
Andaikan N adalah jumlah individu yang akan diseleksi, maka jarak antar pointer
adalah1/N, dan posisi pointer pertama diberikan secara acak pada range [1, 1/N]

4.Seleksi Lokal
Setiap individu yang berada didalam konstrain tertentu disebut dengan nama
lingkungan lokal. Interaksi antar individu hanya dilakukan didalam wilayah tersebut.
Lingkungan tersebut ditetapkan sebagai struktur dimana populasi tersebut
terdistribusi. Lingkungan tersebut juga dapat dipandang sebagai kelompok
pasangan-pasangan yang potensial.
Langkah pertama adalah menyeleksi separuh pertama dari populasi yang
berpasangan secara random. Kemudian lingkungan baru tersebut diberikan pada
setiap individu yang terseleksi.
Struktur lingkungan pada seleksi lokal dapat berbentuk:
*Linear : full ring dan half ring
*Dimensi -2:
-full cross dan half cross
-full star dan half star
*Dimensi-3 dan struktur yang lebih kompleks yang merupakan kombinasi dari
kedua struktur diatas
Jarak antara individu dengan struktur tersebut akan sangat menentukan ukuran
lingkungan. Individu yang terdapat dalam lingkungan dengan ukuran yang lebih
kecil, akan lebih terisolasi dibandingkan dengan individu yang terletak pada
lingkungan dengan ukuran yang lebih besar.

5.Truncation Selection
Seleksinya adalah buatan
Digunakan oleh populasi yang jumlahnya sangat besar
Individu-individu diurutkan berdasarkan nilai fitnessnya. Hanya individu yang
terbaik saja yang akan diseleksi sebagai induk.
Parameter yang digunakan adalah suatu nilai ambang trunc yang mengindikasikan
ukuran populasi yang akan diseleksi sebagai induk yang berkisar antara50% -10%.
Individu-individu yang ada dibawah nilai ambang ini tidak akan menghasilkan
keturunan

6.Tournament Selection
Ditetapkan suatu nilai tour untuk individu-individu yang dipilih secara random dari
suatu populasi.
Individu-individu yang terbaik dalam kelompok ini akan diseleksi sebagai induk
Parameter yang digunakan adalah ukuran tour yang bernilai antara2 sampai N
(jumlah individu dalam populasi)

Rekombinasi

1.Rekombinasi Diskret
Menukar nilai variabel antar kromosom induk.
Misal ada2 individu dengan3 variabel, yaitu:
induk1 : 12 25 5
induk2 : 123 4 34
Untuk tiap-tiap variabel induk yang menyumbangkan variabelnya keanak yang
dipilih secara random dengan probabilitas yang sama.
sample 1 : 2 2 1
sample 2 : 1 2 1
Setelah rekombinasi, kromosom-kromosom baru yang terbentuk:
anak1 : 123 4 5
anak2 : 1 4 5
Rekombinasi dapat digunakan untuk sembarang variabel (biner, real, atau simbol)

2.Rekombinasi Menengah
Metode rekombinasi yang hanya dapat digunakan untuk varibel real
Nilai variebel anak dipilih disekitar dan antara nilai-nilai variabel induk
Anak dihasilkan menurut aturan sebagai berikut:
anak= induk1 + alpha (induk2 induk1)
dengan alpha adalah faktor skala yang dipilih secara random pada interval [-d, 1+d],
biasanyad=0,25.
Tiap-tiap variabel pada anak merupakan hasil kombinasi variabel-variabel menuru
taturan diatas dengan nilai alpha dipilih ulang untuk tiap variabel.

3.Rekombinasi Garis
Hampir sama dengan rekombinasi menengah, hanya saja nilai alpha untuk semua
variabel sama.
Misalkan ada2 kromosom dengan 3 variabel:
induk1 : 12 25 5
induk2 : 123 4 34
Untuk tiap-tiap variabel induk yang menyumbangkan vaiabelnya keanak dipilih
secara random dengan probabilitas yang sama.
sample 1 : 0,5
sample 2 : 0,1
Setelah rekombinasi kromosom-kromosom baru yang terbentuk
anak1: 67,5 14,5 19,5
anak2: 23,1 22,9 7,9

4.Penyilangan satu titik


Posisi penyilangan k (k=1,2,,N-1) denganN = panjang kromosom diseleksi secara
random.
Variabel-variabel ditukar antar kromosom pada titik tersebut untuk menghasilkan
anak
Misalkan ada 2 kromosom dengan panjang12 :
induk 1 : 0 1 1 1 0 | 0 1 0 1 1 1 0
induk 2 : 1 1 0 1 0 | 0 0 0 1 1 0 1
Posisi menyilang yang terpilih: misalkan5
Setelah penyilangan, diperoleh kromosom-kromosom baru:
anak 1 : 0 1 1 1 0 | 0 0 0 1 1 0 1
anak 2 : 1 1 0 1 0 | 0 1 0 1 1 1 0

5.Penyilangan banya ktitik


Pada penyilangan ini, m posisi penyilangan ki(k=1,2,,N-1,i=1,2,,m) dengan N =
panjang kromosom diseleksi secara random dan tidak diperbolehkan ada posisi yang
sama, serta diurutkan naik.
Variabel-variabel ditukar antar kromosom pada titik tersebut untuk menghasilkan
anak.

6.Penyilangan Seragam
Setiap lokasi memiliki potensi sebagai tempat penyilangan.
Sebuah mask penyilangan dibuat sepanjang panjang kromosom secara random
yang menunjukan bit-bit dalam mask yang mana induk akan mensupply anak
dengan bit-bit yang ada.
Induk yang mana yang akan menyumbangkan bit keanak yang dipilih secara
random dengan probabilitas yang sama.

7.Penyilangan dengan permutasi


Dengan permutasi, kromosom-kromosom anak diperoleh dengan cara memilih sub-
barisan sautu tour dari satui nduk dengan tetap menjaga urutan dan posisi sejumlah
kotayang mungkin terhadap induk yang lainnya.

Mutasi
Mutasi Bilangan Real
-Operator mutasi untuk bilangan real dapa tditetapkan sebagai:
1. Variabel yang dimutasi= variabelrange * delta;
2. Range = 0,5 * domain variabel
3. Delta = (ai* 2-i); ai= 1 dengan probabilitas1/m, selain ituai= 0, denganm = 20
Mutasi Biner
-Langkah-langkah mutasi:
1.Hitung jumlah gen pada populasi
2.Pilih secara acak gen yang akan dimutasi
3.Tentukan kromosom dari gen yang terpilih untuk dimutasi
4.Ganti nilai gen (0 ke1 atau1 ke0) dari kromosom yang akan dimutasi tersebut
Algoritma Genetika Sederhana
Langkah-langkah:
1.Generasi= 0
2.Inisialisasi populasi awal, P (generasi), secara acak
3.Evaluas inilai fitness pada setiap individu dalamP (generasi)
4.Kerjakan langkah-langkah berikut hingga generasi mencapai maksimum generasi:

a. generasi= generasi+1
b. Seleksi populasi tersebut untuk mendapatkan kandidat induk, P(generasi)
c. Lakukan crossover pada P(generasi)
d. Lakukan mutasi padaP(generasi)
e. Lakukan evaluasi fitness setiap individu pada P(generasi
f. Bentuk populasi baru: P(generasi) = {P(generasi-1) yang survive, P(generasi)

Metode seleksi rodaroulette


Algoritma seleksi rodaroulette:
1. Hitung total fitness (F)
2. Hitung fitness relatif tiap individu
3. Hitung fitness komulatif
4. Pilih induk yang akan menjadi kandidat untuk dicrossover

Crossover
Metode yang sering digunakan adalah penyilangan satutitik

Mutasi
Mutasiyang digunakan adalah mengubah secara acak nilai suatu bit pada posisi
tertentu.

Anda mungkin juga menyukai