pencarian solusi pada permasalahan …alhamdulillah, segala puji bagi allah, tuhan semesta alam,...
TRANSCRIPT
PENCARIAN SOLUSI PADA PERMASALAHAN SISTEM
PERSAMAAN NONLINIER MENGGUNAKAN METODE
BAT ALGORITHM
SKRIPSI
TEDY NOVIAN
108094000042
PROGRAM STUDI MATEMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH
JAKARTA
2015 M/1436 H
iii
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-
BENAR HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN
SEBAGAI SKRIPSI ATAU KARYA ILMIAH PADA PERGURUAN TINGGI
ATAU LEMBAGA MANAPUN.
Jakarta, 06 Juli 2015
Tedy Novian
108094000042
iv
PERSEMBAHAN
Alhamdulillahirobbil’alamin, segala puji bagi Allah, Tuhan Semesta Alam.
Skripsi ini saya persembahkan untuk Papa Mamaku tercinta, Adik-adikKu
dan Istri serta AnakKu, dan seluru Keluarga besarku, dan juga Keluarga
besar Prodi Matematika, serta semua pihak yang terlibat di dalamnya.
Semoga selalu diridhoi Allah SWT, selalu dalam lindungan-Nya, serta
selalu dibukakan pintu rahmat, kasih sayang, dan hidayah-Nya
Amin
MOTTO
“Menuntut Ilmu Adalah Takwa, Menyampaikan Ilmu Adalah
Ibadah, Mengulang Ilmu Adalah Zikir dan Mencari Ilmu Adalah
Jihad” (Al-Ghazali)
”Janganlah kemiskinanmu menyebabkan Kekufuran dan
janganlah kekayaanmu membuahkan Kesombongan”
v
ABSTRAK
Tedy Novian, Pencarian Solusi Pada Permasalahan Sistem Persamaan Nonlinier
Menggunakan Bat Algorithm. Di bawah bimbingan Irma Fauziah, M.Sc dan
Muhaza Liebenlito, M.Si.
Persamaan nonlinier ataupun sistem persamaan nonlinier dapat diselesaikan
secara analitik dan numerik. Namun pada perkembangannya ada persamaan
nonlinier ataupun sistem persamaan nonlinier tertentu, yang sulit diselesaikan
dengan penghitungan analitik, sehingga penghitungan numerik dapat menjadi
solusi. Salah satu solusi numerik untuk persamaan nonlinier ataupun sistem
persamaan nonlinier adalah metode Steepest Descent yang juga termasuk ke
dalam metode optimisasi klasik. Metode Steepest Descent merupakan metode
untuk mencari akar persamaan, hal ini dikarenakan optimisasi ekivalen dengan
mencari akar pada turunan pertama suatu fungsi [2]. Jadi metode Steepest Descent
merupakan prosedur paling mendasar untuk meminimasikan suatu fungsi yang
mempunyai turunan. Namun metode ini memiliki kekurangan, yaitu tidak bisa
menyelesaikan permasalahan optimisasi apabila fungsi tersebut tidak memiliki
turunan. Oleh karena itu, dibutuhkan sebuah metode yang mampu mengatasi
permasalahan tersebut.
Untuk mengatasi permasalahan tersebut para peneliti menemukan algoritma
optimisasi yang terinspirasi dari alam, yaitu Bat Algorithm (BA). Bat Algorithm
merupakan teknik optimisasi yang terinspirasi oleh kemampuan ekolokasi
kelelawar, yang dapat membuat kelelawar dapat mengetahui keadaan sekitar
dalam keadaan gelap tanpa cahaya sedikitpun.
Jenis penelitian ini merupakan penelitian kepustakaan atau penelitian literatur
yang bertujuan untuk mengumpulkan data dan informasi terkait persamaan
nonlinier dan sistem persamaan nonlinier, metode optimasi Bat Algorithm, serta
dilengkapi simulasi numerik terhadap beberapa contoh penggunaaan metode ini
pada beberapa contoh kasus yang diberikan dengan bantuan software.
Beberapa contoh kasus sistem persamaan nonlinier telah diselesaikan dengan
menggunakan metode optimisasi Bat Algorithm. Hasil penelitian menunjukkan
bahwa metode optimisasi Bat Algorithm selalu konvergen terhadap sembarang
nilai. Namun, merode Steepest Descent lebih baik dibandingkan metode Bat
Algorithm, akan tetapi hasil yang didapat baik akar-akar persamaan ataupun nilai
fungsinya dari kedua metode tidak signifikan.
Kata kunci: Sistem Persamaan Nonlinier, Optimisasi, Bat Algorithm, Steepest
Descent, Metaheuristik Algorithm.
vi
ABSTRACT
Tedy Novian, Search for Solutions On Nonlinear Equations System Problems
Using Bat Algorithm. Under guidance Irma Fauziah, M.Sc dan Muhaza
Liebenlito, M.Si.
Nonlinear equations or systems of nonlinear equations can be solved
analytically and numerically. But in its development there is a system of nonlinear
equations or certain nonlinear equations, which is difficult to be solved by
analytical calculation, so the numerical calculation may be the solution. One of
the numerical solution for nonlinear equations or systems of nonlinear equations
is Steepest Descent method that also belong to the classical optimization methods.
Steepest Descent method is a method to find the root of the equation, this is
because optimization is equivalent to searching for the roots of the first derivative
of a function [2]. So Steepest Descent method is the most basic procedure for
meminimasikan a function that has a derivative. But this method has its
drawbacks, ie can not solve optimization problems if the function has no
derivative. Therefore, we need a method that is able to overcome these problems.
To overcome these problems, the researchers found that optimization
algorithms inspired by nature, the Bat Algorithm (BA). Bat Algorithm is an
optimization technique inspired by bat echolocation ability, which can make a bat
can determine the circumstances around in the dark with no light at all.
This research is research literature or literature study that aims to collect data
and information related to nonlinear equations and systems of nonlinear
equations, optimization methods Bat Algorithm, and equipped with numerical
simulations on some examples of the use of this method in some case examples
are given with the help of software.
Some examples of cases of systems of nonlinear equations has been solved
using optimization methods Bat Algorithm. The results showed that the Bat
Algorithm optimization method always converges to any value. However, Merode
Steepest Descent better than Bat Algorithm methods, but the results are both roots
of the equation or the value of the function of these two methods are not
significant.
Keywords: Nonlinear Equations Systems, Optimization, Bat Algorithm, Steepest
Descent, Metaheuristic Algorithm.
vii
KATA PENGANTAR
بسم اهلل اار حمن اار حيم
Assalamu’alaikum Warahmatullahi Wabarakatuh
Alhamdulillah, Segala puji bagi Allah, Tuhan Semesta Alam, yang senantiasa
melimpahkan rahmat dan nikmat-Nya kepada kita semua, tak terkecuali pada penulis,
hingga penulis dapat menyelesaikan skripsi “Pencarian Solusi Pada Permasalahan
Sistem Persamaan Nonlinier Menggunakan Metode Bat Algorithm”. Shalawat
serta salam senantiasa tercurah kepada Nabi Muhammad SAW, manusia luar biasa
karena kecerdasannya, kemuliaan akhlaqnya, keluhuran budi pekertinya, dan sunnah-
sunnah Rasulullah yang tetap subur.
Dalam penyusunan skripsi ini, penulis banyak mendapat dorongan, semangat,
dan bimbingan serta kritikan dan sara dari berbagai pihak. Oleh karena itu, pada
kesempatan ini penulis ingin mengucapkan terima kasih kepada:
1. Kedua orang tuaku (Margono dan Anna Noviana), adik-adikku (Jauhari Ian
Novian, Ajeng Permata Fajrina, dan Marwah Noer Fitriana), dan istri (Aprilia
Rahmawati) serta anakku (Malika Destian Arrahma) tercinta, beserta seluruh
keluarga besar penulis yang selalu memberikan kasih sayang dan selalu
mendoakan penulis sehingga dapat menyelesaikan skripsi ini,
2. Dr. Agus Salim, M.Si, selaku Dekan Fakultas Sains dan Teknologi Universitas
Islam Negeri Syarif Hidayatullah Jakarta,
viii
3. Ibu Dr. Nina Fitriyati, M.Kom, selaku Ketua Program Studi Matematika Fakultas
Sains dan Teknologi UIN Syarif Hidayatullah Jakarta,
4. Ibu Irma Fauziah, M.Sc, selaku Pembimbing I dan Pak Muhaza Liebenlito, M.Si,
selaku Pembimbing II. Mohon maaf atas semua kesalahan penulis selama ini,
serta terima kasih banyak atas waktu dan kesabarannya dalam membimbing
penulis dalam menyelesaikan penelitian ini,
5. Ibu Yanne Irene, M.Si, selaku Penguji I dan Pak Mahmudi, M.Si, selaku Penguji
II. Terima kasih atas segala masukan dalam penulisan ini.
6. Seluruh dosen dan karyawan Program Studi Matematika, yang telah mengajarkan
banyak hal yang sangat bermanfaat bagi penulis.
7. Sahabat-sahabat terbaikku selama mengenyam pendidikan di UIN Jakarta
khususnya Math’08, Putra, Deny, Munir, Rosyid, Ucok Lah, Azmi, Rizha, Nizar,
Sopyan, Derry, Ridho, alm.Mukhlis, Ustad Luqman, dll,
8. Teman-teman Himatika UIN Jakarta.
9. Teman-teman Kosan Antalaklai (Mas Kiki dan Mbak Desi, Ka Ucal, bos Rengki,
Furqon, Kochar, Dolay, Ega, Angga, Mukmin, Cahyadi, Hanip, Mali, Yopy,
Azom, Zul, Onay, Awan) Bu Kosan Antalaklai, serta semua pihak yang telah
membantu penulis.
Penulis menyadari bahwa masih banyak kelemahan dan kekurangan yang
terdapat pada skripsi ini. Atas dasar itulah penulis memohon maaf yang sebesar-
ix
besarnya kepada semua pihak jika terdapat kesalahan yang kurang berkenan. Namun,
saran dan kritik selalu penulis harapkan demi perbaikan pada penelitian selanjutnya.
Akhir kata, harapan yang besar bahwa skripsi ini dapat bemanfaat dan
memberikan kontribusi yang berarti, baik bagi penulis khususnya dan bagi pembaca
umumnya.
Wassalamu’alaikum Warahmatullahi Wabarakatuh
Jakarta, 6 Juli 2015
Penulis
x
DAFTAR ISI
HALAMAN JUDUL ........................................................................................ i
PENGESAHAN UJIAN ................................................................................... ii
PERNYATAAN ................................................................................................ iii
PERSEMBAHAN DAN MOTTO ................................................................... iv
ABSTRAK ........................................................................................................ v
ABSTRACT ...................................................................................................... vi
KATA PENGANTAR ...................................................................................... vii
DAFTAR ISI ..................................................................................................... x
DAFTAR TABEL ............................................................................................ xii
DAFTAR GAMBAR ........................................................................................ xiii
BAB I PENDAHULUAN
1.1 Latar Belakang .............................................................................. 1
1.2 Rumusan Masalah ......................................................................... 3
1.3 Batasan Masalah ........................................................................... 3
1.4 Tujuan Penelitian .......................................................................... 3
1.5 Manfaat Penelitian ........................................................................ 4
BAB II LANDASAN TEORI
2.1 Optimisasi ..................................................................................... 5
2.2 Sistem Persamaan Nonlinier ......................................................... 8
2.3 Metode Steepest Descent .............................................................. 9
2.3.1 Fungsi Gradien ..................................................................... 10
xi
BAB III METODE PENELITIAN
3.1 Studi Literatur ................................................................................ 14
3.2 Perilaku Kelelawar ........................................................................ 14
3.3 Ekolokasi Kelelawar ...................................................................... 15
3.4 Karakteristik Bat Algorithm .......................................................... 17
3.5 Gerakan Kelelawar Virtual ............................................................ 19
3.6 Kenyaringan Dan Gelombang Suara Kelelawar ............................ 20
3.7 Benchmark Functions .................................................................... 21
BAB IV PEMBAHASAN
4.1 Sistem Persamaan Nonlinier ......................................................... 24
4.2 Contoh Kasus 1 ............................................................................. 25
4.3 Contoh Kasus 2 ............................................................................. 26
BAB V KESIMPULAN DAN SARAN
5.1 Kesimpulan ................................................................................... 28
5.2 Saran ............................................................................................. 28
DAFTAR PUSTAKA ........................................................................................ 30
LAMPIRAN ....................................................................................................... 32
xii
DAFTAR TABEL
Tabel 3.1 Perbandingan Hasil Uji dan Nilai Eksak Fungsi Rosenbrock’s ......... 21
Tabel 3.2 Perbandingan Hasil Uji dan Nilai Eksak Fungsi Price 1.................... 22
Tabel 4.1 Nilai Akar-akar Persamaan Yang Dihasilkan Oleh Bat Algorithm
Pada Contoh Kasus 1 ....................................................................... 32
Tabel 4.2 Nilai Akar-akar Persamaan Yang Dihasilkan Oleh Bat Algorithm
Pada Contoh Kasus 2 ........................................................................ 27
xiii
DAFTAR GAMBAR
Gambar 2.1 Arah Steepest Descent ................................................................. 12
Gambar 3.1 Flowchart Bat Algorithm ............................................................. 18
Gambar 4.1 Plot Sistem Persamaan Nonlinier 4.3 ........................................... 25
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Pada dasarnya setiap permasalahan optimisasi dapat dinyatakan dalam bentuk
persamaan. Namun dalam perkembangannya, tidak semua persamaan dapat
diselesaikan dengan mudah. Persamaan mempunyai bentuk sederhana mungkin dapat
diselesaikan secara analitik, sedangkan permasalahan yang muncul dalam dunia nyata
seringkali nonlinier dengan proses yang relatif lebih rumit, dan akibatnya
penyelesaian secara analitik menjadi terbatas. Bila metode analitik tidak dapat
diterapkan lagi, maka solusinya masih dapat dicari dengan metode numerik. Metode
numerik adalah metode yang digunakan untuk memformulasikan persoalan
matematik sehinggga dapat dipecahkan dengan operasi perhitungan biasa (tambah,
kurang, kali dan bagi) [1].
Salah satu solusi numerik untuk sistem persamaan nonlinier adalah metode
Steepest Descent yang juga termasuk ke dalam metode optimisasi klasik. Metode
Steepest Descent merupakan metode untuk mencari akar persamaan, hal ini
dikarenakan optimisasi ekivalen dengan mencari akar pada turunan pertama suatu
fungsi [2]. Jadi metode Steepest Descent merupakan prosedur paling mendasar untuk
meminimasikan suatu fungsi yang mempunyai turunan. Namun metode ini memiliki
kekurangan, yaitu tidak bisa menyelesaikan permasalahan optimisasi apabila fungsi
2
tersebut tidak memiliki turunan. Oleh karena itu, dibutuhkan sebuah metode yang
mampu mengatasi permasalahan tersebut.
Dari permasalah optimisasi diatas para peneliti menemukan algoritma optimisasi
yang terinspirasi dari alam, hal ini didasarkan pada kecerdasan berkelompok makhluk
hidup. Misalnya algoritma genetika terinspirasi oleh karakteristik evolusi Darwin,
atau particle swarm optimisation (PSO) didasarkan pada perilaku sekelompok burung
dan ikan [2]. Dan ada algoritma yang di inspirasi dari cara kerja ekolokasi kelelawar
yaitu Bat Algorithm (BA) atau Algoritma Kelelawar [3]. Kemampuan ekolokasi
kelelawar sangat menarik, membuat kelelawar seperti dapat menemukan mangsanya
dan dapat membedakan berbagai jenis serangga ataupun rintangan keadaan gelap
tanpa cahaya sedikitpun.
Bat Algorithm merupakan teknik optimisasi yang didasarkan dari populasi yang
terinspirasi oleh kemampuan ekolokasi kelelawar. Pada awalnya Xin-She Yang
dalam “ A New Metaheuristic Bat-Inspired Algorithm “ menemukan Bat Algorithm
yang terinspirasi oleh kemampuan ekolokasi kelelawar untuk diaplikasikan pada
permasalahan optimisasi. Tujuan tulisan ini adalah untuk mengaplikasikan Bat
Algorithm untuk mencari solusi persamaan nonlinier, dengan judul “ Pencarian
Solusi Pada Permasalahan Sistem Persamaan Nonlinier Menggunakan Metode Bat
Algorithm ”.
3
1.2 Rumusan Masalah
Berdasarkan latar belakang yang telah dikemukakan, rumusan masalah dalam
penulisan ini antara lain:
a. Bagaimana hasil uji Benchmark terhadap Bat Algorithm ?
b. Bagaimana aplikasi dari Bat Algorithm pada sistem persamaan nonlinier?
c. Bagaimana nilai akar-akar (solusi) dari sistem persamaan nonlinier
menggunakan Bat Algorithm ?
1.3 Batasan Masalah
Pembatasan masalah pada penulisan ini adalah penulis membahas perilaku
kelelawar berdasarkan kemampuan ekolokasi dan perilaku terkait.
1.4 Tujuan Penelitian
Tujuan penelitian ini adalah :
1. Dapat mengetahui hasil uji fungsi Benchmark terhadap Bat Algorithm.
2. Dapat mengaplikasikan Bat Algorithm pada sistem persamaan nonlinier.
3. Dapat menemukan nilai akar-akar dari persamaan nonlinier dengan mengunakan
Bat Algorithm.
1.5 Manfaat Penelitian
Manfaat penelitian ini diantaranya adalah
4
1. Dapat mengetahui kelayakan Bat Algoritma dalam mencari solusi sistem
persamaan nonlinier.
2. Dapat mengetahui nilai akar-akar persamaan yang dihasilkan oleh Bat Algorithm
dan membandingkannya dengan nilai solusi numeriknya.
5
BAB II
LANDASAN TEORI
2.1 Optimisasi
Permasalahan optimisasi dapat dinyatakan sebagai permasalahan optimisasi
nonlinier dengan kendala, didefinisikan sebagai :
memaksimalkan / meminimalkan.
( ) ( )
Dengan syarat :
( ) ( )
( ) (2.1)
di mana ( ), ( ) dan adalah fungsi skalar dari vektor kolom . Oleh karena
itu komponen dari ( ) disebut variabel desain atau lebih sering
disebut variabel keputusan, dan variabel tersebut bisa kontinu atau diskrit ataupun
keduanya. Vektor sering disebut vektor keputusan yang bervariasi dalam dimensi
pada ruang . Fungsi ( ) disebut fungsi objektif atau fungsi yang akan
dimaksimum atau diminimumkan. Selain itu, ada ( ) yang merupakan kendala
dalam bentuk sejumlah M persamaan, dan ( ) merupakan kendala yang ditulis
dalam sejumlah N pertidaksamaan. sehingga total terdapat sejumlah M + N kendala.
Masalah optimisasi yang dirumuskan di sini adalah permasalan nonlinier dengan
kendala.
6
Ruang yang direntang oleh variabel keputusan disebut ruang pencarian ,
sedangkan ruang yang dibentuk oleh nilai-nilai fungsi objektif disebut ruang solusi.
Perasalahan optimisasi pada dasarnya memetakan domain atau ruang variabel
keputusan ke ruang solusi (atau sumbu real pada umumnya).
Fungsi objektif ( ) dapat berupa linier atau nonlinier. Jika kendala dan
semua linier, maka disebut permasalahan linier dengan kendala. Selanjutnya, ,
dan fungsi objektif ( ) adalah semua linier, maka disebut permasalahan
pemrograman linier. Jika fungsi objektifnya berupa fungsi kuadrat dengan kendala
linier, maka disebut pemrograman kuadratik. Jika semua nilai-nilai variabel
keputusan berupa bilangan bulat, maka jenis pemrograman linier ini disebut integer
programming atau integer linier programming.
Pemrograman linier sangat penting dalam aplikasinya dan telah dipelajari dengan
baik, namun masih belum ada metode umum untuk menyelesaikan pemrograman
nonlinier secara umumnya, meskipun beberapa kemajuan penting telah tercapai
dalam beberapa dekade terakhir. Perlu diingat bahwa kata pemprograman disini
berarti perencanaan, itu tidak ada hubungannya dengan pemrograman pada komputer.
Di sisi lain, jika tidak ada kendala yang dinyatakan sehingga dapat mengambil
nilai dalam sumbu real (atau bilangan bulat), permasalahan optimisasi disebut sebagai
masalah optimisasi tanpa kendala [4].
7
Optimisasi yang paling sederhana tanpa kendala mungkin adalah pencarian dari
nilai maksimum atau minimum dari suatu fungsi. Sebagai contoh, menemukan
maksimum dari fungsi satu variabel ( ) :
( )
adalah merupakan permasalahan dibatasi sederhana. Sementara masalah berikut ini
adalah fungsi dua variabel :
( )
( )
Dengan syarat
Contoh 2.1 :
Mencari minimum dari fungsi objektif ( ) , dengan kondisi stasioner
( ) , maka didapat
( )
( )
Diberikan , maka didapat
( )
atau . Dengan turunan kedua
( ) ( )
Jika dimasukan dengan nilai-nilai diatas, pada , maka
( ) ( ) ( ( ) ( ) )
dan pada , maka
( ) ( ) ( ( ) ( ) )
8
karena ( ) , maka nilai maksimum dari , pada .
Dan ( ) , maka nilai minimum pada saat .
2.2 Sistem Persamaan Nonlinier
Pencarian solusi pada persamaan non linier adalah penentuan akar-akar dari
persamaan nonlinier, dimana akar sebuah persamaan ( ) adalah nilai-nilai
yang menyebabkan ( ) sama dengan nol. Dan akar persamaan ( ) adalah titik
potong antara kurva ( ) dan sumbu X [5].
Persamaan nonlinier yang melibatkan funsi transenden, diantaranya sinus,
cosinus, eksponensial, dan logaritma. Selain itu, persamaan nonlinier juga melibatkan
fungsi non transenden, yaitu persamaan polinomial. Bentuk umum persamaan
polinomial satu variabel dapat didefinisikan sebagai :
Contoh 2.2
Persamaan polinomial :
a. Dengan satu variabel, , ,
b. Dengan dua variabel, dan , .
Sistem persamaan nonlinier adalah kumpulan dari beberapa persamaan nonlinier
yang dicari penyelesaiannya. Dan pencarian solusi sistem persamaan nonlinier
diaplikasikan dalam mencari titik potong antara dua kurva, misalnya kurva parabola
( ) dam kurva elips ( ). Sehingga diperoleh
9
solusi (-0.2, 1) dan (1.9, 0.3) yang memenuhi 2 kurva tersebut [6]. Bentuk umum
sistem persamaan nonlinier dapat didefinisikan sebagai :
( )
[ ( ) ( )
( )]
(2.2)
dimana setiap fungsi dapat memetakan vektor ( ) dari ruang
dimensional ke . Salah satu metode untuk mencari solusi pada sistem persamaan
nonlinier adalah menggunakan metode Steepest Descent.
2.3 Metode Steepest Descent
Metode steepest descent adalah metode untuk menentukan minimum lokal untuk
fungsi multivariabel dari bentuk . Metode optimisasi ini cukup bisa
diandalkan, selain untuk mengatasi permasalahan sistem persamaan nonlinier.
Hubungan antara mencari solusi optimasi minimum dan solusi sistem persamaan
nonlinier adalah disebakan oleh kenyataan bahwa suatu sistem yang didefinisikan
sebagai
( )
( )
( )
(2.3)
memiliki solusi pada ( ) , yaitu ketika fungsi didefinisikan sebagai
10
( ) ∑[ ( )]
( )
dengan nilai minimum 0 [7].
Metode Steepest Descent untuk mencari nilai minimum untuk fungsi dapat
digambarkan secara intuitif sebagai berikut :
1. Mengevaluasi pada perkiraan awal ( ) ( ( )
( )
( )
)
.
2. Menentukan arah dari ( ) yang menghasilkan penurunan pada nilai .
3. Bergerak ke arah yang tepat dan didapat nilai baru ( ).
4. Ulangi langkah 1 sampai 3 dengan ( ) diganti oleh ( ).
2.3.1 Fungsi Gradien
Fungsi dengan variabel tunggal yang terdiferensiasi dapat memiliki nilai minimum
relatif hanya bila turunannya adalah nol. Dalam mengembangkan hasil ini untuk
fungsi multivariabel, kita perlu definisi berikut :
Untuk , gradien dari pada ( ) dinotasikan ( ) dan
didefinisikan sebagai
( ) (
( )
( )
( ))
( )
Gradien untuk fungsi multivariabel dapat disamakan dengan turunan dari fungsi
variabel tunggal dalam arti bahwa fungsi multivariabel terdiferensiasi dapat memiliki
minimum relatif di x hanya ketika gradien di x adalah vektor nol. Gradien memiliki
11
sifat penting lain yang terhubung dengan minimalisasi fungsi multivariabel. Misalkan
v = ( ) adalah vektor satuan dalam dapat didefinisikan sebagai
‖ ‖ ∑
Turunan berarah dari di ke arah mengukur perubahan nilai fungsi relatif
terhadap perubahan variabel dalam arah . Hal ini didefinisikan sebagai
( )
[ ( ) ] ( )
Ketika terdiferensialkan, arah yang menghasilkan nilai maksimum untuk arah
turunan terjadi ketika dipilih untuk menjadi sejajar dengan ( ) , asalkan
( ) . Akibatnya, arah penurunan terbesar nilai pada adalah arah yang
diberikan oleh ( ). Gambar 2.2 adalah ilustrasi ketika adalah fungsi dari dua
variabel.
12
Gambar 2.1 Arah Steepest Descent
Tujuannya adalah untuk mengurangi ( ) untuk nilai minimal nol, sehingga
pilihan yang tepat untuk ( ) adalah untuk menjauh dari ( ) ke arah yang
memberikan penurunan terbesar dalam nilai ( ) . Oleh karena itu, didefinisikan
sebagai
( ) ( ) ( ) untuk konstanta
Masalahnya sekarang adalah mengurangi untuk memilih nilai yang sesuai dari
sehingga ( ( )) akan secara signifikan kurang dari ( ( )).
Dalam menentukan pilihan yang tepat untuk nilai , kita mempertimbangkan
fungsi satu variabel
( ) ( ( ) ( ( )))
Nilai yang meminimalkan adalah nilai yang diperlukan untuk persamaan diatas.
Menemukan nilai minimal untuk secara langsung akan memerlukan
pembedaan dan kemudian memecahkan masalah pencarian akar untuk menentukan
titik-titik kritis . Prosedur ini umumnya terlalu rumit. Sehingga kami memilih tiga
nomor dengan harapan, dekat dengan nilai minimum ( ) yang
terjadi. Kami kemudian membangun kuadrat polinomial ( ) yang dapat
menginterpolasi pada dan .
13
Kami mendefinisikan ̂ pada [ ] sehingga ( ̂) adalah minimum di [ ]
dan menggunakan ( ̂) untuk memperkirakan nilai minimum ( ) . Kemudian ̂
digunakan untuk menentukan iterasi baru untuk mendekati nilai minimal :
( ) ( ) ̂ ( ( ))
Karena ( ( )) ada untuk meminimalkan perhitungan pertama kita memilih .
Berikutnya ditemukan dengan ( ) ( ). (Karena tidak meminimumkan
, maka memang ada.) Akhirnya, yang dipilih sebagai .
14
BAB III
METODOLOGI PENELITIAN
Secara umum metodologi penelitian yang akan dilakukan adalah studi literatur
dengan mempelajari buku dan artikel terkait dan kemudian melakukan simulasi
menggunakan software Matlab. Sebelum melakukan simulasi akan dibahas mengenai
perilaku kelelawar dan karakteristik dari kemampuan ekolokasi kelelawar, yang
menjadi inspirasi dari Bat Algorithm.
3.1 Studi Literatur
Tahap pertama yang dilakukan penulis adalah mempelajari teori dasar seperti :
persamaan nonlinier, sistem persamaan nonlinier, solusi numerik untuk sistem
persamaan nonlinier menggunakan metode steepest descent untuk mencari akar pada
turunan pertama suatu fungsi. Setelah memahami teori dasar, penulis akan mengkaji
lebih dalam tentang Bat Algorithm untuk mencari solusi sistem persamaan nonlinier.
Artikel utama yang dikaji adalah artikel Xin-She Yang [3] dan artikel Muhaza
Liebenlito [10].
3.2 Perilaku Kelelawar
Kelelawar merupakan hewan yang menarik, karena kelelawar merupakan satu-
satunya mamalia yang memiliki sayap, serta memiliki kemampuan canggih yang
disebut ekolokasi. Diperkirakan ada sekitar 996 spesies berbeda, yang mencangkup
15
hingga 20% dari semua spesies mamalia [8]. Ukuran mereka berkisar dari kelelawar
kecil dengan berat sekitar 1,5 gr sampai 2 gr, sedangkan kelelawar besar dengan lebar
sayap 2 m dan berat 1 kg. Kelelawar kecil biasanya memiliki panjang lengan antara
2,2 cm sampai 11 cm. Kebanyakan kelelawar menggunakan ekolokasi pada tingkat
tertentu, diantara semua spesies kelelawar, kelelawar kecil merupakan yang paling
sering menggunakan ekolokasi ekstensif sementara kelelawar besar tidak. Manfaat
ekolokasi pada kelelawar antara lain berguna untuk mendeteksi mangsa, menghindari
rintangan, dan menemukan celah- celah dalam keadaan gelap tanpa cahaya
sedikitpun. Prinsip kerja ekolokasi kelelawar adalah dengan memancarkan frekuensi
suara yang sangat keras dan mendengarkan gema yang memantul kembali dari objek
disekitarnya. Frekuensi yang dipancarkan bisa bervariasi dalam sifat dan dapat
dikorelasikan dengan strategi berburu mereka, tergantung pada spesies kelelawar
tersebut. Kebanyakan kelelawar menggunakan gelombang pendek dan menggunakan
frekuensi konstan untuk sinyal ekolokasi.
3.3 Ekolokasi Kelelawar
Meskipun setiap frekuensi suara yang dipancarkan oleh kelelawar hanya
berlangsung sangat singkat yaitu sekitar seperseribu detik, namun ia memiliki
frekuensi konstan diantara 25 kHz sampai 150 kHz. Kisaran frekuensi untuk sebagian
besar spesies kelelawar biasanya memang berada diantara 25 kHz dan 100 kHz, akan
tetapi beberapa spesies kelelawar dapat memancarkan frekuensi yang lebih tinggi
hingga mencapai 150 kHz. Setiap suara yang dipancarkan oleh kelelawar hanya
16
berlangsung antara 5 sampai 20 ms, dan kelelawar kecil dapat memancarkan sekitar
10 sampai 20 gelombang suara tersebut setiap detiknya. Namun ketika berburu
tingkat gelombang suara yang dipancarkan dapat melesat hingga sekitar 200
gelombang suara per detik ketika mereka terbang di dekat mangsanya. Gelombang
suara tersebut menyiratkan kemampuan fantastis kekuatan pemprosesan sinyal
kelelawar. Bahkan, studi menunjukkan waktu integrasi telinga kelelawar biasanya
sekitar 300 hingga 400 mikro detik.
Sebagai kecepatan suara di udara biasanya , panjang gelombang
dari gelombang suara ultrasonik dengan frekuensi konstan didefinisikan sebagai :
dengan kisaran antara 2mm sampai 14mm, dan untuk rentang frekuensi antara 25
kHz sampai 150 kHz.
Memang beberapa kelelawar memiliki penglihatan yang baik, dan sebagian besar
kelelawar juga memiliki indra penciuman yang sangat sensitif. Pada kenyataannya,
mereka akan menggunakan semua indra sebagai kombinasi untuk memaksimalkan
deteksi efisien navigasi mangsa dan lebih tenang. Namun, di sini kita hanya tertarik
pada ekolokasi dan perilaku yang terkait. Dari perilaku ekolokasi kelelawar dapat
dirumuskan sehingga dapat dikaitkan dengan fungsi tujuan yang akan dioptimalkan,
dan ini memungkinkan untuk merumuskan algoritma optimasi.
17
3.4 Karakteristik Bat Algorithm
Bat Algorithm adalah algoritma optimasi berdasarkan dari perilaku ekolokasi
kelelawar. Dari beberapa karakteristik ekolokasi kelelawar, dapat dikembangkan
menjadi algoritma kelelawar. Untuk menyederhanakan perilaku dari kelelawar ,maka
aturan dari perilaku kelelawar dapat diasumsikan sebagai berikut [3]:
1. Semua kelelawar menggunakan ekolokasi untuk merasakan jarak, dan mereka
juga mengetahui perbedaan antara makanan / mangsa dan keadaan sekitar.
2. Kelelawar terbang secara acak dengan kecepatan dan pada posisi dengan
frekuensi tetap, panjang gelombang dan kenyaringan untuk mencari
mangsa. Mereka secara otomatis dapat menyesuaikan panjang gelombang (atau
frekuensi) suara yang mereka pancarkan dan menyesuaikan tingkat emisi pulse
, tergantung pada jarak target mereka.
3. Meskipun kenyaringan dapat bervariasi dalam berbagai hal, kita asumsikan
bahwa kenyaringan bervariasi dari besar (positif) ke nilai konstan minimum
.
Selain asumsi sederhana diatas, dapat juga digunakan penyesuaian untuk lebih
kesederhanaannya. Secara umum frekuensi berada dalam range , dan
panjang gelombang menyesuaikan dalam range . Misalnya frekuensi
berada pada kisaran [20kHz, 500kHz], maka panjang gelombangnya antara 0.7 mm
sampai 17 mm.
18
Berdasarkan aturan dari perilaku kelelawar diatas, langkah-langkah dasar dari
Bat Algorithm dapat dilihat pada gambar 3.1 .
Gambar 3.1 Flowchart Bat Algorithm
dan ( ) f(
Selesai
Inisialisasi populasi , &
Definiskan pulse frekuensi ( pada ), max iterasi
max iterasi
Membangkitkan solusi baru
Pilih sebagai solusi terbaik dan Membangkitkan solusi di sekitar
Pilih sebagai solusi baru
Menemukan solusi terbaik
Mulai
Fungsi
19
3.5 Gerakan Kelelawar Virtual
Dalam simulasi Bat Algorithm ini digunakan kelelawar virtual. Serta harus
menentukan aturan bagaimana posisi dan kecepatan dalam ruang pencarian
dimensi . Solusi baru adalah posisi kelelawar ke pada iterasi ke dan kecepatan
kecepatan kelelawar ke pada iterasi ke , dapat didefinisikan sebagai berikut :
(3.2)
(3.3)
(3.4)
dimana β [0, 1] adalah vektor acak yang diambil dari distribusi uniform. Berikut
adalah solusi terbaik global yang didapat setelah membandingkan semua solusi di
antara semua kelelawar . Dalam pelaksanaannya, kami menggunakan dan
. Pada awalnya, setiap kelelawar disebar secara acak dengan frekuensi
yang diambil dari distribusi uniform [ , ].
Pada bagian pencarian lokal, setelah solusi yang dipilih dengan cara
membandingkan di antara solusi terbaik pada saat , maka solusi baru untuk setiap
kelelawar yang dihasilkan secara local menggunakan random walk, didefinisikan
sebagai
(3.5)
dimana [-1, 1] adalah bilangan random, sedangkan adalah kenyaringan
rata-rata dari semua kelelawar pada waktu . Jadi update dari kecepatan dan posisi
20
kelelawar dipengaruhi oleh kenyaringan dan gelonbang suara pada setiap
iterasinya
.
3.6 Kenyaringan Dan Gelombang Suara Kelelawar
Pada prosesnya kenyaringan dan tingkat gelombang suara harus diperbarui
sesuai dengan iterasinya. Kenyaringan suara kelelawar biasanya akan berkurang
setelah kelelawar telah menemukan mangsanya, sedangkan tingkat gelombang suara
meningkat, kenyaringan dapat dipilih sebagai setiap nilai kenyamanan. Misalnya
menggunakan dan . Untuk mempermudah juga bisa
menggunakan dan , dengan asumsi bahwa berarti
kelelawar baru saja menemukan mangsa dan untuk sementara berhenti memancarkan
suara. Maka dapat didefinisikan sebagai
(3.6)
dimana dan adalah konstanta. Untuk setiap dan , maka dapat
didefinisikan
(3.7)
Dalam kasus kesederhanaan, kita dapat menggunakan , dan kami
menggunakan dalam simulasi. Pilihan parameter memerlukan beberapa
percobaan. Awalnya, setiap kelelawar harus memiliki nilai yang berbeda dari
kenyaringan dan tingkat gelombang suara, dan ini dapat dicapai dengan melakukan
pengacakan. Misalnya, kenyaringan awal biasanya bisa [1, 2], sedangkan tingkat
21
gelombang suara awal dapat nol, atau nilai
jika menggunakan
persamaan (3.6). Tingkat kenyaringan dan tingkat gelombang suara mereka akan
diperbarui hanya jika solusi baru ditingkatkan, yang berarti bahwa kelelawar ini
bergerak menuju solusi optimal.
3.7 Benchmark Functions
Berdasarkan flowchart Bat Algorithm dapat diaplikasikan kedalam bahasa
pemprograman. Ada beberapa fungsi test standar untuk memvalidasi suatu algoritma
yang disebut dengan Benchmark Functions, diantaranya fungsi Rosenbrocks dan
fungsi Price 1 [9]. Untuk mempermudah, penerapkan fungsi test Rosenbrocks dan
Price 1 menggunakan software Matlab.
Tabel 3.1 Perbandingan Hasil Uji dan Nilai Eksak Fungsi Rosenbrock’s
Hasil Uji Test Nilai eksak
1 1
1 1
2.9672E-10 0
Tabel 3.1 merupakan hasil simulasi perhitungan algoritma bat, dengan fungsi Rosenbrock
pada Matlab.
∑
22
Menggunkan parameter loudness dan pulse , dengan domain
dan frekuensi untuk setiap . Fungsi Rosenbrock diatas menggunakan
200 bat virual ( ) dan perulangan sebanyak 1000 kali. Dari 200 virtual bat yang
bergerak secara random dengan batasan yang telah ditentukan, dapat dilihat bahwa virtual bat
tersebut bertemu pada titik optimum global (nilai best ) = (1,1) dan mendapatkan hasil
pada d=2.
function z=Fun(u)
% Rosenbrock function with fmin=0 at (1,1,...,1)
d=length(u);
sum=0;
for j=1:(d-1);
new=(100*(((u(j+1))-(u(j))^2)^2))+(((u(j))-1)^2);
sum=sum+new;
end
z=sum;
Tabel 3.2 Perbandingan Hasil Uji dan Nilai Eksak Fungsi Price 1
Hasil Uji Test Nilai eksak
5 atau -5 5 atau -5
5 atau -5 5 atau -5
1.1943E-11 0
Tabel 3.2 merupakan hasil simulasi perhitungan algoritma bat, dengan fungsi Price 1 pada
Matlab.
23
| | | | (3.9)
Menggunkan parameter loudness dan pulse , dengan domain
dan frekuensi untuk setiap . Fungsi Price 1 diatas menggunakan 200
bat virual ( ) dan perulangan sebanyak 1000 kali, untuk d=2. Dari banyaknya
virtual bat yang bergerak secara random dengan batasan yang telah ditentukan, dapat dilihat
bahwa virtual bat tersebut bertemu pada titik optimum global (nilai best ) = (5,-5), (-5,5) dan
dan yang mendekati 0.
function z=Fun(xx)
% Price 1 function with fmin=0 at x*={-5.-5},{-5.5},{5.-5},{5.5}
x1=xx(1);
x2=xx(2);
sum=((abs(xx(1)))-5)^2+((abs(xx(2)))-5)^2;
z=sum;
Dengan demikian berdasarkan hasil test fungsi Rosenbrocks dan Price 1, terlihat
bahwa nilai eksak memiliki nilai yang hampir sama dengan hasil uji coba dengan Bat
Algorithm. Oleh karena itu dapat disimpulkan bahwa Bat Algorithm memiliki kinerja
yang baik dan dapat digunakan dalam mencari solusi optimal.
24
BAB IV
APLIKASI BAT ALGORITHM PADA SISTEM PERSAMAAN NONLINIER
Pada bab ini akan dibahas mengenai penerapan Bat Algorithm yang
dimodifikasikan dengan metode Steepest Descent untuk menyelesaikan contoh kasus
sistem persamaan nonlinier. Langkah awal adalah merubah sistem persamaan
nonlinier menjadi permasalahan optimisasi.
4.1 Sistem Persamaan Nonlinier
Sistem persamaan nonlinier dapat didefinisikan sebagai :
( )
[ ( ) ( )
( )]
(4.1)
dimana setiap fungsi dapat memetakan vektor ( ) dari ruang
dimensional ke . Permasalahan mencari akar-akar dari suatu sistem persamaan
nonlinier dapat diubah ke dalam permasalahan optimasi. Agar dapat menggunakan
metode optimasi, persamaan (4.1) dapat diubah menjadi fungsi kuadratik dan untuk
menyelesaikan sistem persamaan nonlinier sama dengan meminimalkan fungsi. Maka
dapat didefinisikan sebagai :
( ) ∑( ( ))
( ) [ ) ( )
25
Untuk menyelesaikan persamaan diatas (4.2) digunakan Bat Algorithm (BA)
dengan parameter : , , dan .
4.2 Contoh Kasus 1
Misal sistem persamaan nonlinier :
( ) [
] ( )
dengan dan . Dari sistem persamaan (4.3) akan dicari solusi
dari sistem persamaan tersebut yaitu titik potong antara kedua kurva yang dihasilkan.
Hasil plot dari persamaan (4.3) dapat dilihat pada gambar 4.1. Berdasarkan gambar
tersebut terlihat bahwa terdapat 4 titik perpotongan yang merupakan nilai akar-akar
persamaan (4.3). Untuk mencari nilai akar-akar dari kasus ini menggunakan (4.2).
Gambar 4.1 Plot Sistem Persamaan Nonlinier 4.3.
26
Nilai akar-akar yang dihasilakan oleh Bat Algorithm dengan melakukan 30 kali
percobaan pada metode (4.2) dapat dilihat pada tabel 4.1. Dengan demikian nilai
akar-akar persamaan (4.3) adalah {(0.517638, 1.931852), (1.931852, 0.517638), (-
0.517638, -1.931852), (-1.931852, -0.517638)}.
4.3 Contoh Kasus 2
Diberikan sistem persamaan nonlinier :
( ) [
( )
( )
] (4.4)
dengan . Dari sistem persamaan (4.4) akan dicari solusi dari
sistem persamaan tersebut yaitu titik potong antara ketiga kurva yang dihasilkan.
Pada persamaan (4.4) terdapat 1 titik perpotongan yang merupakan nilai akar-
akarnya. Untuk mencari akar-akar tersebut menggunakan persamaan (4.2) dilakukan
iterasi sebanyak 1000. Nilai akar-akar yang dihasilkan oleh Bat Algorithm dengan
melakukan 10 kali percobaan dapat dilihat pada tabel 4.2.
27
Tabel 4.2 Nilai akar-akar persamaan yang dihasilkan oleh BA pada contoh kasus 2.
Percobaan t
F(x1, x2, x3)
1 0.4981 -0.1996 -0.5288 2.7921E-09
2 0.4981 -0.1996 -0.5288 1.8373E-07
3 0.4981 -0.1996 -0.5288 8.1285E-08
4 0.4981 -0.1996 -0.5288 1.0846E-07
5 0.5001 0 -0.5236 3.0502E-07
6 0.5002 0 -0.5236 3.6432E-07
7 0.4983 -0.1996 -0.5288 1.4155E-07
8 0.4982 -0.1996 -0.5288 7.3036E-08
9 0.4983 -0.1996 -0.5288 1.9187E-07
10 0.5001 0 -0.5236 1.518E-08
Berdasarkan nilai akar-akar persamaan pada tabel 4.2 yang dihasilkan oleh Bat
Algorithm akan dibandingkan dengan solusi numerik yang dihasilakan oleh metode
steepest descent. Dimana solusi numerik untuk persamaan (4.4) adalah (0.5 , 0 , -
0,5235988) [7], dengan ( ) . Sedangkan solusi yang
dihasilkan oleh Bat Algorithm adalah (0.4981, -0.1996, -0.5288) dengan
( ) . Dari hasil tersebut menunjukan bahwa kedua solusi
sama-sama mendekati nol (0) dengan eror sangat kecil dan Bat Algorithm lebih baik
karena menghasilkan error yang lebih kecil.
28
BAB V
KESIMPULAN
5.1 Kesimpulan
Kesimpulan yang dapat diambil berdasarkan bab sebelumnya adalah sebagai
berikut :
1. Dari hasil uji funsi Rosenbrock dan fungsi Price 1 dapat disimpulkan bahwa
Bat Algoritma dapat digunakan dalam mencari solusi optimum.
2. Metode pencarian solusi sistem persamaan nonlinier dapat menggunakan
metode Bat Algorithm.
3. Pada contoh kasus 1, nilai akar-akar yang dihasilkan oleh Bat Agorithm
dengan melakukan 30 kali percobaan adalah {(0.517638, 1.931852),
(1.931852, 0.517638), (-0.517638, -1.931852), (-1.931852, -0.517638)}.
4. Pada contoh kasus 2, nilai akar-akar yang dihasilkan oleh Bat Algorithm
adalah ( , , ) = (0.4981 , -0.1996 , -0.5288)
5.2 Saran
Dalam penelitian ini, peneliti hanya melakukan analisis penentuan solusi
untuk mendapatkan akar-akar dari persamaan nonlinier dengan metode Bat
Algorithm. Oleh sebab itu, penulis mempunyai saran untuk peneliti lain yang juga
tertarik dengan materi ini:
29
1. Pada penelitian selanjutnya, dapat mengaplikasikan metode Bat Algorithm dalam
masalah sehari-hari seperti pencarian jalur terpendek, dan lain-lain.
2. Penelitian ini dapat dilanjutkan kembali untuk mencari solusi dari akar-akar
persamaan nonlinier dengan variabel yang lebih bnayak.
30
DAFTAR PUSTAKA
[1] Munir, Rinaldi. 2008, Metode Numerik, Bandung: Informatika.
[2] Yang, Xin – She. 2010, Engineering Optimization An Introduction with
Metaheuristic Applications, United Kingdom: University of Cambridge.
[3] Yang, Xin – She. 2010, A New Metaheuristic Bat Inspired Algorithm, University
of Cambridge : Department of Engineering.
[4] Yang, Xin – She. 2008, Introduction to Mathematical Optimization, United
Kingdom: University of Cambridge.
[5] Soelaiman, Rully. and Chasiani, Nur. Penerapan Optimasi Chaos dan Metode
BFGS (Broyden, Fletcher, Goldfarb, and Shanno) Pada Penyelesaian
Permasalahan Sistem Persamaan Nonlinier, Surabaya : Institut Teknologi
Sepuluh November, Fakultas Teknologi Informasi.
[6] Marta Devi, Faradila. 2011, Penyelesaian Sistem Persamaan Nonlinier Dengan
Metode Jaringan Syaraf Tiruan Hopfield, Jakarta: Universitas Islam Negeri.
[7] Burden, Richard L. Faires, J Douglas. 2010, Numerical Analysis, Ninth Edition, .
[8] Altringhan, J. D. 1996, Bats : Biology and Behavior, Oxford University Press.
[9] Jamil, Momin. Yang, Xin – She. 2013, A Literature Survey of Benchmark
Functions For Global Optimization Problem, Sweden : Blekinge Institute of
Technology SE-37179, Karlskrona.
31
[10] Liebenlito, Muhaza. 2014, Pencarian Akar-akar Sistem Persamaan Nonlinier
Dengan Firefly Algorithm, Jakarta :
32
Lampiran
Tabel 4.1 Nilai akar-akar persamaan yang dihasilkan oleh BA pada contoh kasus 1.
Percobaan x y F(x,y)
1 0,517638 1,931852 1,9037E-10
2 -1,931852 -0,517638 1,0681E-10
3 -0,517638 -1,931852 2,6354E-10
4 -0,517638 -1,931852 6,1013E-10
5 -1,931852 -0,517638 5,8368E-11
6 1,931852 0,517638 4,6018E-06
7 1,931852 0,517638 2,9347E-10
8 1,931852 0,517638 2,8414E-10
9 0,517638 1,931852 2,3093E-11
10 0,517638 1,931852 2,9303E-11
11 0,517638 1,931852 2,4338E-10
12 -1,931852 -0,517638 2,2361E-11
13 -1,931852 -0,517638 1,4437E-10
14 0,517638 1,931852 1,5504E-10
15 -1,931852 -0,517638 2,2794E-11
16 0,517638 1,931852 3,6941E-10
17 0,517638 1,931852 1,8827E-10
18 0,517638 1,931852 2,1418E-10
19 -1,931852 -0,517638 1,9838E-11
20 1,931852 0,517638 2,8969E-10
21 -1,931852 -0,517638 6,7118E-11
22 -0,517638 -1,931852 5,8826E-11
23 0,517638 1,931852 1,3939E-10
24 -0,517638 -1,931852 2,6172E-10
25 1,931852 0,517638 1,2647E-10
26 -0,517638 -1,931852 2,2305E-10
27 -1,931852 -0,517638 5,1517E-10
28 -1,931852 -0,517638 4,605E-11
29 -1,931852 -0,517638 6,1025E-11
30 0,517638 1,931852 4,7372E-11
33
Kode Komputasi Software Matlab 2010 untuk Bat Algorithm.
% Main programs starts here function [best,fmin,N_iter]=bat_algorithm(para)
% Default parameters if nargin<1, para=[80 1000 0.5 0.5]; end n=para(1); % Population size, typically 10 to 40 N_gen=para(2); % Number of generations A=para(3); % Loudness (constant or decreasing) r=para(4); % Pulse rate (constant or decreasing) % This frequency range determines the scalings % You should change these values if necessary Qmin=0; % Frequency minimum Qmax=100; % Frequency maximum % Iteration parameters N_iter=0; % Total number of function evaluations % Dimension of the search variables d=3; % Number of dimensions % Lower limit/bounds/ a vector Lb=-1*ones(1,d); % Upper limit/bounds/ a vector Ub=1*ones(1,d); % Initializing arrays Q=zeros(n,1); % Frequency v=zeros(n,d); % Velocities % Initialize the population/solutions for i=1:n, Sol(i,:)=Lb+(Ub-Lb).*rand(1,d); Fitness(i)=Fun(Sol(i,:)); end % Find the initial best solution [fmin,I]=min(Fitness); best=Sol(I,:);
% Start the iterations -- Bat Algorithm (essential part) % for t=1:N_gen, %while fmin <= 0, % Loop over all bats/solutions for i=1:n, Q(i)=Qmin+(Qmin-Qmax)*rand; v(i,:)=v(i,:)+(Sol(i,:)-best)*Q(i); S(i,:)=Sol(i,:)+v(i,:); % Apply simple bounds/limits Sol(i,:)=simplebounds(Sol(i,:),Lb,Ub); % Pulse rate if rand>r % The factor 0.001 limits the step sizes of random walks S(i,:)=best+0.001*randn(1,d); end
% Evaluate new solutions Fnew=Fun(S(i,:)); % Update if the solution improves, or not too loud if (Fnew<=Fitness(i)) & (rand<A) , Sol(i,:)=S(i,:); Fitness(i)=Fnew; end
34
% Update the current best solution if Fnew<=fmin, best=S(i,:); fmin=Fnew; end end A=A*0.9; r=r*(1-exp(-0.9*t)); N_iter=N_iter+n; end % Output/display % disp(['Number of evaluations: ',num2str(N_iter)]); disp(['Best =',num2str(best),' fmin=',num2str(fmin)]);
% Application of simple limits/bounds function s=simplebounds(s,Lb,Ub) % Apply the lower bound vector ns_tmp=s; I=ns_tmp<Lb; ns_tmp(I)=Lb(I);
% Apply the upper bound vector J=ns_tmp>Ub; ns_tmp(J)=Ub(J); % Update this new move s=ns_tmp;