Optimalizace hejnem světlušek

Optimalizace hejnem světlušek je technika používaná v umělé inteligenci, která se inspiruje biologickým chováním světlušek a lze ji řadit mezi další techniku z inteligence hejna. V originále se nazývá Glowworm Swarm Optimization (GSO) a byla prvně publikována roku 2006.[1]

Úkolem této techniky je nalézt globální optima (čím více, tím lépe) dané účelové funkce, jejíž definiční obor označujeme jako prohledávací prostor. GSO využívá hejno světlušek (agentů), které jsou na počátku náhodně rozmístěni v prohledávacím prostoru. Každý agent si vybere směr svého pohybu v závislosti na síle signálu od ostatních agentů. Zde lze právě spatřit podobnost s bioluminiscencí světlušek - čím jasnější světlo, tím spíše naláká kořist či partnera k páření. Proto se označují agenti GSO jako světlušky. Nicméně už se v algoritmu nepočítá s jevem úbytku intenzity světla se vzdáleností. Každý agent má v čase přidělenu svoji hladinu luciferinu . Na počátku mají všichni agenti tuto hodnotu stejnou, tedy . Agent má rovněž omezený obzor (kam až dohlédne).

Použité značení editovat

  • poloha agenta   v čase   :  
  • účelová funkce :  
  • vzdálenost, kam agent   v čase   dohlédne (obzor) :  
  • parametry algoritmu
    •   - luciferinový koeficient, doporučená hodnota: 0.6
    •   - koeficient rozpadu luciferinu za časovou jednotku, doporučená hodnota: 0.4
    •   - parametr algoritmu určující velikost kroku agenta, doporučená hodnota: 0.03
    •   - konstantní parametr, doporučená hodnota: 0.08
    •   - parametr používaný pro řízení počtu sousedů, doporučená hodnota: 5
    •   - počet iterací výpočtového kroku

Popis algoritmu editovat

Algoritmus postupuje po diskrétních krocích a iteruje se jeden výpočtový krok, který se opakuje konstantně-krát (parametr zadaný uživatelem).

Pro   od 1 do   prováděj:

  • Každá světluška   aktualizuje svoji hladinu luciferinu v závislosti na hodnotě účelové funkce:  .
  • Poté se porozhlédne ve svém okolí   po ostatních světluškách, které mají svoji hladinu luciferinu vyšší. Tedy  , kde   je vhodně zvolená norma polohy dvou světlušek
  • Mezi těmito si náhodně vybere jednu a vydá se jejím směrem. Z popisu algoritmu[2] není zcela zřejmé další chování, pokud žádná zářivější světluška v dosahu není. Publikovaný pseudokód však lze interpretovat tak, že taková světluška se během dané iterace nepohne, protože je blízko optima. Přesněji se tedy odehraje toto:
    • Světluška   bude vybrána s pravděpodobností  
    •  .
  • V další části iteračního kroku si agent upraví velikost svého obzoru:

 , kde   je počet (mohutnost) vhodných světlušek v okolí

Výstupem algoritmu jsou pozice jednotlivých agentů. Jejich shluky považujeme za jednotlivá nalezená optima.

Ve srovnání s algoritmem optimalizace hejnem částic je tento vhodnější pro paralelismus, protože vyžaduje minimální interakci agentů. Při použití v robotice navíc lépe odpovídá reálným podmínkám, kdy může být komunikační dosah robotů omezen. Podle autorů článku byl algoritmus v době své publikace mezi nejsofistikovanějšími algoritmy pro multimodální optimalizaci.

Související články editovat

Reference editovat

  1. Krishnanand, K.N., Ghose, D.: Glowworm swarm based optimization algorithm for multimodal functions with collective robotics applications; Multiagent and Grid Systems 2(3); str 209–222 (2006)
  2. Krishnanand, K. N., Ghose, D.: Glowworm Swarm Optimization for Searching Higher Dimensional Spaces; Collection of Innovations in Swarm Intelligence; 2009; str 61-75