Académique Documents
Professionnel Documents
Culture Documents
5. Operator Genetika
Ada dua operator genetika dalam algoritma genetika, yaitu :
a. Operator untuk melakukan rekombinasi, yang terdiri dari :
i. Rekombinasi bernilai real, yaitu :
1. Rekombinasi diskrit : menukar nilai variabel antar kromosom induk.
2. Rekombinasi intermediate : metode rekombinasi yang hanya dapat digunakan
untuk variabel real. Nilai variabel anak dipilih di sekitar dan antara nilai-nilai
variable induk.
3. Rekombinasi garis : hamper sama dengan rekombinasi menengah, hanya saja
nilai alpha untuk semua variable sama.
4. Rekombinasi garis yang diperluas
ii. Rekombinasi bernilai biner (Crossover), yaitu :
1. Crossover satu titik
2. Crossover banyak titik
3. Crossover seragam
4. Crossover dengan permutasi
b. Mutasi, yang terdiri dari :
i. Mutasi bernilai real
ii. Mutasi bernilai biner
6. Penetuan Parameter
Parameter adalah parameter control algoritma genetika, yaitu ukuran populasi
(popsize), peluang crossover (pc) dan peluang mutasi (pm). Rekomendasi untuk
menentukan nilai parameter :
i. Untuk permasalahan yang memiliki kawasan solusi cukup besar, De Jong
merekomendasikan nilai parameter : (popsize; pc; pm) = (50;0,6;0,001)
ii. Bila rata-rata fitness setiap generasi digunakan sebagai indikator, maka Grefenstette
merekomendasikan : (popsize; pc; pm) = (30;0,95;0,01)
iii. Bila fitness dari individu terbaik dipantau pada setiap generasi, maka usulannya
adalah : (popsize; pc; pm) = (80;0,45;0,01)
iv. Ukuran populasi sebaiknya tidak lebih kecil dari 30, untuk sembarang jenis
permasalahan.
a. Pengertian individu
Individu menyatakan salah satu solusi yang mungkin. Individu bisa dikatakan
sama dengan kromosom, yang merupakan kumpulan gen. Gen ini bisa bersifat biner,
float, dan kombinatorial. Beberapa definisi penting yang perlu diperhatikan dalam
mendefinisikan individu untuk membangun penyelesaian permasalahan dengan
algoritma genetika adalah sebagai berikut :
1. Genotype (gen), sebuah nilai yang menyatakan satuan dasar yang
membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan
kromosom. Dalam algoritma genetika, gen ini bisa brupa nilai biner, float,
integer maupun karakter, atau kombinatorial.
2. Allele, nilai dari gen.
3. Kromosom, gabungan gen-gen yang membentuk nilai tertentu.
4. Individu, menyatakan satu nilai atau keadaan yang menyatakan salah satu
solusi yang mungkin dari permasalahan yang diangkat.
5. Generasi, menyatakan satu siklus proses evolusi atau satu iterasi di dalam
algoritma genetika.
Gambar 2 - Ilustrasi representasi penyelesaian permasalahan dalam algoritma genetika
b. Nilai Fitness
Nilai fitness adalah nilai yang menyatakan baik tidaknya suatu solusi (individu).
Nilai fitness ini yang dijadikan acuan dalam mencapai nilai optimal dalam algoritma
genetika. Algoritma genetika bertujuan mencari individu dengan nilai fitness yang
paling tinggi.
c. Elitisme
Proses seleksi yang dilakukan secara random sehingga tidak ada jaminan bahwa
suatu indvidu yang bernilai fitness tertinggi akan selalu terpilih. Walaupun individu
bernilai fitness tertinggi terpilih, mungkin saja individu tersebut akan rusak (nilai
fitnessnya menurun) karena proses pindah silang (crossover). Oleh karena itu, untuk
menjaga agar individu bernilaifitness tertinggi tersebut tidak hilang selama evolusi,
maka perlu dibuat satu atau beberapa copy-nya. Prosedure ini dikenal sebagai elitisme.
Dari probabilitas diatas dapat kita lihat kalau kromosom ke-2 yang mempunyai fitness
paling besar maka kromosom tersebut mempunyai probabilitas untuk terpilih pada generasi
selanjutnya lebih besar dari kromosom lainnya. Untuk proses seleksi kita gunakan roulette
wheel, untuk itu kita harus mencari dahulu nilai kumulatif probabilitasnya :
i. C[1] = 0.1009
ii. C[2] = 0.1009 + 0.3119 = 0.4128
iii. C[3] = 0.1009 + 0.3119 + 0.2450 = 0.6578
iv. C[4] = 0.1009 + 0.3119 + 0.2450 + 0.0728 = 0.7306
v. C[5] = 0.1009 + 0.3119 + 0.2450 + 0.0728 + 0.1373 = 0.8679
vi. C[6] = 0.1009 + 0.3119 + 0.2450 + 0.0728 + 0.1373 + 0.1321 = 1
Angka acak pertama R[1] adalah lebih besar dari C[1] dan lebih kecil daripada C[2] maka
pilih Kromosom[2] sebagai kromosom pada populasi baru, dari bilangan acak yang telah
dibangkitkan diatas maka populasi kromosom baru hasil proses seleksi adalah :
i. Kromosom[1] = Kromosom[2]
ii. Kromosom[2] = Kromosom[2]
iii. Kromosom[3] = Kromosom[1]
iv. Kromosom[4] = Kromosom[5]
v. Kromosom[5] = Kromosom[2]
vi. Kromosom[6] = Kromosom[3]
7. 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
kromosom induk kemudian saling menukar gen. Kromosom yang dijadikan induk dipilih
secara acak dan jumlah kromosom 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);
21
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% kromosom (3 kromosom) dari satu generasi mengalami proses crossover.
Prosesnya adalah sebagai berikut :
ii. Setelah melakukan pemilihan induk proses selanjutnya adalah menentukan posisi
crossover. Ini dilakukan dengan cara membangkitkan bilangan acak dengan batasan 1
sampai (panjang kromosom - 1), dalam kasus ini bilangan acak yang dibangkitkan
adalah 1 – 3. Misalkan didapatkan posisi crossover adalah 1 maka kromosom induk
akan dipotong mulai gen ke-1 kemudian potongan gen tersebut saling ditukarkan antar
induk.
Kromosom[1] >< Kromosom[4]
Kromosom[4] >< Kromosom[5]
Kromosom[5] >< Kromosom[1]
iii. 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
8. Mutasi
Jumlah kromosom 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 :
i. Pertama kita hitung dahulu panjang total gen yang ada dalam satu populasi.
Dalam kasus ini panjang total gen adalah :
total_gen = (jumlah gen dalam kromosom) * jumlah populasi
=4*6
= 24
ii. 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-kromosom 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
iii. Misalkan setelah kita bangkitkan bilangan acak terpilih posisi gen 12 dan 18 yang
mengalami mutasi. Dengan demikian yang akan mengalami mutasi adalah kromosom
ke-3 gen nomor 4 dan kromosom 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 kromosom setelah mengalami proses mutasi adalah :
Kromosom[1] = [02;04;03;09]
Kromosom[2] = [02;01;08;03]
Kromosom[3] = [12;05;03;02]
Kromosom[4] = [01;01;08;03]
Kromosom[5] = [02;05;08;03]
Kromosom[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 :
i. Kromosom[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
ii. Kromosom[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
iii. Kromosom[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
iv. Kromosom[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
v. Kromosom[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
vi. Kromosom[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 kromosom atau solusi yang dihasilkan setelah satu generasi lebih baik
dibandingkan generasi sebelumnya. Maka pada generasi selanjutnya
kromosomkromosom yang baru adalah:
Kromosom[1] = [02;04;03;09]
Kromosom[2] = [02;01;08;03]
Kromosom[3] = [12;05;03;02]
Kromosom[4] = [01;01;08;03]
Kromosom[5] = [02;05;08;03]
Kromosom[6] = [10;04;03;04]
Kelompok 2
Referensi :
https://ekarisky.com/content/uploads/Algoritma-Genetika.pdf