- Source: Algoritma kunang-kunang
Dalam kasus optimasi matematika, algoritma kunang" target="_blank">kunang-kunang" target="_blank">kunang atau firefly algorithm adalah salah satu algoritma metaheuristik yang pertama kali dikemukakan oleh Xin-She Yang. Algoritma ini terinspirasi oleh perilaku berkedip yang dilakukan oleh kunang" target="_blank">kunang-kunang" target="_blank">kunang.
Algoritma
Dalam bentuk pseudocode, algoritma ini dapat dinyatakan sebagai:
Begin
1) Fungsi objektif:
f
(
x
)
,
x
=
(
x
1
,
x
2
,
.
.
.
,
x
d
)
{\displaystyle f(\mathbf {x} ),\quad \mathbf {x} =(x_{1},x_{2},...,x_{d})}
;
2) Inisialisasi populasi awal kunang" target="_blank">kunang-kunang" target="_blank">kunang
x
i
(
i
=
1
,
2
,
…
,
n
)
{\displaystyle \mathbf {x} _{i}\quad (i=1,2,\dots ,n)}
;.
3) Tentukan intensitas cahaya I sehingga berhubungan dengan
f
(
x
)
{\displaystyle f(\mathbf {x} )}
(misalnya, untuk masalah maksimalisasi,
I
∝
f
(
x
)
{\displaystyle I\propto f(\mathbf {x} )}
atau
I
=
f
(
x
)
{\displaystyle I=f(\mathbf {x} )}
;)
4) Definisikan koefisien light absorption γ
while (t < MaksGenerasi) atau (KriteriaBerhenti = true)
for i = 1 : n (semua n kunang" target="_blank">kunang-kunang" target="_blank">kunang)
for j = 1 : i (n kunang" target="_blank">kunang-kunang" target="_blank">kunang)
if (
I
j
>
I
i
{\displaystyle I_{j}>I_{i}}
),
Variasikan daya tarik (attractiveness) dengan jarak r melalui
exp
(
−
γ
r
)
{\displaystyle \exp(-\gamma \;r)}
;
Gerakkan kunang" target="_blank">kunang-kunang" target="_blank">kunang i menuju j untuk semua dimensi d;
Evaluasi solusi baru dan perbarui intensitas cahaya (light intensity);
end if
end for j
end for i
Buat peringkat kunang" target="_blank">kunang-kunang" target="_blank">kunang dan cari yang terbaik saat ini (current best);
end while
end
Perhatikan bahwa jumlah evaluasi terhadap fungsi objektif pada setiap iterasi adalah satu evaluasi untuk setiap kunang" target="_blank">kunang-kunang" target="_blank">kunang, meskipun pseudocode di atas menunjukkan sebesar n × n. (Berdasarkan kode MATLAB oleh Yang). Jadi, banyaknya evaluasi terhadap fungsi objektif adalah sebesar (jumlah generasi) × (jumlah kunang" target="_blank">kunang-kunang" target="_blank">kunang).
Rumus pembaruan utama untuk sepasang kunang" target="_blank">kunang-kunang" target="_blank">kunang
x
i
{\displaystyle \mathbf {x} _{i}}
dan
x
j
{\displaystyle \mathbf {x} _{j}}
adalah
x
i
t
+
1
=
x
i
t
+
β
exp
[
−
γ
r
i
j
2
]
(
x
j
t
−
x
i
t
)
+
α
t
ϵ
t
{\displaystyle \mathbf {x} _{i}^{t+1}=\mathbf {x} _{i}^{t}+\beta \exp[-\gamma r_{ij}^{2}](\mathbf {x} _{j}^{t}-\mathbf {x} _{i}^{t})+\alpha _{t}{\boldsymbol {\epsilon }}_{t}}
Di mana
α
t
{\displaystyle \alpha _{t}}
adalah suatu parameter yang mengatur besar langkah atau ukuran langkah. Parameter ini menentukan sejauh mana firefly bergerak untuk setiap iterasi. Dengan nilai
α
t
{\displaystyle \alpha _{t}}
yang lebih besar, firefly akan bergerak lebih jauh dalam ruang pencarian solusi. Jika
α
t
{\displaystyle \alpha _{t}}
lebih kecil, pergerakan firefly akan lebih terbatas. Sedangkan
ϵ
t
{\displaystyle {\boldsymbol {\epsilon }}_{t}}
adalah sebuah vektor yang diambil dari distribusi Gaussian atau distribusi lainnya, parameter ini digunakan untuk memberikan komponen acak pada pergerakan firefly. Hal ini dapat memberikan variasi pada posisi firefly dan membantu mencegah terjebaknya proses pencarian pada minimum lokal.
Hal ini dapat ditunjukkan bahwa dengan kasus pembatas
γ
→
0
{\displaystyle \gamma \rightarrow 0}
, firefly algorithm mendekati standar Particle Swarm Optimization (PSO). Faktanya, jika iterasi looping bagian dalam (for j) dihilangkan dan kecerahan
I
j
{\displaystyle I_{j}}
digantikan dengan
g
∗
{\displaystyle g^{*}}
, global terbaik saat ini, maka FA pada dasarnya menjadi PSO standar. Artinya, FA dan PSO memiliki keterkaitan yang mendalam, dan ketika suatu parameter pada FA didekati nol, FA akan berkembang menjadi PSO.
Kritik
Metaheuristik yang terinspirasi dari alam secara umum telah menuai kritik dari komunitas riset karena menyembunyikan kurangnya kebaruan di balik metafora yang digunakan. Firefly algorithm telah dikritik karena perbedaan dari Particle Swarm Optimization (PSO) yang sudah ada hanya dalam hal yang dapat diabaikan atau sederhana (kurang signifikan).
Lihat juga
Kecerdasan gerombolan
Referensi
Pranala luar
[1] File program Matlab yang terdapat dalam buku: Xin-She Yang, Algoritma Metaheuristik Terinspirasi Alam, Edisi Kedua, Luniver Press, (2010).