BAB II TINJAUAN PUSTAKA
2.1 Landasan Teori
2.1.4 Algoritma Genetika
Pengertian Algoritma Genetika menurut beberapa sumber :
1. Dalam bukunya, DE Golderg mendefinisikan Algoritma genetika sebagai algoritma pencarian yang didasarkan pada mekanisme seleksi alamiah dan genetika alamiah. (Suyanto, 2005) .
2. Menurut Kusumadewi (2003) , Algoritma genetika adalah algortima pencarian heuristic yang didasarkan atas mekanisme evolusi biologis.
commit to user
mekanisme seleksi alam dan genetika. Algoritma genetika merupakan salah satu algoritma yang sangat tepat digunakan dalam menyelesaikan masalah optimasi kompleks, yang sulit dilakukan oleh metode konvensional (Desiani & Arhami, 2006).
Jadi dapat dikatakan bahwa Algoritma genetika adalah algoritma pencarian yang mengadopsi mekanisme seleksi genetika alamiah. Algoritma genetika pertama kali dikembangkan oleh John Holland dari Universitas Michigan pada tahun 1975. John Holland menyatakan bahwa setiap masalah yang berbentuk adaptasi (alami maupun buatan) dapat diformulasikan ke dalam terminologi genetika. Algoritma genetika adalah simulasi dari proses evolusi Darwin dan operasi genetika atas kromosom. (Kusumadewi, 2003).
Menurut Kusumadewi (2003), misalkan P(generasi) adalah populasi dari suatu generasi, secara sederhana algoritma genetika terdiri dari langkah-langkah sebagai berikut :
1. Generasi = 0 (generasi awal).
2. Inisialisasi populasi awal, P(generasi), secara acak.
3. Evaluasi nilai fitness pada setiap individu dalam P(generasi).
4. Kerjakan langkah-langkah berikut hingga generasi mencapai maksimum generasi :
a. Generasi = generasi + 1 (tambah generasi).
b. Seleksi populasi tersebut untuk mendapatkan kandidat induk, P’(generasi)
c. Lakukan crossoverpada P’(generasi). d. Lakukan mutasi pada P’(generasi).
e. Lakukan evaluasi fitnesssetiap individu pada P’(generasi).
f. Bentuk populasi baru : P(generasi) = {P(generasi-1) yang survive, P’(generasi)}.
commit to user
Adapun algoritma genetika tersebut adalah sebagai berikut : 1. Generasi = 0 (generasi awal).
Generasi dapat dikatakan sebagai kumpulan solusi dari masalah yang akan diselesaikan. Pada satu generasi berisi kumpulan solusi yang disebut populasi. Untuk menyatakan solusi tersebut diperlukan pengkodean masalah. Pengkodean adalah suatu teknik untuk menyatakan populasi awal sebagai calon solusi suatu masalah ke dalam suatu kromosom sebagai suatu kunci pokok persoalan ketika menggunakan algoritma genetika (Desiani & Arhami, 2006). Teknik pengkodean ini meliputi pengkodean gen dan kromosom. Gen merupakan bagian dari kromosom. Satu gen bisanya akan mewakili satu variabel.
Terdapat 3 skema yang paling umum digunakan dalam pengkodean (Suyanto, 2005), yaitu :
a. Real number encoding. Pada skema ini, nilai gen berada dalam interval [0,R], dimana R adalah bilangan real positif dan biasanya R = 1. Real number encoding biasanya digunakan untuk permasalah pencarian rute terpendek, perbaikan bobot JST dan lain sebagainya. Contoh real number encoding adalah gen pada kromosom berisi 0.3 , 0.4 , 0.7 dan seterusnya.
b. Discrete decimal encoding. Setiap gen bisa bernilai satu bilangan bulat dalam interval [0,9].
c. Binary encoding. Setiap gen hanya bernilai 0 atau 1. 2. Inisialisasi populasi awal, P(generasi), secara acak.
Ukuran populasi tergantung pada masalah yang akan dipecahkan dan jenis operator genetika yang akan diimplementasikan. Misalnya untuk penyelesaian kasus TSP dengan jumlah lokasi yang sedikit maka ukuran populasinya juga kecil karena solusi yang dimungkinkan juga sedikit, selain itu penentuan ukuran populasi juga tergantung operator genetika yang diimplementasikan misalnya untuk nilai probabilitas mutasi yang kecil maka ukuran populasi dapat diset besar karena dengan ukuran yang besar kemungkinan terjadi mutasi masih ada walaupun dengan probabilitas yang kecil. Setelah ukuran populasi ditentukan, kemudian harus dilakukan inisialisasi terhadap kromosom yang terdapat pada
commit to user
harus tetap memperhatikan domain solusi dan kendala permasalahan yang ada. 3. Evaluasi nilai fitness pada setiap individu dalam P(generasi).
Fungsi fitness merupakan ukuran kinerja suatu individu agar tetap bertahan hidup (Desiani & Arhami, 2006). Pada masalah optimasi, jika solusi yang dicari adalah memaksimalkan sebuah fungsi (dikenal sebagai masalah maksimasi), maka nilai fitness yang digunakan adalah nilai fungsi tersbut, yakni 𝑓=
(dimana 𝑓 adalah nilai fitness). Tetapi jika masalahnya adalah meminimalkan fungsi (masalah minimasi), maka fungsi tidak bisa digunakan secara langsung. Hal ini disebabakan adanya aturan bahwa individu yang memiliki nilai
fitness tinggi lebih mampu bertahan hidup pada generasi berikutnya. Oleh karena itu nilai fitness yang bisa digunakan adalah
𝑓= 1 (2.17)
Yang artinya semakin kecil nilai , semakin besar nilai 𝑓. Tetapi hal ini menjadi masalah jika bisa bernilai 0, yang mengakibatkan 𝑓 bisa bernilai tak hingga. Untuk mengatasinya, perlu ditambah sebuah bilangan yang dianggap sangat kecil sehingga nilai fitnessnya menjadi :
𝑓= 1
+𝑎 (2.18)
Dimana 𝑎 adalah bilangan yang dianggap sangat kecil dan bervariasi sesuai dengan masalah yang akan diselesaikan. (Suyanto, 2005). Misalnya untuk kasus meminimalkan fungsi h dengan nilai fungsi h berkisar pada angka 0.01 maka nilai a dapat diset 1x10-6 , namun jika nilai fungsi h berkisar pada angka yang besar misalnya 100 maka nilai dapat diset 1 dan seterusnya.
4. Kerjakan langkah-langkah berikut hingga generasi mencapai maksimum generasi :
a. Generasi = generasi + 1 (tambah generasi).
b. Seleksi populasi tersebut untuk mendapatkan kandidat induk, P’(generasi)
Seleksi akan menentukan individu-individu dari P’ (generasi ) yang akan dipilih untuk dilakukan proses crossover dan mutasi. Salah satu jenis
commit to user
seleksi yang umum dipakai adalah Seleksi Roda Roulette (Roulette Wheel Selection). Pada metode ini, individu-individu dipetakan dalam suatu segmen garis secara berurutan sedemikian hingga tiap-tiap segmen individu memiliki ukuran yang sama dengan ukuran fitnessnya. Kemudian sebuah bilangan random dibangkitkan dan individu yang memiliki segmen dalam kawasan bilangan random tersebut akan terseleksi. Proses ini akan diulang hingga diperoleh sejumlah individu yang diharapkan.
Contoh metode Roulette Wheel Selection dapat dilihat pada Tabel 2.1. Misalnya ada 11 individu dalam populasi. Individu pertama memiliki nilai
fitness terbesar yaitu 2.0, individu kedua memiliki nilai fitness 1.8 dan seterusnya. Kemudian dihitung probablilitas seleksi dengan cara membagi nilai fitness dengan jumlah total fitness. Misalnya untuk probabilitas seleksi individu pertama, diperoleh dari perhitungan sebagai berikut :
Total fitness = 2.0 + 1.8 + 1.6 + 1.4 + 1.2 + 1.0 + 0.8 + 0.6 + 0.4 + 0.2 = 11
𝑃𝑟𝑜𝑏𝑎𝑏𝑖𝑙𝑖𝑡𝑎𝑠𝑖𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑝𝑒𝑟𝑡𝑎𝑚𝑎= 2.0 11= 0.18
Setelah semua probabilitas dihitung maka ditentukan kumulatif probabilitasnya untuk mengetahui ukuran segmen individu tersebut. Misalnya untuk individu kedua, segmen tersebut diperoleh dengan cara sebagai berikut Segmen individu 2 = kumulatif sebelumnya + probabilitas seleksi individu 2
Segmen individu 2 = 0.18 + 0.16 = 0.32
Pembagian segmen pada Roulette Wheel Selection dapat dilihat pada Gambar 2.4. Setelah semua segmen dipetakan, kemudian dibangkitkan bilangan random antara 0-1 sebanyak individu yang akan diseleksi, misalnya akan menyeleksi 6 individu maka dibangkitkan 6 bilangan random. Sebagai contoh dapat dilihat pada Gambar 2.4, misalnya bilangan random pertama adalah 0.8 maka individu yang terpilih adalah individu ke-6 karena nilai 0.8 berada pada segmen individu ke-6.
commit to user Individu ke- 1 2 3 4 5 6 7 8 9 10 11 Nilai fitness 2.0 1.8 1.6 1.4 1.2 1.0 0.8 0.6 0.4 0.2 0.0 Probabilitas seleksi 0.18 0.16 0.15 0.13 0.11 0.09 0.07 0.06 0.03 0.02 0.0
Gambar 2.4 Seleksi roda roullet
Setelah dilakukan seleksi, maka individu-individu yang terpilih adalah: 1, 2, 3, 5, 6, 9.
c. Lakukan crossoverpada P’(generasi).
Crossover adalah memindah-silangkan dua buah kromosom untuk mendapatkan kromosom baru. Crossover dilakukan dengan suatu probabilitas tertentu pc. Porbabilitas crossover (pc) adalah persentase banyaknya populasi yang mengalami crossover, semakin tinggi pc maka semakin banyak individu yang mengalami crossover. Pada umumnya , pc diset mendekati 1, misalnya 0.8. Probabilitas crossover merupakan Adapun nilai pc ditetapkan di awal dan tidak mengalamai perubahan.
Salah satu jenis crossover adalah Crossover menengah. Crossover
menengah merupakan metode crossover yang hanya dapat digunakan untuk
variabel real. Nilai variabel anak dipilih di sekitar dan antara nilai-nilai variabel induk. anak dihasilkan menurut aturan sebagai berikut:
Anak = induk 1 + alpha (induk 2 – induk 1)
Dengan alpha adalah faktor skala yang dipilih secara random pada
interval [-d,1+d], biasanya d = 0,25. tiap-tiap variabel pada anak merupakan hasil crossover variabel-variabel menurut aturan di atas dengan nilai alpha dipilih ulang untuk tiap variabel.
commit to user
Misalkan ada 2 individu dengan 3 variabel, yaitu: Induk 1 : 12 25 5
Induk 2 ; 123 4 34
Misalkan nilai alpha yang terpilih adalah; Sampel 1 : 0.5 1.1 -0,1
Sample 2 : 0.1 0.8 0.5 Kromosom baru yang terbentuk: Anak 1 : 67.5 1.9 2.1
Anak 2 : 23.1 8.2 19.5
Crossover disebut juga perkawinan atau penyilangan dua individu untuk menghasilkan anak. Dari aturan di atas dapat digambarkan misalnya induk 1 adalah ayah dan induk 2 adalah ibu maka aturan tersebut menggambarkan bahwa ayah memiliki pengaruh yang lebih besar dari pada ibu. Pada kondisi lain sesuai dengan proses perkawinan pada manusia dapat juga terjadi ibu lebih dominan, sehingga dari aturan di atas dapat berubah menjadi sebagai berikut
Anak = induk 2 + alpha (induk 1 – induk 2)
Namun untuk aturan crossver menengah di sini digunakan aturan pertama dengan ayah lebih dominan dari pada ibu.
d. Lakukan mutasi pada P’(generasi).
Mutasi berperan untuk menggantikan gen yang hilang dari populasi akibat proses seleksi yang memungkinkan munculnya kembali gen yang tidak muncul pada inisialisasi populasi. Proses mutasi ditentukan oleh probabiltias mutasi (pm). Probabilitas mutasi (pm) didefinisikan sebagai presentasi dari jumlah total gen pada populasi yang mengalami mutasi. Adapun nilai pm ditetapkan di awal dan tidak mengalamai perubahan.
Salah satu contoh mutasi adalah dengan mengubah gen yang dimutasi dengan bilangan random antara nilai tertinggi dan terendah gen dari kromosom yang dimutasi. (F.Herrera, Lozano, & Vergeday, 1998). Contoh mutasi adalah sebagai berikut :
commit to user Anak = 23.1 8.2 14.5
Dari contoh tersebut gen ke-3 dengan nilai 19.5 terkena mutasi. Nilai mutasi diperoleh dengan membangkitkan bilangan random dari 8.2 (nilai terendah kromosom) sampai 23.1 misalnya diperoleh 14.5, maka nilai 14.5 (nilai tertinggi kromosom) tersebut menggantikan gen yang termutasi tersebut.
e. Lakukan evaluasi fitnesssetiap individu pada P’(generasi).
f. Bentuk populasi baru : P(generasi) = {P(generasi-1) yang survive, P’(generasi)}.
P(generasi-1) yang survive diperoleh dengan proses elitism. Proses
elitism adalah proses penyalinan beberapa kromosom terbaik dari P(Generasi - 1), kemudian dimasukkan pada P(Generasi) untuk menggantikan kromosom pada P’(Generasi) yang buruk. Dimana P’(Generasi) adalah populasi hasil proses crossover dan mutasi.