You are on page 1of 25

MAKALAH OPTIMASI NUMERIK II

MODIFIED PARTICLE SWARM OPTIMIZATION DECREASED INERTIA WEIGHT


(MPSO-NDW)

Dosen Pengampu :
Syaiful Anam,S.Si,MT,Ph.D.

Oleh:
Eirene Putri Hutasoit (15509040011101
0)
(15509040111102
Fitri Kurniawati
2)
(15509040711100
Yona Lotusia Pradana
4)
(15509040711100
Yulia Kodrianti 7)

JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS BRAWIJAYA
MALANG
2018

KATA PENGANTAR
Puji syukur penulis panjatkan kepada Tuhan Yang Maha Esa yang telah memberikan
rahmat dan karunianya sehingga penulis dapat menyelesaikan makalah dengan judul.
Makalah ini merupakan salah satu tugas akhir mata kuliah Optimasi Numerik II.
Selanjutnya kami ucapkan banyak terima kasih yang sebesar-besarnya kepada Bapak
Syaiful Anam, S.Si, MT, Ph.D selaku dosen pengampu mata kuliah Optimasi Numerik II dan
kepada segenap pihak yang telah memberikan bimbingan serta arahan selama penulisan
makalah ini.
Penulis menyadari bahwa banyak terdapat kekurangan-kekurangan dalam penulisan
makalah ini, oleh karena itu penulis mengharapkan kritik dan saran yang mebanguan dari
para pembaca demi kesempurnaan makalah ini.
Malang, 21 Mei 2018
Tim penulis

i
DAFTAR ISI
KATA PENGANTAR ............................................................................................................................
i
DAFTAR ISI..........................................................................................................................................
ii
BAB I PENDAHULUAN .....................................................................................................................
1
1.1 LATAR BELAKANG ........................................................................................................... 1
1.2 Rumusan Masalah ................................................................................................................ 2
1.3 Tujuan .................................................................................................................................... 2
BAB II DASAR TEORI ........................................................................................................................
3
2.1 Particle Swarm Optimization (PSO) .........................................................................................
3
2.2 Modifikasi MPSO-NDW(Nonlinear Decreased Weight) .........................................................
6
BAB III HASIL DAN PEMBAHASAN ..............................................................................................
7
3.1 Rancangan Metode MPSO-NDW ..............................................................................................
7
3.2 Algoritma Metode MPSO-NDW ................................................................................................
8
3.3 Hasil dan Evaluasi .......................................................................................................................
9
3.3.1 Fungsi Rosenbrock .................................................................................................................
10
3.3.2 Fungsi Griwank ......................................................................................................................
13
BAB IV KESIMPULAN .....................................................................................................................
17
DAFTAR PUSTAKA ..........................................................................................................................
18
Lampiran. ............................................................................................................................................
19
ii
BAB I PENDAHULUAN

1.1 LATAR BELAKANG

Optimasi merupakan suatu proses untuk mencari kondisi yang optimum, dalam arti
paling menguntungkan. Optimasi bisa berupa maksimasi atau minimasi. Salah satu metode
yang bisa digunakan untuk mengoptimasikan sebuah fungsi adalah Particle Swarm
Optimization (PSO). PSO merupakan salah satu teknik komputasi evolusioner yang
dikembangkan oleh Kennedy dan Eberhart pada tahun 1995 dimana algoritma PSO
didasarkan pada simulasi perilaku sekelompok burung atau ikan. Ide dasar dalam PSO
datang dari perilaku sekelompok burung saat mencari makanan. Keunggulannya yaitu
dapat menentukan solusi yang baik dalam permasalahan optimasi dibandingkan algoritma
evolusioner lainnya seperti algoritma genetika dan ant colony. Dibandingkan algoritma
genetika dan ant colony, PSO mempunyai bentuk algoritma yang sederhana, cepat
konvergen, efisien dalam perhitungan waktu dan mudah diimplementasikan pada program
komputer.
Meskipun PSO memiliki beberapa keunggulan, namun juga terdapat beberapa
masalah seperti terlalu cepat konvergen pada ruang solusi local optimal (premature
konvergen) dan terjebak dalam optimum local. Adapun penyebab dari konvergen dini ini
adalah karena ketidakseimbangan antara kemampuan eksplorasi dan eksploitasi dalam
PSO. Kemampuan eksplorasi atau kemampuan pencarian global adalah kemampuan untuk
mengidentifikasi daerah dengan solusi terbaik pada PSO. Partikel dengan kemampuan
eksplorasi yang kuat memiliki kecepatan yang tinggi dalam mencari di area yang luas.
Sedangkan kemampuan eksploitasi atau kemampuan pencarian lokal adalah kemampuan
PSO untuk mengambil solusi terbaik pada area yang terbatas. Partikel dengan kemampuan
eksploitasi yang kuat akan memiliki kecepatan yang rendah dalam menangkap solusi
terbaik. Jika partikel berada pada posisi yang jauh dari solusi terbaik, diperlukan
kemampuan eksplorasi yang kuat sedangkan, jika partikel berada pada posisi yang dekat
dengan solusi terbaik maka diperlukan kemampuan eksploitasi yang kuat.
Dengan demikian, pengaturan kedua kemampuan tersebut diperlukan agar
mendapatkan keseimbangan yang tepat. Penyesuaian berat inersia (inertia weight)
digunakan untuk mengatur kemampuan eksploitasi dan eksplorasi. Maka dari itu, makalah
ini membahas modifikasi dari algoritma PSO menggunakan nonlinearly decreased inertia
weight yang mengatur periode dan tingkat pengurangan kemampuan eksploitasi dan
eksplorasi.

1
1.2 Rumusan Masalah

Dari latar belakang masalah diatas dapat diambil suatu rumusan masalah yaitu,
1. Bagaimana modifikasi dari Particle Swarm Optimzation (PSO) untuk
menentukan titik optimal dengan menggunakan nonlinear inertia weight ?
2. Bagaimana perbedaan hasil PSO biasa dengan MPSO-NDW?

1.3 Tujuan

Adapun tujuan dari penulisan makalah ini yaitu,

1. Memodifikasi Particle Swarm Optimzation (PSO) untuk menyelesaikan masalah


optimasi
2. Mengetahui perbedaan hasil optimasi PSO dengan MPSO-NDW.

BAB II DASAR TEORI

2
2.1 Particle Swarm Optimization (PSO)
Particle Swarm Optimization (PSO) diperkenalkan oleh Dr. Eberhart dan Dr.
Kennedy pada tahun 1995, merupakan algoritma optimasi yang meniru proses yang
terjadi dalam kehidupan populasi burung (flock of bird) dan ikan (school of fish) dalam
bertahan hidup. Sejak diperkenalkan pertama kali, algoritma PSO berkembang cukup
pesat, baik dari sisi aplikasi maupun dari sisi pengembangan metode yang digunakan
pada algoritma tersebut (Haupt, R.L. & Haupt, S.E. 2004). Oleh karena itu, mereka
mengkategorikan algoritma sebagai bagian dari kehidupan rekayasa atau buatan Artificial
Life. Algoritma ini juga terhubung dengan komputasi evolusioner, algoritma genetic dan
pemrograman evolusionari (Jatmiko et al. 2010).

Dalam Particle Swarm Optimization (PSO), kawanan diasumsikan mempunyai


ukuran tertentu dengan setiap partikel posisi awalnya terletak disuatu lokasi yang acak
dalam ruang multidimensi. Setiap partikel diasumsikan memiliki dua karakteristik yaitu
posisi dan kecepatan. Setiap partikel bergerak dalam ruang atau space tertentu dan
mengingat posisi terbaik yang pernah dilalui atau ditemukan terhadap sumber makanan
atau nilai fungsi objektif. Setiap partikel menyampaikan informasi atau posisi terbaiknya
kepada partikel yang lain dan menyesuaikan posisi dan kecepatan masing - masing
berdasarkan informasi yang diterima mengenai posisi yang bagus tersebut.

Particle Swarm Optimization (PSO) adalah salah satu dari teknik komputasi
evolusioner, yang mana populasi pada PSO didasarkan pada penelusuran algoritma dan
diawali dengan suatu populasi yang random yang disebut dengan particle. Berbeda
dengan teknik komputasi evolusioner lainnya, setiap particle di dalam PSO juga
berhubungan dengan suatu velocity. Partikel-partikel tersebut bergerak melalui
penelusuran ruang dengan velocity yang dinamis yang disesuaikan menurut perilaku
historisnya. Oleh karena itu, partikel-partikel mempunyai kecenderungan untuk bergerak
ke area penelusuran yang lebih baik setelah melewati proses penelusuran.

Pada algoritma PSO vektor velocity di update untuk masing-masing partikel


kemudian menjumlahkan vektor velocity tersebut ke posisi particle. Update velocity
dipengaruhi oleh kedua solusi yaitu global best yang berhubungan dengan biaya yang
paling rendah yang pernah diperoleh dari suatu particle dan solusi local best yang
berhubungan dengan biaya yang paling rendah pada populasi awal. Jika solusi local best
mempunyai suatu biaya yang kurang dari biaya solusi global yang ada, maka solusi local
best menggantikan solusi global best. Kesederhanaan algoritma dan performansinya yang
baik, menjadikan PSO telah menarik banyak perhatian dikalangan para peneliti dan telah
3
diaplikasikan dalam berbagai persoalan optimisasi. PSO telah populer menjadi optimisasi
global dengan sebagian besar permasalahan dapat diselesaikan dengan baik di mana
variabel-variabelnya adalah bilangan riil.

Beberapa istilah umum yang biasa digunakan dalam Particle Swarm Optimization
dapat didefinisikan sebagai berikut:

1. Swarm : populasi dari suatu algoritma.


2. Particle : anggota (individu) pada suatu swarm. Setiap particle
merepresentasikan suatu solusi yang potensial pada permasalahan yang
diselesaikan. Posisi dari suatu particle adalah ditentukan oleh representasi
solusi saat itu.
3. Pbest (Personal best) : posisi Pbest suatu particle yang menunjukkan posisi
particle yang dipersiapkan untuk mendapatkan suatu solusi yang terbaik.
4. Gbest (Global best) : posisi terbaik particle pada swarm atau posisi terbaik
diantara Pbest yang ada.
5. Velocity (v) : vektor yang menggerakkan proses optimisasi yang menentukan
arah di mana suatu particle diperlukan untuk berpindah (move) untuk
memperbaiki posisinya semula atau kecepatan yang menggerakkan proses
optimasi yang menentukan arah dimana particle diperlukan untuk berpindah
dan memperbaiki posisinya semula.
6. Inertia weight (w) : parameter ini digunakan untuk mengontrol dampak dari
adanya velocity yang diberikan oleh suatu particle.
7. Learning Rates (c1 dan c2) : suatu konstanta untuk menilai kemampuan
particle (c1) dan kemampuan sosial swarm (c2) yang menunjukkan bobot dari
particle terhadap memorinya.

Berikut bentuk flowchart untuk algoritma Particle Swarm Optimization (PSO) :

 Flowchart
4
2.2 Modifikasi MPSO-NDW(Nonlinear Decreased Weight)

Metode ini merupakan salah satu perbaikan dari metode PSO biasa. Pada metode ini
terdapat perbaikan PSO pada bagian inertia weightnya. Inertia weight berperan dalam

5
mengatur kemampuan eksplorasi dan kemampuan eksploitasi. Pada PSO sebelumnya inertia
weightnya bernilai konstanta. Karena terjadi ketidakseimbangan antara kemampuan
eksplorasi dan kemampuan eksploitasi inilah yang menyebabkan PSO terjebak dalam solusi
optimum lokal, maka perbaikan untuk metode PSO biasa dilakukan. Salah satu parameter
yang baru dalam PSO-NDW adalah parameter �. Parameter � ini merupakan bilangan indeks
nonlinier yang ditambahkan untuk mengontrol waktu dan laju perubahan pada inertia weight
di PSO.

Pada PSO-NDW berfokus pada bagaimana menyesuaikan inertia weight agar


mendapatkan keseimbangan yang baik. Besar inertia weight berada diantara 0.1 sampai 0.9.
Nilai inertia weight terendah menyebabkan kemampuan eksploitasi menguat (𝛽) dan
kemampuan eksplorasi melemah (𝛼). Nilai inertia weight yang tinggi menyebabkan
kemampuan eksploitasi melemah (𝛽) dan kemampuan eksplorasi meningkat (𝛼).
Kombinasi antara kedua kemampuan ini adalah (𝛼 + 𝛽 = 1). Masalah yang dihadapi adalah
bagaimana menyeimbangkan inertia weight ini dalam mengombinasikan dan

menyeimbangkan antara kemampuan eksplorasi dan eksploitasi.

Gambar 1.Hubungan inertia dan kemampuan pada PSO

Perubahan inertia weight pada PSO-NDW dapat dirumuskan sebagai berikut :

6
Semakin besar nilai � akan menyebabkan penggunaan waktu dari kemampuan eksplorasi
semakin cepat dari pada penggunaan waktu dari kemampuan eksploitasi serta penurunan laju
dari kemampuan eksplorasi lebih cepat dari pada peningkatan laju dari kemampuan
eksploitasi.
BAB III HASIL DAN PEMBAHASAN

7
3.1 Rancangan Metode MPSO -NDW
Start

Inisialisasi sw arm
S, x, N, c1, c2, �𝑚𝑎� , �𝑚𝑖� ,
r1 dan r2

Masukkan batas atas


A
Masukkan batas bawah

Solusi Optimal
For m=1 : N

End
Hitung Pbest dan Gbest

Update Inertia Weight


�−𝑚 �
� = �𝑚𝑖� + (�𝑚𝑎� − �𝑚𝑖� ) × ( )
�−1

Update Velocity

� 𝑚 +1 = � . � 𝑚 + �1 . �1 . (��𝑖 − � 𝑚 )
+ �2 . �2 . (𝑔�𝑖 − � 𝑚 )

Update Posisi

� 𝑚 +1 = � 𝑚 + � 𝑚 +1

Next m

3.2 Algoritma Metode MPSO-NDW

8
1. Masukkan banyaknya swarm yang diingiinkan.
2. Masukkan bilangan indeks nonliniear (�).
3. Inisialisasi N (maksimum iterasi), c1 dan c2 (parameter sosial), �𝑚𝑎�, dan �𝑚𝑖�.
4. Masukkan batas bawah dan batas atas.
5. Inisialisasi posisi dan kecepatan dari swarm.
6. Menghitung nilai cost pada masing-masing swarm dengan fungsi objektif yang telah
didefinisikan.
7. Menghitung Pbest dan Gbest. Gbest diperoleh dari cost swarm yang terkecil pada
kasus minimasi (global) sedangka Pbest merupan nilai minimum lokal.

8. Update inertia weight


9. Update kesepatan (velocity)
�� (�) = �� (� − 1)� + �1�1(��𝑒𝑠𝑡,� − �� (� − 1)) + + �2�2(��𝑒𝑠𝑡,� − �� (� − 1))
10. Update posisi
��(�) = �� (� − 1) + �� (�)

11. Cek apakah posisi swarm masih berada dalam batas atas dan batas bawah yang
ditentukan. Jika keluar batas maka posisi swarn akan digantikan dengan nilai batas.
12. Kembali ke langkah 6 sampai N iterasi terpenuhi.
13. Outputnya adalah nilai fungsi yang paling optimum (gbest).

9
3.3 Hasil dan Evaluasi

Untuk membuktikan dan menaksir tingkat efesiensi dan efektivitas pendekatan kami
menggunakan dua macam test function dengan karakteristik yang berbeda yaitu Rosenbrock’s
function (dengan satu titik lokal minimum dan satu titik optimum global) dan Griwank’s
function (dengan satu titik optimum global dan banyak optimum lokal).

Gambar 2. Grienkwank Function

Gambar 1. Gambar fungsi Rosenbrock

Gambar 2. Gambar fungsi Grienwank

10
3.3.1 Fungsi Rosenbrock
Fungsi Rosenbrock Orde 2 dituliskan sebagai berikut :

2
2
+ (1 − �(1))2
�1(�(1), �(2)) = 10 . ((�(1)) − �(2))

Fungsi Rosenbrock minimum global pada saat �(�(1), �(2)) = 0. Kondisi tersebut tercapai
ketika nilai x(1) =1 dan x(2)=1. Jika digunakan metode PSO biasa dengan parameter sebagai
berikut :

Tabel 1. Parameter-Parameter untuk PSO biasa


N ( Iterasi maksimum) 20
�1 = �2 1
W 0.9
Banyaknya swarm 100
Batas � [−5,5]
Batas y [−5,5]

Hasil yang diperoleh dengan fungsi test Rosenbrock dengan program PSO tanpa modifikasi
yaitu :

nilai minimumnya adalah 0.0004613468


dengan posisi swarm yaitu x = 0.9238523740 dan y = 1.7204635258
Elapsed time is 1.076986 seconds.

Gambar 3. Hasil PSO biasa fungsi Rosenbrock dengan parameter pada tabel 1 dan N=20

11
Bandingkan pada saat N=100 akan diperoleh hasil :

nilai minimumnya adalah 0.0000003179


dengan posisi swarm yaitu x = 0.9993070011 dan y = 0.9991676221
Elapsed time is 4.473510 seconds.

Gambar 4. Hasil PSO biasa fungsi Rosenbrock dengan N=100

Maka dapat disimpulkan bahwa dengan metode PSO biasa, untuk mencapai nilai optimum
yang global membutuhkan lebih banyak iterasi.

Selanjutnya akan dibandingkan dengan menggunakan metode MPSO-NDW dengaan


parameter-parameter sebagai berikut :

Tabel 2. Parameter-Parameter untuk MPSO-NDW fungsi Rosenbrock


N ( Iterasi maksimum) 20
�1 = �2 1
�𝑚𝑎� 0.9
�𝑚𝑖� 0.1
Banyaknya swarm 100
Batas � [−5,5]
Batas y [−5,5]
Indek nonliniear 1,2
Maka akan didapatkan hasil :

nilai minimumnya adalah 0.0004516444


dengan posisi swarm yaitu x = 0.9755341483 dan y = 0.9773002541
Elapsed time is 1.574200 seconds.

12
Gambar 5. Hasil MPSO-NDW fungsi Rosenbrock

Dapat dilihat pada Gambar 4 dan Gambar 5, bahwa pada PSO biasa hasilnya akan mendekati
nilai optimum dari fungsi Rosenbrock jika iterasi maksimumnya dalam jumlah yang lebih
besar yaitu 100. Namun untuk MPSO-NDW dengan iterasi maksimumnya sebesar 20 sudah
mendekati nilai optimum fungsi Rosenbrock Dengan demikian MPSO-NDW lebih baik
dibandingkan dengan PSO biasa.

13
3.3.2 Fungsi Griwank

Fungsi Grienkwank Orde Kedua didefinisikan sebagai :

Fungsi Griwank minimum global pada saat �(�(1), �(2)) = 0. Kondisi tersebut tercapai
ketika nilai x(1) =0 dan x(2)=0. Jika digunakan parameter seperti pada tabel 2 dalam
perhitungan metode PSO biasa,

Tabel 3. Parameter-Parameter untuk PSO biasa fungsi Grinwank


N ( Iterasi maksimum) 20
�1 = �2 1
W 0.9
Banyaknya swarm 100
Batas � [−5,5]
Batas y [−5,5]
Hasil yang diperoleh :

nilai minimumnya adalah 0.0069554360


dengan posisi swarm yaitu x = -0.0482993956 dan y = 0.0167300594
Elapsed time is 1.023245 seconds.

Gambar 6. Hasil PSO biasa fungsi Grienkwank

Terlihat bahwa partikel swarm berpencar atau masih berada di titik optimum lokal dan belum
mencapai titik optimum global.

Selanjutnya, Jika digunakan metode MPSO-NDW maka parameter-parameter seperti berikut.

14
Tabel 4. Parameter-Parameter untuk MPSO-NDW fungsi Grinwank
N ( Iterasi maksimum) 20
�1 = �2 1
�𝑚𝑎� 0.9
�𝑚𝑖� 0.1
Banyaknya swarm 100
Batas � [−5,5]
Batas y [−5,5]
Indek nonliniear 1,2
Maka didapatkan hasil :
nilai minimumnya adalah 0.0000000086 dengan posisi swarm yaitu x
= -0.0001779402 dan y = -0.0002960684 Elapsed time is 1.613060
seconds.

Gambar 7. Hasil MPSO-NDW fungsi Grienkwank

Dengan menggunakan jumlah iterasi maksimum yang sama. Metode MPSO-NDW memiliki
hasil yang lebih baik dibandingkan dengan hasil pada PSO biasa.
Dapat dilihat bahwa semakin besar nilai x ( bilangan indeks nonliniear) maka
MPSONDW untuk fungsi Grienkwank akan semakin mendekati nilai optimumnya yaitu �
(�(1), �(2)) = 0. Namun meskipun harga x yang berubah-ubah, MPSO-NDW dapat
diketahui lebih baik daripada PSO biasa.

Tabel 5. Perbandingan hasil dengan x yang berubah-ubah


Nilai � �(1) �(2) �(�(1), �(2))
1 0.0001246362 0.0009178372 0.0000002398
1.2 0.0002611346 y = 0.0000308082 0.0000000060

15
2 -0.0000008616 -0.0000264748 0.0000000005
5 0.0000220575 0.0000297441 0.0000000001

Perbandingan kekonvergenan antara PSO biasa dan MPSO-NDW untuk fungsi Rosenbrock
dan fungsi Griwank ditunjukkan pada grafik 1 dan grafik 2 berikut :

Grafik 1. Kecepatan kekonvergenan antara PSO dan MPSO-NDW pada


fungsi Rosenbrock

16
Grafik 2. Kecepatan kekonvergenan antara PSO
dan MPSO-NDW pada fungsi Griwank

Melalui grafik tersebut dapat disimpulkan bahwa dengan menggunakan metode PSO
biasa fungsi Rosenbrock mencapai titik optimum global pada iterasi ke -18 sedangkan dengan
metode MPSO-NDW pada iterasi ke 16. Begitupula untuk fungsi Griwank mencapai titik
optimum global pada iterasi ke 16 dengan metode PSO biasa dan mencapai titik optimum
global pada iterasi ke 14 dengan MPSO-NDW.

BAB IV

KESIMPULAN

Dalam makalah telah diketahui pengaruh dari waktu dan laju penurunan pada
kemampuan eksplorasi dan eksploitasi pada PSO. Tujuan MPSO-NDW (Modified
PSONonlinear Decreased Weight) memperkenalkan parameter baru yang disebut angka
indeks nonlinear (x) untuk mengatur waktu dan laju penurunan dari kedua kemampuan. Inti
dari makalah ini menunjukkan bahwa jalur nonlinear pada inertia weight(w) berdampak pada
hasil PSO. Metode MPSO-NDW telah dilakukan pada fungsi Rosenbrock dan Grienkwank.
17
Hasil yang diperoleh yaitu kedua fungsi tersebut mendekati nilai minimum global dengan
kecepatan konvergensi yang baik. Hasil ini lebih baik bila dibandingkan dengan metode PSO
biasa yang sering terjebak pada solusi optimum yang lokal. Hasil percobaan dengan
modifikasi PSO ini menunjukkan kelayakan dalam pengaturan waktu dan laju penurunan
dapat meningkatkan hasil yang lebih baik pada PSO baik dalam keakuratan dan
kekonvergenan. Sehingga metode MPSO-NDW dapat menjadi salah satu alternatif untuk
memperbaiki masalah konvergensi prematur pada PSO biasa. Berikut tabel yang menjelaskan
perbedaan kinerja dari kedua metode tersebut :

Tabel 6. Perbedaan Kinerja Metode PSO dan MPSO

PSO MPSO
Algoritma Ringkas Panjang
Iterasi Banyak Sedikit
Tingkat Optimum Lokal Global
Waktu Lama Cepat

DAFTAR PUSTAKA

Alrijadis, dkk. 2015. Modified Particle Swarm Optimization using Nonlinear Decreased
Inertia Weight. EMITTE International Journal of Engineering Technology ISSN : 2443-
1168.

Wisnu Jatmiko, K. Sekiyama and T. Fukuda. Modified Particle Swarm Robotic for Odor
Source Localization in Dynamic Environment. The International Journal of Intelligent
Control and Systems: Special Issue on Swarm Robotic, Vol. 11, No 3, pp.176-184,
September 2006.

R. L. Haupt and S. E. Haupt. 2004. Practical Genetic Algorithms 2nd Edition. Hoboken :
John
Wiley & Sons Inc. Publication.

18
Lampiran.
Function Kecepatan

function hasil=kecepatan(bb,ba)
a=round(rand*(ba-1));
if
rand<=0.5
a=-a; if
a<bb
a=bb;
end end
hasil=a; end

Function Posisi

function hasil=posisi(bb,ba)
a=round(rand*(ba-1))+1; if
rand<=0.5 a=-a; if
a<bb a=bb; end
end hasil=a; end

Program Utama

clc; clear
all; close
all;

%f = inline('(1.5-x(1)+x(1)*x(2))^2+(2.25-
x(1)+x(1)*x(2)^2)^2+(2.625-x(1)+x(1)*x(2)^3)^2','x'); % fungsi
rosenbrock
f = inline('10*(x(1)-x(2))^2+(1-x(1))^2','x'); % fungsi rosenbrock

S=input('banyaknya swarm: ');


x=input('bilangan indeks nonliniear : ');
N=20; %maksimum iterasi
c1=1; %parameter sosial c2=1;
%parameter sosial wmax=0.9;
%inersia maksimum wmin=0.1;
%inersia minimum

batasbawah=input('masukkan batas bawah [x,y]: ');


batasatas=input('masukkan batas atas [x,y]: ');

%inisialisasi posisi dan kecepatan awal for


i=1:S
swarm(i,1)=posisi(batasbawah(1),batasatas(1));
swarm(i,2)=posisi(batasbawah(2),batasatas(2));
kec(i,1)=kecepatan(batasbawah(1),batasatas(1));
kec(i,2)=kecepatan(batasbawah(2),batasatas(2)); end

%menghitung cost function dengan objective function setiap partikel


pada
19
%swarm dan menentukan best partikel (lokal) for
i=1:S
cost(i)=feval(f,swarm(i,:));
end
bestlocal=swarm;
terbaik=100; l=1;
%dengan iterasi dari m=1 sampai sejumlah maksimum iterasi
tic;
%menyimpan cost (1) sebagai minimum
for m=1:N min=cost(1);
temp=1;
%membandingkan cost (1) dengan cost swarm lainnya, yang paling kecil
akan
%disimpan sebagai temp.
for i=2:S if
min>cost(i)
min=cost(i);
temp=i; end
end

%mencari globalbest dari cost swarm terkecil


for i=1:S
globalbest(i,:)=swarm(temp,:);
end
if terbaik>cost(temp)
terbaik=cost(temp);
ctb(l)=cost(temp);
l=l+1; end

%mengupdate inertia dengan nonlinear decreased inetria weight


w=wmin+(wmax-wmin)*((N-m)/(N-1))^x; %mengupdate kecepatan
(velocity)
kec=w*kec+(c1*rand).*(bestlocal-swarm)+
(c2*rand).*(globalbestswarm);
%mengupdate posisi swarm
swarm=swarm+kec;
%mengevaluasi posisi swarm terhadap nilai batas atas dan batas bawah
for i=1:S
if swarm(i,1)>batasatas(1)
swarm(i,1)=batasatas(1); elseif
swarm(i,1)<batasbawah(1)
swarm(i,1)=batasbawah(1); end
if swarm(i,2)>batasatas(2)
swarm(i,2)=batasatas(2); elseif
swarm(i,2)<batasbawah(2)
swarm(i,2)=batasbawah(2); end
end

%mencari nilai cost yang baru pada swarm


for i=1:S
newcost(i)=feval(f,swarm(i,:));
end for i=1:S
if newcost(i)<cost(i)
bestlocal(i,:)=swarm(i,:); end
end cost=newcost;

20
% menampilkan pergerakan swarm
clf; figure(1);
subplot(2,1,2)
plot(ctb,'b','LineWidth',2);
xlabel('Iterasi');
ylabel('Nilai Fungsi');
title('Grafik Nilai Fungsi Tiap Iterasi');

subplot(2,1,1)
plot(swarm(:,1),swarm(:,2),'rx');%pergerakan partikel
title('Pergerakan Swarm'); axis([-5 10 -5 10]);
pause(.0001); end %plot best
fprintf('nilai minimumnya adalah %4.10f\n',cost(temp));
fprintf('dengan posisi swarm yaitu x = %4.10f dan y = %4.10f
\n',swarm(i,:)); toc; figure(2)
plot(ctb,'k-') xlabel('Iteration');
ylabel('Fitness function value');
title('PSO convergence characteristic');
grid on

21

You might also like