Anda di halaman 1dari 20

APLIKASI SEDERHANA ALGORITMA GENETIKA

1. Pengertian Algoritma Genetika


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 materi ini akan dibahas teori dasar algoritma
genetika beserta contoh aplikasinya dalam menyelesaikan suatu permasalahan optimasi sederhana.
Algoritma Genetika adalah algoritma pencarian yang berdasarkan mekanisme seleksi alam
Darwin dan prinsip-prinsip genetika, untuk menentukan struktur-struktur (yang masing-masing
disebut individu) berkualitas tinggi yang terdapat dalam sebuah domain (yang disebut populasi).
Pencarian dilakukan dengan suatu prosedur iteratif untuk mengatur populasi individu yang
merupakan kandidat-kandidat solusi. Tiga operator dasar yang sering digunakan dalam Algoritma
Genetika adalah reproduksi, pindah silang (crossover), dan mutasi.
Dalam proses reproduksi, setiap individu populasi pada suatu generasi diseleksi
berdasarkan nilai fitnessnya untuk bereproduksi guna menghasilkan keturunan. Probabilitas
terpilihnya suatu individu untuk bereproduksi adalah sebesar nilai fitness individu tersebut dibagi
dengan jumlah nilai fitness seluruh individu dalam populasi (Davis, 1991).
Algoritma genetika memiliki beberapa keunggulan dibandingkan dengan metode
komputasi konvensional antara lain :
1.Sifat dasarnya yang menunjang komputasi parallel dimana kekuatan cariannya adalah
sebesar jumlah populasinya.
2. Sifatnya yang tidak membutuhkan pengetahuan dasar tentang objek yang sedang
dikalkulasi.
3. Sifatnya yang lentur, sehingga perubahan input atau masuknya gangguan pada sistem
secara on-line pada saat perhitungan dapat segera diantisipasi.
Dalam makalah ini akan dibahas atau disajikan suatu contoh aplikasi sederhana dari
algoritma genetik.
Algoritma genetika sudah banyak dibahas dalam beberapa buku yang dapat digunakan sebagai
referensi dalam penggunaannya untuk mencari solusi dari suatu permasalahan.

2. Aplikasi Sederhana Algoritma Genetika


A. 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”.

1
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.

B. 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]

2
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

3
= 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

4
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;

5
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

6
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]

7
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

C. Pencarian Nilai Maksimum Polinomial dalam Suatu Interval


Rumus Polinomial:
p(x) = anxn + an-1xn-1+...+a2x2 + a1x + a0 (3-1)
Masalah optimasi untuk mencari nilai maksimum bagi polinomial seperti persamaan
diatas untuk jangkauan xa ≤ x ≤ xb dapat dinyatakan sebagai:

8
max p(x) untuk xa ≤ x ≤ xb. (3-2)
Langkah-langkah yang harus dilakukan dalam penerapan Algoritma genetika untuk
menentukan nilai maksimum dari polinomial diatas adalah:
a. Pembentukan Populasi awal
b. Proses Evaluasi
c. Proses Seleksi
d. Penerapan operator penyilangan dan operator mutasi
e. Ulangi langkah b sampai e sebanyak generasi yang diinginkan dan pilih kromosom terbaik
pada setiap generasi.
1. Pembentukan Populasi Awal
Populasi awal dibentuk dari sejumlah kromosom. Jumlah Kromosom akan
dipakai seterusnya selama proses komputasi dan disebut ukuran populasi (UkPop).
Representasi kromosom paling sederhana untuk menyatakan msalah adalah dalm
bentuk biner. Banyak bit kode biner ditentukan berdasarkan tingkat ketelitian yang
diinginkan. Jika ukuran kromosom N bit, maka pada interval yang ditentukan yaitu
pada xa ≤𝑥 ≤𝑥𝑏 akan terdapat 2^𝑁 kemungkinan yang merupakan representasi dari
nilai x. Kromosom pertama (00..0) merupakan kode dari xa dan kromosom terakhir
(11..1) merupakan kode dari xb. Secara matematis representasi kromosom (v)
dengan kode biner N bit ini dapat dinyatakan dalam persamaan berikut:
V1= [b1,b2,...,bN], (3-3)
dengan 1 ≤ i ≤ Ukpop dan bi ϵ {0,1}
Populasi awal akan dibentuk secara acak. Berarti bahwa penyelesaian yang
dihasilkan oleh Algoritma Genetika pada generasi pertama didapat dari salah satu
bilangan random x1,x2, ..., xUkPop yang dikodekan dari kode biner kromosom
v1,v2,...,VUkPop. Mengingat optimasi dalam masalah ini adalah pencarian nilai
maksimum, maka penyelesaian yang dihasilkan adalah nilai polinomial (3-1) paling
besar yang dihasilkan oleh salah satu bilangan random yang dikode dari kromosom
pada populasi awal.
2. Proses Evaluasi
Merupakan proses menghitung nilai fitness dari setiap kromosom. Nilai
fitness inilah yang menentukan tingkat kualitas kromosom sebagai representasi
penyelesaian masalah. Dalam masalah ini fungsi fitness (f) dapat didefinisikan
sama dengan fungsi objektif, yaitu polinomial p(x). Hal ini mengingat masalah
optimasinya adalah pencarian nilai maksimum sebagaimana telah dijelaskan pada
Bab 2.
Dalam proses evaluasi ini perlu dilakukan perhitungan-perhitungan sebagai
berikut:
• Dekode setiap representasi kromosom vi menjadi xi.
• Hitung nilai fungsi fitness untuk setiap kromosom f(xi)=p(xi)
3. Proses Seleksi
Merupakan proses memilih kromosom-kromosom yang akan dipertahankan
dalam populasi selanjutnya. Proses seleksi yang paling mudah digunakan adalah
proses seleksi dengan pendekatan roda rolet (roulette wheel). Seperti telah
dijelaskan dalam bab 2, proses ini dapat dilakukan dengan pemilihan secara acak
menggunakan bilangan riil dengan langkah-langkah:
• Bangkitkan bilangan random r yang bernilai antara 0 sampai 1 (0 ≤ r ≤ 1).

9
𝑓(𝑥1) ∑𝑖−1
𝑗=𝑛 𝑓(𝑥𝑗)
• Jika r < 𝑈𝑘𝑝𝑜𝑝 maka pilih kromosom pertama atau jika 𝑈𝑘𝑃𝑜𝑝 ≤
∑𝑗=1 𝑓(𝑥𝑗) ∑𝑗=1 𝑓(𝑥𝑗)
∑𝑖𝑗=𝑛 𝑓(𝑥𝑗)
r< 𝑈𝑘𝑃𝑜𝑝 maka pilih kromosom ke-i
∑𝑗=1 𝑓(𝑥𝑗)
• Ulangi kedua langkah diatas sebanyak kromosom dalam sebuah populasi.
4. Penerapan Operator Penyilangan dan Operator Mutasi
Penggunaan kode biner dalam representasi kromosom akan memudahkan
pemilihan operator penyilangan dan operator mutasi. Dalam hal ini semua operator,
baik operator penyilangan maupun operator mutasi yang sudah dijelaskan dalam
bab 2 dapat diterapkan.

D. Ringkasan Proses Komputasi


Persamaan polinomial yang diuji dalam kasus ini adalah persamaan (3-4). Algoritma
Genetika diuji kemampuannya untuk menemukan nilai maksimum pada interval 1 sampai 5.
Adapun parameter algoritma yang digunakan dalam melakukan uji coba ini adalah ukuran
populasi sebanyak 10 kromosom, lebar kromosom 7 bit, probabilitas penyilangan 50%,
probabilitas mutasi 10% dan diujikan selama 7 generasi.

Gambar 3.1 Polinomial yang Diujikan

P(x)= -x4 - x3 + 30x2 + 4x (3-4)


Penyelesaian masalah ini dapat ditemukan dengan mudah menggunakan metode
menyeluruh. Jika dalam pencarian menggunakan metode ini digunakan 7 bit bilangan biner, maka
hanya diperlukan pemeriksaan terhadap 128 (27) kemungkinan kombinasi kode biner. Jika
pemeriksaan terhadap semua kode biner 7 bit tersebut dilakukan, penyelesaian bagi masalah ini
pasti ditemukan, tentu saja dengan tingkat ketelitian terbatas pada 7 bit kode biner yang dipakai.
Hanya saja tujuan utama pembahsan disini buaknlah masalah ditemukan tidaknya solusi, tetapi
untuk memberi gambaran bagaimana proses komputasi dengan Algoritma Genetika dilakukan.
Misalnya kromosom-kromosom yang dibangkitkan secara acak pada generasi pertama
ditunjukkan dalam kolom kedua pada tabel 3.1. Mengingat lebar kromosom yang 7 bit,proses
evaluasi yang diterapkan pada evaluasi pada kromosom-kromosom tersebut akan mendekode kode
biner mejadi nilai x dengan 𝑋𝑚𝑖𝑛 sama dengan 1 dan Xmax sama dengan 5 dan N sama dengan

10
7. Substitusi nilai-nilai tersebut maka akan menghasilkan persamaan (3-5). Persamaan inilah yang
akan digunakan untuk mendekode kode biner menjadi nilai x sebagaimana dicantumkan dalam
kolom ketiga. Substitusi setiap nilai x ke dalam persamaan (3-4) akan menghasilkan nilai p(xi)
sebagai hasil proses evaluasi. Nilai-nilai kromosom beserta nilai x yang direpresentasikan dan nilai
fungsi fitness evaluasi secara lengkap diperlihatkan dalam tabel 3.1. Perlu diperhatikan dalam tabel
ini penyelesaian terbaik didapat dari krmosom ke-9 yang menghasilkan nilai polinomial sebesar
170,207 untuk x sebesar 4,087.
∑7𝑗=1 𝑏𝑗 ∙27−𝑗
𝑥 = 1+4∙( ) (3-5)
127

Tabel 3.1 Populasi Pertama

Pemodelan proses seleksi yang menggunakan metode roda rolet memerlukan perhitungan
yang melibatkan nilai fungsi fitness dari setiap kromosom.Pemodelan ini ditunjukkan dalam tabel
3.2 yang menyebabkan kromosom ke 7, 8 dan 10 tidak bertahan dalam populasi ( tidak terdapat
dalam kolom terakhir). Dalam tabel tersebut tampak jika kromosom dengan fungsi fitness terbesar
mendominasi populasi. Penentuan hasil seleksi ini mudah sekali dilakukan, yaitu dengan mencari
posisi pertama dari bilangan pada kolom keempat yang lebih besar daripada bilangan random (r).
Kromosom-kromosom hasil seleksi inilah yang akan dikenai operator Algoritma Genetika.

Tabel 3.2 Pemodelan Proses Seleksi dengan Metode Roda Rolet

Setelah proses seleksi, komputasi berikutnya adalah pemilihan pasangan induk kromosom
yang akan dikenai operator penyilangan. Pemodelan pemilihan induk kromosom ini melibatkan

11
parameter probabilitas penyilangan seta bilangan random r yang dibangkitkan sebanyak ukuran
populasi. Kromosom ke-i dinyatakan terpilih sebagai induk jika bilangan random ke-i kurang dari
probabilitas penyilangan. Proses pemilihan induk kromosom ini ditunjukkan dalam tabel 3.3
Berdasarkan tabel 3.3 ternyata didapat 7 kromosom induk. Oleh karena operator penyilangan
hanya dapat diterapkan pada pasangan kromosom berarti terdapat sebuah kromosom yang tidak
mendapatkan pasangannya. Untuk mudahnya kromosom induk terakhir dianggap tidak memeroleh
pasangan. Dengan demikian terdapat 3 pasangan kromosom yang akan dikenai operator
penyilangan, yaitu pasangan (2,4), (5,7), (8,9) pada populasi hasil seleksi.
Dalam pengujian,metode penyilangan yang digunakan adalah metode penyilangan dengan
sebuah titik potong. Titik potong dipilih secara random, oleh karena hanya terdiri dari 7 bit berarti
hanya terdapat 6 kemungkinan titik potong. Untuk populasi pada generasi pertama dalam
pengujian didapat titik potong pada bit ke-4. Proses penyilangan dapat digambarkan pada tabel
3.4.
Setelah penerapan operator penyilangan, kromosom hasil penyilangan akan dikenai
operator mutasi. Pemilihan bit-bit yang terkena mutasi menggunakan bilangan random r yang
dibangkitkan secara acak sebanyak bit dalam populasi, yaitu 70 kali (7 bit dikalikan 10
kromosom). Bit akan terkena mutasi jika bilangan random r yang dibangkitkan untuk bit yang
bersangkutan kurang dari probabilitas mutasi (dalam pengujian ini 10%). Dalam pengujian ini
hanya 3 bit di antara ke 70 bit yang terkena mutasi, yaitu bit terakhir dalam kromosom ke-2, bit
ke-6 dalam kromosom ke-5 dan bit ke-2 dalam kromosom ke-7. Proses mutasi dapat digambarkan
dalam Tabel 3.5.

Tabel 3.3 Pemilihan Induk Penyilangan dengan Probabilitas Penyilangan sebesar 50%

12
Populasi yang dihasilkan dari penerapan operator mutasi tidak lain adalah populasi
generasi kedua. Proses selanjutnya hanyalah mengulangi proses evaluasi, proses seleksi dan
penerapan operator Algoritma Genetika yang dilakukan pada generasi pertama. Pengujian
menunjukkan adanya perbaikan kualitas penyelesaian yang ditunjukkan dengan semakin
bertambahnya nilai fungsi fitness pada generasi berikutnya. Perbandingan nilai fitness terbaik
untuk setiap generasi dapat dilihat pada gambar 3.2.

Tabel 3.4 Proses Penyilangan

Berdasarkan pengujian ini, terbukti bahwa penggunaan Algoritma Genetika dapat


mengurangi banyaknya pemeriksaan terhadap semua kemungkinan penyelesaian masalah. Data
hasil pengujian menunjukkan bahwa dalam 7 generasi yang berarti hanya memeriksa 70
kromosom saja, nilai maksimum dapat ditemukan. Bandingkan dengan pencarian dengan metode
menyeluruh yang harus memeriksa 128 kemungkinan penyelesaian masalah. Penghematan
komputasi akan signifikan jika digunakan kode biner dengan tingkat ketelitian yang lebih tinggi.

Tabel 3.5 Proses Mutasi

13
Gambar 3.2 Perbandingan Nilai Fitness pada Setiap Generasi

E. Traveling Salesman Problem


Masalah :
Dalam TSP terdapat N kota yang harus dikunjungi. Jika letak setiap kota dinyatakan
dalam koordinat kartesian 2 dimensi xi, yi dengan 1 <= I <= n, maka bagaimana langkah
penyelesaian masalah agar total jarak yang ditempuh seminimal mungkin dengan syarat
kota-kota dikunjungi hanya sekali dan kembali ke kota asal ? (Mencari rute terpendek).
Penyelesaian :
o Pembentukan populasi awal
o Proses evaluasi
o Proses seleksi
o Penerapan operator genetika (Crossover dan Mutasi)
o Sampai terpenuhinya kriteria penyelesaian (berhenti) yang diinginkan

a. Pembentukan Populasi Awal


Populasi awal terbentuk dari kromosom. Dalam TSP kromosom
digunakan untuk menyatakan kota yang akan dikunjungi. Representasi
kromosom yang paling sederhana untuk menyatakan maslah ini adalah
dalam bentuk permutasi dari indeks kota yang dapat dinyatakan sebagai
vector berikut :
Vi = [g1, g2,…,gN] dengan 1 <= I <= UkPop
Populasi akan dibentuk secara acak, yang berarti penyelesaian yang
dihasilkan Algoritma Genetika pada generasi pertama didapat dari
penjumlahan jarak antar kota yang di decode dari bilangan kromosom.
Dicari nilai yang paling minimum.

b. Proses Evaluasi
Proses Evaluasi merupakan proses untukmenghitung niali fitness
yang menyatakan tingkat kualitas kromosom sebagai representasi
penyelesaian masalah. Karena TSP merupakan maslah pencarian nilai
minimum maka fungsi fitness tidak bisa didefinisikan secara langsung dari
fungsi objektif. Dalam proses evaluasi perlu dilakukan perhitungan sebagai
berikut :

14
• Dekode setiap reperesntasi kromosom vi menjadi fi, nilai fi ddidapat dari
perhitungan jarak antar kota menggunakan persamaan Euclidean :
Dab = sqrt(xa-xb)2 + (ya-yb)2
• Hitung nilai fungsi fitness untuk setiap kromosom berdasarkan persamaan.

c. Proses Seleksi
Proses seleksi merupakan proses untuk memilih kromosom-
kromosom yang akan dipertahankan dalam populasi selanjutnya. Gunakan
pendekatan roulette wheel yang dapat dilakukan dengan peilihan secara
acak menggunakan blangan riil dengan langkah :

d. Penerapan Operator Crossover dan Mutasi


Operator penyilangan dan mutasi untuk representasi kromosom
dalam TSP dapat menggunakna semua operaor untuk masalah optimasi
kombinatorial. Penerapan operator ini dilakukan setelah proses evaluasi
dilakuakan. Mekanisme penggantian kromosom dalam populasi dapat
dilakukan dengan mengganti induk kromosom dengan hasil operasi
crossover atau hasil operasil mutasi.

F. Proses Komputasi TSP menggunakan Algoritma Genetika


Tujuan utama pembahsan kali ini adalah untuk memberi gambaran proses
komputasi Algoritma Genetika bukan pada kualitas penyelesaian yang ditemukan.
Zukhri (2002) telah mengujikan Algoritma genetika untuk menyelesaikan TSP
pada kota-kota dengan posisi yang dinyatakan pada table dihalaman selanjutnya,
Algortima Genetika diuji kemampuannya dengan parameter bervariasi, yaitu ukuran
populasi sebanyak 10,15,20,25 kromosom, probabilitas penyilangan 25% dan 30 %,
probabilitas mutasi 1% dan 1,5% selama 250 generasi.

15
Tabel 3.6 Posisi kota dalam TSP yg diujikan

Misalnya kromosom-kromosom yang dibangkitkan secara acak pada generasi


pertama ditunjukkan pada tabel berikut,

Tabel 3.7 Populasi Pertama

Maka berdasarkan persamaan jara Euclidean dapat dihitung niali fungsi objektif setiap
kromosom sebagaimana terdapat pada tabel 3.8.

Tabel 3.8 Fungsi Objektif dan Fungsi Fitness untuk Populasi Pertama

Penyelesaian sementara terbaik didapat pada kromosom ke-8 yang menghasilkan


jarak total sebesar 2354,8.
Selanjutnya yaitu melakukan seleksi menggunakan roulette wheel, yang
melibatkan perhitungan nilai fungsi fitness. Penentuan hasil seleksi yaitu dengan mencari

16
posisi pertama dari bilangan kolom ke empat yang lebih besar daripada bilangan random
(r). Kromosom-kromosom inilah yang akan dikenai operator-operator Algoritma Genetika.
Setelah proses seleksi,komputasi berikutnya adalah pemasangan induk kromosom
yang akan dikenai operator penyilangan yang melibatkan parameter probabilitas
penylangan (Pc) serta bilangan random r yang dibangkitkan sebanyak ukuran populasi.
Kromosom I dinyatakan terpilih sebagai induk jika bilangan random ke I kurang dari
prbabilitas penyilangan.

Tabel 3.9 Pemodelan Proses Seleksi dengan metode Roda Rolet

Tabel 3.10 Populasi Hasil Proses Seleksi pada Populasi Pertama

Tabel 3.11 Pemilihan induk penyilangan dengan probabilitas penyilangan 25%

17
Berdasarkan tabel didapat 4 kromosom induk yang terpilih untuk disilangkan, yaitu pasangan (1,7)
dan (8,9).
Tabel 3.12 Populasi Hasil Proses Penyilangan pada Populasi Pertama

Hasil dari operator penyilangan akan dikenai operator mutasi. Pemilihan gen-gen yang akan
terkena mutasi menggunakan bilangan secara acak sebanyakgen dalam populasi yaitu 250 kali (25
gen x 10 kromosom).
Gen akan terkena mutasi jika bilangan random (r) yang dibangkitkan untuk gen yang
bersangkutan kurang dari probbabilitas mutasi. Untuk selanjutnya gen yang terpilih akan ditukar
letaknya dengan gen lain secara acak yang terdapat pada kromosom yang sama.

Tabel 3.13 Populasi Hasil Proses Mutasipada Populasi Pertama

Proses selanjutnya yaitu mengulang proses evaluasi, seleksi dan penerapan operator
algoritma genetika (crossover dan mutasi) sebagaimana dilakuka pada generasi pertama.
Hasil pengujian dengan beberapa variasi parameter Algoritma.

Tabel 3.14 Hasil Pengujian dengan Beberapa Variasi Parameter Algoritma

18
3. Kesimpulan
Berdasarkan uraian di atas, dapat ditarik beberapa kesimpulan sebagai berikut:
a. Algoritma Genetika adalah algoritma pencarian yang berdasarkan mekanisme
seleksi alam Darwin dan prinsip-prinsip genetika, untuk menentukan struktur-
struktur (yang masing-masing disebut individu) berkualitas tinggi yang terdapat
dalam sebuah domain (yang disebut populasi).
b. 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”.
c. Algoritma Genetika yang telah diimplementasikan menggunakan program
komputer dapat membantu menyelesaikan masalah optimasi penentuan ukuran,
jumlah, lokasi, dan tipe kapasitor shunt pada penyulang distribusi primer radial.
d. Algoritma Genetika yang diterapkan secara mandiri pada proses optimasi
penempatan kapasitor shunt dapat mencapai penyelesaian optimum global
(global optimum solution).
e. Algoritma Genetika mampu memberikan perhitungan optimasi dengan
melakukan diskritisasi ukuran kapasitor (ukuran kapasitor yang akan dipasang
disesuaikan dengan ukuran kapasitor standar di lapangan) atau dengan ukuran
kontinyu.
f. 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.
g. Pencarian solusi mendekati optimal dilakukan dengan melakukan beberapa kali
proses iterasi, yaitu dengan Pembentukan chromosome, Inisialisasi, Evaluasi
Chromosome, Seleksi Chromosome, Crossover, Mutasi secara berulang sampai
didapatkan solusi yang optimal.
4. Saran
Jika masalah optimasi cukup kompleks sehingga jumlah parameternya banyak, sebaiknya
Algoritma Genetika tidak dioperasikan secara mandiri. Perhitungan awal untuk inisialisasi data
atau penggunaan metode lain untuk mengurangi jumlah parameter yang dicari, akan sangat
membantu.

5. Daftar Pustaka

Davis, L. (1991). Handbook of Genetic Algorithms. New York : Van Nostrand Reinhold.

Goldberg, D. E. (1989). Genetic Algorithms in Search, Optimization, and Machine


Learning. Massachusetts: AddisonWesley Publishing Company, Inc.

http://.www.google.com/algoritma genetik/ (diakses pada 21 Maret 2018).


http://www.firman-its.com/2007/05/17/algoritma-genetika-dan-contoh-aplikasinya/
(diakses pada 21 Maret 2018).

19
http://groups.yahoo.com/group/sc-ina/ atau http://soft-computing.org
(diakses pada 21 Maret 2018).

Zukhri, Z. 2014. Metode Komputasi Evolusioner untuk Menyelesaikan Masalah Optimasi.


Yogyakarta: Andi.

20

Anda mungkin juga menyukai