Otimização por colônia de formigas Ant Colony Optimization – ACO Algoritmo de classificação Gissely de Souza Universidade Federal do Paraná Disc. Aprendizagem de Máquina Prof. David Menotti Otimização por colônia de formigas • • • • • • • • Aplicação TSP - Caixeiro Viajante Escalonamento Classificação Estrutural de Proteínas VRP - Problema de roteamento de veículos Rede de Telecomunicações Graficos de Coloração Rede de Distribuição de Água Otimização por colônia de formigas • Um dos principais algoritmos inspirado no comportamento social é a otimização por colônia de formigas (do inglês Ant Colony Optimization – ACO) que tem como fonte de inspiração biológica, ou natural, o comportamento social das formigas na tarefa na busca por alimentos: Um algoritmo simples de otimização por colônia de formigas, a busca de alimentos é feita inicialmente por caminhos aleatórios em um espaço. Formigueiro Comida O algoritmo das formigas foi inspirado na observação colônias de formigas reais. Formigueiro Comida Formiga encontrou a comida e vai voltar para o formigueiro Otimização por colônia de formigas • Quando encontram o alimento, as formigas, voltam para o ninho e depositam no solo uma substância química chamada feromônio, em uma quantidade proporcional a quantidade de alimento formando uma trilha. • Quando outra formiga percebe o feromônio é atraída para a trilha e realiza todo o percurso também liberando feromônio. No momento que a formiga encontra o alimento ela volta para o ninho depositando uma quantidade de feromônios proporcional a quantidade de alimento. Formigueiro Comida Formiga voltando Assim outras formigas se juntam a ela para ajudar na coleta de alimento. Achou a comida e vai voltar para o formigueiro Formigueiro Comida Achou a comida e vai voltar para o formigueiro Caminho mais curto por colónias de formigas (biológicas) Formigueiro Comida Caminho mais curto por colónias de formigas (biológicas) Tem maior probabilidade de ir por baixo (trilha onde passaram mais formigas - mais feromônio) Formigueiro Comida Esse feromônio evapora constantemente mais cada vez que a formiga volta ao ninho com o alimento, a trilha é reforçada e ao mesmo tempo ocorre a otimização natural da trilha de feromônio. Formigueiro Comida Quando todas as formigas começam a seguir o mesmo percurso. Isto ocorre devido ao excessivo crescimento de depósito de feromônio no caminho por onde elas passam. A formiga que encontrou o circuito com menor custo fará que todas as outras comecem a utilizar o mesmo. Assim de modo probabilístico, as formigas preferem o caminho mais proximo. Comportamento das formigas após o surgimento de um obstáculo entre o ninho e a fonte de alimento. Técnica probabilística para solução de problemas computacionais, proposta por Dorigo (1992), que podem ser reduzidos em “encontrar bons caminhos ao longo de um grafo”; Probabilidade de Transição A probabilidade da formiga k que está em i de escolher a um ponto j é dada pela regra onde: pijk ij ij il jl , quando j N ik lN kj Temos ij é valor o feromônio associado à aresta (i, j) Njk O valor da distância da vizinhança da formiga K e são parâmetros para determinar a influência do feromônio, dividido pelo termo que normaliza o produto do feromônio pelo termo heurístico entre 0 e 1 considerando todas as arestas incidentes no nó em que a formiga se encontra. Algoritmo AS (Ant System) • ACO (Ant Colony Optimization) executa iterativamente um loop contendo dois procedimentos básicos, que são: • Um procedimento especificando como as formigas constroem ou modificam as soluções do problema a ser resolvido; e • Um procedimento para a atualização das trilhas de feromônio. Algoritmo AS (Ant System) Enquanto (criterio de parada) Para cada formiga k Percorrer_caminho() fim_para só depois de todas a formigas terem feito seus caminhos Atualizar_feromonio() Decorar_melhor_solucao_atual() Fim_enquanto Classificação usando ACO • Introduzido por Parpinelli et al. (2002), o Ant-Miner é embasado na meta-heurística de Otimização por Colônia de Formigas Artificiais (ACO – Ant Colony Optimization). • Porém, ao invés de ser aplicado a problemas de otimização combinatória, o Ant-Miner é um algoritmo de mineração de dados que tem o objetivo de descobrir regras e padrões (regras de classificação) a partir de um conjunto de dados. Ant-Miner(Ant Colony-based Data Miner) • Tarefa de classificação pega conjunto de exemplos de treinamento descobre uma relação entre os atributos previsores e o meta, de forma que, dado um novo exemplo, ele possa predizer a classe. • As regras descobertas são do tipo SE <termo1 E termo2 E ...> ENTÃO <classe>. • Cada termo é composto por uma tupla • <atributo, operador, valor> por exemplo, • <gênero=feminino> AntMiner algoritmo para a descoberta de regras de classificação • • • • Algoritmo consiste em várias etapas: Construção regra; Regra poda; Atualização de feromônio; • Formigas incrementalmente constrói/modifica uma solução para determinado problema alvo, neste caso, o problema alvo é a descoberta das regras de classificação. Construção da Regra • Uma Formiga começa com regra vazia e adiciona um termo de cada vez • A melhor regra (melhor formiga) é selecionada e adicionada a ListaDeRegras Regra de poda • Esta poda auxilia a remoção de termos irrelevantes que podem ter sido adicionados desnecessariamente na regra. Atualização do feromônio • Aumenta o feromônio na trilha seguida pela formiga atual de acordo com a qualidade da regra encontrada. • Diminui feromônio em outras trilhas que simula a evaporação do feromônio. Critérios de paranda • Num. de regras> = Num. de formigas • Convergência é cumprida Lista de regras descobertas é atualizada e feromônios redefinido para todas as trilhas Artigo de referência: Bo Liu , Hussein A. Abbass , and Bob McKay “ Classification Rule Discovery with Ant Colony Optimization “IEEE Computational Intelligence Bulletin February 2004.