Anda di halaman 1dari 16

1

Kata Pengantar

Puji syukur kehadirat Tuhan Yang Maha Kuasa atas segala Rahmat, sehingga pkami
dapat menyelesaikan penulisan laporan ini dalam bentuk maupun isinya yang mungkin
sangat sederhana.

Penulisan dan Penyusunan laporan ini dibuat untuk memenuhi salah satu tugas
matakuliah Optimasi. Laporan ini berisikan mengenai Algoritma PSO dan
implementasi secara perhitungan manual maupun dengan software Matlab.

kami menyadari bahwa laporan ini masih jauh dari kesempurnaan baik dari bentuk
penyusunan maupun materinya. Kritik konstruktif dari pembaca sangat penulis
harapkan untuk kesempurnaan makalah ini. Akhir kata semoga makalah ini dapat
memberikan manfaat kepada kita sekalian.

Bogor, 2 Mei 2019

1
Daftar Isi

Kata Pengantar .............................................................................................................................. 1


Daftar Isi ....................................................................................................................................... 2
Bab I Pendahuluan ........................................................................................................................ 3
I. 1. Dasar Teori ................................................................................................................... 3
Bab II Pembahasan ....................................................................................................................... 5
II. 1. Langkah ........................................................................................................................ 5
II. 2. Implementasi................................................................................................................. 6
II.2.1. Perhitungan Secara Manual .................................................................................. 6
II.2.2. Dengan Matlab...................................................................................................... 9
BAB III PENUTUP ....................................................................................................................12
III. 1. Kesimpulan .............................................................................................................12
DAFTAR PUSTAKA ................................................................................................................13

2
Bab I Pendahuluan

I. 1. Dasar Teori
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 sebab hal tersebut, mereka mengategorikan algoritma
sebagai bagian dari kehidupan rekayasa/buatan Artificial Life. Algoritma ini juga terhubung
dengan komputasi evolusioner, algoritma genetik 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 6 bergerak ke
area penelusuran yang lebih baik setelah melewati proses penelusuran. Particle Swarm
Optimization (PSO) mempunyai kesamaan dengan genetic algorithm yang mana dimulai
dengan suatu populasi yang random dalam bentuk matriks. Namun PSO tidak memiliki
operator evolusi yaitu crossover dan mutasi seperti yang ada pada genetic algorithm. Baris
pada matriks disebut particle atau dalam genetic algorithm sebagai kromosom yang terdiri dari
nilai suatu variable. Setiap particle berpindah dari posisinya semula ke posisi yang lebih baik
dengan suatu velocity.
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 di kalangan para peneliti dan telah 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. Menurut Wati (2011), 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
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. 7
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 (θ): inertia weight di simbolkan 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

Menurut Chen & Shih (2013) posisi dari tiap partikel dapat dianggap sebagai calon
solusi (candidate solution) bagi suatu masalah optimisasi. Tiap-tiap partikel diberi suatu fungsi
fitness merancang sesuai dengan menunjuk masalah yang yang bersesuaian. Ketika masing-
masing partikel bergerak ke suatu posisi baru didalam ruang pencarian, itu akan mengingat
sebagai personal best (Pbest). Sebagai tambahan terhadap ingatan informasi sendiri, masing-
masing partikel akan juga menukar informasi dengan partikel yang lain dan mengingat global
best (Gbest). Kemudian masing-masing partikel akan meninjau kembali arah dan
percepatannya sesuai dengan Pbest dan Gbest untuk bergerak ke arah yang optimal dan
menemukan solusi yang optimal. Dengan keuntungan dari aplikasi yang mudah dan sederhana,
lebih sedikit parameter yang diperlukan, dan hasil yang baik, PSO telah diadopsi didalam
banyak bidang, seperti TSP, flowshop, VRP, task-resource assignment, penjadwalan khusus
dan lain lain. Sebab itu PSO telah pula diterapkan dalam membentuk penjadwalan yang
optimal untuk university cources. Seperti halnya dengan algoritma evolusioner yang lain,
algoritma PSO adalah sebuah populasi yang didasarkan penelusuran inisialisasi partikel secara
random dan adanya interaksi diantara partikel dalam populasi. Di dalam PSO setiap partikel
bergerak melalui ruang solusi dan mempunyai kemampuan untuk mengingat posisi terbaik
sebelumnya dan dapat bertahan dari generasi ke generasi. Menurut Kennedy & Eberhart
(1995) Algoritma PSO dikembangkan dengan berdasarkan pada model berikut:
1. Ketika seekor burung mendekati target atau makanan (atau bisa minimum atau maximum
suatu fungsi tujuan) secara cepat mengirim informasi kepada burung-burung yang lain
dalam kawanan tertentu.
2. Burung yang lain akan mengikuti arah menuju ke makanan tetapi tidak secara langsung. 3.
Ada komponen yang tergantung pada pikiran setiap burung, yaitu memorinya tentang apa
yang sudah dilewati pada waktu sebelumnya.
Menurut Bai (2010) keuntunggan dari Algoritma PSO adalah:
1. PSO berdasar pada kecerdasan (intelligence). Ini dapat diterapkan ke dalam kedua
penggunaan dalam bidang teknik dan riset ilmiah.
2. PSO tidak punya overlap dan kalkulasi mutasi. Pencarian dapat dilakukan oleh
kecepatan dari partikel. Selama pengembangan beberapa generasi, kebanyakan hanya
partikel yang optimis yang dapat mengirim informasi kepartikel yang lain, dan
kecepatan dari pencarian adalah sangat cepat.
3. Perhitungan didalam Algoritma PSO sangat sederhana, menggunakan kemampuan
optimisasi yang lebih besar dan dapat diselesaikan dengan mudah.
4. PSO memakai kode/jumlah yang riil, dan itu diputuskan langsung dengan solusi, dan
jumlah dimensi tetap sama dengan solusi yang ada.

4
Lebih lanjut Bai (2010) menjelaskan beberapa kerugian dari Algoritma PSO adalah:
1. Metode mudah mendapatkan optimal parsial (sebagian), yang mana menyebabkan
semakin sedikit ketepatannya untuk peraturan tentang arah dan kecepatan.
2. Metode tidak bisa berkembang dari permasalahan sistem yang tidak terkoordinir,
seperti solusi dalam bidang energi dan peraturan yang tidak menentu didalam bidang
energy.

Model Algoritma PSO ini akan disimulasikan dalam ruang dengan dimensi tertentu
dengan sejumlah iterasi sehingga di setiap iterasi, posisi partikel akan semakin mengarah ke
target yang dituju (minimasi atau maksimasi fungsi). Ini dilakukan hingga maksimum iterasi
dicapai atau bisa juga digunakan kriteria penghentian yang lain. Hal ini disebabkan, PSO
merupakan algoritma optimasi yang mudah dipahami, cukup sederhana, dan memiliki unjuk
kerja yang sudah terbukti handal. Algoritma PSO dapat 9 digunakan pada berbagai masalah
optimasi baik kontinyu maupun diskrit, linier maupun nonlinier. PSO memodelkan aktivitas
pencarian solusi terbaik dalam suatu ruang solusi sebagai aktivitas terbangnya kelompok
partikel dalam suatu ruang solusi tersebut. Dengan demikian, awal penelusuran pada algoritma
PSO dilakukan dengan populasi yang random (acak) yang disebut dengan partikel dan jika
suatu partikel atau seeokor burung menemukan jalan yang tepat atau pendek menuju sumber
makanan, maka sisa kelompok yang lain juga akan segera mengikuti jalan tersebut meskipun
lokasi mereka jauh di kelompok tersebut. Posisi partikel dalam ruang solusi tersebut
merupakan kandidat solusi yang berisi variabel-variabel optimasi. Setiap posisi tersebut akan
dikaitkan dengan sebuah nilai yang disebut nilai objektif atau nilai fitness yang dihitung
berdasarkan fungsi objektif dari masalah optimasi yang akan diselesaikan

5
Bab II Pembahasan

II. 1. Langkah
a. Bangkitkan posisi awal sejumlah partikel sekaligus kecepatan awalnya
secara acak. Berikut ini merupakan formulasi matematika yang
menggambarkan posisi dan kecepatan partikel pada suatu dimensi ruang

Dimana :
()= 1 ( ), 2 ( ), … , ( ) X = posisi partikel
V = kecepatan partikel
i = indeks partikel
()= 1 ( ), 2 ( ), … , ( ) t = iterasi ke-t
N = ukuran dimensi ruang
tertentu :

Untuk updating posisi dan kecepatan partikel Kennedy and Eberhart [1995]:

( ) = ( − 1) + 1 1 ( L − ( − 1)) + 2 2( − ( − 1)) i

( ) = ( ) + ( − 1)

c1 dan c2 adalah suatu konstanta yang bernilai positif yang biasanya disebut
sebagai learning factor. Kemudian r1 dan r2 adalah suatu bilangan random
yang bernilai antara 0 sampai 1.

b. Evaluasi fitness dari masing-masing partikel berdasarkan posisinya.


c. Tentukan partikel dengan fitness terbaik, dan tetapkan sebagai Gbest. Untuk
setiap partikel, Pbest awal akan sama dengan posisi awal.
Nilai global best didapatkan dengan mencari minimum
penempatan antara Pbest iterasi ke-k dengan global best iterasi k-1.
diganti dengan global best baru saat didapatkan fungsi hasil Pbest pada
setiap iterasi lebih minimum dibandingkan Gbest iterasi sebelumnya. Nilai
Gbest dirumuskan pada persamaan
= { }
Jika f ( xi) < f (pbest) lakukan:
Update partikel terkenal posisi: pbest = xi
Jika f (pbest) < f (gbest)
update posisi swarm terbaik: gbest = pbest

6
II. 2. Implementasi

II.2.1. Perhitungan Secara Manual


Misalkan kita mempunyai persoalan optimasi dengan satu variabel sebagai
berikut :

min ( ) = (50 − )2 dimana 10 ≤ x ≤ 60

Penjelasan :

a. Tentukan jumlah partikel N = 4.


Tentukan populasi awal secara random, misalkan didapat
1 (0) = 25,
2 (0) = 30,
3 (0) = 45,
4 (0) = 40.
b. Evaluasi nilai fungsi tujuan (fitness) untuk setiap partikel (0) untuk = 1,
2, 3, 4. dan nyatakan dengan
1 = (25) = 50 – 25 = 625,

2 = (30) = 50 – 30 = 400,
3 = (45) = 50 – 45 = 25,

4 = (40) = 50 – 40 = 100.
c. Tentukan kecepatan awal 1 (0) = 2 (0) = 3 (0) = 4 (0) = 0.
Tetapkan iterasi i = 1; Lalu ke langkah nomor 4.
d. Temukan
Pbest,1 = 25,
Pbest,2 = 30,
Pbest,3 = 45,
Pbest,4 = 40,
Gbest = 45.
Hitung ( ) dengan c1 = c2 = 1. Misalkan nilai random yang didapat, r1 =
0.4, r2 = 0.5, dengan rumus
( ) = ( − 1) + 1 1[ , − ( − 1)] + 2 2[ , − ( − 1)]
Diperoleh :
1 (1) = 0 + 0.4(25 − 25) + 0.5(45 − 25) = 10

2 (1) = 0 + 0.4(30 − 30) + 0.5(45 − 30) = 7.5

3 (1) = 0 + 0.4(110 − 110) + 0.5(45 − 45) = 0


4 (1) = 0 + 0.4(50 − 50) + 0.5(45 − 40) = 2.5
Sedangkan untuk nilai update diperoleh
x1 (1) = 25 + 10 = 35
2 (1) = 30 + 7.5 = 37.5

3 (1) = 45 + 0 = 45
4 (1) = 40 + 2.5 = 42.5

e. 5. Evaluasi nilai fungsi tujuan (fitness) sekarang pada partikel (1),


1 (1) = (35) = 50 – 35 = 225,

7
2 (1) = (37.5) = 50 – 37 = 156.25,
3 (1) = (45) = 50 – 45 = 25,

4 (1) = (42.5) = 50 – 42.5 = 56.25.

Sedangkan pada iterasi sebelumnya kita dapatkan


1(0) = (25) = 625,

2(0) = (30) = 400,

3(0) = (45) = 25,

4(0) = (40) = 100.

Nilai dari f dari iterasi sebelumnya tidak ada yang lebih baik sehingga Pbest
untuk masing-masing partikel sama dengan nilai pada iterasi 1 nya. Gbest
= 25.
f. Cek apakah solusi sudah konvergen, dimana nilai saling dekat. Jika
tidak, tingkatkan ke iterasi berikutnya i = 2. Lanjutkan ke langkah 4.
Pbest,1 = 35,
Pbest,2 = 37.5,
Pbest,3 = 45,
Pbest,4 = 42.5,
Gbest = 45
Hitung kecepatan baru dengan r1 = 0.3 dan r2 = 0.6 ( ini hanya sekedar
contoh untuk menjelaskan penghitungan, dalam implementasi angka ini
dibangkitkan secara random).
1 (2) = 10 + 0.3(35 − 35) + 0.6(45 − 35) = 6

2 (2) = 7.5 + 0.3(37.5 – 37.5) + 0.6(45 – 37.5) = 4.5


3 (2) = 0 + 0.3(45 − 45) + 0.6(45 − 45) = 0

4(2) = -2.5 + 0.3(37.5 – 37.5) + 0.6(45 – 42.5) = 1.5


Sedangkan untuk nilai update diperoleh
1 (2) = 35 + 6 = 41

2 (2) = 37.5 + 4.5 = 42


3 (2) = 45 + 0= 45
4 (2) = 37.5 + 1.5 = 44
g. Evaluasi nilai fungsi tujuan (fitness) sekarang pada partikel (2),
1 (2) = (41) = 81,
2 (2) = (42) = 64,
3 (2) = (45) = 25,
4 (2) = (44) = 36
Sedangkan iterasi sebelumnya diperoleh :
1 (1) = (35) = 225,
2 (1) = (37.5) = 156.25,
3 (1) = (45) = 25,
4 (1) = (42.5) = 56.25.

8
Cek apakah solusi sudah konvergen, dimana nilai saling dekat. Jika belum
konvergen, set i = 3, masuk ke iterasi berikutnya.
Lanjutkan ke langkah berikutnya dengan menghitung kecepatan v dan
ulangi langkah-langkah selanjunya sampai mencapai konvergen.

9
II.2.2. Dengan Matlab

%% Particle Swarm Optimization Simulation


% Simulasi pergerakan dari swarm untuk meminimalkan fungsi tujuan
% $$ fungsi rastrigin >> f(x) = sum([(100-x)^2], 2)$$
% Matrix swarm=
% swarm(index, [location, velocity, best position, best value],
[x, y
% components or the value component])
%Edited by Aditya Erlangga%
clear
clc
iterations = 7;
inertia = 1.0;
correction_factor = 2.0;
swarm_size = 49;
% Inisialisasi posisi swarm
index = 1;
for i = 1 : 7
for j = 1 : 7
swarm(index, 1, 1) = i;
swarm(index, 1, 2) = j;
index = index + 1;
end
end
swarm(:, 4, 1) = 7; % sejauh ini, nilai ini yang terbaik
swarm(:, 2, :) = 0; % kelajuan/velocity awal
%% Iterasi
for iter = 1 : iterations
for i = 1 : swarm_size
swarm(i, 1, 1) = swarm(i, 1, 1) + swarm(i, 2, 1)/1.3; %update
x position
swarm(i, 1, 2) = swarm(i, 1, 2) + swarm(i, 2, 2)/1.3; %update
y position
x = swarm(i, 1, 1);
y = swarm(i, 1, 2);
val = sum([(100-x)^2], 2);
if val < swarm(i, 4, 1) % kondisi jika posisi baru lebih
baik
swarm(i, 3, 1) = swarm(i, 1, 1); % update best x
positions,
swarm(i, 3, 2) = swarm(i, 1, 2); % update best y
positions
swarm(i, 4, 1) = val; % dan update best value
end
end
[temp, gbest] = min(swarm(:, 4, 1)); % global best position
for i = 1 : swarm_size
swarm(i, 2, 1) = rand*inertia*swarm(i, 2, 1) +
correction_factor*rand*(swarm(i, 3, 1) - swarm(i, 1, 1)) +
correction_factor*rand*(swarm(gbest, 3, 1) - swarm(i, 1, 1)); %x
velocity component
swarm(i, 2, 2) = rand*inertia*swarm(i, 2, 2) +
correction_factor*rand*(swarm(i, 3, 2) - swarm(i, 1, 2)) +
correction_factor*rand*(swarm(gbest, 3, 2) - swarm(i, 1, 2)); %y
velocity component
end
clf

10
11
12
BAB III PENUTUP

III. 1. Kesimpulan
Particle Swarm Optimization (PSO) didasarkan pada perilaku sekawanan burung
atau ikan. Algoritma PSO meniru perilaku sosial organisme ini. Perilaku sosial terdiri
dari tindakan individu dan pengaruh dari individu-individu lain dalam suatu kelompok.
Kata partikel menunjukkan, misalnya, seekor burung dalam kawanan burung. Setiap
individu atau partikel berperilaku dengan cara menggunakan kecerdasannya
(intelligence) sendiri dan juga dipengaruhi perilaku kelompok kolektifnya. Dengan
demikian, jika satu partikel atau seekor burung menemukan jalan yang tepat atau pendek
menuju ke sumber makanan, sisa kelompok yang lain juga akan dapat segera mengikuti
jalan tersebut meskipun lokasi mereka jauh di kelompok tersebut.
Pada latihan sebelumnya, didapatkan bahwa untuk menghentikan perhitungan
solusi yang didapat harus mengalai konvergen.

13
DAFTAR PUSTAKA

https://www.mathworks.com/help/gads/particle-swarm-optimization-algorithm.html,
diakses pada 27 April 2019
https://piptools.net/algoritma-pso-particle-swarm-optimization/ diakses pada 27 April
2019
https://id.123dok.com/document/yj795g6y-algoritma-particle-swarm-optimization-dan-
terapannya-dalam-menyelesaikan-masalah-pemotongan-rol-kertas.html diakses pada 27
April 2019
https://www.researchgate.net/publication/297245624_Particle_Swarm_Optimization_A
lgorithm_and_its_Codes_in_MATLAB/download diakses pada 27 April 2019
https://www.academia.edu/31828523/KECERDASAN_BUATAN diakses pada 1 Mei
2019
http://erliyah-nj.blogspot.com/2013/05/penerapan-particle-swarm-
optimization.html?m=1 diakses pada 1 Mei 2019

http://www.softscients.web.id/2014/04/tutorial-cara-kerja-particle-swarm.html?m=1,
diakses pada 1 Mei 2019

http://thoriqaziz.blogspot.com/2012/01/particle-swarm-optimization.html?m=1, diakses
pada 1 Mei 2019

https://rahmadya.com/2015/03/09/particle-swarm-optimization-pso/, diakses pada 1


Mei 2019

https://en.wikipedia.org/wiki/Particle_swarm_optimization, diakses pada 1 Mei 2019

14
Algoritma Particle Swarm Optimization
(PSO)

Anggota Kelompok

065116336 Regy Mulyadi

065116312 Yogha Hadi Putra

065116305 Endah Desyanah

Fakultas Matematika Dan Ilmu Pengetahuan Alam


UNIVERSITAS PAKUAN
BOGOR
2019

15

Anda mungkin juga menyukai