• Tidak ada hasil yang ditemukan

BAB II TINJAUAN PUSTAKA

2.10 Algoritma Genetika Sederhana

Misalkan P(generasi) adalah populasi dari satu generasi, maka secara sederhana algoritma genetika terdiri dari beberapa langkah-langkah berikut:

1. Generasi=0 (generasi awal).

2. Inisialisasi populasi awal, P(generasi), secara acak.

3. Evaluasi nilai fitness pada setiapindividu dalam P(generasi).

4. Selanjutnya dilakukan langkah-langkah berikut hinggan mencapai maksimum generasi:

a. generasi = generasi + 1 (tambah generasi).

b. seleksi populasi tersebut untuk mendapatkan kandidat induk. c. Lakukan crossover pada P’(generasi).

d. Lakukan mutasi pada P’(generasi)

e. Lakukan evaluasi fitness setiap individu pada P’(generasi). f. Bentuk populasi baru: P(generasi)

2.10.1 Metode Seleksi Dengan Roda Roulette

Seperti telah dijelaskan sebelumnya bahwa seleksi induk pada algoritma genetika sederhana ini menggunakan metode seleksi roda roulette karena metode seleksi inilah yang paling banyak digunakan. Seleksi ini bertujuan untuk memberikan kesempatan reproduksi yang lebih besar bagi anggota populasi yang memiliki fitness tinggi untuk melakukan reproduksi.

Algoritma genetika roda roulette: - Hitng total fitness (F):

Total fitness = Ʃ Fk ; k = 1,2,… popsize - Hitung fitness relatif tiap individu:

Pk = Fk /total fitnees - Hitung fitness komulatif:

q1 = p1

qk= qk-1 + pk; k=2,3,….. (popsize)

- pilih induk yang akan menjadi kandidat untuk di crossover dengan cara:

- Bangkitkan nilai random r.

Jika qk = r dan qk+1 > r, maka pilih kromosom ke (k+1) sebagai kandidat induk.

2.10.2 Crossover (penyilangan)

Crossover (penyilangan) dilakukan atas 2 kromosom untuk menghasilkan kromosom anak. Kromosom anak yang terbentuk akan mearisi sebagian besar sifat krimosom induknya.metode yg sering digunakan pada algoritma genetika sederhana ini adalah crossover satu titik dan crossover dua titik. Pada metode ini,kita pilih sembarang bilangan secara acak untuk menentukan posisi persilangan, kemudian kita tukarkan bagian kanan titik potong dari kedua induk kromosom tersebut untuk menghasilkan kromosom anak.

Apabila posisi titik potong yang terpilih secara acak adalah 3, maka kromosom anak yang terbentuk adalah:

Pada crossover ada satu parameter yang sangat penting yaitu peluang crossover (Pc). Peluang crossover menunjukkan rasio anak yang dihasilkan dalam setiap generasi dengan ukuran populasi. Misalkam ukuran populasi (popsize=100), sedangkan peluang crossover (Pc = 0,25),berarti bahwa diharapkan ada 25 kromosom dari 100 kromosom yang semula pada populasi tersebut akan mengalami crossover.

2.10.3 Mutasi

Mutasi yang digunakan pada algoritma genetika sederhana dengan kromosom biner seperti dijelaskan sebelumnya, pada dasarnya akan mengubah secara acak nilai suatu bit pada posisi tertentu. Kemudian kita mengganti bit 1 dengan bit 0, atau sebaliknya mengganti bit 0 dengan bit 1. Pada mutasi ini sangat dimungkinkan munculnya kromosom baru yang semula belum muncul dalam populasi awal.

Misalkan :

terkena mutasi pada gen ke 5, di peroleh:

Pada mutasi ada satu parameter yang sangat penting yaitu peluang crossover (pm). peluang mutasi menunjukkan presentasi jumlah total gen pada populasi yang akan mengalami mutasi. Untuk melakukan mutasi, terlebih dahulu kita harus menghitung jumlah total gen pada populasi tersebut. Kemudian bangkitkan bilangan random yang menentukan posisi mana yang akan di mutasi.

Secara umum, diagram alir algoritma genetika sederhana seperti terlihat pada gambar 2.23.

Gambar 2.23 Diagram alir algoritma genetika sederhana

2.10 Prosedur Algoritma Genetika

Untuk menggunakan Algoritma genetika, perlu dilakukan prosedur sebagai berikut:

1. Menetapkan parameter optimasi, jumlah parameter optimasi, dan batas dari parameter optimasi

2. Menetapkan fungsi optimasi atau fungsi objektif 3. Menetapkan parameter algoritma genetika.

4. Membangkitkan populasi awal, mengkodekan, nilai real.

5. Mendefinisikan nilai fitness, yang merupakan ukuran baik tidaknya sebuah individu atau baik tidaknya solusi yang didapatkan.

6. Menentukan proses pembangkitan populasi awal. Hal ini biasanya dilakukandengan menggunakan pembangkitan acak seperti random-walk.

7. Menentukan proses seleksi yang akan digunakan.

8. Menentukan proses pindah silang (crossover) dan mutasi gen yang akan digunakan.

2.10.1 Menetapkan parameter optimasi

Menetapkan parameter optimasi, jumlah parameter optimasi, dan batas dari parameter optimasi.

Contoh:

• Parameter optimasi : a. Panjang → X1 b. Lebar → X2

• Jumlah parameter : 2

• Batas parameter : rb ≤ X1 ≤ ra rb ≤ X2 ≤ ra Dimana : ra = Batas atas

rb = Batas bawah

2.10.2 Menetapkan fungsi optimasi atau fungsi objektif

Fungsi objektif boleh menggunakan fungsi yang sudah ada, boleh juga dibuat sendiri. Sebaiknya pahami terlebih dahulu permasalahan kita, barulah pilih fungsi objektif yang cocok. Ada dua bentuk fungsi objektif, yaitu fungsi linear, dan fungsi nonlinear.

Fungsi linear biasanya digunakan pada masalah yang tidak terkendala atau unconstraint. Karena tidak terkendala, solusi yang dihasilkan ada banyak titik sehingga kurang akurat. Sedangkan fungsi nonlinear, biasanya digunakan pada masalah yang terkendala atau constraint. Karena memiliki kendala, solusi yang dihasilkan lebih sedikit sehingga lebih akurat. Beberapa fungsi objektif linear yang sudah ada dan sering digunakan untuk optimasi adalah:

Sphere Function f x = x ……….. 2.5 • Rastrigin Function f x =10n+ xi2-10cos 2πxi $ n i=1 ……….…….. 2.6 • Michalewics Function f x = - sin⁡(xi) 'sin (ixπ )*i2 2m ……….……….(2.7) n i=1

2.10.3 Menetapkan Parameter Algoritma Genetika

Parameter yang dimaksud adalah Jumlah generasi atau keturunan, Jumlah populasi pada setiap generasi, pengkodean panjang kromosom, probabilitas pindah silang (pc), dan probabilitas mutasi (pm). Banyaknya populasi dalam satu generasi, dan banyak generasi adalah tergantung dari yang kita inginkan. Akan tetapi, penentuan parameter ini juga dapat mengikuti aturan dibawah ini:

Tabel 2.3 Tabel perbandingan populasi, pc, dan pm

Masalah Populasi pc pm

Untuk permasalahan yang memiliki

kawasan solusi cukup besar. 50 0,6 0,001 Bila rata-rata fitness setiap generasi

digunakan sebagai indikator. 30 0,95 0,01 Bila fitness dari individu terbaik

dipantau pada setiap generasi. 80 0,45 0,01 Maksimum generasi dan ukuran populasi sebaiknya tidak lebih

kecil dari 30 untuk sembarang jenis permasalahan.

(Sumber: eprints.undip.ac.id/25536/1/ML2F300570.pdf)

Pengkodean panjang kromosom berlaku untuk setiap parameter dengan menggunakan batasnya masing-masing. Jumlahkan untuk mendapatkan panjang kromosom pada satu individu. Pengkodean dilakukan mengikuti aturan:

2-./ < r2− r4 × 106 ≤ 2-.……….. 2.8

2.10.4 Menetapkan populasi awal

Pembangkitan biasanya dilakukan secara acak, dan tersusun atas sederetan bilangan biner (dalam GA disebut bit-bit. Bit merupakan nilai dari sebuah gen) yang disebut kromosom. Kromosom mewakili parameter optimasi, satu kromosom berarti mewakili satu parameter optimasi. Dua parameter optimasi berarti ada dua kromosom. Kromosom yang lebih dari satu akan membentuk individu.

Individu merupakan salah satu solusi yang mungkin. Individu bias dikatakan sama dengan kromosom, yang merupakan kumpulan gen. Gen ini bisa biner, pecahan (float), dan kombinatorial. Beberapa definisi penting yang perlu diperhatikan dalam mendefinisikan individu untuk membangun penyelesaian permasalahan dengan Algoritma genetika adalah sebagai berikut:

1. Genotype (Gen), adalah variable dasar yang membentuk suatu kromosom. Dalam algoritma genetika, gen ini bisa berupa biner, float, integer maupun karakter.

2. Allele, adalah nilai dari suatu gen, bisa berupa biner, float, integer maupun karakter.

3. Kromosom, adalah gabungan dari gen-gen yang membentuk arti tertentu. Ada beberapa macam bentuk kromosom, yaitu:

• Kromosom biner adalah kromosom yang disusun dari gen-gen yang bernilai biner.

• Kromosom float adalah kromosom yang disusun dari gen-gen yang bernilai pecahan, termasuk gen yang bernilai genap.

• Kromosom string adalah kromosom yang disusun dari gen-gen yang bernilai string.

• Kromosom kombinatorial adalah kromosom yang disusun dari gen-gen yang dinilai berdasarkan urutannya.

4. Individu, adalah kumpulan gen, bisa dikatakan sama dengan kromosom. Individu menyatakan salah satu kemungkinan solusi dari suatu permasalahan.

5. Populasi, adalah sekumpulan individu yang akan diproses bersama dalam satu siklus proses evolusi.

6. Generasi, adalah satu satuan siklus proses evolusi atau satu literasi didalam Algoritma genetika.

7. Nilai fitness menyatakan seberapa baik nilai dari suatu individu atau solusi yang didapatkan. Nilai inilah yang dijadikan acuan untuk mencapai nilai optimal.

Gambar 2.24 Visualisasi gen, allele, kromosom, individu, dan populasi pada algoritma genetika

Satu gen biasanya akan mewakili satu variabel. Gen dapat dipresentasikan dalam bentuk bit, bilangan real, daftar aturan, elemen permutasi, elemen program, atau representasi lainnya yang dapat diimplementasikan untuk operator genetika.

1. Mendekodekan

Bilangan biner setiap kromosom didekodekan ke bilangan desimal. Proses ini dapat dilakukan dengan menggunakan perhitungan matematis atau dengan program komputer. Contoh dengan perhitungan matematis: 1010 = (0 x 20) + (1 x 21) + (0 x 22) + (1 x 23) = 0 + 2 + 0 + 8 = 10 10011 = (1 x 20) + (1 x 21) + (0 x 22) + (0 x 23) + (1 x 24) = 1 + 2 + 0 + 0 + 16 = 19

2. Nilai riil

Bilangan desimal setiap kromosom kemudian dicari nilai riil-nya menggunakan rumus:

x9 = r4+ Bil. Desimal × ?2r-2@− r− 1A ……….……… 2.94 Dimana : xk = Nilai riil untuk kromosom k

ra = Batas atas parameter pemilik kromosom k rb = Batas bawah parameter pemilik kromosom k mk = Panjang kromosom k

2.10.5 Menetapkan Nilai fitness

Nilai riil setiap kromosom pada satu individu dimasukkan ke fungsi objektif untuk mendapatkan nilai fitnesss individu.

Contoh:

Fungsi objektif : C DE = DF+ DG

Generasi Populasi Individu Kromosom (Nilai riil) HI

x1 x2

I I I1 0,22 0,33 0,55

I2 0,44 0,55 0,99

2.10.6 Menetapkan Seleksi

Proses ini bertujuan untuk membangkitkan populasi baru. Setiap kromosom/individu pada populasi awal akan diseleksi berdasarkan nilai fitness. Kromosom/individu yang tidak lolos seleksi akan dibuang. Jadi sebenarnya, populasi baru ini adalah kumpulan anggota populasi lama yang lolos seleksi. Ada beberapa jenis metode seleksi yaitu: metode Roulette Wheel, metode Stochastic, metode Ranking, dan metode turnamen. Metode yang paling sering digunakan adalah metode Roulette Wheel. Metode ini dikenal juga dengan metode Monte Carlo. Ada beberapa langkah dalam proses seleksi menggunakan metode Roulette Wheel yaitu:

• Hitung nilai fitness setiap kromosom/individu, f9ataufL.

• Hitung total fitness untuk populasi:

F = fL

NL L

……… 2.10 Dimana: F = Total fitness

JI = Jumlah individu pada satu populasi

• Hitung probabilitas seleksi pI untuk masing-masing individu. PI = fFL………(2.11)

Dimana : pI = Probabilitas seleksi individu I I = 1,2,…,JI

• Hitung probabilitas kumulatif qI untuk masing-masing individu.

qI= pI

JI I=1

………(2.12)

Dimana : qI = Probabilitas kumulatif individu I I = 1,2,…,JI

• Hasilkan sejumlah nilai acak r (0< r <1) untuk setiap individu.

• Jika r ≤ q1, pilih individu I1. Jika tidak, ikuti aturan: TU/ < V ≤ TU dan pilih individu I.

2.10.7 Menentukan Proses Pindah Silang (Crossover)

Pindah silang (crossover) melibatkan dua induk untuk membentuk suatu individu dengan kromosom baru. Pindah silang menghasilkan titik baru dalam ruang pencarian yang siap untuk diuji. Prinsip dari pindah silang ini adalah melakukan pertukaran pada gen-gen yang bersesuaian dari dua induk untuk menghasilkan individu baru yang unggul karena menerima gen-gen baik dari kedua induknya.

Langkah pertama proses pindah silang adalah membangkitkan sejumlah angka acak, rk (0<rk<1), untuk setiap kromosom/individu yang kita miliki. Kemudian tentukan probabilitas pindah silang, Pc (0<Pc<1). Jika rk<Pc, maka kromosom/individu yang diwakilinya akan menjadi induk. Induk-induk yang telah didapatkan kemudian dipindah-silangkan.

Caranya dengan mengambil sebagian dari induk yang satu, dan menukarnya dengan sebagian dari induk yang lainnya.

Dari sekian banyak metode pindah silang yang ada, metode yang paling sering digunakan adalah:

• Pindah silang satu titik (one point crossover)

Mengambil setengah bagian induk yang satu dan menukarnya dengan setengah bagian induk lainnya. Contohnya:

Gambar 2.25 Pindah silang satu titik

(Sumber: lecturer.eepis-its.edu/~entin/Kecerdasan%20Buatan)

• Pindah silang dua titik (two point crossover)

Mengambil sepertiga bagian induk yang satu dan menukarnya dengan sepertiga bagian induk lainnya. Contohnya:

Gambar 2.26 Pindah silang dua titik

(Sumber: lecturer.eepis-its.edu/~entin/Kecerdasan%20Buatan)

2.10.8 Menentukan Proses Mutasi

Proses ini berperan untuk menggantikan gen yang hilang dari populasi akibat proses seleksi yang memungkinkan munculnya gen yang tidak muncul pada pembangkitan populasi. Kromosom anak dimutasi dengan menambahkan nilai acak yang sangat kecil dengan probabilitas yang rendah.

Probabilitas mutasi (pm) didefinisikan sebagai persentasi dari jumlah total gen pada populasi yang mengalami mutasi. Peluang mutasi mengendalikan banyaknya gen baru yang akan dimunculkan untuk dievaluasi. Jika pm terlalu kecil, banyak gen yang mungkin berguna tidak pernah terevaluasi. Jika terlalu besar, akan terlalu banyak gangguan acak, sehingga anak akan kehilangan kemiripan dari induknya.

Untuk melakukan mutasi, pertama kita bangkitkan angka acak rk (0<rk<1), untuk setiap kromosom/individu yang ada. Kemudian tentukan probabilitas mutasi, Pm (0<Pm<1).. Jika rk<Pm, kromosom/individu yang diwakilinya akan dilakukan proses mutasi. Pada proses ini kita akan mengganti/memutasi satu atau lebih bit yang ada pada kromosom terpilih. Untuk mengetahui bit mana yang akan diganti, kita bangkitkan sejumlah angka acak n (1≤n≤total bit pada satu kromosom/individu), untuk setiap kromosom/individu terpilih. Jika bit yang terpilih bernilai 1, kita ganti menjadi 0, dan sebaliknya jika yang terpilih bernilai 0, kita ganti menjadi 1.

2.10.9 Elitism

Proses seleksi dilakukan secara random sehingga tidak ada jaminan bahwa suatu indvidu yang bernilai fitness tertinggi akan selalu terpilih. Walaupun individu bernilai fitness tertinggi terpilih, mungkin saja individu tersebut akan rusak (nilai fitnessnya menurun) karena proses pindah silang. Oleh karena itu, untuk menjaga agar individu bernilai fitness tertinggi tersebut tidak hilang selama evolusi, maka perlu dibuat satu atau beberapa kopinya. Prosedur ini dikenal sebagai elitisme.tetapi didalam optimasi ini elitisme tidak dipakai karena menggunakan algortima genetika standar

2.10.10 Evaluasi Ulang

Sekarang, susun lagi data-data terakhir, yang terdiri dari individu/kromosom yang sudah termutasi dan juga yang tidak ikut termutasi. Kemudian, lakukan lagi prosedur mengubah bilangan biner yang di dapat setelah mutasi sampai mendapatkan nilai fitnessnya. Jika

kita mendapa populasi aw tidak, ulangi solusi yang di 2.11 Algoritma G

Dokumen terkait