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
PERNYATAAN
DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENARBENAR 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
iii
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”
iv
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.
v
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.
vi
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 sunnahsunnah 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,
vii
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-
viii
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
ix
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
x
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
xi
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
xii
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
xiii
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
1
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 ”.
2
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
3
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.
4
BAB II LANDASAN TEORI
2.1 Optimisasi Permasalahan optimisasi dapat dinyatakan sebagai permasalahan optimisasi nonlinier dengan kendala, didefinisikan sebagai : memaksimalkan / meminimalkan. ( )
(
)
Dengan syarat : ( )
(
)
( di mana ( ),
( ) dan
itu komponen
dari
)
(2.1)
adalah fungsi skalar dari vektor kolom . Oleh karena (
) disebut variabel desain atau lebih sering
disebut variabel keputusan, dan variabel tersebut bisa kontinu atau diskrit ataupun keduanya. Vektor pada ruang
sering disebut vektor keputusan yang bervariasi dalam dimensi
. Fungsi
( ) disebut fungsi objektif atau fungsi yang akan
dimaksimum atau diminimumkan. Selain itu, ada dalam bentuk sejumlah M persamaan, dan
( ) yang merupakan kendala
( ) 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.
5
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 keputusan ke ruang solusi
domain atau ruang variabel
(atau sumbu real pada umumnya).
Fungsi objektif ( ) dapat berupa linier atau nonlinier. Jika kendala semua linier, maka disebut permasalahan linier dengan kendala. Selanjutnya, dan fungsi objektif
dan ,
( ) 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].
6
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 (
( ) dan pada
)
)
(
)
diatas, pada
(
(
)
, maka (
) )
, maka ( )
( )
(
( )
( ) ) 7
karena Dan
( ) ( )
, maka nilai maksimum dari pada saat
, maka nilai minimum
, pada
.
.
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
8
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 dimensional
dapat memetakan vektor
(
) dari ruang
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
9
(
)
∑[ (
)]
(
)
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
2.3.1
( )
( )
diganti oleh
.
( )
.
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
10
sifat penting lain yang terhubung dengan minimalisasi fungsi multivariabel. Misalkan v=(
) adalah vektor satuan dalam ‖ ‖
Turunan berarah dari
di
ke arah
dapat didefinisikan sebagai
∑
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
. Akibatnya, arah penurunan terbesar nilai
diberikan oleh
pada
( ). Gambar 2.2 adalah ilustrasi ketika
( ) , asalkan adalah arah yang
adalah fungsi dari dua
variabel.
11
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 pembedaan
( )
secara langsung akan memerlukan
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
terjadi. Kami kemudian membangun kuadrat polinomial menginterpolasi
pada
dan
( ) yang
( ) yang dapat
.
12
Kami mendefinisikan ̂ pada [ dan menggunakan
] sehingga ( ̂) adalah minimum di [
]
( ̂) untuk memperkirakan nilai minimum ( ) . Kemudian ̂
digunakan untuk menentukan iterasi baru untuk mendekati nilai minimal : ( )
Karena ( Berikutnya , maka
( )
( )
̂
(
( )
)
) ada untuk meminimalkan perhitungan pertama kita memilih ditemukan dengan (
memang ada.) Akhirnya,
)
(
). (Karena
yang dipilih sebagai
.
tidak meminimumkan .
13
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 satusatunya mamalia yang memiliki sayap, serta memiliki kemampuan canggih yang disebut ekolokasi. Diperkirakan ada sekitar 996 spesies berbeda, yang mencangkup 14
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 15
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.
16
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
frekuensi
tetap, panjang gelombang
dan pada posisi
dan kenyaringan
dengan
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
panjang gelombang menyesuaikan dalam range
, dan
. Misalnya frekuensi
berada pada kisaran [20kHz, 500kHz], maka panjang gelombangnya antara 0.7 mm sampai 17 mm.
17
Berdasarkan aturan dari perilaku kelelawar diatas, langkah-langkah dasar dari Bat Algorithm dapat dilihat pada gambar 3.1 .
Mulai Fungsi Inisialisasi populasi
,
Definiskan pulse frekuensi ( pada
&
), max iterasi
max iterasi
Membangkitkan solusi baru
Pilih sebagai solusi terbaik
dan Membangkitkan solusi di sekitar
dan ( )
f(
Pilih sebagai solusi baru Menemukan solusi terbaik
Selesai Gambar 3.1 Flowchart Bat Algorithm
18
3.5 Gerakan Kelelawar Virtual Dalam simulasi Bat Algorithm ini digunakan kelelawar virtual. Serta harus menentukan aturan bagaimana posisi dimensi . Solusi baru
dan kecepatan
dalam ruang pencarian
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
19
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 menggunakan
dan dan
.
Untuk
mempermudah
, dengan asumsi bahwa
juga
bisa 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 menggunakan
, dan kami
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
20
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.
∑
21
Menggunkan parameter loudness dan frekuensi
dan pulse
untuk setiap
200 bat virual (
, dengan domain
. Fungsi Rosenbrock diatas menggunakan
) 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. 22
| | Menggunkan parameter loudness dan frekuensi
| | dan pulse
untuk setiap
bat virual (
(3.9) , dengan domain
. Fungsi Price 1 diatas menggunakan 200
) 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.
23
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 dimensional
ke
(
dapat memetakan vektor
) dari ruang
. 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 : ( )
∑( ( ))
24
( )
[
)
(
)
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.
25
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 : ( (
dengan
)
[
(
) )
]
(4.4)
. 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 akarakarnya. 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.
26
Tabel 4.2 Nilai akar-akar persamaan yang dihasilkan oleh BA pada contoh kasus 2. Percobaan t 1 2 3 4 5 6 7 8 9 10
0.4981 0.4981 0.4981 0.4981 0.5001 0.5002 0.4983 0.4982 0.4983 0.5001
-0.1996 -0.1996 -0.1996 -0.1996 0 0 -0.1996 -0.1996 -0.1996 0
-0.5288 -0.5288 -0.5288 -0.5288 -0.5236 -0.5236 -0.5288 -0.5288 -0.5288 -0.5236
F(x1, x2, x3) 2.7921E-09 1.8373E-07 8.1285E-08 1.0846E-07 3.0502E-07 3.6432E-07 1.4155E-07 7.3036E-08 1.9187E-07 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.
27
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:
28
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.
29
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.
30
[10] Liebenlito, Muhaza. 2014, Pencarian Akar-akar Sistem Persamaan Nonlinier Dengan Firefly Algorithm, Jakarta :
31
Lampiran
Tabel 4.1 Nilai akar-akar persamaan yang dihasilkan oleh BA pada contoh kasus 1. Percobaan 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
x 0,517638 -1,931852 -0,517638 -0,517638 -1,931852 1,931852 1,931852 1,931852 0,517638 0,517638 0,517638 -1,931852 -1,931852 0,517638 -1,931852 0,517638 0,517638 0,517638 -1,931852 1,931852 -1,931852 -0,517638 0,517638 -0,517638 1,931852 -0,517638 -1,931852 -1,931852 -1,931852 0,517638
y 1,931852 -0,517638 -1,931852 -1,931852 -0,517638 0,517638 0,517638 0,517638 1,931852 1,931852 1,931852 -0,517638 -0,517638 1,931852 -0,517638 1,931852 1,931852 1,931852 -0,517638 0,517638 -0,517638 -1,931852 1,931852 -1,931852 0,517638 -1,931852 -0,517638 -0,517638 -0,517638 1,931852
F(x,y) 1,9037E-10 1,0681E-10 2,6354E-10 6,1013E-10 5,8368E-11 4,6018E-06 2,9347E-10 2,8414E-10 2,3093E-11 2,9303E-11 2,4338E-10 2,2361E-11 1,4437E-10 1,5504E-10 2,2794E-11 3,6941E-10 1,8827E-10 2,1418E-10 1,9838E-11 2,8969E-10 6,7118E-11 5,8826E-11 1,3939E-10 2,6172E-10 1,2647E-10 2,2305E-10 5,1517E-10 4,605E-11 6,1025E-11 4,7372E-11
32
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
33
% 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_tmpUb; ns_tmp(J)=Ub(J); % Update this new move s=ns_tmp;
34