• Tidak ada hasil yang ditemukan

7. Penggantian Populasi

3.5. Metode Algoritma Genetika

Pengoptimasian menggunakan Algoritma Genetika dengan prosedur sebagai berikut:

1. Tetapkan persamaan fitness function yang akan dijadikan sebagai persamaan fungsi. Dalam penelitian ini menggunakan 3 fitness function, yakni fitness function untuk VMR, TL, dan Ra.

2. Menentukan panjang kromosom. Panjang kromosom yang dihasilkan adalah sebanyak 22 bit.

3. Menghasilkan populasi awal secarak acak, menggunakan bantuan software MATLAB dengan memasukkan perintah di command window yaitu:

>> Banyak_populasi = 10 ;

>> Jumlah_bit = 22 ;

>> Populasi_awal = fix(2*rand(Banyak_populasi,Jumlah_bit)) 4. Evaluasi nilai fitness kromosom, dilakukan dengan langkah berikut:

Tabel 3.4 Prosedur evaluasi Prosedur: Evaluasi

Step 1

Konversikan genotype kromosom menjadi phenotype. Dengan kata lain, string yang merupakan untaian bit-bit bineer diubah menjadi nilai-nilai relatif, xk = (vk, fk,ak), k = 1,2,....,pop_size.

Step 2 Evaluasi fungsi objektif f(xk)

Step 3

Konversikan nilai fungsi objektif ke dalam fitness. Untuk permasalahan maksimasi, fitness secara sederhana sama dengan nilai dari fungsi objektif, eval(v1) = f(xk), k = 1,2,....,pop_size.

5. Seleksi, dilakukan dengan mengadopsikan pendekatan roda roulette, sebagai berikut:

a. Hitung nilai fitness eval(vk) untuk masing-masing kromosom vk : Eval(v1) = f(xk), k = 1,2,....,pop_size ... (3.2) b. Hitung total fitness untuk populasi:

F = ... (3.3) c. Hitung probabilitas seleksi pk untuk masing-masing kromosom,

vk : pk = , k = 1,2,...,pop_size ... (3.4) d. Hitung probabilitas kumulatif qk untuk masing-masing kromosom vk :

qk = , k = 1,2,....,pop_size ... (3.5) Proses seleksi dimulai dengan memutar roda roulette sebanyak pop_size kali. Pada masing-masing waktu, sebuah kromosom tunggal dipilih untuk sebuah populasi yang baru, dengan cara sebagai berikut:

Tabel 3.5 Prosedur seleksi

Untuk menghasilkan bilangan acak r, digunakan bantuan software MATLAB dengan perintah berikut: >> rand(1,10)

6. Crossover, yang digunakan didalam penelitian ini adalah dengan menggunakan pendekatan one-cut-point dan menukarkan bagian kanan dari kedua parent untuk menghasilkan offspring.

Probabilitas crossover dapat kita atur sebagai pc = 0,25, ini bermaksud kita berharap bahwa pada rata-rata 25%, kromosom-kromosom akan melalui crossover. Crossover dapat dilakukan dengan prosedur sebagai berikut:

- pilih vk sebagai parent untuk crossover - end

- k k + 1 - end

- end

7. Mutasi, berarti mengubah satu atau lebih gen-gen dengan suatu probabilitas yang setara dengan mutation rate. Probabilitas mutasi diatur sebagai pm = 0,01, artinya, pada rata-rata 1% dari total bit dalam populasi akan melalui mutasi. Ada m x pop_size = 22 x 10 = 220 bit di dalam keseluruhan populasi. Maka kita harapkan ada sekitar 2,2 mutasi pergenerasi, dimana setiap bit-bit mempunyai kesempatan yang sama untuk dimutasikan. Untuk itu, kita perlukan sebarisan sebarang nilai acak rk, k = 1,2,3,....,220 dengan kisaran nilai [0,1]. Mutasi dapat dilakukan jika memenuhi syarat (rk < pm), dimana rk adalah nilai yang dibangkitkan

secara acak dengan menggunakan perintah matlab berikut: >> rand (1,220).

Setelah mutasi dilakukan, maka populasi akhir yang dihasilkan akan dijadikan sebagai populasi awal untuk generasi (iterasi) kedua dan begitu juga untuk seterusnya. Untuk melanjutkan iterasi ini, maka akan diproses lanjut menggunakan bantuan software MATLAB

3.6. Algoritma Genetika dalam MATLAB

Untuk melanjutkan pengoptimasian, maka digunakan bantuan Software MATLAB dengan langkah sebagai berikut:

1. Memasukkan fitness function ke dalam editor MATLAB.

Gambar 3.2 Fitness function pada editor

2. Simpan editor dengan nama “butar” dan akan tersimpan di current folder m-file dengan nama “butar.m”.

Gambar 3.3 m-file dalam current folder

3. Buka alat optimization tool dengan perintah “optimtool” di dalam command window.

Gambar 3.4 Perintah optimtool dalam command window

Gambar 3.5 Tampilan optimization tool

4. Pada jendela Problem Setup dan Results, pilih gamultobj – Multiobjective optimization using Genetic Algorithm dibagian solver nya. Ada dua pilihan untuk metode algoritma genetika, yakni: ga – Genetic Algoritm dipilih apabila menggunakan satu fungsi objektif dan gamultobj – Multiobjective optimization using Genetic Algorithm dipilih apabila menggunakan lebih dari satu fungsi objektif. Pengoptimasian ini menggunakan 3 fungsi obejektif sehingga yang dipilih adalah gamultobj – Multiobjective optimization using Genetic Algorithm. Kemudian masukkan fitness function dengan nama @butar dan jumlah variabel dengan jumlah 3. Lalu isi kolom bounds dengan batasan bawah [80 0.1 1] dan batasan atas [95 0.2 2].

Gambar 3.6 Jendela Problem Setup and Results 5. Jendela options

a. Population

- Population type: Menentukan tipe masukan untuk fitness function.

- Double vector: Gunakan pilihan ini apabila individu didalam populasi memiliki tipe ganda. Ini merupakan pilihan standar. Tipe ganda artinya individu didalam populasi memiliki komponen 0 dan 1.

- Bit string: Gunakan pilihan ini apabila individu didalam populasi memiliki komponen 0 atau 1. Pilihan ini mengabaikan semua batasan permasalahan, mencakup batasan (boundary).

- Population size: Menentukan jumlah individu pada setiap generasi. Jika ukuran populasi terlalu kecil, algoritma genetika akan cepat konvergen disebabkan rendahnya variasi pada individu-individu dalam populasi.

Tetapi ukuran populasi yang terlalu besar akan menyebabkan proses algortima menjadi lambat dan dapat membuat performansi algoritma genetika menurun.

- Default: Jumlah individu pada setiap generasi adalah 50 individu.

Gunakan pilihan ini apabila memiliki jumlah variabel lebih kecil sama dengan 5 variabel.

- Creation function: Menentukan fungsi yang akan menghasilkan populasi awal.

- Uniform: Menghasilkan populasi awal secara acak dengan distribusi seragam. Ini merupakan pilihan standar ketika tidak ada permasalahan linear.

- Feasible population: Ini adalah pilihan standar ketika adalah permasalahan linear. Menghasilkan populasi awal secara acak yang akan memenuhi semua batasan dan permasalahan linear. Pilihan ini mengabaikan initial range.

- Nonlinear feasible population: Adalah pilihan standar untuk permasalahan nonlinear.

- Initial population: Menentukan populasi awal pada algoritma genetika.

Pilihan standar adalah array kosong yakni []. Jika menggunakan array berisi, array tidak boleh melebihi ukuran baris populasi dan jumlah kolom variabel. Jika kita menggunakan pilihan ini maka creation function akan membangkitkan individu yang tersisa.

- Intial scores: Menentukan skor untuk populasi awal.

- Initial range: Menentukan jarak vektor didalam populasi yang dihasilkan apabila menggunakan creation function uniform. Feasible population mengabaikan initial range.

Gambar 3.7 Population options

b. Selection

- Selection function: Menentukan bagaimana algoritma genetika memilih orangtua untuk generasi berikutnya.

- Tournament: Memilih orangtua dengan memilih ukuran turnamen secara acak dan kemudian memilih individu terbaik dari orangtua tersebut.

Ukuran turnamen minimal 2. Nilai standar yang digunakan adalah 2.

Gambar 3.8 Selection options

c. Reproduction: Menentukan bagaimana algoritma genetika menghasilkan anak untuk generasi berikutnya. Umumnya crossover fraction bernilai antara 0,6 sampai 0,9. Nilai standar yang digunakan adalah 0,8.

Gambar 3.9 Reproduction options d. Mutation

- Mutation function: Menentukan bagaimana algoritma genetika membuat pergantian kecil secara acak pada individu didalam populasi untuk menghasilkan anak hasil mutasi.

- Gaussian: Merupakan pilihan standar untuk permasalahan tanpa batasan.

- Uniform: Mutasi uniform memiliki proses 2 tahap. Pertama, algoritma genetika memilih fraksi pada vektor entri pada individu untuk mutasi, dimana setiap entri memiliki laju peluang untuk mengalami mutasi. Nilai standar laju mutasi adalah 0,01. Kedua, algoritma genetika menggantikan setiap entri yang terpilih secara acak secara seragam. Jangan gunakan uniform jika permasalahan memiliki batasan dan permasalahan linear.

- Adaptive feasible: Merupakan pilihan standar ketika ada batasan permasalahan, secara acak menghasilkan arah yang adaptif bergantung pada generasi akhir yang berhasil maupun tidak. Ini memilih arah dan langkap yang panjang yang akan memenuhi batasan dan permasalahan linear.

Gambar 3.10 Mutation options e. Crossover

- Crossover function: Menentukan bagaimana algoritma genetika mengkombinasikan dua indvidu atau orangtua, menghasilkan anak untuk generasi berikutnya.

- Scattered: Merupakan pilihan standar untuk permasalahan tanpa kendala linear. Menghasilkan vektor biner secara acak. Dan memilih gen dari orangtua pertama jika vektor biner bernilai 1 kemudian memilih gen dari orangtua kedua jika vektor biner bernilai 0. Jangan gunakan scattered ketika ada permasalahan linear.

Contoh: p1 = [a b c d e f g h]

p2 = [1 2 3 4 5 6 7 8]

Vektor biner = [1 1 0 0 1 0 0 0]

Anak = [a b 3 4 e 6 7 8]

- Single point: Memilih secara acak satu titik crossover antara 1 dan jumlah gen dalam individu. Jangan gunakan scattered ketika ada permasalahan linear.

Contoh: p1 = [a b c d e f g h]

P2 = [1 2 3 4 5 6 7 8]

Titik crossover adalah 3.

Anak = [a b c 4 5 6 7 8]

- Two point: Memilih dua titik crossover secara acak antara 1 dan jumlah gen dalam individu. Jangan gunakan scattered ketika ada permasalahan linear.

Contoh: p1 = [a b c d e f g h]

P2 = [1 2 3 4 5 6 7 8]

Titik crossover adalah 3 dan 6.

Anak = [a b c 4 5 6 g h]

- Intermediate: Merupakan pilihan standar ketika memiliki permasalahan linear. Menghasilkan anak dengan mengambil orangtua dari rata-rata yang baik. Ini dapat ditentukan dengan sebuah parameter yakni rasio. Ini menghasilkan anak dari orangtua pertama dan orangtua kedua dengan rumus:

anak = orangtua 1 + rand * rasio * (orangtua 1 – orangtua 2)

- Heuristic: Mengembalikan anak yang diletakkan pada garis yang berisi kedua orangtua. Jarak yang kecil dari orangtua dengan nilai fitnes yang lebih baik pada arah berlawanan dari orangtua dengan nilai fitnes yang buruk. Disini dapat ditentukan seberapa jauh anak dari orangtua yang baik dengan parameter rasio, dimana akan kelihatan ketika memilih heuristic.

Nilai standar rasio adalah 1,2. Jika orangtua 1 dan orangtua 2 adalah sebagai orangtua, dan orangtua 1 memiliki nilai fitnses yang lebih baik, fungsi ini akan mengembalikan si anak.

anak = orangtua 2 + R * (orangtua 1 – orangtua 2);

- Arithmetic: Menghasilkan anak yang merupakan rata-rata aritmatika dari kedua orangtua. Anak selalu memenuhi permasalahan linear dan batasan.

Gambar 3.11 Crossover options

f. Migration: Menentukan bagaimana individu berpindah diantara subpopulasi.

Dimana subpopulasi mengacu kepada bentuk proses paralel untuk algoritma genetika. Didalam subpopulasi, setiap pekerja menampung sejumlah individu.

Individu ini merupakan sebuah subpopulasi. Migrasi terjadi jika Anda mengatur Ukuran populasi menjadi vektor dengan panjang lebih besar dari 1.

Ketika migrasi terjadi, individu terbaik dari sebuah populasi menggantikan inidividu terburuk pada subpopulasi yang lainnya. Individu yang bermigrasi dari sebuah subpopulasi tidaklah hilang dari subpopulasi asalnya melainkan digandakan.

- Forward: Migrasi terjadi pada subpopulasi terakhir. Subpopulasi pada urutan ke- n bermigrasi kepada subpopulasi pada urutan ke- n+1.

- Both: Subpopulasi pada urutan ke- n bermigrasi kepada subpopulasi pada urutan ke- n-1 dan juga ke- n+1.

- Interval: Menentukan berapa banyak generasi yang melalui migrasi.

Misalnya, jika kita menetapkan interval menjadi 20, maka migrasi terjadi di setiap 20 generasi.

- Fraction: Menentukan berapa banyak individu berpindah diantara subpopulasi. Misalnya, jika individu bermigrasi dari subpopulasi 50 individu menjadi subpopulasi 100 individu dan Fraksi yang ditetapkan 0,1, maka jumlah individu yang bermigrasi adalah 0,1 x 50 = 5.

Gambar 3.12 Migration options g. Multiobjective problem settings

- Pareto font population fraction: Mengatur fraksi individu untuk tetap berada di pareto front pertama sementara solver memilih individu dari front yang lebih besar. Pilihan ini berskalar antara 0 dan 1.

- Distance measure function: Menentukan fungsi menghitung jarak individu, dihitung dalam ruang variabel (genotype juga disebut ruang variabel) atau dalam ruang fungsi (phenotype). Pengaturan ini mengukur kerumunan setiap individu dalam suatu populasi.

Gambar 3.13 Multiobjective problem settings options h. Hybrid function

- Hybrid function: Merupakan fungsi minimisasi lain yang bekerja setelah algoritma genetika berakhir.

Gambar 3.14 Hybrid function options

i. Stopping criteria: Menentukan bagaimana proses algoritma genetika berhenti.

- Generations: Menentukan jumlah iterasi maksimum pada performansi algoritma genetika. Nilai standar 100.

- Time limit: Menentukan waktu maksimum dalam detik ketika algoritma genetika bekerja sampai berhenti. Batas ini diberlakukan setelah setiap iterasi, sehingga algoritma genetika bisa melampaui batas ketika iterasi membutuhkan waktu yang cukup lama.

- Fitness limit: Algoritma genetika berhenti jika nilai fitnes terbaik.

Algoritma berhenti jika nilai fitnes terbaik kurang dari atau sama dengan nilai batas fitness. Tidak berlaku untuk gamultiobj.

- Stall generations: Algoritma genetika berhenti jika rata-rata relatif berganti didalam fungsi dengan nilai fitnes terbaik melebihi stall generations yakni lebih kecil atau sama dengan function tolerance.

- Stall time limit: Algoritma genetika berhenti jika ada kemajuan didalam nilai fitnes terbaik pada interval waktu dalam detik.

- Function tolerance: Algoritma genetika berhenti jika rata-rata relatif berganti didalam fungsi dengan nilai fitnes terbaik melebihi stall generations yakni lebih kecil atau sama dengan function tolerance.

- Constraint tolerance: Tidak digunakan sebagai stopping criteria.

Digunakan untuk menentukan kelayakan sehubungan dengan kendala nonlinear juga linear.

Gambar 3.15 Stopping criteria options

6. Kemudian klik start pada jendela problem setup and results untuk memulai pengoptimasian. Ini akan menghasilkan tabel nilai optimum ketiga fitness function (VMR, TL, dan Ra) dan ketiga variabel x (v,f, dan a) dan grafik dari pengoptimasian.

7. Simpan grafik dan tabel nilai optimum yang dihasilkan supaya hasilnya tidak hilang. Apabila terlanjur keluar dari MATLAB dan tidak menyimpan hasil optimasi, maka harus mengulangi lagi dari awal dan hasil optimasi yang dihasilkan akan selalu berbeda akan tetapi masih tetap hasil optimum yang dihasilkan dikarenakan algoritma genetika menggunakan prinsip random didalam pengerjaannya. Grafik yang sudah disimpan masuk ke dalam current folder sementara tabel nilai optimum hasil pengoptimasian masuk ke dalam workspace. Akan tetapi tabel nilai optimum hasil pengoptimasian harus disimpan kedalam current folder supaya tidak hilang apabila MATLAB dikeluarkan dengan mengklik save workspace pada home.

Gambar 3.16 Hasil optimasi yang disimpan

BAB IV

Dokumen terkait