Algoritma Genetika (AG) pertama kali dikembangkan oleh John Holland pada tahun 1970-an di New York, Amerika Serikat. John Holland beserta murid-murid dan teman kerjanya berhasil membuat buku berjudul "Adaption in Natural and Artificial Systems" pada tahun 1975. Melalui sebuah penelitian dan dipopulerkan oleh salah satu muridnya, David Goldberg (1989) yang mendefenisikan algoritma genetik ini sebagai metode algoritma pencarian berdasarkan pada mekanisme seleksi alam dan genetik alam. Algoritma Genetika adalah simulasi dari proses evolusi Darwin dan operasi genetika atas kromosom. (Kusumadewi, 2010). Sehingga, Algoritma Genetika termasuk ke dalam kelompok metode Evolutionary Algorithm.
Menurut Suyanto (2011), Algoritma Genetika adalah algoritma pencarian yang didasarkan pada mekanisme seleksi alamiah dan genetika alamiah. Pada awalnya, AG memang digunakan sebagai algoritma pencarian
parameter-parameter optimal. Tetapi, dalam perkembangannya, AG dapat diaplikasikan dalam berbagai masalah lain, seperti learning, peramalan, pemrograman otomatis, dan sebagainya. Pada bidang soft computing, AG banyak digunakan untuk mendapatkan nilai-nilai parameter yang optimal pada JST (jaringan syaraf tiruan) dan system fuzzy.
Terdapat dua istilah biologi yang sudah tidak asing lagi didengar dalam teori evolusi. Berikut pembahasan mengenai kedua istilah tersebut.
1. Seleksi Alamiah
Secara sederhana diilustrasikan dalam kasus populasi jerapah. Pada suatu kondisi dimana jumlah makanan sangat terbatas dan berada di tempat yang tinggi, maka jerapah berleher panjang akan hidup, karena dapat menjangkau makanan dan jerapah berleher pendek akan mati. Dalam hal ini, jerapah berleher panjang dikatakan sebagai individu yang unggul atau memiliki kualitas tinggi sehingga lolos dari proses seleksi alamiah.
2. Genetika Alamiah
Sebuah mekanisme yang sangat rumit, dijelaskan dalam bidang ilmu biologi sebagi sekumpulan individu yang sama (yang disebut spesies) hidup, bereproduksi, dan mati dalam suatu area yang disebut dengan populasi.
Proses seleksi alamiah ini melibatkan proses dasar yang menjadi perhatian utama. Dalam AG prosedur pencarian hanya didasarkan pada nilai fungsi tujuan, tidak ada pemakaian gradient atau teknik kalkulus.
Berikut adalah siklus Algoritma Genetika:
Gambar 2. 1 Siklus Algoritma Genetika 2.4.1 Komponen-Komponen Algoritma Genetika
AG terdiri dari delapan komponen yaitu: sekema pengkodean, nilai fitness, seleksi orang tua, pindah silang (crossover), mutasi, etilisme (untuk AG berjenis generational replacement), penggantian populasi, dan kriteria penghentian.
1. Skema Pengkodean
Skema pengkodean atau inisialisasi merupakan proses awal yang harus dilakukan untuk menciptakan individu-individu secara acak. Individu atau populasi tersebut memiliki susunan gen (kromosom) yang mewakili solusi dari permasalahan yang akan dipecahkan (Mahmudy, 2013). Berbeda dengan teori genetika di dunia nyata yang mempresentasikan gen sebagai deretan bases A, C, T, dan G, AG mempresentasikan gen (buatan) secara umum, sebagai bilangan real, decimal atau biner, yaitu:
Real-number encoding. Pada skema ini, nilai gen berada dalam interval [0, R], dimana R adalah bilangan real positif dan biasanya R=1.
Discrete decimal encoding. Pada skema ini, setipa gen bisa berupa deretan bilangan bulat dalam interval [0, 9].
Binary encoding. Setaip gen bisa berupa deretan nilai 0 atau 1.
2. Pembentukan Populasi Awal
AG adalah algoritma heuristik yang bekerja pada populasi, yaitu kumpulan kromosm atau solusi yang akan diperbaharui pada setiap generasinya. Maka tahap pertama adalah pembentukan populasi awal yang berisi kumpulan kromosom sebanyak ukuran populasi atau popsize. Pembentukan populasi awal biasanya dilakukan secara acak. Namun dalam perkembangannya, pembentukan populasi awal dapat dilakukan dengan berbagai cara menjadi lebih cepat konvergen ke solusi optimal. Misalnya menggunakan metode NEH yang selanjutnya diteruskan metode Local Search.
3. Nilai Fitness
Pada evolusi di dunia nyata, individu bernilai fitness tinggi akan bertahan hidup. Sedangkan individu bernilai fitness rendah akan mati. Pada AG, suatu individu dievaluasi berdasarkan suatu fungsi tertentu sebagai ukuran nilai fitness-nya. Pada masalah optimasi, jika solusi yang dicari adalah memaksimalkan sebuah fungsi h (masalah maksimasi), maka nilai fitness yang digunkan adalah nilai dari fungsi h tersebut, yakni f = h (dimana f adalah niali fitness). Tetapi jika masalahnya dalah meminimalkan fungsi h (masalah minimasi), maka fungsi h tidak bisa digunakan secara langsung. Hal ini disebabkan AG
menggunakan suatu aturan bahwa individu yang memiliki nilai fitness lebih tinggi akan memiliki kemampuan bertahan hidup lebih tinggi dibandingkan individu yang berniali fitness rendah. Oleh karena itu, nilai fitness untuk masalah minimasi adalah f = 1/h, yang artinya semakin kecil nilai h semakin besar nilai f. tetapi fungsi ini akan bermasalah jika h bisa bernilai o, yang megakibatkan f bisa bernilai tak hingga. Untuk mengatasi masalah tersebut, h perlu ditambah dengan sebuah bilangan yang dianggap sangat kecil, sehingga formula fungsi fitness-nya menjadi , dimana a adalah bilangan yang dianggap sangat kecil dan bervariasi sesuai dengan masalah yang akan diselesaikan.
4. Seleksi Orang Tua
Proses pemilihan dua individu sebagai orang tua biasanya dilakukan secara proposional berdasarkan nilai-nilai fitness-nya. Slah satu metode seleksi yang umum digunakan adalah roulette-wheel. Sesuai dengan namanya, metode ini umum digunakan roulette-wheel dimana masing-masing individu menempati potongan lingkaran pada roda roulette secara proposional sesuai dengan nilai fitness-nya. Dapat dilihat pada halaman selanjutnya.
String Nilai Fitness S1 0.6 S2 0.2 S3 0.6 S4 0.2 S5 0.8 S6 0.2 S7 0.2 S8 0.2 S9 0.2 Jumlah 3.3
Gambar 2. 2 Contoh Seleksi Orang Tua Menggunakan Roulette-Wheel
Individu S5 bernilai fitness paling besar menempati seperempat lingkaran roda roulette. Dengan demikian, S5 memiliki peluang sebesar 0.25 untuk terpilih sebagai orang tua.
5. Pindah Silang
Pada proses pindah silang (crossover) terjadi kombinasi pewarisan gen-gen dari induknya, gen-gen dari kedua induk dapat bercampur sehingga dihasilkan susunan kromosom yang baru. Dari proses tersebut akan dihasilkan variasi genetik. Dengan suatu skema tertentu, dua individu dipilih sebagai orang tua. Setelah didapatkan dua individu orang tua, selanjutnya ditentukan titik pindah silang secara acak.
Jika diasumsikan L adalah panjang kromosom, maka titik pindah silang berada antara 1 sampai L-1. Kemudian beberapa bagian dari dua kromosom ditukar pada titik pindah silang yang dipilih. Titik pindah silang adalah titik terjadinya pertukaran gen antar dua individu
orang tua. Pertukaran tersebut akan mengahsilkan dua individu anak. Terdapat tiga skema pindah silang yang biasa digunakan, yaitu:
Pindah silang satu titik (single-point crossover)
Pindah silang ini merupakan skema pindah silang yang paling sederhana. Titik pindah silang hanya satu dengan posisi yang dibangkitkan secara acak.
Gambar 2. 3 Contoh Pindah Silang Satu Titik
Pindah silang banyak titik (multi-point crossover)
Pada suatu masalah tertentu dimana suatu individu terdiri dari sangat banyak gen (misalkan 1000 gen), mungkin akan memerlukan lebih dari satu titik pindah silang. Banyaknya titik pindah silang ini mempengaruhi pola pertukaran gen-gen antar individu orang tua.
Gambar 2. 4 Contoh Pindah Silang Banyak Titik (lebih dari satu)
Dalam contoh ini terdapat dua titik pindah silang yang dibangkitkan secara acak.
Pindah silang pola seragam (uniform crossover)
Dengan operasi pindah silang pola seragam maka komposisi gen-gen tertentu pada suatu individu dapat dipertahankan. Hal ini akan memudahkan proses pencarian solusi.
Gambar 2. 5 Contoh Pindah Silang Pola Seragam
Dalam contoh ini pindah silang dilakukan berdasrkan suatu pola tertentu. Pindah silang dilakukan jika pola berniali 0. 6. Mutasi
Mutasi diperlukan mengembalikan informasi bit yang hilang akibat crossover. Mutasi diterapkan dengan probabilitas yang sangat kecil. Jika mutasi dilakukan terlalu sering, maka akan mengahsilkan individu yang lemah karena konsfigurasi gen pada individu yang unggul akan dirusak. Berdasarkan bagian yang termutasi, proses mutasi dapat dibedakan atas tiga bagian:
Mutasi pada tingkat kromosom: semua gen dalam kromosom berubah.
Gambar 2. 6 Contoh Mutasi Tingkat Kromosom
Semua gen dalam kromosom berubah. Pada contoh di atas, gen tang tadinya bernilai 0 berubah menjadi 1 dan gen yang tadinya bernilai 1 berubah menjadi 0.
Mutasi pada tingkat gen: semua bit dalam satu gen akan berubah. Misal gen 2 yang mengalami mutasi.
Gambar 2. 7 Contoh Mutasi Tingkat Gen. Semua Bit dalam Satu Gen Berubah
Mutasi pada tingkat: hanya satu bit yang berubah.
Gambar 2. 8 Contoh Mutasi Tingkat Bit. Hanya Satu Bit yang Berubah
Prosedur mutasi sangat sederhana. Untuk semua gen yang ada, jika bilangan random yang dibangkitkan kurang dari probabilitas mutasi (pmut) yang ditentukan maka ubah gen tersebut menjadi nilai kebalikannya (dalam binary encoding, 0 diubah 1, dan 1 diubah 0). biasanya pmut sebesar ini berarti mutasi hanya terjadi sekitar satu gen saja. Nilai pmut yang besar akan tidak menguntungkan cenderung merusak kromosom yang sudah bagus.
7. Elitisme
Karena seleksi dilakukan secara acak, maka tidak ada jaminan bahwa individu berbilai fitness tertinggi akan selalu terpilih. Kalaupun individu bernilai fitness tertinggi terpilih, mungkin saja individu tersebut akan rusak karena proses pindah silang. Untuk menjaga agar individu bernilai fitness tertinggi tidak hilang selama evolusi, perlu dibuat satu atau dua kopinya. Prosedur ini dikenal sebagai elitisme. Prosedur hanya digunakan pada AG berjenis generational replacement.
8. Pengganti Populasi
Pada AG berjenis generational replacement, N individu pada suatu generasi digantikan sekaligus oleh N individu baru hasil pindah silang dan mutasi. Untuk mempertahankan individu terbaik, diperlukan skema elitism seperti dijelaskan di atas.
Prosedur yang dapat digunakan pada skema penggantian populasi pada AG berjenis steady-state:
Selalu mengganti individu yang memiliki nilai fitness terkecil.
Selalu mengganti individu yang paling tua.
Membandingkan anak dengan kedua orang tua. Apabila anak memiliki nilai fitnass yang lebih baik daripada salah satu atau kedua orang tua, maka anak menggantikan orang tua yang memiliki nilai fitness terendah. Skema ini dapat menjaga keanekaragaman yang lebih baik disbanding skema sebelumnya. Dengan mengganti orang tua yang memiliki
Hamming Distance (beda bit) yang lebih sedikit, penggantian tersebut dapat diharapkan tidak cepat menghilangkan keragaman.
9. Kriteria Penghentian
Terdapat berbagai macam kriteria penghentian yang bisa digunakan, tiga diantaranya adalah:
1. Memberikan batasan jumlah iterasi. Apabila batas iterasi tersebut dicapai, iterasi dihentikan dan laporkan individu bernilai fitness tertinggi sebagai solusi terbaik.
2. Memberikan batasan waktu proses AG. Kriteria ini digunakan pada system-sistem waktu nyata (real time system), dimana solusi harus ditemukan paling lama, misalkan ~ menit. Dengan demikian, AG bisa dihentikan ketika proses sudah berlangsung selama hampir 3 menit.
3. Menghitung kegagalan penggantian anggota populasi yang terjadi secara berurutan sampai jumlah tertentu. Misalkan, setelah 100 iterasi tidak ada penggantian individu dalam populasi karena individu anak yang dihasilkan selalu memiliki niali fitness yang lebih rendah daripada orangtuanya. Dalam kondisi seperti ini, kita bisa menghentikan itersasi.
Secara sederhana, algoritma umum dari Algoritma Genetika ini dapat dirumuskan menjadi beberapa langkah, yaitu:
2. Mengevaluasi kecocokan setiap individual keadaan dengan hasil yang diinginkan.
3. Memilih individual dengan kecocokan yang tertinggi.
4. Bereproduksi, mengadakan pindah silang antar individual terpilih diselingi mutasi.
5. Mengulangi langkah 2 - 4 sampai ditemukan individual dengan hasil yang diinginkan.
2.4.2 Algoritma Genetika untuk Masalah Optimasi
Ketika kita mendapatkan suatu masalah optimasi yang dapat dikonversi menjadi sebuah fungsi, maka kita dapat dengan mudah menyelesaikan masalah-masalah tersebut menggunakan AG. Misalkan kita ingin memaksimalkan keuntungan penjualan dua buah produk. Kedua produk harus diproduksi antara 3 sampai 10 buah. Produk ke-1 menghasilkan keuntungan sebesar 3 satuan, sedangkan produk ke-2 menghasilkan kerugian 2 satuan. Meskipun menghasilkan kerugian, produk ke-2 harus tetap diproduksi agar produk ke-1 tetap laku di pasaran. Berapa jumlah produk ke-1 dan ke-2 yang harus diproduksi untuk mendapatakan keuntungan maksimum? Permasalahan tersebut dapat dituliskan sebagai sebuah fungsi h berikut:
dimana Sehingga, masalah yang ingin diselesaikan adalah bagaimana menemukan dan yang membuat fungsi h menjadi maksimum? Pada interval tersebut, fungsi h mencapai maksimum, yakni bernilai 24, pada saat
Langkah pertama yang harus dilakukan adalah mengkonversi suatu solusi menjadi sebuah individu (satu individu mneyatakan satu solusi). Untuk mencari nilai dari variabel dan perlu mengkodekan kedua variabel tersebut menjadi sebuah individu. Ada banyak cara untuk mempresentasikan solusi ke dalam suatu individu sebagai berikut:
Pertama, bisa memandang setiap variabel sebagai satu gen, sehingga menghasilkan satu individu dengan satu kromosom yang berisi dua gen dan masing-masing gen berisi satu nilai (bilangan real, desimal, atau biner) atau lebih.
Kedua, adalah dengan memandang setiap variabel sebagai satu kromosom, sehingga kita mendapat satu individu yang memiliki dua kromosom dan masing-masing kromosom berisi sejumlah gen.
Misalkan menggunakan cara kedua, pada skema real number encoding, setiap individu memiliki dua kromosom yang setiap kromosom berisi satu gen yang dikodekan dalam satu bilangan real. Pada skema descrete decimal encoding, setiap individu memiliki dua kromosom yang masing-masing kromosom memiliki dua gen yang dikodekan sebagai dua bilangan bualat dalam interval [0,9]. Sedangakan pada skema binary encoding, setiap individu memiliki dua kromosom yang masing-masing kromosom berisi 10 gen yang dikodekan sebagai bilangan biner.