Algoritmos Bioinspirados César M. V. Benítez cesarbenitez@utfpr.edu.br 2018
Agenda Algoritmos Bioinspirados - Introdução Artificial Bee Colony (ABC) Grey Wolf Optimizer (GWO)
H.S.Lopes(2018)
Algoritmos Bioinspirados Bee Algorithm, Bees mating, bee swarm optimization, BeeHive, Bee Colony Optimization Grey Wolf Optimzer (GWO) Biogeography-Based Optimization (BBO) Cuckoo Search Algorithm (CSA) Krill Herd Optimization Algorithm (KH) Roach Infestation Algorithm (RIO) Mosquitoes Host-Seeking Algorithm (MHSA), BAT Algorithm (BA), Firefly (FA) Fish-shoal algoritm Artificial Immune Systems - Criado no Brasil: http://www.artificial-immune-systems.org/
Algoritmos não-bioinspirados River Formation Dynamics (RFD) Self-Propelled Particles (SPP) Intelligent Water Drops Algorithm (IWD) Imperialist Competitive Algorithm (ICA) Electromagnetism-like Mechanism Algorithm (EM) Stochastic Diffusion Search (SDF)
Artificial Bee Colony (ABC) Criado por Dervis Karaboga em 2005 É inspirado no comportamento das abelhas na busca por alimento As abelhas procuram fontes de alimento e exploram com base na sua qualidade e na distância Auto-organização e divisão de trabalho entre as abelhas, condições necessárias para atingir um comportamento coletivo inteligente
Artificial Bee Colony (ABC) Fontes de alimento (posições no Espaço de Busca) Qualidade medida por uma função de fitness Depende da distância à colmeia e da concentração de alimento Abelhas empregadas (foragers) Exploram a uma fonte específica de alimento e contém informação sobre a sua distância e direção. Compartilham probabilisticamente esta informação com outras abelhas através da dança (Waggle dance). Waggle Dance
Artificial Bee Colony (ABC) Abelhas desempregadas (unemployed): Buscam fontes de alimentos para explorar Há dois tipos: Troca de informação: Escoteiras (Scouts): buscam fontes de alimento aleatoriamente Expectadoras/Observadoras (Onlookers): esperam na colmeia por informação das Empregadas e selecionam 1 fonte de alimento para explorar Emerge conhecimento coletivo (auto-organização) Waggle Dance: a series of patterned movements performed by a scouting bee, communicating to other bees of the colony the direction and distance of a food source or hive site.
Artificial Bee Colony (ABC) Exploitation (busca local): desempenhada por abelhas empregadas Exploration (exploração global): desempenhada por abelhas escoteiras (ação aleatória)
Artificial Bee Colony (ABC) Pseudo-código: 1. Inicializa a população de abelhas empregadas aleatoriamente no espaço de busca 2. Avalia a qualidade do fitness inicial da população 3. Repete o seguinte loop até que uma condição de término ocorra (MCN ciclos):
Artificial Bee Colony (ABC) Pseudo-código: Loop principal 1. Produza soluções nas vizinhanças dos pontos para cada abelha empregada e avalia seu fitness 2. Move as abelhas empregadas para novas posições mais promissoras 3. Produza probabilisticamente soluções para as abelhas expectadoras e calcule o seu fitness 4. Move as abelhas expectadoras para novas posições aplicando seleção entre a posição atual e a nova posição 5. Abandona soluções estagnadas, transforme as abelhas atuais em escoteiras. 6. Substitua os pontos estagnados por outros gerados aleatoriamente 7. Incremente o ciclo (MCN)
Artificial Bee Colony (ABC) Pseudo-código:
Artificial Bee Colony (ABC) Parâmetros: Dim: número de dimensões Tamanho total do enxame = ~100 Limit = critério de abandono de uma solução (número de ciclos sem melhoria) =~ 100 (Number of onlooker bees *Dim) Número de onlookers = 50% do total Número de abelhas empregadas (SN): 50% do total Número de abelhas escoteiras = 1 MCM (maximum cycle number - número máximo de iterações): 1000-5000 * Karaboga, D. & Basturk, B. On the performance of artificial bee colony (ABC) algorithm. Applied Soft Computing, v. 8, p.687-697, 2008.
Artificial Bee Colony (ABC) Vantagens:... Desvantagens: Exploitation e Exploration Poucos parâmetros de controle Convergência rápida (geralmente) Paralelizável Espaço de busca limitado pelas soluções iniciais
Artificial Bee Colony (ABC) Software em C, MatLab, R e Java: https://abc.erciyes.edu.tr/software.htm https://github.com/wiradkp/artificial-bee-colony * Ver também o código disponibilizado pelo Professor. Software em Python: https://github.com/daviddonna/abc
Artificial Bee Colony (ABC) Algumas aplicações Predição de estrutura de proteínas (PSP) ABC BENITEZ, C. M. V.; LOPES, H. S.. Parallel Artificial Bee Colony Algorithm Approaches for Protein Structure Prediction Using the 3DHP-SC Model. Studies in Computational Intelligence. Springer-Verlag, 2010, v. 315, p. 255-264.
Para mais informação: Parpinelli, R.S., Lopes, H.S. New inspirations in swarm intelligence. International Journal of Bio-Inspired Computation, v. 3, n. 1, p. 1-16, 2011. DOI: http://dx.doi.org/10.1504/ijbic.2011.038700 Sorensen, K. Metaheuristics the methaphor exposed. International Transactions in Operational Research, v.22, n. 1, p. 3-18, 2015 Karaboga, D., Gorkemli, B., Ozturk, C. et al. A comprehensive survey: artificial bee colony (ABC) algorithm and applications Artif Intell Rev (2014) 42: 21. https://doi.org/10.1007/s10462-012-9328-0
Grey Wolf Optimizer (GWO) Baseado na hierarquia de liderança dos lobos Canis Lupus 4 tipos de lobos: alfa, beta, delta e omega Tres fases de caça, busca de presa e ataque implementadas para realizar a otimização Referência: https://www.sciencedirect.com/science/article/pii/s0965997813001853
Grey Wolf Optimizer (GWO) Alpha: lideres. 1 macho + 1 femea Não sao necessariamente os mais fortes, mas os que melhor lideram o grupo Beta: subordinados aos alphas. Melhores candidatos para substituir aos alphas (falecimento ou quando o alpha for idoso). Respeita ao alpha e comanda aos inferiores (reforça as ordens dos alphas) Omega: bode expiatório, mas é protegido pelos demais. Pode ser o babá. Brigas internas no grupo acontecem com a perda dos Omegas. A presença de Omegas ajuda na manutenção da Hierarquia.
Grey Wolf Optimizer (GWO) Delta: subordinados (menos aos Omegas). Idosos, escoteiros, caçadores e cuidadores. Escoteiros: observam os limites do território (avisam em caso de perigo) Sentinelas protegem ao grupo Idosos (ex alphase betas) Caçadores: ajudam aos alphas e betas na caça Cuidadores: cuidam dos fracos, doentes e feridos
Grey Wolf Optimizer (GWO) Caça Comportamento
Grey Wolf Optimizer (GWO) Modelagem matemática (hierarquia social, caça) Hierarquia: Fittest solution (melhor solução): Alpha Segunda melhor solução: Beta Terceira melhor solução: Delta As demais soluções candidatas: Omega A Caça é guida por Alpha, Beta e Delta
Grey Wolf Optimizer (GWO) Modelagem matemática (hierarquia social, caça) Cercar presa: t: iteração; A, C coeficientes Xp vetor posição da presa Componentes de a diminuem de 2 para 0 durante a evolução. r1 e r2 são vetores randomicos entre [0,1] X é o vetor posição de um Lobo
Grey Wolf Optimizer (GWO) Modelagem matemática (hierarquia social, caça) Cercar presa:? * O lobo atualiza sua posição
Grey Wolf Optimizer (GWO) Caça: - Guiada por Alphas - Presa (local desconhecido) - Considera-se que Alphas, Betas e deltas conhecem a potencial posição da presa. - Então, os demais (Omegas, etc.) são posicionados de acordo com a posição do melhor
Grey Wolf Optimizer (GWO) Em outras palavras, - Alpha, Beta e Delta determinam a posição Da Presa - os lobos (w) atualizam a posição em torno da presa
Grey Wolf Optimizer (GWO) Exploitation: Ataque à presa
Grey Wolf Optimizer (GWO) Exploration: buscando a presa - C fornece valores randomicos para enfatizar a Exploração durante todo o processo de busca. - É útil para evitar Estagnação em regiões de ótimo local - C>1 e C<1 enfatiza e desenfatiza o efeito da presa na definição da distância, favorecendo a busca global - C é considerado como os obstáculos que o lobo encontra durante a caça
Grey Wolf Optimizer (GWO)
Grey Wolf Optimizer (GWO)
Grey Wolf Optimizer (GWO) Parâmetros: Número de agentes Número de iterações
Grey Wolf Optimizer (GWO) Referências: http://www.alimirjalili.com/publication.html https://www.sciencedirect.com/science/article/pii/s0965997813001853?via%3 Dihub Software: http://www.alimirjalili.com/gwo.html