BAB II TINJAUAN PUSTAKA
2.9 Algoritma Genetika
Menurut (Scrucca, 2013) Algoritma Genetika merupakan kelas dari algoritma evolusioner yang dipopulerkan oleh John Hollan dan temannya selama tahun 1970-an, dan telah diaplikasikan untuk pencarian keputusan atau solusi pendekatan untuk
16 ADLN – PERPUSTAKAAN UNIVERSITAS AIRLANGGA
masalah pencarian dan optimasi. Algoritma genetika merupakan algoritma pencarian stochastic dimana yang dapat memecahkan masalah optimasi, baik untuk fungsi kontinyu (apakah terdiferensialkan atau tidak) dan fungsi diskrit. Algoritma Genetika menggunakan strategi evolusi yang terinspirasi dari prinsip dasar evolusi biologis. Pada tahap tertentu dari evolusi sebuah populasi terdiri dari sejumlah individu, yang disebut juga string atau kromosom. Ini terbuat dari unit (gen, fitur, karakter) yang mengatur warisan dari satu atau beberapa karakter gen dari karakter tertentu yang terletak sepanjang kromosom, dan posisi string yang sesuai disebut loci. Setiap genotipe akan menggambarkan sebuah potensial solusi untuk satu masalah. Variabel keputusan, atau phenotypes, dalam Algoritma Genetika diperoleh dengan mengaplikasikan beberapa pemetaan dari representasi ke dalam ruang variabel keputusan, yang dimana menggambarkan potensial solusi untuk sebuah masalah optimasi. Kecocokan fungsi decoding mungkin dibutuhkan untuk pemetaan kromosom ke dalam phenotypes. Fitness tiap individu dievaluasi dan individu yang terpilih direproduksi, untuk mewariskan informasi genetik kepada anak-anaknya. Dengan operator seleksi, Algoritma Genetika meniru perilaku alami dari organisme dalam lingkungan yang kompetitif, dimana yang paling berkualitas dan keturunan mereka yang bertahan hidup. Dua isu terpenting dalam proses evolusi pencarian Algoritma Genetika yaitu eksplorasi dan eksploitasi. Eksplorasi adalah menciptakan keragaman populasi dengan menjelajahi ruang pencarian, yang diperoleh dari operator genetika, seperti mutasi dan kawin silang. Kawin silang membentuk keturunan baru dari dua kromosom induk dengan menggabungkan masing-masing bagian informasi genetik. Mutasi adalah operator genetika yang
17 ADLN – PERPUSTAKAAN UNIVERSITAS AIRLANGGA
secara acak mengubah nilai dari gen pada kromosom induk. Eksploitasi bertujuan mengurangi keragaman dalam populasi dengan memilih setiap tahap individu dengan fitness paling tinggi. Seringkali strategi elitis diterapkan, dengan individu-individu yang terbaik dipasang untuk bertahan di generasi berikutnya jika mereka tidak bertahan. Proses evolusi dihentikan atas dasar beberapa kriteria konvergensi. Yang sering digunakan adalah jumlah generasi yang didefinisikan. Secara alternatif, proses Algoritma Genetika dihentikan ketika telah mencapai sejumlah generasi tanpa adanya perbaikan nilai fitness terbaik.
2.9.1.Komponen-komponen dalam Algoritma Genetika
Algoritma Genetika terdiri dari beberapa komponen yaitu sebagai berikut: 1. Populasi
Menurut (Sivanandam & Deepa, 2008), populasi adalah kumpulan dari beberapa individu atau kromosom. Terdapat dua aspek yang penting pada populasi yang digunakan pada algoritma genetika, yaitu adalah inisiasi generasi populasi dan ukuran populasi. Untuk setiap masalah, ukuran populasi akan berpengaruh terhadap kompleksitas suatu masalah. Idealnya, populasi pertama harus mempunyai gen yang sebesar mungkin agar mampu mengeksplorasi ruang pencarian secara keseluruhan. Ukuran populasi juga dapat menimbulkan beberapa masalah juga. Populasi yang besar, akan lebih mudah untuk mengeksplorasi ruang pencarian. Menurut (Obitko, 1998), ukuran populasi yang terlalu besar tidak mempengaruhi performa dari algoritma genetika dalam hal ini berarti seberapa cepat algoritma genetika untuk menemukan sebuah solusi. Nilai yang direkomendasikan untuk
18 ADLN – PERPUSTAKAAN UNIVERSITAS AIRLANGGA
ukuran populasi yang baik adalah bernilai antara 20 – 30 dalam satu populasi. Populasi hasil kombinasi dari berbagai kromosom dapat dilihat pada Tabel 2.1.
Tabel 2.1 Populasi Kromosom
Kromosom [1] BDEC
Kromosom [2] BEDC
Kromosom [3] EDCB
Kromosom [4] BEDC
2. Proses Encoding (Permutation Encoding)
Menurut (Lukas, Anwar, & Yuliani, 2005), proses encoding adalah salah satu proses yang sulit dalam algoritma genetika karena proses encoding untuk setiap permasalahan berbeda-beda karena tidak semua teknik encoding cocok untuk setiap permasalahan. Proses encoding menghasilkan string yang kemudian disebut kromosom. String terdiri dari sekumpulan bit. Bit ini dikenal sebagai gen. Jadi dalam satu kromosom terdiri dari sejumlah gen. Ada bermacam-macam teknik encoding yang dapat dilakukan dalam algoritma genetika. Beberapa teknik-teknik encoding antara lain binary encoding, permutation encoding, value encoding serta tree encoding. Teknik yang digunakan pada Travelling Salesman Problem adalah permutation encoding. Selain digunakan pada Travelling Salesman Problem, teknik ini juga dapat digunakan pada Task Ordering Problem. Pada permutation encoding, kromosom-kromosom adalah kumpulan angka yang mewakili posisi dalam sebuah rangkaian. Pada Travelling Salesman Problem, kromosom mewakili urutan kota yang dikunjungi salesman. Menurut (Zukhri, 2014), populasi awal dibentuk dari kromosom sebanyak ukuran populasi (UkPop). Setiap kromosom menyatakan urutan kota yang harus dikunjungi oleh salesman, maka representasi kromosom yang paling sederhana untuk menyelesaikan masalah TSP adalah dalam bentuk
19 ADLN – PERPUSTAKAAN UNIVERSITAS AIRLANGGA
permutasi dari indeks kota dan dapat dinyatakan sebagai vektor v, vi = [g1, g2, …, gn] dengan 1≤ i ≤ UkPop. Contoh pengkodean untuk TSP dapat dilihat pada Tabel 2.2.
Tabel 2.2 Contoh kromosom hasil encoding
Kromosom [1] BDEC
Kromosom [2] BEDC
3. Evaluasi dan Seleksi (Roulette Wheel)
Menurut (Baharuddin, Shididiqi, & Pratomo, 2012), di dalam algoritma genetika, individu yang bernilai fitness tinggi akan bertahan hidup. Sedangkan individu yang bernilai fitness rendah akan mati. Pengertian nilai fitness adalah nilai yang menyatakan baik tidaknya suatu solusi (individu). Algoritma genetika bertujuan untuk mencari individu dengan nilai fitness yang paling tinggi. Umumnya kromosom yang memiliki fitness tinggi akan bertahan dan berlanjut ke generasi berikutnya. Kromosom yang telah terbentuk akan berevolusi secara berkelanjutan yang disebut dengan generasi. Kromosom yang telah diketahui sebelumnya akan dicari nilai fitness masing – masing. Nilai fitness didapatkan dari jumlah perhitungan nilai dari tour yang telah di bentuk di dalam kromosom. Menurut (Fitrah, Zaky, & Fitrasani, 2006), karena pada TSP merupakan masalah pencarian nilai minimum, maka fungsi fitness menggunakan Persamaan 2.2.
𝐹(𝑣) =
𝑓(𝑣)1 (2.2)Keterangan:
20 ADLN – PERPUSTAKAAN UNIVERSITAS AIRLANGGA
Pada tahap ini, 𝑓(𝑣) merupakan nilai panjang ruas jalan setiap rute. Sehingga 𝑓(𝑣) dihitung dengan Persamaan 2.3:
𝑓(𝑣) = ∑
𝑛𝑖=1𝑥
𝑖 (2.3)Keterangan:
𝑓(𝑣)
=
nilai fitness𝑥
𝑖=
panjang ruas jalanSebelum memasuki tahap seleksi (roulette wheel), maka harus diketahui nilai probabilitas dari tiap kromosom, yang dapat menggunakan Persamaan 2.4:
𝑃[𝑖] =
∑ 𝐹(𝑖)𝐹(𝑖) (2.4)Keterangan:
𝑃[𝑖] = Probabilitas tiap kromosom
𝐹(𝑖) = Fungsi fitness
∑ 𝐹(𝑖) = Total nilai keseluruhan dari fungsi fitness (𝐹(𝑖))
Dalam tahap seleksi akan menentukan individu-individu mana saja yang akan dipilih untuk dilakukan rekombinasi dan bagaimana kromosom anak terbentuk dari individu-individu terpilih tersebut. Metode seleksi yang akan digunakan pada penelitian ini adalah roulette-wheel. Sesuai dengan namanya, metode ini menirukan permainan roulette-wheel dimana masing-masing individu menempati potongan lingkaran pada roda-roulette secara proposional sesuai dengan nilai fitness-nya. Kromosom yang mengalami proses evaluasi diharapkan menghasilkan solusi paling optimal. Contoh kromosom dengan nilai fitness-nya dapat dilihat pada Tabel 2.3.
21 ADLN – PERPUSTAKAAN UNIVERSITAS AIRLANGGA
persamaan (2.4) dalam interval [0,1]. Sebuah kromosom akan terpilih jika bilangan random yang dibangkitkan berada dalam interval akumulatifnya. Pada Gambar 2.7, K 1 menempati interval nilai kumulatif [0; 0,25], K 2 berada dalam interval (0,25; 0,75), K 3 dalam interval (0,75; 0,875), dan K 4 dalam interval (0,875; 1). Misalkan, jika bilangan random yang dibangkitkan adalah 0,6 maka kromosom K 2 terpilih sebagai orang tua. Tetapi jika bilangan random yang dibangkitkan adalah 0,99 maka kromosom K 4 yang terpilih. (Atiyatna, 2012).
Tabel 2.3 Contoh kromosom dengan nilai fitness-nya Kromosom Nilai Fitness
K 1 1
K 2 2
K 3 0,5
K 4 0,5
Jumlah 4
Gambar 2.7 Contoh roulette-wheel dari tabel 2.2
Dari pernyataan yang telah dijelaskan sebelumnya, menurut (Zukhri, 2014) ketentuan dalam terpilihnya kromosom dapat pula ditulis menjadi Persamaan 2.5.
Kromosom pertama yang terpilih, jika 𝑟 < 𝑃[1].
Kromosom ke-i yang terpilih, jika 𝑃[𝑖 − 1] ≤ 𝑟 < 𝑃[𝑖] dan 𝑖 > 1. (2.5) 4. Pindah Silang (Order Crossover)
22 ADLN – PERPUSTAKAAN UNIVERSITAS AIRLANGGA
Menurut (Atiyatna, 2012), pindah silang (Crossover) dilakukan atas 2 kromosom untuk menghasilkan kromosom anak (offspring). Kromosom anak yang terbentuk akan mewarisi sebagian sifat kromosom induknya. Crossover dalam penelitian ini menggunakan skema order crossover. Pada crossover ada satu parameter yang penting yaitu peluang crossover (pc). Menurut (Obitko, 1998), merekomendasikan bahwa nilai pc secara umum harus bernilai tinggi untuk beberapa masalah sebesar 60% (0,6). Pc menunjukkan rasio dari offspring yang dihasilkan dalam tiap generasi dengan ukuran populasi. Misalkan ukuran populasi (popsize = 100), sedangkan peluang crossover (pc= 0,25), maka diharapkan ada 25 kromosom dari 100 kromosom yang ada pada populasi tersebut akan mengalami crossover.
Menurut (Fitrah, Zaky, & Fitrasani, 2006), sebelum melakukan order crossover, langkah yang dilakukan adalah membangkitkan bilangan acak R sebanyak jumlah kromosom dalam populasi. Kemudian kromosom ke-i dapat dipilih sebagai induk tetapi dengan syarat R[i] < pc. Setelah melakukan pemilihan induk, proses selanjutnya adalah menentukan posisi gen yang akan di-crossover. Menurut (Gen, Cheng, & Lin, 2008), langkah awal pada order crossover adalah membangkitkan dua bilangan acak. Kemudian gen pada induk (parent) pertama yang berada diantara kedua bilangan acak akan disalin ke anak (offspring) dengan posisi yang sama. Langkah berikutnya untuk mendapatkan offspring pertama adalah membandingkan gen yang berada pada parent kedua dengan offspring pertama, yang dimulai dari posisi gen yang pertama sampai dengan posisi gen yang terakhir. Apabila gen tersebut ada pada offspring pertama maka abaikan gen
23 ADLN – PERPUSTAKAAN UNIVERSITAS AIRLANGGA
tersebut dari kromosom itu. Jika tidak ada, maka gen tersebut dimasukkan ke dalam gen offspring yang masih belum terisi secara berurutan mulai dari kiri hingga kanan.
Sebagai contoh, bilangan acak 1= 2, bilangan acak 2=3. Dengan kromosom induk pertama dan kedua mempunyai gen sebagai berikut:
Induk 1 = ( 2 3 4 5 6 ) ; Induk 2 = ( 4 5 6 2 3 )
Kemudian, gen ke-2 dan ke-3 pada induk pertama akan diduplikasi ke kromosom anak sesuai dengan gen yang sama. Sehingga kromosom anak menjadi:
Induk 1 X Induk 2 Anak
2 3 4 5 6 X 4 5 6 2 3 = 0 3 4 0 0
Gen anak yang masih kosong diisi dengan induk 2, sehingga kromosom anak menjadi:
Induk 1 X Induk 2 Anak
2 3 4 5 6 X 4 5 6 2 3 = 5 3 4 6 2
5. Mutasi (Swap Mutation)
Jumlah kromosom yang mengalami mutation dalam satu populasi ditentukan oleh parameter probabilitas mutasi atau mutation rate (Pm). Menurut (Obitko, 1998), nilai Pm harus mempunyai nilai yang rendah antara 0,5% - 1% (0,05 – 0,1). Pada penelitian ini menggunakan skema swap mutation, sebagai proses mutation. Langkah yang dilakukan pada swap mutation adalah dengan cara memilih 2 posisi gen dalam kromosom secara acak, kemudian 2 posisi gen tersebut saling ditukarkan (Gen, Cheng, & Lin, 2008). Misalnya suatu kromosom {2, 3, 4, 1, 5, 6} dapat termutasi menjadi {4, 3, 2, 1, 5, 6}. Dalam hal ini gen ke-1 dan ke-3 dipilih secara acak, yang kemudian saling ditukarkan.
Untuk memilih kromosom yang mengalami mutation dapat dilakukan dengan cara membangkitkan bilangan acak (R[i]) dengan nilai antara 0 – 1 sebanyak dari
24 ADLN – PERPUSTAKAAN UNIVERSITAS AIRLANGGA
parameter ukuran populasi. Kemudian, bilangan acak yang sudah dibangkitkan, dibandingkan dengan pm. Jika bilangan acak kurang dari pm, maka kromosom tersebut akan mengalami mutasi, apabila tidak ada kromosom yang mengalami mutasi maka tidak akan mendapatkan anak hasil dari mutasi.
6. Penggantian Populasi
Menurut (Sastry, Goldberg, & Kendall, 2005), penggantian populasi dilakukan setelah keturunan baru dibuat menggunakan crossover dan mutation, perlu untuk memperkenalkan kedalam populasi lama. Kromosom induk dipilih berdasarkan nilai fitness-nya, sehingga yang diharapkan kromosom anak (offspring) lebih baik daripada kromosom induk. Pada tahap ini menggunakan steady-state untuk skema penggantian populasinya dengan cara mengurutkan kromosom parent dengan kromosom offspring berdasarkan nilai fitness-nya mulai dari yang terbaik sampai yang terburuk. Kromosom yang menempati urutan teratas akan menjadi populasi untuk generasi berikutnya, yang diambil sesuai dengan parameter ukuran populasi.
7. Kriteria Penghentian
Menurut (Suyanto, 2014), proses-proses pada Algoritma Genetika akan terus berulang sampai mencapai suatu kriteria berhenti tertentu. Kriteria penghentian Algoritma Genetika yang digunakan adalah generations, yaitu Algoritma Genetika akan berhenti setelah mencapai batas generasi yang telah ditentukan, yang kemudian melaporkan individu dengan nilai fitness yang terendah sebagai solusi terbaik.