Dalam kasus optimasi matematika, algoritma kunang-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-kunang.[1]

Algoritma

sunting

Dalam bentuk pseudocode, algoritma ini dapat dinyatakan sebagai:

Begin
  1) Fungsi objektif: ;
  2) Inisialisasi populasi awal kunang-kunang ;.
  3) Tentukan intensitas cahaya I sehingga berhubungan dengan 
    (misalnya, untuk masalah maksimalisasi,  atau ;)
  4) Definisikan koefisien light absorption γ

  while (t < MaksGenerasi) atau (KriteriaBerhenti = true)
    for i = 1 : n (semua n kunang-kunang)
      for j = 1 : i (n kunang-kunang)
        if (),
          Variasikan daya tarik (attractiveness) dengan jarak r melalui ;
          Gerakkan kunang-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-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-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-kunang).

Rumus pembaruan utama untuk sepasang kunang-kunang dan adalah

Di mana adalah suatu parameter yang mengatur besar langkah atau ukuran langkah. Parameter ini menentukan sejauh mana firefly bergerak untuk setiap iterasi. Dengan nilai yang lebih besar, firefly akan bergerak lebih jauh dalam ruang pencarian solusi. Jika lebih kecil, pergerakan firefly akan lebih terbatas. Sedangkan 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 , firefly algorithm mendekati standar Particle Swarm Optimization (PSO). Faktanya, jika iterasi looping bagian dalam (for j) dihilangkan dan kecerahan digantikan dengan , 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

sunting

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).[2] [3] [4]

Lihat juga

sunting

Referensi

sunting
  1. ^ Yang, X. S. (2008). Nature-Inspired Metaheuristic Algorithms. Luniver Press. ISBN 978-1-905986-10-1.
  2. ^ Almasi, Omid N.; Rouhani, Modjtaba (2016). "A new fuzzy membership assignment and model selection approach based on dynamic class centers for fuzzy SVM family using the firefly algorithm". Turkish Journal of Electrical Engineering & Computer Sciences. 4: 1–19. doi:10.3906/elk-1310-253. Practical application of FA on UCI datasets.
  3. ^ Lones, Michael A. (2014). "Metaheuristics in nature-inspired algorithms" (PDF). Proceedings of the Companion Publication of the 2014 Annual Conference on Genetic and Evolutionary Computation. hlm. 1419–1422. CiteSeerX 10.1.1.699.1825. doi:10.1145/2598394.2609841. ISBN 9781450328814. FA, on the other hand, has little to distinguish it from PSO, with the inverse-square law having a similar effect to crowding and fitness sharing in EAs, and the use of multi-swarms in PSO. Pemeliharaan CS1: Status URL (link)
  4. ^ Weyland, Dennis (2015). "A critical analysis of the harmony search algorithm—How not to solve sudoku". Operations Research Perspectives. 2: 97–105. doi:10.1016/j.orp.2015.04.001. For example, the differences between the particle swarm optimization metaheuristic and "novel" metaheuristics like the firefly algorithm, the fruit fly optimization algorithm, the fish swarm optimization algorithm or the cat swarm optimization algorithm seem negligible.

Pranala luar

sunting
  • [1] File program Matlab yang terdapat dalam buku: Xin-She Yang, Algoritma Metaheuristik Terinspirasi Alam, Edisi Kedua, Luniver Press, (2010).

📚 Artikel Terkait di Wikipedia

Daftar algoritme

number generators: Blum Blum Shub Mersenne twister Robinson-Schensted algorithm: korespondensi dan pasangan yang bijetif dari Young tableaux yang standar

Pemelajaran dalam

Learning Using Local Activation Differences: The Generalized Recirculation Algorithm". Neural Computation. 8 (5): 895–938. doi:10.1162/neco.1996.8.5.895. ISSN 0899-7667

Graph database

runtime graph repartitioning between iterations to provide dynamic load balancing for better algorithm performance. Weaver Diarsipkan 2020-01-20 di Wayback

Tembolok (komputer)

Koherensi tembolok Pewarnaan tembolok Hierarki tembolok Cache-oblivious algorithm Cache stampede Model bahasa tembolok Tembolok database Bit kotor Buffer

Edema paru akibat berenang

models: Bühlmann decompression algorithm Haldane's decompression model Reduced gradient bubble model Thalmann algorithm Thermodynamic model of decompression

Pemrograman dinamis

1978 Sep-Oct;23(5):932-46 Sniedovich, M. (2006), "Dijkstra's algorithm revisited: the dynamic programming connexion" (PDF), Journal of Control and Cybernetics

Pintu udara

Constant Weight Bi-fins (CWTB) Constant weight without fins (CNF) Dynamic apnea (DYN) Dynamic apnea without fins (DNF) Free immersion (FIM) No-limits apnea

Optimisasi multiobjektif

Algoritma seperti Non-dominated Sorting Genetic Algorithm-II (NSGA-II) dan Strength Pareto Evolutionary Algorithm 2 (SPEA-2) menjadi pendekatan yang standar