반딧불이 알고리즘

수학적 최적화에서 반딧불이 알고리즘 또는 파이어플라이 알고리즘(Firefly algorithm)은 신쉐 양이 제안한 메타휴리스틱으로, 반딧불이의 깜빡이는 행동에서 영감을 받았다.

 알고리즘 
의사 코드에서 알고리즘은 다음과 같이 기술될 수 있다.

 시작
     1) 목적 함수: 
     2) 초기 반딧불이 개체군 생성 
     3) 광도 를 와 연관되도록 구성
        (예를 들어, 최대화 문제의 경우, 
     4) 흡수 계수  정의

     while (t < MaxGeneration)
         for i = 1 : n (모든 n개의 반딧불이)
             for j = 1 : i (n개의 반딧불이)

                     를 통해 거리 r에 따라 인력 변화;
                     반딧불이 i를 j 쪽으로 이동;
                     새로운 해를 평가하고 광도 업데이트;
                 end if
             end for j
         end for i
         반딧불이 순위를 매기고 현재 최적해를 찾음;
     end while
 끝

위 의사 코드는 n×n을 제안하지만, 루프당 목적 함수 평가 횟수는 반딧불이당 한 번이다. (양의 매트랩 코드 기반.) 따라서 목적 함수 평가의 총 횟수는 (세대 수) × (반딧불이 수)이다.

두 반딧불이 와 의 주요 업데이트 공식은 다음과 같다.

여기서 는 스텝 크기를 제어하는 매개변수이고, 는 가우스 분포 또는 다른 분포에서 추출된 벡터이다.

극한의 경우 은 표준 입자 군집 최적화 (PSO)에 해당함을 알 수 있다. 실제로 내부 루프(j에 대한)가 제거되고 밝기 가 현재 전역 최적 로 대체되면 FA는 본질적으로 표준 PSO가 된다.

 비판 
자연에서 영감을 받은 메타휴리스틱은 일반적으로 연구 커뮤니티에서 은유 뒤에 참신함의 부족을 숨긴다는 비판을 받아왔다. 반딧불이 알고리즘은 잘 확립된 입자 군집 최적화와 무시할 수 있는 정도의 차이만 있다는 비판을 받아왔다.

 같이 보기 
 떼 지능

 각주 

 외부 링크 
  Xin-She Yang, Nature-Inspired Metaheuristic Algorithms, Second Edition, Luniver Press, (2010) 책에 포함된 매트랩 프로그램 파일.

분류:메타휴리스틱