2.1.1. Pengertian Algoritma Genetika
Turban (2005: 882) menyatakan bahwa “algoritma Genetika adalah kumpulan prosedur komputasional yang secara konseptual mengikuti langkah-langkah yang diinspirasi oleh proses evolusi biologis. Solusi yang lebih baik dan lebih baik lagi dikembangkan dari pembangkitan sebelumnya sampai solusi optimal atau hampir optimal didapatkan”.
Salah satu aplikasi algoritma genetika adalah pada permasalahan optimasi, yaitu mendapatkan suatu nilai solusi optimal terhadap suatu permasalahan yang mempunyai banyak kemungkinan solusi. Daya tarik algoritma genetika terletak pada kesederhanaan dan pada kemampuan untuk mencari solusi yang baik dan cepat untuk masalah yang komplek.
2.1.2. Istilah-istilah dalam Algoritma Genetika
Algoritma genetika memiliki istilah-istilah yang digunakan untuk menggambarkan keadaan/permasalahan sebenarnya ke dalam teori Genetika, antara lain :
a. Gen
Gen merupakan nilai yang menyatakan satuan dasar yang membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan kromosom.
b. Allele
c. Kromosom / Individu
Kromosom merupakan gabungan dari gen-gen yang membentuk nilai tertentu dan menyatakan solusi yang mungkin dari suatu permasalahan.
d. Populasi
Populasi merupakan sekumpulan individu yang akan diproses bersama dalam satu satuan siklus evolusi.
e. Fitness
Fitness menyatakan seberapa baik nilai dari suatu individu yang didapatkan. f. Seleksi
Seleksi merupakan proses untuk mendapatkan calon induk yang baik. g. Crossover
Crossover merupakan proses pertukaran atau kawin silang gen-gen dari dua induk tertentu.
h. Mutasi
Mutasi merupakan proses pergantian salah satu gen yang terpilih dengan nilai tertentu.
i. Generasi
Generasi merupakan urutan iterasi dimana beberapa kromosom bergabung, yaitu satu siklus proses evolusi atau satu iterasi di dalam algoritma genetika. j. Offspring
Offspring merupakan kromosom baru yang dihasilkan.
2.1.3. Struktur Umum Algoritma Genetika
Bila P(t) adalah induk dan C(t) adalah keturunan pada generasi t, struktur umum algoritma Genetika adalah sebagai berikut :
Procedure Algoritma Genetika begin
t = 0
initialize P(t); evaluate P(t);
while (not terminate condition) do
recombine P(t) to yield C(t); evaluate C(t);
select P(t+1) from P(t) and C(t); t = t + 1;
end end
2.1.4. Basis Algoritma Genetika
Ide dasar algoritma genetika adalah mengelola suatu populasi individu yang merepresentasikan kandidat solusi sebuah permasalahan. Secara umum algoritma genetika memiliki lima komponen dasar (Michalewicz, 1996) yaitu:
1. Representasi genetik dari solusi-solusi masalah. 2. Cara membentuk populasi awal dari solusi-solusi.
3. Fungsi evaluasi yang me-rate (rating) solusi-solusi berdasarkan fitness mereka.
4. Operator-operator genetik yang merubah komposisi genetik dari offspring selama reproduksi.
5. Nilai-nilai untuk parameter algoritma genetika.
Algoritma genetika berangkat dari himpunan solusi yang dihasilkan secara acak yang disebut populasi. Sedangkan setiap individu dalam populasi disebut kromosom yang merupakan representasi dari solusi dan masing-masing dievaluasi tingkat ketanggguhannya (fitness) oleh fungsi yang telah ditentukan.
Melalui proses seleksi alam atas operator genetik, gen-gen dari dua kromosom (disebut parent) diharapkan akan menghasilkan kromosom baru dengan tingkat fitness yang lebih tinggi sebagai generasi baru atau keturunan (offspring) berikutnya. Kromosom-kromosom tersebut akan mengalami iterasi yang disebut generasi (generation). Menurut Gen dan Cheng (2000) pada setiap generasi, kromosom dievaluasi berdasarkan nilai fungsi fitness. Setelah beberapa generasi maka algoritma genetika akan konvergen dapat kromosom terbaik, yang merupakan solusi optimal (Goldberg, 1989). Diagram alir algoritma Genetika dapat dilihat pada gambar 2.1.
mulai
Deskripsikan persoalan
Ya
Hasilkan solusi awal
Tidak
Uji : Apakah solusi terbaik
cukup baik ?
Pilih induk (pemain) untuk bereproduksi
Berhenti
Terapkan proses penyilangan dan hasilkan sekumpulan
keturunan Terapkan mutasi acak Langkah 1
Langkah 2
Langkah 3
Langkah 5 Langkah 4
Gambar 2.1 Diagram alir proses algoritma genetika
2.1.5. Operator Algoritma Genetika
Operator-operator yang digunakan dalam algoritma Genetika adalah : a. Seleksi
Seleksi merukanan proses pemilihan kromosom untuk dijadikan orang tua yang nantinya akan melakukan proses reproduksi. Berdasarkan
teori Darwin, kromosom yang terbaik harusnya dapat bertahan hidup dan membentuk keturunan baru. Ada beberapa jenis metode seleksi, yaitu : i. Seleksi Roda Roulete (Roulete Wheel selection)
Pada meotode seleksi ini orang tua yang dipilih berdasar kan nilai fitness-nya, semakin baik nilai fitness-nya maka semakin besar kemungkinan untuk dipilih. Diandakian semua kromosom diletakkan pada sebuah roda roulette, besarnya kemungkinan bagi setiap kromosom adalah tergantung dari fitness-nya seperti seperti contoh pada Gambar 2.2. Kromosom Fitness A 15 B 5 C 10 D 5 E 5
Gambar 2.2 Contoh Seleksi Roda Roulette
Probabilitas untuk masing-masing individu merupakan hasil pembagian antara fitness masing-masing individu dengan total fitness dalam populasi. Dari contoh pada gambar 2.2 kromosom A memiliki probabilitas 37,5% untuk terpilih sebagai orang tua pembentuk keturunan baru pada setiap pemilihan kromosom. Secara algoritma, seleksi roda roulette dapat dituliskan sebagai berikut :
begin
s = sumfitness(P) // jumlah fitness semua kromosom dari populasi P
Skema seleksi roda roulette ini adalah berdasarkan skala fitness karena terpilihnya suatu kromosom dalam populasi untuk dapat berkembang biak adalah sebanding dengan fitness-nya, maka akan terjadi semacam tradeoff antara eksplorasi dan eksploitasi jika terdapat satu atau kelompok kecil kromosom yang mempunyai fitness yang baik yaitu antara mengeksplorasi bagian-bagian baru dalam ruang pencarian, atau terus mengeksploitasi informasi yang telah diperoleh. Kecenderungan kromosom terbaik untuk terus terpelihara terus dapat membawa ke hasil optimum lokal bukan global. Sebaiknya jika semua kromosom dalam populasi mempunyai fitness yang hampir sama, maka seleksi ini akan menjadi seleksi yang bersifat acak.
ii. Seleksi Rangking (Linear-rank selection)
Seleksi rangking pertama yang dilakukan adalah merangking atau mengurutkan kromosom didalam populasi berdasarkan nilai fitness-nya kemudian memberi nilai fitness berdasarkan urutannya. Kromosom dengan nilai fitness terburuk akan memiliki nilai fitness baru bernlai 1, terburuk kedua bernilai 2 dan seterusnya. Sebagai kromosom yang memiliki nilai fitness terbaik akan memiliki nilai fitness n, dimana n adalah jumlah kromosom dalam populasi. Setelah proses pengurutan dan pemberian nilai fitness baru, setiap kromosom akan memiliki kesempatan yang lebih adil untuk terpilih. Tetapi metode ini dapat menyebabkan konvergensi menjadi lambat, karena kromosom terbaik tidak selalu berada dengan yang lainnya. Contoh untuk seleksi rangking dapat dilihat pada gambar 2.3.
Gambar 2.3 Contoh Seleksi Rangking
iii. Seleksi Turnamen (Tournament selection)
Seleksi turnamen merupakan jenis seleksi yang divariasi berdasarkan seleksi roda roulette dan seleksi rangking. Sejumlah k kromosom tertentu dari populasi beranggota n kromosom (k<=n) dipilih secara acak dengan prioritas yang sama. Dari k kromosom yang terpilih kemudian akan dipilih satu kromosom dengan fitness terbaik, yang diperoleh dari hasil pengurutan rangking nilai fitness semua kromosom terpilih.
Perbedaanya dengan seleksi roda roulette adalah pemilihan kromosom yang akan dipergunakan untuk berkembang biak tidak berdasarkan skala fitness dari populasi. Untuk k=1, seleksi turnamen akan sama dengan seleksi secara acak karena hanya melibatkan satu kromosom. Untuk k=2, maka dua kromosom dari populasi secara acak, kemudian akan dipilih satu kromosom dengan nilai fitness terbaik. Biasanya yang sering digunakan adalah k=2, tergantung dari jumlah kromosom yang terdapat didalam populasi.
b. Perkawinan Silang (crossover)
Perkawinan silang digunakan untuk membentuk keturunan baru berdasarkan orang tua yang terpilih. Operator ini lebih dominan dalam algoritma Genetika dibandingkan dengan operator mutasi. Jumlah kromosom yang terlibat dalam perkawinan silang ini adalah 2 kromosom.
Perkawinan silang dilakukan dengan harapan kromosom-kromosom baru akan mempunyai bagian baik dari kromosom-kromosom lama dan tidak menutup kemungkinan menjadi kromosom-kromosom yang lebih baik. Ada beberapa jenis perkawinan silang, antara lain :
i. Single Point Crossover
Dalam Single Point Crossover ada satu titik potongan pada dua kromosom yang dipilih secara acak, maka terdapat dua bagian kepala dan dua bagian ekor. Kemudian akan dilakukan pertukaran bagian tersebut secara acak, misal kedua bagian ekor pada dua kromosom tersebut ditukar untuk memproduksi dua individu baru (offspring). Contoh dari Single Point Crossover dapat dilihat pada gambar 2.4.
Gambar 2.4 Contoh Single Point Crossover
ii. Multiple Point Crossover
Dalam Multiple Point Crossover ada lebih dari satu titik potongan dan ada banyak persilangan dan bagian dalam kedua kromosom, yang akan dilakukan pertukaran antar bagian tersebut secara acak. Contoh dari Multiple Point Crossover dapat dilihat pada gambar 2.5.
Gambar 2.5 Contoh Multiple Point Crossover
iii. Uniform Crossover
Dalam Uniform Crossover, gen dari offspring didapat dengan menyalin gen dari orang tua. Gen dari orang tua yang akan dijadikan gen pada offspring dipilih secara acak yaitu indeks gen ke berapa dan gen dari orang tua yang mana. Contoh dari Uniform Crossover dapat dilihat pada gambar 2.6.
Gambar 2.6 Contoh Uniform Crossover
c. Mutasi
Mutasi merupakan proses mengubah nilai dari satu atau beberapa gen dalam satu kromosom tertentu. Tujuanya adalah untuk membantu mempercepat terjadinya perbedaan diantara semua kromosom dalam populasi sehingga pencarian dapat menjelajah keseluruh ruang pencarian, tetapi mutasi tidak boleh terlalu sering dilakukan karena akan membuat algoritma Genetika berubah menjadi pencarian acak.
Proses mutasi dalam biologi adalah mengubah allele pada suatu kromosom dengan allele yang lain. Proses mutasi dilakukan secara acak, sehingga tidak selalu menjamin bahwa setelah proses mutasi akan diperoleh
kromosom dengan nilai fitness yang lebih baik dibandingkan dengan sebelum proses mutasi dilakukan, oleh karena itu terjadi kontroversi dalam penerapanya pada algoritma Genetika. Mutasi sering kali tetap dipergunakan hanya saja probabilitas mutasinya kecil. Contoh untuk mutasi dapat dilihat pada gambar 2.7.
Gambar 2.7 Contoh Mutasi
d. Update populasi
Update populasi adalah proses membaharui kromosom yang terdapat dalam populasi. Pada algoritma Genetika, N kromosom pada suatu generasi digantikan sekaligus oleh N kromosom baru hasil perkawinan silang silang atau mutasi. Adapun prosedur update populasi pada algoritma Genetika ialah:
1. Mengganti kromosom/individu yang memiliki nilai fitness terburuk. 2. Mengganti kromosom/individu yang paling tua.
3. Membandingkan anak dengan kedua orang tua, apabila anak memiliki nilai fitness lebih baik akan menggantikan orang tua yang memiliki nilai fitness buruk.
2.1.6. Hal-hal yang harus dilakukan dalam Algoritma Genetika
Beberapa hal yang harus dilakukan dalam algoritma genetika adalah :
1. Mendefinisikan individu, dimana individu menyatakan salah satu solusi (penyelesaian) yang mungkin dari permasalahan yang diangkat.
2. Mendefinisikan nilai fitness, yang merupakan ukuran baik-tidaknya sebuah individu atau baik-tidaknya solusi yang didapatkan.
3. Menentukan proses pembangkitan populasi awal. Hal ini biasanya dilakukan dengan menggunakan pembangkitan acak seperti random-walk.
4. Menentukan proses seleksi yang akan digunakan.
5. Menentukan proses perkawinan silang (cross-over) dan mutasi gen yang akan digunakan.
17