34
G. Algoritma Genetika
Algoritma genetika AG pertama kali dikenalkan oleh John Holland dari Universitas Michigan pada tahun 1960-an. Kemunculan AG diinspirasikan oleh
proses biologi dari teori evolusi Darwin, sehingga banyak istilah dan konsep biologi yang digunakan dalam AG Chambers, 2000 : 13. AG banyak digunakan
untuk memecahkan masalah optimisasi, walaupun pada kenyataannya juga memiliki kemampuan yang baik untuk masalah- masalah selain optimisasi. John
Holland menyatakan bahwa setiap masalah yang berbentuk adaptasi alami maupun buatan dapat diformulasikan dalam terminologi genetika. Algoritma
genetika adalah simulasi dari proses evolusi Darwin dan operasi genetika atas kromosom.
Pada algoritma genetika, teknik pencarian dilakukan sekaligus atas sejumlah solusi yang mungkin, dikenal dengan istilah populasi. Individu yang
terdapat dalam satu populasi disebut dengan istilah kromosom. Kromosom ini merupakan suatu solusi yang masih berbentuk simbol. Populasi awal dibangun
secara acak, sedangkan populasi berikutnya merupakan hasil evolusi kromosom- kromosom melalui iterasi yang disebut dengan generasi.
Pada setiap generasi, kromosom akan melalui proses evaluasi dengan menggunakan alat ukur yang disebut dengan fungsi fitness kebugaran. Nilai
fitness dari suatu kromosom akan menunjukkan kualitas dari kromosom dalam
populasi tersebut Zainudin Zukhri, 2014 : 23. Generasi berikutnya dikenal dengan istilah anak offspring terbentuk dari gabungan dua kromosom generasi
sekarang yang bertindak sebagai induk parent dengan menggunakan operator
35
penyilangan crossover. Selain operator penyilangan, suatu kromosom dapat juga dimodifikasi dengan menggunakan operator mutasi.
Pemrosesan kromosom-kromosom sebagai sebuah populasi oleh operator genetika terjadi secara berulang Cole, 1998 : 19. Populasi generasi yang baru
dibentuk dengan cara menyeleksi nilai fitness dari kromosom induk parent dan nilai fitness dari kromosom anak offspring, serta menolak kromosom-kromosom
yang lainnya sehingga ukuran populasi jumlah kromosom dalam suatu populasi konstan. Setelah melalui beberapa generasi, maka algoritma ini akan konvergen
ke kromosom terbaik. Menurut Gen dan Cheng Ada tiga kelebihan dari Algoritma Genetika
dalam proses pencarian nilai optimal Zainudin Zukhri, 2014 : 11 , yaitu: a Algoritma Genetika hanya memerlukan sedikit perhitungan matematis yang
berhubungan dengan masalah yang ingin diselesaikan; b Operasi evolusi dari Algoritma Genetika sangat efektif untuk mengobservasi posisi global secara acak;
dan c Algoritma Genetika mempunyai fleksibilitas untuk diimplementasikan secara efisien pada problematika tertentu.
Algoritma genetika sangat tepat jika digunakan untuk menyelesaikan masalah optimisasi yang kompleks dan sukar diselesaikan dengan menggunakan
metode konvensional Supriyanto, 2010 : 4. Sebagaimana halnya dengan proses evolusi di alam, suatu algoritma genetika yang sederhana umumnya terdiri dari
tiga operasi, yaitu: operasi seleksi, operasi crossover persilangan, dan operasi mutasi.
Struktur umum dari suatu algoritma genetika terdiri dari langkah-langkah:
36
a. Membangkitkan Populasi Awal
Proses pembangkitan populasi awal diawali dari pengkodean gen dari kromosom. Satu gen biasanya merepresentasikan satu variabel. Gen dapat
diwakili dalam bentuk : bilangan real, bit, daftar aturan, elemen permutasi, elemen program, atau representasi lainya yang dapat diimplementasikan untuk
operator genetika. Teknik pengkodean ini tergantung pada pemecahan masalah yang dihadapi. Misalnya, pengkodean secara langsung bilangan real
atau integer. Selanjutnya untuk mendapatkan populasi awal metode yang biasa digunakan adalah pembangkitan secara acak.
b. Seleksi
Seleksi digunakan untuk memilih individu-individu mana saja yang akan dipilih untuk proses crossover dan mutasi. Selain itu, untuk mendapatkan
calon induk yang baik. “Induk yang baik akan menghasilkan keturunan yang baik”. Langkah yang dilakukan dalam seleksi ini adalah pencarian nilai
fitness . Nilai fitness ini nantinya akan digunakan pada tahap-tahap seleksi
berikutnya. Untuk itu dapat digunakan rumus
2.32 fungsi objektif perlu ditambah 1 untuk menghindari kesalahan yang
diakibatkan pembagian oleh 0. Semakin tinggi nilai fitness suatu individu
semakin besar kemungkinannya untuk dipilih. Masing-masing individu dalam wadah seleksi akan menerima
probabiltas yang tergantung pada nilai fitnessnya. Selanjutya akan dicari nilai probabilitasnya dengan rumus
37
2.33 Setelah didapatkan nilai probabilitasnya selanjutnya dihitung komulatif
probabilitasnya. Proses seleksi menggunakan roulete-wheel dilakukan setelah didapatkan nilai komulatif probabilitas. Prosesnya adalah dengan
membangkitkan bilangan acak R dalam range 0-1. Jika maka
pilih kromosom 1 sebagai induk, jika maka pilih
kromosom ke-k sebagai induk.
c. Crossover
Pindah silang Crossover adalah operator dari algoritma genetika yang melibatkan dua induk untuk membentuk kromosom baru. Crossover
menghasilkan titik baru dalam ruang pencarian yang siap diuji. Operasi ini tidak selalu dilakukan pada semua individu yang ada.
Jumlah kromosom yang mengalami crossover dalam satu populasi ditentukan oleh parameter
crossover probability .
Individu dipilih secara acak untuk dilakukan penyilangan dengan
antara 0,6 sampai 0,95 Achmad Basuki, 2003 : 24. Jika crossover tidak dilakukan, maka nilai dari induk akan diturunkan kepada
anak keturunan. Prinsip dari crossover adalah melakukan operasi genetika pertukaran,
aritmatika pada gen-gen yang bersesuaian dari dua induk untuk menghasilkan individu baru. Para crossover dilakukan pada setiap individu dengan
probabilitas crossover yang telah ditentukan.
38
d. Mutasi
Proses ini berperan untuk menggantikan gen yang hilang dari populasi akibat proses seleksi yang memungkinkan munculnya kembali gen yang tidak
muncul pada inisialisasi populasi. Jumlah kromosom yang mengalami mutasi
dalam satu populasi ditentukan oleh parameter mutation probability .
Pada umumnya nilainya adalah Supriyanto, 2010:10. Proses mutasi dilakukan dengan cara mengganti satu gen yang terpilih secara acak dengan
suatu nilai baru yang didapat secara acak. Pertama hitung dahulu panjang total gen yang ada dalam satu populasi.
2.34 Jika peluang mutasi terlalu kecil, banyak gen yang mungkin berguna
tidak pernah dievaluasi. Tetapi jika peluang mutasi terlalu besar, maka akan terlalu banyak gangguan acak, sehingga anak akan kehilangan kemiripan dari
induknya dan algoritme kehilangan kemampuan untuk belajar dan melakukan pencarian.
e. Evaluasi Solusi
Evaluasi solusi akan mengevaluasi setiap populasi dengan menghitung nilai fitness dari setiap kromosom hingga kriteria berhenti terpenuhi. Namun
karena seleksi dilakukan secara acak maka diperlukan langkah untuk menjaga agar individu bernilai fitness terbaik tidak hilang selama proses evolusi. Proses
ini dikenal dengan nama elitism. Bila kriteria berhenti belum terpenuhi, maka akan dibentuk lagi generasi baru dengan mengulangi langkah sebelumnya
tetapi tetap menyertakan individu yang disimpan dalam proses elitism
39
sehingga hasil perhitungan dapat konvergen. Beberapa kriteria berhenti menurut Budi Sukmawan 2003 : 25 antara lain :
1 Berhenti pada generasi tertentu.
2 Berhenti setelah dalam beberapa generasi berturut-turut didapatkan
nilai fitness tertinggiterendah yang tidak berubah. 3
Berhenti bila dalam generasi berikutnya tidak diperoleh nilai fitness yang lebih tinggirendah.
Algoritma Genetika secara umum dapat diilustrasikan pada flowchart yang
Click here to enter text.
Gambar 2.12 Flowchart Proses Algoritma Genetika
Membengkitkan Populasi Awal
Selesai Mutasi
Crossover
Kromosom terbaik ?
ya Seleksi
tidak
ditunjukkan pada gambar 2.12.
Evaluasi solusi
Elitism
40
Selanjutnya, diberikan contoh penyelesaian pemrograman linear dengan
algoritma genetika. Contoh berikut diberikan untuk menggambarkan cara kerja algoritma genetika dalam menyelesaikan sebuah masalah optimisasi.
Berikut diberikan gambaran umum proses algoritma yang berlangsung dalam optimisasi.
Contoh 2.6
Minimumkan fungsi : dengan kendala :
, ,
, , Penyelesaian :
a. Membangkitkan populasi awal
Karena yang dicari adalah nilai , , , maka variabel , , , dijadikan
sebagai gen-gen pembentuk kromosom. Selanjutnya, 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:
Kromosom[1] = ; ; = [06;20;17]
Kromosom [2] = ; ; = [06;01;11]
Kromosom [3] = ; ; = [05;06;18]
Kromosom [4] = ; ; = [08;10;18]
Kromosom [5] = ; ; = [13;18;19]
Kromosom [6] = ; ; = [11;03;01]
41
b. Seleksi
Permasalahan yang ingin diselesaikan adalah nilai variabel , dan
yang meminimumkan , maka fungsi objektif yang dapat
digunakan untuk mendapatkan solusi adalah fungsi objektif kromosom = .
Hitung nilai fungsi objektif dari kromosom yang telah dibangkitkan, yaitu:
kromosom 1 = 77 kromosom 2 = 21
kromosom 3 = 51 kromosom 4 = 62
kromosom 5 = 86 kromosom 6 = 0
Rata- rata dari fungsi objektif adalah : 46 Proses seleksi dilakukan dengan cara membuat kromosom yang
mempunyai nilai fungsi objektif kecil mempunyai kemungkinan terpilih yang besar. Untuk itu dapat digunakan fungsi fitness sesuai dengan persamaan
2.32 Fitness
1 = 0,013 Fitness
2 = 0,045 Fitness
3 = 0,019 Fitness
4 = 0,016 Fitness
5 = 0,011
42
Fitness 6 = 1
Total fitness = 1,104 Selanjutnya akan dicari probabilitas terpilihnya menggunakan
persamaan 2.33.
P1 = 0,0131,104 = 0,012 P2 = 0,0451,104 = 0,041
P3 = 0,0191,104 = 0,017 P4 = 0,0161,104 = 0,014
P5 = 0,0111,104 = 0,010 P6 = 11,104 = 0,906
Berdasarkan probabilitas diatas didapatkan kromosom ke 6 yang mempunyai fitness paling besar maka kromosom tersebut mempunyai
probabilitas untuk terpilih pada generasi selanjutnya lebih besar dari kromosom lainnya. Untuk proses seleksi digunakan roulete wheel, untuk itu
dicari dahulu nilai kumulatif probabilitasnya: C1 = 0,012
C2 = 0,053 C3 = 0,070
C4 = 0,084 C5 = 0,094
C6 = 1 Setelah dihitung komulatif probabilitasnya maka proses seleksi
menggunakan roulette wheel dapat dilakukan. Putar roulete wheel sebanyak
43
jumlah populasi yaitu 6 kali bangkitkan bilangan acak R sebanyak 6 dan pada tiap putaran pilih satu kromosom untuk populasi baru. Misal didapatkan
bilangan acak : R1 = 0,195
R2 = 0,449 R3 = 0,075
R4 = 0,161 R5 = 0,705
R6 = 0,225 Bilangan acak pertama R1 lebih besar dari C5 dan lebih kecil
daripada C6 maka pilih kromosom 6 sebagai kromosom pada populasi baru, dari bilangan acak yang telah dibangkitkan diatas maka populasi
kromosom baru hasil proses seleksi adalah: Kromosom 1 = kromosom6
Kromosom 2 = kromosom6 Kromosom 2 = kromosom4
Kromosom 2 = kromosom6 Kromosom 2 = kromosom6
Kromosom 2 = kromosom6 Kromosom baru hasil proses seleksi adalah :
Kromosom 1 = [11;03;01] Kromosom 2 = [11;03;01]
Kromosom 3 = [08;10;18]
44
Kromosom 4 = [11;03;01] Kromosom 5 = [11;03;01]
Kromosom 6 = [11;03;01] c.
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 probability
. Pada umumnya
ditentukan mendekati 1, misalnya 0,8 Suyanto, 2005.
Misal ditentukan crossover probability adalah sebesar 0,8. Prosesnya adalah sebagai berikut:
Pertama kita bangkitkan bilangan acak R sebanyak jumlah populasi R1 = 0,399
R2 = 0,187 R3 = 0,82
R4 = 0,322 R5 = 0,161
R6 = 0,921 Kromosom ke-k akan dipilih sebagai induk jika Rk
, dari bilangan acak yang telah dibangkitkan maka yang menjadi induk adalah kromosom1,
kromosom2, kromosom4 dan kromosom5.
45
Posisi cut-point crossover dipilih menggunakan bilangan acak 1 – panjang kromosom-1, dalam persoalan ini berarti dipilih bilangan acak 1-2
sebanyak jumlah crossover yang terjadi. Karena kromosom yang akan mengalami crossover, yaitu
kromosom1, kromosom2, kromosom4 dan kromosom5 semuanya memiliki gen yang sama maka hasil persilangannya juga akan sama tidak ada
perubahan. Dengan demikian populasi kromosom setelah mengalami crossover
adalah : Kromosom 1 = [11;03;01]
Kromosom 2 = [11;03;01] Kromosom 3 = [08;10;18]
Kromosom 4 = [11;03;01] Kromosom 5 = [11;03;01]
Kromosom 6 = [11;03;01] d.
Mutasi Jumlah kromosom yang mengalami mutasi dalam satu populasi
ditentukan oleh parameter mutation probability .
Pertama hitung dahulu panjang total gen yang ada dalam satu populasi. Dalam kasus ini panjang total
gen sesuai persamaan 2.36 .
Untuk memilih posisi gen yang mengalami mutasi dilakukan dengan cara membangkitkan bilangan integer acak antara 1 sampai total gen, yaitu 1
sampai 18. Jika bilangan acak yang dibangkitkan lebih kecil daripada
46
maka pilih posisi tersebut sebagai sub-kromosom yang mengalami mutasi. Misal
kita tentukan 0,05 maka kemungkinan ada 5 dari total gen yang mengalami mutasi. Jumlah mutasi
, , dibulatkan menjadi 1.
Misalkan setelah dibangkitkan bilangan acak terpilih posisi gen 4 yang mengalami mutasi. Dengan demikian yang akan mengalami mutasi adalah
kromosom ke-2 gen nomor 1. Maka nilai gen pada posisi tersebut diganti dengan bilangan acak 0-20
Misal bilangan acak yang terbangkitkan adalah 6, maka kromosom ke-2 gen nomor 1 diganti dengan bilangan 6.
Setelah proses mutasi maka kita telah menyelesaian satu iterasi dalam algoritma genetika atau disebut satu generasi dan didapatkan :
Kromosom 1 = [11;03;01] Kromosom 2 = [06;03;01]
Kromosom 3 = [08;10;18] Kromosom 4 = [11;03;01]
Kromosom 5 = [11;03;01] Kromosom 6 = [11;03;01]
e. Evaluasi
Selanjutnya akan diperiksa fungsi objektif setelah 1 generasi. kromosom 1 = 0
kromosom 2 = -5 kromosom 3 = 62
kromosom 4 = 0
47
kromosom 5 = 0 kromosom 6 = 0
Rata-rata fungsi objektif setelah satu generasi , .
Dapat dilihat dari hasil perhitungan fungsi objektif diatas bahwa setelah satu generasi, nilai hasil rata-rata fungsi objektif mengalami penurunan
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. Selanjutnya generasi baru yang telah terbentuk akan mengalami proses
yang sama seperti generasi sebelumnya yaitu proses evaluasi, seleksi, crossover
dan mutasi yang kemudian akan menghasilkan kromosom- kromosom baru untuk generasi yang selanjutnya. Proses ini akan berulang
sampai mendapatkan generasi terbaik atau akan berhenti setelah sejumlah generasi yang telah ditetapkan sebelumnya.
Selanjutnya, dengan menggunakan bantuan Matlab script dapat dilihat di lampiran 1 didapatkan solusi dari permasalahan diatas adalah :
nilai a = 5,0003 b = 0,0000
c = 6,0002 Z = a + 2b + 3c - 20 = 3,0009.
48
Pada umumnya proses Algoritma Genetika untuk mendapatkan hasil optimal membutuhkan proses pengulangan yang cukup panjang. Oleh karena itu,
selanjutnya penyelesian optimisasi dengan Algoritma Genetika akan dilakukan dengan bantuan Software Matlab.
49
BAB III PEMBAHASAN
Pada bab ini akan dijelaskan mengenai langkah penyelesaian masalah pemrograman nonlinear dan penerapannya dalam penetapan jumlah produksi
optimal pada biaya produksi perbulan di Tempe Murni dengan pendekatan separable programming menggunakan hampiran fungsi linear sepotong-sepotong
dengan algoritma genetika.
A. Penyelesaian Masalah Nonlinear Menggunakan Pendekatan Separable
Programming
Separable programming merupakan metode penyelesaian model nonlinear yang khusus karena fungsi tujuan dan fungsi kendalanya harus dinyatakan sebagai
jumlahan fungsi satu variabel dan bukan perkalian dua variabel berbeda atau lebih. Separable programming selanjutnya diselesaikan dengan menggunakan
hampiran fungsi linear sepotong-sepotong. Adapun langkah penyelesaiannya yaitu :
a. Membentuk model nonlinear
Model nonlinear dibentuk berdasarkan data yang diperoleh dari objek penelitian.
b. Membentuk Masalah P Fungsi Separable
c. Mentransformasikan fungsi nonlinear menjadi fungsi linear dengan hampiran
linear sepotong-sepotong formulasi Lambda dan membuat titik kisi.