PENERAPAN ALGORITMA GENETIKA UNTUK OPTIMASI FUNGSI LINIER
OLEH : SUPRIYANTO G651090191
Dosen : Dr. Ir. Yandra Arkeman, M.Sc
MEI 2010
DEPARTEMEN ILMU KOMPUTER SEKOLAH PASCASARJANA INSTITUT PERTANIAN BOGOR BOGOR
Print document
In order to print this document from Scribd, you'll first need to download it. Cancel
Download And Print
Kepunyaan Allah-lah apa yang di langit dan apa yang di bumi, dan adalah ( pengetahuan) Allah Maha meliputi segala sesuatu. ( QS 4 : 126)
Dan sesungguhnya sesungguhnya telah Kami pilih mereka dengan pengetahuan (Kami) atas bangsa-bangsa bangsa-bangsa (QS 44 : 32 )
Print document
In order to print this document from Scribd, you'll KATA PENGANTAR first need to download it. Cancel
Download And Print
Puji syukur kehadirat Allah SWT yang dengan Rahmat dan Karunianya, maka penulis dapat menyelesaikan tugas Algoritma Genetika. Topik yang diangkat pada tulisan ini adalah tentang optimasi fungsi linier li nier dengan menggunakan Algoritma Genetika. Patut disadari bahwa dalam penulisan makalah ini tidak lepas dari kesalahan dan kekurangan. Penulis mengharapkan masukan masukan dan kritikan demi perbaikan di kemudian hari.
Bogor, Mei 2010
Penulis
Print document
In order to print this document from Scribd, you'll DAFTAR ISI first need to download it. Cancel
BAB I.
Download And Print
Halaman
PENDAHULUAN........................................... ................................................................. ............................................ ..................................... ...............1 A. Latar Belakang ........................................... ................................................................. ........................................... ....................................... ..................1 B. Perumusan Masalah .......................................... ................................................................ ............................................ ................................ .......... 2 C. Tujuan ......................................... .............................................................. ............................................ ............................................. ................................ .......... 2
BAB II. TINJUAN PUSTAKA................................................ ...................................................................... ............................................ .......................... ....3 A. Terminologi Knowledge .......................................... ................................................................. ............................................ ........................ ... 3 B. Komponen-Komponen Komponen-Komponen Utama Algoritme Genetika ............................................... ............................................... 5 1. Teknik Pengkodean Pengkodean .......................................... ............................................................... ........................................... ............................. .......5 2. Membangkitkan Populasi Awal ......................................... ............................................................... ................................ .......... 5 3. Seleksi ........................................... ................................................................. ............................................ ............................................ ......................... ... 6 4. Crossover........................................... ................................................................. ............................................ ........................................... ..................... 7 5. Mutasi ............................................ .................................................................. ............................................ ............................................ ......................... ... 8 2.
Persamaan Linier........................................ Linier.............................................................. ........................................... ..................................... ................10
BAB III. HASIL DAN PEMBAHASAN ...................................... ............................................................ .......................................... ....................11 A. Perancangan Aplikasi............................................... ..................................................................... ............................................ ........................ 11 B. Perangkat Lunak ........................................... ................................................................. ............................................ .................................. ............ 12 C. Mekanisme Algoritma Genetika Untuk Optimasi Fungsi Linier .......................... .......................... 12 1. Pembentukan Kromosom ............................................ .................................................................. ..................................... ............... 12 2. Inisiasi Masalah dan Pembantukan Kromosom ............................................... ............................................... 13 3. Seleksi Kromosom ........................................... ................................................................ ........................................... ........................... ..... 14 4. Proses Penyilangan................................... ......................................................... ............................................ .................................. ............15 5. Proses Mutasi ........................................... ................................................................. ............................................ .................................. ............ 16 6. Proses Seleksi.......................................................... ................................................................................ ......................................... ...................17
Print document
In order to print this document from Scribd, you'll first need to download it.
D. Hasil Running Program ......................... ................................................ ............................................. ......................................... ................... 17 BAB IV. KESIMPULAN ............................................ .................................................................. ........................................... ...................................... .................18 Cancel Download And Print
Print document
In order to print this document from Scribd, you'll first need DAFTAR to download it. TABEL Cancel
Download And Print
Tabel 3.1. Inisiasi Populasi Awal ............................................ ................................................................. ........................................... ........................... ..... 13 Tabel 3.2. Kromosom Hasil Penyilangan Pada Generasi ke-200 .................................... ............................................ ........ 16 Tabel 3.3. Kromosom Hasil Mutasi Pada Generasi ke-200 .......................................... ..................................................... ........... 16
Print document
In order to print this document from Scribd, you'll DAFTAR first need to download it. GAMBAR Cancel
Download And Print
Gambar 2.1. Diagram alir proses crossover ........................................... .................................................................. ..................................... ..............8 Gambar 2.2. Diagram alir proses mutasi ...................................................... ............................................................................. .............................. ....... 9 Gambar 2.3. Proses dan hasil mutasi .......................................... ................................................................. ............................................ ....................... .. 10 Gambar 2.1. Diagram Alir Rancangan Aplikasi Algoritma Genetika Untuk Optimisasi Persamaan Linier ............................................ .................................................................. ............................................ ............................... ......... 11
Print document In order to print this document from Scribd, you'll first need to download it.
BAB I. PENDAHULUAN Cancel
Download And Print
A. Latar Belakang
Algoritma Genetika adalah salah satu pendekatan untuk menentukan global optimum yang didasari oleh Teori Darwin. Secara garis besar langkah dalam prosedur ini dimulai dengan menetapkan suatu set solusi potensial dan melakukan perubahan dengan beberapa iterasi dengan algoritma genetika untuk mencapat solusi terbaik. Set solusi potensial ini ditetapkan diawal dan disebut dengan kromosom. Kromosom ini dibentuk secara random berupa susunan angka binary yang di-generate dan dipilih. Keseluruhan set dari kromosom yang diobservasi mewakili suatu populasi. Kemudian, kromosom-kromosom tersebut akan berevolusi dalam beberapa tahap iterasi yang disebut dengan generasi. Generasi baru ( offsprings) digenerate dengan teknik kawin silang ( crossover ) dan mutasi (mutation). Cross over meliputi pemecahan ( splitting)
dua
kromosom
dan
kemudian
mengkombinasikan setengah bagian dari masing-masing kromosom dengan pasangan-pasangan
lainnya.
Sedangkan
mutasi
meliputi
penggantian
(flipping) satu bit (bagian) dari kromosom dengan satu bagian lain dari kromo-som lain yang menjadi pasangannya. Kromosom-kromosom ini selanjutnya berevolusi dengan suatu kriteria kesesuaian ( fitness) yang ditetapkan dan hasil terbaik akan dipilih sementara yang lainnya diabaikan. Selanjutnya,
proses
dilakukan
berulang-ulang
sampai
dengan
suatu
kromosom yang mempunyai kesesuaian terbaik ( best fitness) akan diambil sebagai solusi terbaik dari permasalahan. permasalahan. Keunggulan dari algoritma genetika adalah berproses sangat baik untuk global optimization khususnya bilamana fungsi objektif adalah diskontinu atau mempunyai beberapa local minima.
Print document In order to print this document from Scribd, you'll first need to download it.
B. Perumusan Masalah
Optimasi fungsi Cancel linier umumnya diselesaikan Download And Print dengan menggunakan penyelesaian metode linier. Akan dicoba penyelesaian program linier dengan menggunakan aplikasi algoritma genetika. Persamaan linier yang akan dicari nilai optimumnya adalah sebagai berikut :
Fungsi f(x1,x2,x3) =
x1-x2-x3 x1-2x2-x3
x2>5 x2<=5
C. Tujuan
Tujuan dari penulisan ini adalah Mengaplikasikan Algoritma genetika pada permasalahan optimasi fungsi linier.
Print document
In order to print this document from Scribd, you'll first need to download it.
BAB II. TINJUAN PUSTAKA Cancel
Download And Print
A. Terminologi Knowledge Sejak algortima genetika (AG) pertama kali dirintis oleh John Holland dari Universitas Michigan pada tahun 1960-an, AG telah diaplikasikan secara luas pada berbagai bidang. AG banyak digunakan untuk memecahkan masalah optimasi, walaupun pada kenyataannya juga memiliki kemampuan yang baik untuk masalah- masalah selain optimasi. John Holland menyatakan bahwa setiap masalah yang berbentuk adaptasi (alami maupun buatan) dapat diformulasikan dalam terminologi genetika. Algoritma genetika adalah simulasi dari proses evolusi Darwin dan operasi genetika atas kromosom. Pada algoritma genetika, teknik pencarian dilakukan sekaligus atas sejumlah solusi yang mungkin dikenal dengan istilah populasi. Individu yang terdapat dalam satu populasi disebut dengan istilah kromosom. Kromosom ini merupakan suatu solusi yang masih berbentuk simbol. Populasi awal dibangun secara acak, sedangkan populasi berikutnya merupakan hasil evolusi kromosom-kromosom melalui iterasi yang disebut dengan generasi. Pada setiap generasi, kromosom akan melalui proses evaluasi dengan menggunakan alat ukur yang disebut dengan fungsi fitness. Nilai fitness dari suatu kromosom akan menunjukkan kualitas dari kromosom dalam populasi tersebut. Generasi berikutnya dikenal dengan istilah anak ( offspring) terbentuk dari gabungan dua kromosom generasi sekarang yang bertindak sebagai induk (parent) dengan menggunakan operator penyilangan ( crossover ). ). Selain operator penyilangan, suatu kromosom dapat juga dimodifikasi dengan menggunakan operator mutasi. Populasi generasi yang baru dibentuk dengan cara menyeleksi nilai fitness dari kromosom induk ( parent ) dan nilai fitness dari kromosom anak ( offspring), serta menolak kromosom-kromosom yang lainnya sehingga ukuran populasi (jumlah kromosom dalam suatu populasi) konstan. Setelah melalui beberapa generasi, maka algoritma ini akan konvergen ke kromosom terbaik.
Print document
In order to print this document from Scribd, you'll first need to download it.
Ada tiga keunggulan dari aplikasi Algoritma Genetika dalam proses optimasi, yaitu: (a) Algoritma Genetika tidak terlalu banyak memerlukan persyaratan matematika dalam penyelesaian proses optimasi. Algoritma Genetika dapat Cancel Download And Printdiaplikasikan pada beberapa jenis fungsi obyektif dengan beberapa fungsi pembatas baik berbentuk linier maupun non-linier; (b) Operasi evolusi dari Algoritma Genetika sangat efektif untuk mengobservasi posisi global secara acak; dan (c) Algoritma Genetika mempunyai fleksibilitas untuk diimplementasikan secara efisien pada problematika tertentu. Algoritma genetika sangat tepat jika digunakan untuk menyelesaikan masalah optimasi yang kompleks dan sukar diselesaikan dengan menggunakan metode konvensional. Sebagaimana halnya proses evolusi di alam, suatu algoritma genetika yang sederhana umumnya terdiri dari tiga operasi, yaitu: operasi reproduksi, operasi crossover (persilangan), dan operasi mutasi. Struktur umum dari suatu algoritma genetika terdiri dari langkah-langkah: langkah-langkah: a. Membangkitkan populasi awal secara acak. b. Membentuk generasi baru dengan menggunakan tiga operasi di atas secara berulangulang sehingga diperoleh kromosom yang cukup untuk membentuk generasi baru sebagai representasi dari solusi baru. c. Evolusi solusi yang akan mengevaluasi setiap populasi dengan menghitung nilai fitness setiap kromosom hingga kriteria berhenti terpenuhi. Bila kriteria berhenti
belum terpenuhi, maka akan dibentuk lagi generasi baru dengan mengulangi langkah d. Beberapa kriteria berhenti yang umum digunakan ialah:
Berhenti pada generasi tertentu.
Berhenti setelah dalam beberapa generasi berturut-turut didapatkan nilai fitness tertinggi/terendah (tergantung persoalah) tidak berubah.
Berhenti bila dalam n generasi berikutnya tidak diperoleh nilai fitness yang lebih tinggi/rendah.
Print document
In order to print this document from Scribd, you'll first need to download it.
B. Komponen-Komponen Utama Algoritme Genetika 1. Teknik Pengkodean
Download And Print
Cancel
Teknik pengkodean adalah bagaimana mengkodekan gen dari kromosom. Satu gen biasanya merepresentasikan merepresentasikan satu variabel. Gen dapat diwakili dalam bentuk : bilangan real, bit, daftar aturan, elemen elemen permutasi, elemen program, atau representasi lainya lainya
yang dapat diimplementasikan untuk operator genetika. Teknik pengkodean ini tergantung pada pemecahan masalah yang dihadapi. Misalnya, pengkodean secara langsung bilangan real atau integer . Oleh karena itu, kromosom dapat direpresentasikan sebagai : String bit
: 11001, 10111
Array bilangan real
: 7.9, 9.7, -70
Elemen permutasi
: E5, E8, E11
Daftar aturan
: R1, R2, R3
Elemen program
: pemrograman genetika
2. Membangkitkan Populasi Awal Pembentukan inisialisasi populasi adalah proses pembentukkan sejumlah individu secara acak atau melalui prosedur tertentu. Ukuran suatu populasi tergantung pada masalah yang akan dan diselesaikan serta jenis operator genetika yang akan diterapkan di dalam algoritme genetika. Jika ukuran populasi telah ditentukan, maka dilakukan generate inisialisasi populasi. Persyaratan dalam pemenuhan solusi harus diperhatikan dalam generate setiap individu. Teknik untuk pembangkitan populasi awal ada beberapa metode, yaitu: a.
Random Generator Random generator adalah suatu proses pembangkitan bilangan acak untuk nilai setiap gen sesuai dengan representasi kromosom yang digunakan. Jika menggunakan bilangan biner, maka salah satu contoh penggunaan random generator adalah menggunakan rumus berikut ini untuk pembangkitan populasi awal :
( ( )
Print document In order to print this document from Scribd, you'll first need to download it.
dengan IPOP merupakan gen yang nantinya berisi pembulatan dari bilangan acak yang dibangkitkan sebanyak
Cancel dalam tiap kromosom).
b.
(jumlah populasi) dan (jumlah gen
Download And Print
Pendekatan Tertentu Teknik ini adalah memasukan nilai tertentu ke dalam gen dari populasi awal yang dibentuk.
c.
Permutasi Gen Salah satu teknik permutasi gen dalam pembangkitan populasi awal adalah penggunaan permutasi Josephus dalam permasalahan kombinatorial.
3. Seleksi Seleksi digunakan untuk memilih individu-individu mana saja yang akan dipilih untuk proses crossover dan mutasi. Selain itu, untuk mendapatkan calon induk yang baik. “Induk yang baik akan menghasilkan keturunan yang baik”. Semakin tinggi nilai fitness suatu individu semakin besar kemungkinannya untuk dipilih.
Langkah pertama yang dilakukan dalam seleksi ini adalah pencarian nilai fitness. Nilai fitness ini nantinya akan digunakan pada tahap-tahap seleksi berikutnya. Masing-masing individu dalam wadah seleksi akan menerima probabiltas reproduksi yang tergantung pada nilai objektif dirinya sendiri terhadap nilai objektif dari semua individu dalam wadah seleksi tersebut. Ada beberapa metode seleksi, yaitu : a. Seleksi dengan mesin Roulette Metode seleksi dengan mesin roulette adalah metode sederhana dan sering dikenal dengan nama stochatic sampling with replacement . Cara kerja metode ini sebagai berikut : 1) Hitung nilai fitness dari masing-masing individu 2) Hitung nilai total nilai fitness semua individu 3) Hitung probabilitas masing-masing individu 4) Dari probabilitas tersebut, hitung jatah masing-masing individu pada angka 1 sampai 200 5) Lakukan pembangkitan bilangan acak antara 1 sampai 200
Print document In order to print this document from Scribd, you'll first need to download it.
6) Bila langkah 5 selesai, tentukan individu mana yang terpilih dalam proses diseleksi Cancel
b. Seleksi dengan Turnamen
Download And Print
Pada metode seleksi dengan turnamen, ditentukan suatu nilai tour untuk individuindividu yang dipilih secara acak dari suatu populasi. Individu yang terbaik dalam kelompok ini akan diseleksi sebagai induk. Sedangkan parameter yang digunakan pada metode ini adalah ukuran tour yang bernilai antara 2 sampai N (jumlah individu dalam suatu populasi). Berikut ini ilustrasi seleksi dengan mesin Roulete : Individu 1 : fitness = 25%
Jatah untuk individu 1 : 1 - 40
Individu 2 : fitness = 10%
Jatah untuk individu 2 : 41 - 80
Individu 3 : fitness = 35%
Jatah untuk individu 3 : 81 - 120
Individu 4 : fitness = 20%
Jatah untuk individu 4 : 121 - 160
Individu 5 : fitness = 40%
Jatah untuk individu 5 : 161 - 200
Individu yang terpilih Bilangan acak 170 Individu 5 Bilangan acak 117 Individu 3
Dibangkitkan bilangan acak antara 1
Bilangan acak 93 Individu 3
sampai 200 sebanyak 5 kali
Bilangan acak 193 Individu 5 Bilangan acak 40 Individu 1
4. Crossover Kawin silang (Crossover ) adalah operator dari algoritme genetika yang melibatkan dua induk untuk membentuk kromosom baru. Crossover menghasilkan titik baru dalam ruang pencarian yang siap diuji. Operasi ini tidak selalu dilakukan pada semua individu yang ada. Individu dipilih secara acak untuk dilakukan penyilangan dengan
Print document
In order to print this document from Scribd, you'll first need to download it.
antara 0,6 sampai 0,95. Jika crossover tidak dilakukan, maka nilai dari induk akan
diturunkan kepada anak (keturunan). Prinsip dari crossover adalah operasi genetika (pertukaran, aritmatika) Cancel melakukan Download And Print pada gen-gen yang bersesuaian dari dua induk untuk menghasilkan individu baru. Para crossover dilakukan pada setiap individu dengan probabilitas crossover yang telah ditentukan. Pada Gambar 2.1, diilustrasikan diagram alir penggunaan probabilitas crossover pada proses crossover .
Induk 1 Induk 2
P = random[0,1]
P < probCO tidak ya Crossover
Gambar 2.1. Diagram alir proses crossover
5. Mutasi Operator ini berperan untuk menggantikan gen yang hilang dari populasi akibat proses seleksi yang memungkinkan munculnya kembali gen yang tidak muncul pada inisialisasi populasi. Kromosom anak dimulai dengan menambahkan nilai random yang sangat kecil dengan probabilitas yang rendah. Peluang mutasi ( didefinisikan sebagai persentase dari jumlah total gen pada populasi yang mengalami mutasi. Peluang mutasi mengendalikan banyaknya gen baru yang akan dimunculkan untuk dievaluasi. Jika peluang mutasi terlalu kecil, banyak gen yang mungkin berguna tidak
Print document In order to print this document from Scribd, you'll first need to download it.
pernah dievaluasi. Tetapi jika peluang mutasi terlalu besar, maka akan terlalu banyak gangguan acak, sehingga anak akan kehilangan kemiripan dari induknya dan algoritme kehilangan kemampuan untuk belajarAnd danPrint melakukan pencarian. Ada yang Cancel Download berpendapat bahwa laju mutasi sebesar
akan memberikan hasil cukup baik. Ada
juga yang berpendapat bahwa laju mutasi tidak tergantung pada ukuran populasi. Kromosom hasil mutasi harus diperiksa, apakah masih berada pada domain solusi, dan bila perlu dapat dilakukan perbaikan. Pada Gambar 2.2, diilustrasikan diagram alir penggunaan mutasi pada proses mutasi. Proses yang diilustrasikan tersebut adalah cara mudah untuk melakukan mutasi. Proses mutasi yang dilakukan tidak harus seperti pada tersebut, tapi bisa dengan melakukan mutasi pada gen sebanyak (probabilitas mutasi * jumlah gen), dimana posisi gen yang akan dilakukan mutasi dipilih secara acak.
Induk 1 Induk 2
P = random[0,1]
P < probMut tidak ya r = random
Gen (r) dimutasi
Gambar 1 Diagram alir proses mutasi
Mutasi biner merupakan salah satu cara sederhana untuk mengganti satu atau beberapa nilai gen dari kromosom. Contoh mutasi biner pada Gambar 2.3.
Print document 1
0
In order to print this document from Scribd, you'll r=3 0 need1 to download 1 1 0 1 first it.
1
1
Cancel Download And mutasi Print Gambar 2.3. Proses dan hasil
1. Hal-hal yang harus dilakukan dalam Algoritme Genetika
Beberapa hal yang harus dilakukan dalam Algoritme Genetika adalah : a. Mendefinisikan individu, individu dinyatakan sebagai salah satu solusi atau penyelesaian yang mungkin dari permasalahan yang diangkat. b. Mendefinisikan nilai fitness, yang merupakan ukuran baik-tidaknya sebuah individu atau solusi yang didapatkan. c. Menentukan proses generate populasi awal. Proses ini umumnya dilakukan dengan menggunakan menggunakan pembangkitan acak. d. Menentukan proses seleksi yang akan digunakan e. Menentukan proses operasi genetika yaitu crossover dan mutation
2. Persamaan Linier Persamaan linier digunakan untuk merepresentasikan suatu masalah yang akan dilakukan optimisasi (minimisasi dan maksimisasi) dengan beberapa fungsi tujuan dan fungsi kendala. Penyelesaian program linier digunakan untuk mencari nilai optimal dari variabel-variabel pembentuk fungsi tersebut. Tujuan dari penyelesaian program linier adalah untuk mencari solusi optimal yang memenuhi semua kendala. Akan didapatkan berbagai macam solusi yang fisible f isible yang memenuhi persamaan yang diberikan. Program linier dapat digunakan dalam berbagai aplikasi, diantaranya adalah optimasi sumberdaya yang ada di suatu organisasi. Misalnya dalam alokasi alat dan mesin, kita memiliki alat dan mesin X1, X2 dan X3. Maka bagaimana kita bisa mengoptimalkan pengguanaan pengguanaan mesin tersebut sementara terdapat batasan-batasan fungsi.
Print document
In order to print this document from Scribd, you'll first need BAB III.to download HASILit.DAN PEMBAHASAN Cancel
Download And Print
A. Perancangan Aplikasi
Pembanguanan aplikasi yang dilakukan menggunakan tahapan-tahapan sesuai dengan metode pemecahan masalah optimasi dengan menggunakan algoritma genetika. Berikut adalah urut-urutan (diagram alir) pemecahan masalah yang dilakukan.
Gambar 3.1. Diagram Alir Rancangan Rancan gan Aplikasi Algoritma Genetika Untuk Optimisasi Persamaan Linier
11
Print document B. Perangkat Lunak
In order to print this document from Scribd, you'll first need to download it.
Perangkat lunak yang digunakan dalam pembuatan aplikasi ini adalah dengan menggunakan VBA macro Microsoft Excel. Cancel
Download And Print
C. Mekanisme Algoritma Genetika Untuk Optimasi Fungsi Linier
Untuk dapat mengaplikasikan algoritma genetika, ada beberapa langkah yang harus dilakukuan antara lain mengenerate fungsi awal dalam bentuk representasi kromosom, mengukur optimasi untuk semua calon solusi dari suatu masalah menggunakan fungsi fitness, seleksi kromosom, penggunaan operator genetika seperti crossover
dan mutasi agar
sekumpulan calon solusi (representasi kromosom) yang dibangkitkan pada populasi awal dapat berkembang biak dengan sendirinya (melalui beberapa generasi) sehingga konvergen memberikan nilai fitness yang terbaik (solusi tunggal dengan nilai paling optimum diantara solusi) (Davids, 1991).
1. Pembentukan Kromosom Untuk memecahkan masalah optimasi fungsi dengan persamaan : Fungsi f(x1,x2,x3) =
x1-x2-x3 x1-2x2-x3
x2>5 x2<=5
Maka fungsi tersebut direpresentasikan dalam bentuk kromosom-kromosom. Karena kita akan mencari nilai optimal dari x1, x2 dan x3 maka x1, x2, dan x3 dijadikan sebagai gen pembentuk kromosom. Berikut adalah batasan nilai-nilai x1, x2, dan x3
yang
diperbolehkan : x1 = 0 s.d. 10 x2 = 0 s.d. 10 x3 = 0 s.d. 10
12
Print document In order to print this document from Scribd, you'll 2. Inisiasi Masalah dan Pembantukan Kromosom first need to download it.
Proses inisiasi masalah dilakukan dengan membentuk generasi awal gen-gen dengan nilai
Download And Print acak sesuai dengan batasanCancel yang ditentukan. Dalam hal ini ditentukan jumalh populasi yang digunakan adalah sebanyak 10 seperti tampak pada tabel di bawah ini : Tabel 3.1. Inisiasi Populasi Awal Kromosom 1 2 3 4 5 6 7 8 9 10
Gen-1 8,2980 9,8609 6,9512 5,3387 6,7618 1,0005 2,8448 3,8201 9,7983 1,6044
Gen-2 8,2460 9,1096 9,8000 1,0637 0,1570 1,0302 0,4565 3,0097 4,0137 1,6282
Gen-3 5,8916 2,2687 2,4393 9,9941 5,7518 7,9888 2,9577 9,4857 2,7828 6,4659
f(X) 5,8396 1,5174 5,2882 6,7828 0,6958 9,0488 1,0259 11,6850 1,0120 8,1179
Setelah kromosom awal terbentuk maka dicari fungsi obyektif awal dari fungsi yang akan dimaksimisasi. Tabel 3.1. diatas memperlihatkan representasi fungsi obyektif f(X) dari kromosom awal yang dibentuk. Berikut adalah kode program dengan VBA Excel untuk melakukan pembantukan generasi pertama : For i = 1 To 10 x(i, 1) = Cells(2, 5) + Rnd() * (Cells(2, 6) - Cells(2, 5)) x(i, 2) = Cells(3, 5) + Rnd() * (Cells(3, 6) - Cells(3, 5)) x(i, 3) = Cells(4, 5) + Rnd() * (Cells(4, 6) - Cells(4, 5)) Cells(i + 9, 3) = x(i, 1) Cells(i + 9, 4) = x(i, 2) Cells(i + 9, 5) = x(i, 3) If x(i, 2) > 5 Then f(i) = Abs(x(i, 1) - x(i, 2) - x(i, 3)) Else f(i) = Abs(x(i, 1) - 2 * x(i, 2) - x(i, 3)) End If Cells(i + 9, 6) = f(i)
13
Print document Next i n=0 br = 0 jum = Cells(1, 2) For k = 1 To jum
In order to print this document from Scribd, you'll first need to download it. Cancel
Download And Print
3. Seleksi Kromosom Proses seleksi kromoson bertujuan untuk memilih kromosom yang akan menghasilkan solusi dari persamaan linier yang optimal. Berikut adalah kode program yang digunakan untuk proses seleksi : tbs = f(i) For i = 1 To 10 If f(i) > tbs Then tbs = f(i) x1tbs = x(i, 1) x2tbs = x(i, 2) x3tbs = x(i, 3) End If Next i n=n+1 DoEvents cacah.Text = "Generasi ke -" & Str(n) Cells(n + 55, 2) = n Cells(n + 55, 3) = x1tbs Cells(n + 55, 4) = x2tbs Cells(n + 55, 5) = x3tbs Cells(n + 55, 6) = tbs If Cells(n + 55, 6) > Cells(n + 55 - 1, 7) Then Cells(n + 55, 7) = Cells(n + 55, 6) Else Cells(n + 55, 7) = Cells(n + 55 - 1, 7) End If Cells(56, 7) = Cells(56, 6) DoEvents hasil.Text = "Nilai terbaik : " & Str(Cells(n + 55, 7))
14
Print document
In order to print this document from Scribd, you'll 4. Proses Penyilangan first need to download it.
Metode crossover yang digunakan pada eksperimen ini adalah one-cut-point yaitu Cancel dalamDownload Printkemudian saling menukar gen. memilih secara acak satu posisi kromosomAnd induk
Kromosom dipilih secara acak sesuai dengan parameter cross over rate, yang dalam eksperimen ini digunakan 0,3 yang artinya rata-rata 0,3 x 10 = 3,3 kromosom yang mengalami cross over pada setiap populasi. Berikut adalah kode program yang digunakan untuk melakukan cross over : ulang: nc = 0 For i = 1 To 10 mc = Rnd() If mc <= Cells(4, 2) Then nc = nc + 1 co(nc) = i 'no kromosom yg cross over End If Next i If nc Mod 2 <> 0 Then GoTo ulang
Cells(55 + n, 9) = nc For i = 1 To nc Step 2 If pot >= 0.5 Then buff = x(co(i), 2) x(co(i), 2) = x(co(i + 1), 2) x(co(i + 1), 2) = buf Else buff = x(co(i), 3) x(co(i), 3) = x(co(i + 1), 3) x(co(i + 1), 3) = buff End If Next i
15
Print document
In order to print this document from Scribd, you'll Berikut adalah kromosom hasil penyilangan pada generasi ke 200 yang dirunning : first need to download it.
Tabel 3.2. Kromosom Hasil Penyilangan Pada Generasi ke-200 Kromosom 1 2 3 4 5 6 7 8 9 10
Gen-1 0,8868 0,8868 0,8868 0,8868 0,8868 0,8868 0,8868 0,8868 0,8868 0,8868
Cancel
Gen-2 And Gen-3 Download Print 5,2633 6,8569 5,2633 6,8569 5,2633 6,8569 5,2633 6,8569 5,2633 6,8569 5,2633 6,8569 5,2633 6,8569 5,2633 6,8569 5,2633 6,8569 5,2633 6,8569
f(X) 11,2334 11,2334 11,2334 11,2334 11,2334 11,2334 11,2334 11,2334 11,2334 11,2334
5. Proses Mutasi Jumlah kromosom yang mengalami mutasi dalam satu populasi ditentukan oleh parameter mutatation ration. Mutasi sendiri dilakukan untuk melakukan penggantian satu gen yang terpilih secara acak dengan satu nilai baru yang didapat secara acak pula. Prosesnya adalah dengan menghitung terlebih dahulu panjang gen yang ada dalam populasi. Mutation ratio yang digunakan dalam percobaan ini adalah sebesar 0,1. Berikut adalah kromosom hasil mutasi : Tabel 3.3. Kromosom Hasil Mutasi Pada Generasi ke-200 Kromosom 1 2 3 4 5 6 7 8 9 10
Gen-1 0,8868 0,8868 7,8027 0,8868 0,8868 0,8868 0,8868 0,8868 0,8868 0,8868
Gen-2 5,2633 5,2633 5,2633 2,3631 5,2633 5,2633 5,2633 5,2633 5,2633 2,8907
Gen-3 f(X) 8,3267 12,7032 6,8569 11,2334 6,8569 4,3175 6,8569 10,6963 6,8569 11,2334 6,8569 11,2334 6,8569 11,2334 6,8569 11,2334 6,8569 11,2334 6,8569 11,7515
16
Print document 6. Proses Seleksi
In order to print this document from Scribd, you'll first need to download it.
Proses seleksi adalah proses pengurutan solusi-solusi yang terbaik. Hal ini dilakukan Cancel Download And Print untuk mendapatkan nilai-nilai terbaik dari kromosom-kromosom yang telah dimutasi dan
cross over.
D. Hasil Running Program
Setelah dilakukan proses-proses diatas maka program di running dengan menggunakan macro VBA Excel. Dari hasil running program yang didapatkan grafik fungsi fitnes. Program sendiri di running dengan jumlah generasi sebanyak 200, dan jumlah populasi 10, mutation ratio 0,1 dan cross over ratio 0,3. Gambar 2.2. memperlihatkan grafik fungsi fitness yang dihasilkan dari running program dengan 200 generasi.
20.000 18.000 16.000 14.000 ) 12.000 ( f i 10.000 a l i 8.000 N 6.000 4.000 2.000 0.000
f(x) f(x)*
0
50
10 0
1 50
20 0
Generasi
Gambar 2.2. Grafik Fungsi Fitness dengan 200 Generasi
Dari hasil running tersebut kita dapatkan nilai optimum global diperoleh pada iterasi sebanyak 200 generasi adalah sebesar 17.8417807817459. Nilai tersebut merupakan nilai optimal dari fungsi yang diselesaikan.
17
Print document
In order to print this document from Scribd, you'll BAB IV. KESIMPULAN first need to download it. Cancel
Download And Print
Penyelesaian program linier dapat diselesaikan diselesaikan dengan menggunakan algoritma genetika. Prinsip utama algoritma genetika adalah melakukan operasi-operasi gentika pada penyelesaian solusi. Dari hasil running program dengan 200 generasi didapatkan nilai terbaik sebesar 17.8417807817459.
18
Print document
In order to print this document from Scribd, you'll DAFTAR PUSTAKA first need to download it. Cancel
Download And Print
Davids, L. (Ed). 1991. Handbook of Genetic Algorithm. Van Nonstrand Reinhold, New York Gen M and Cheng R. 1997. Genetic Algorithms and Engineering Design. John Willey and Sons, Inc, USA. Suyanto. 2005. Algoritma Genetika dalam MATLAB. ANDI : Yogyakarta.
19
Print document
In order to print this document from Scribd, you'll Lampiran 1. Kode Program dengan VBA Excel first need to download it.
Dim i, j As Integer Cancel Dim x(20, 4), f(20), co(10) As Single Sub populasi()
Download And Print
'Hapus tampilan Call hapus ' Menggenerate generasi Pertama For i = 1 To 10 x(i, 1) = Cells(2, 5) + Rnd() * (Cells(2, 6) - Cells(2, 5)) x(i, 2) = Cells(3, 5) + Rnd() * (Cells(3, 6) - Cells(3, 5)) x(i, 3) = Cells(4, 5) + Rnd() * (Cells(4, 6) - Cells(4, 5)) Cells(i + 9, 3) = x(i, 1) Cells(i + 9, 4) = x(i, 2) Cells(i + 9, 5) = x(i, 3) If x(i, 2) > 5 Then f(i) = Abs(x(i, 1) - x(i, 2) - x(i, 3)) Else f(i) = Abs(x(i, 1) - 2 * x(i, 2) - x(i, 3)) End If Cells(i + 9, 6) = f(i) Next i n=0 br = 0 jum = Cells(1, 2) For k = 1 To jum ' Nilai fungsi terbaik tbs = f(i) For i = 1 To 10 If f(i) > tbs Then tbs = f(i) x1tbs = x(i, 1) x2tbs = x(i, 2) x3tbs = x(i, 3) End If Next i n=n+1 DoEvents cacah.Text = "Generasi ke -" & Str(n) Cells(n + 55, 2) = n Cells(n + 55, 3) = x1tbs Cells(n + 55, 4) = x2tbs 20
Print document
In order to print this document from Scribd, you'll Cells(n + 55, 5) = x3tbs Cells(n + 55, 6) = tbs first need to download it. If Cells(n + 55, 6) > Cells(n + 55 - 1, 7) Then Cells(n + 55, 7) = Cells(n +Cancel 55, 6) Download And Print Else Cells(n + 55, 7) = Cells(n + 55 - 1, 7) End If Cells(56, 7) = Cells(56, 6) DoEvents hasil.Text = "Nilai terbaik : " & Str(Cells(n + 55, 7))
'Pengecekan cross over ulang: nc = 0 For i = 1 To 10 mc = Rnd() If mc <= Cells(4, 2) Then nc = nc + 1 co(nc) = i 'no kromosom yg cross over End If Next i If nc Mod 2 <> 0 Then GoTo ulang
Cells(55 + n, 9) = nc For i = 1 To nc Step 2 If pot >= 0.5 Then buff = x(co(i), 2) x(co(i), 2) = x(co(i + 1), 2) x(co(i + 1), 2) = buf Else buff = x(co(i), 3) x(co(i), 3) = x(co(i + 1), 3) x(co(i + 1), 3) = buff End If Next i 'Generasi setelah cross over Cells(14, 10) = n Call cetak(15, 10) ' Pengecekan mut = 0 For i = 1 To 10 21
Print document
In order to print this document from Scribd, you'll For j = 1 To 3 need to download it. If Rnd() < Cells(3, 2)first Then mut = mut + 1 If j = 1 Then x(i, 1) = Cells(2, 5) + Rnd() * (Cells(2, - Cells(2, 5)) Cancel Download And 6) Print If j = 2 Then x(i, 2) = Cells(3, 5) + Rnd() * (Cells(3, 6) - Cells(3, 5)) If j = 3 Then x(i, 3) = Cells(4, 5) + Rnd() * (Cells(4, 6) - Cells(4, 5)) End If Next j Next i Cells(n + 55, 10) = mut ' Jumlah kejadian mutasi ' pencetakan mutasi Cells(28, 10) = n Call cetak(29, 10) Cells(41, 10) = n ' Proses pengurutan For i = 1 To 10 For j = 1 To 10 If f(i) > f(j) Then buf1 = x(i, 1) buf2 = x(i, 2) buf3 = x(i, 3) buf4 = f(i) x(i, 1) = x(j, 1) x(i, 2) = x(j, 2) x(i, 3) = x(j, 3) f(i) = f(j) x(j, 1) = buf1 x(j, 2) = buf2 x(j, 3) = buf3 f(j) = buf4 End If Next j Next i 'Pencetakan hasil pengurutan Call cetak(42, 10) Cells(23, 3) = n + 1 ' Seleksi b=0 For i = 1 To 10 br = (Rnd() * 1000) / 1000 If br <= 0.182 Then x(i, 1) = x(1, 1): x(i, 2) = x(1, 2): x(i, 3) = x(1, 3): f(i) = f(1) If br <= 0.345 And br > 0.182 Then x(i, 1) = x(2, 1): x(i, 2) = x(2, 2): x(i, 3) = x(2, 3): f(i) = f(2) If br <= 0.491 And br > 0.345 Then x(i, 1) = x(3, 1): x(i, 2) = x(3, 2): x(i, 3) = x(3, 3): f(i) = f(3)
22
Print document
to print this document from Scribd, you'll If br <= 0.618 And brIn>order 0.491 Then x(i, 1) = x(4, 1): x(i, 2) = x(4, 2): x(i, 3) = x(4, first need to download it. f(i) = f(4) If br <= 0.727 And br > 0.618 Then x(i, 1) = x(5, 1): x(i, 2) = x(5, 2): x(i, 3) = x(5, f(i) = f(5) Cancel Download And Print If br <= 0.818 And br > 0.727 Then x(i, 1) = x(6, 1): x(i, 2) = x(6, 2): x(i, 3) = x(6, f(i) = f(6) If br <= 0.891 And br > 0.818 Then x(i, 1) = x(7, 1): x(i, 2) = x(7, 2): x(i, 3) = x(7, f(i) = f(7) If br <= 0.945 And br > 0.891 Then x(i, 1) = x(8, 1): x(i, 2) = x(8, 2): x(i, 3) = x(8, f(i) = f(8) If br <= 0.982 And br > 0.945 Then x(i, 1) = x(9, 1): x(i, 2) = x(9, 2): x(i, 3) = x(9, f(i) = f(9) If br <= 1 And br > 0.982 Then x(i, 1) = x(10, 1): x(i, 2) = x(10, 2): x(i, 3) = x(10, f(i) = f(10) Next i Call cetak(24, 3) Next k End Sub Sub cetak(bar, kol) For i = 1 To 10 Cells(bar + i, kol) = x(i, 1) Cells(bar + i, kol + 1) = x(i, 2) Cells(bar + i, kol + 2) = x(i, 3) If x(i, 2) > 5 Then f(i) = Abs(x(i, 1) - x(i, 2) - x(i, 3)) Else f(i) = Abs(x(i, 1) - 2 * x(i, 2) - x(i, 3)) End If Cells(bar + i, kol + 3) = f(i) Next i End Sub
3): 3): 3): 3): 3): 3): 3):
Sub hapus() For i = 1 To 300 Cells(i + 55, 2) = "" Cells(i + 55, 3) = "" Cells(i + 55, 4) = "" Cells(i + 55, 5) = "" Cells(i + 55, 6) = "" Cells(i + 55, 7) = "" Cells(i + 55, 9) = "" Cells(i + 55, 10) = "" Next i End Sub
23
Print document
In order to print this document from Scribd, you'll first need to download it. Private Sub CommandButton1_Click()
Call populasi End Sub
Cancel
Download And Print
24