Otimização por Enxame de Partículas (PSO) e Otimização por Colônias de Formigas (ASO) aplicadas ao Problema do Caixeiro Viajante (TSP)

Documentos relacionados
Algoritmos Genéticos

1. Computação Evolutiva

Tópicos Especiais em Otimização

Otimização por Colônia de Formigas (ACO)

UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS

Inteligência de Enxame

Inteligência de enxame e o algoritmo das abelhas

Fundamentos de Inteligência Artificial [5COP099]

2 Modelos Baseados no Comportamento de Formigas

Teoria da Computação. Complexidade computacional classes de problemas

4 Metáforas de Optimização

Técnicas de Inteligência Artificial

Métodos de Busca. Inteligência Artificial. Algoritmos Genéticos. Algoritmos Evolucionários. Prof. Ms. Luiz Alberto Contato:

Otimização em Colônias de Formigas. Prof. Eduardo R. Hruschka (Slides adaptados dos originais elaborados pelo Prof. André C. P. L. F.

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Inteligência Artificial. Algoritmos Genéticos. Aula I Introdução

Estruturas de Dados 2

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Inteligência Coletiva. Prof. Eduardo R. Hruschka (Slides adaptados dos originais elaborados pelo Prof. André C. P. L. F.

Análise empírica de algoritmos de ordenação

Algoritmos Genéticos. Pontos fracos dos métodos tradicionais. Características de alguns problemas. Tamanho do espaço de busca- Ex. caixeiro viajante:

Aprendizado Evolutivo: Introdução aos Algoritmos Genéticos

4 Modelos Propostos para Otimização de Planejamentos com Restrições de Precedência 4.1 Representação com Algoritmos Genéticos

Otimização por Colônia de Formigas (Ant Colony Optimization - ACO)

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

1 Introdução 1.1 Motivação

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Metaheurísticas de Otimização Bio-Inspiradas

Metahuerísticas: Algoritmos Genéticos. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng.

Pós-Graduação em Engenharia de Automação Industrial SISTEMAS INTELIGENTES PARA AUTOMAÇÃO

Inteligência Artificial

Redes Perceptron e Multilayer Perceptron aplicadas a base de dados IRIS

Metaheurísticas de Otimização Bio-Inspiradas

Algoritmos Genéticos. Princípio de Seleção Natural. Sub-áreas da Computação Evolutiva. Idéias básicas da CE. Computação Evolutiva

Ant Colony Optimization

quais deve passar e, por fim, retornar à mesma cidade de onde saiu. No caso em que n = 5, temos:

Problemas de otimização

Um Algoritmo Genético com Aprendizado por Reforço Simples aplicado ao problema do Mundo de Grid

Escola Básica e Secundária Mouzinho da Silveira. MACS 11.º Ano Problema do Caixeiro Viajante

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

Técnicas de Inteligência Artificial

4 Implementação Computacional

Marcone Jamilson Freitas Souza

Computação Evolucionária

3. Resolução de problemas por meio de busca

PSO Particle Swarm Optimization ou Otimização por enxame de partículas Introdução Inspiração Funcionamento Parametrização

6 Estudos de Casos Porta Lógica OU de 4 Entradas

Algoritmo Genético: um experimento comparativo entre a execução paralela com troca de indivíduos de populações e a não paralela.

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008

Pesquisa Operacional Aplicada à Mineração

3 Algoritmos Genéticos

Inteligência Artificial

COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

3 Otimização Evolucionária de Problemas com Restrição

Introdução Paradigmas

Técnicas Inteligência Artificial

Implementação da metaheurística Colônia de formigas em Java para o problema do Caixeiro Viajante Simétrico.

Computação Evolutiva Parte 1

Computação Evolutiva. Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho)

INF 1771 Inteligência Artificial

Resumo. Como um agente busca de seqüência de ações para alcançar seus objetivos.

Computação Evolutiva Eduardo do Valle Simões Renato Tinós ICMC - USP

Caixeiro Viajante. Estruturas de Dados II. Prof. a Mariella Berger. 1. Objetivo

Complexidade de Algoritmos

3 Algoritmos Genéticos

Computação Evolutiva. Computação Evolutiva. Principais Tópicos. Evolução natural. Introdução. Evolução natural

INF 1771 Inteligência Artificial

Análise de Algoritmos

Particle Swarm Optimization (PSO) Universidade Federal de Alfenas

APLICAÇÃO DE ALGORITMOS BIO-INSPIRADOS EM CONTROLE ÓTIMO

Modelos Evolucionários e Tratamento de Incertezas

Algoritmos Genéticos

3. ALGORITMOS GENÉTICOS

3. Resolução de problemas por meio de busca

Exemplo do jogo dos fósforos Terça-feira, 9 de maio. Exemplo para o Problema do Corpo de Bombeiros. Exemplo: Localidade do Corpo de Bombeiros

Inteligência de Enxame: Tribes

Inteligência Artificial

Paradigmas de Projetos de Algoritmos

Computação Evolutiva. Prof. Eduardo R. Hruschka (Slides baseados nos originais do Prof. André C. P. L. F. de Carvalho)

4 Métodos Existentes. 4.1 Algoritmo Genético

Tópicos Especiais em Informática Fatec Indaiatuba

Otimização de horários Seminário. Clarisse Resende 25/01/2013

Aprendizado de Máquina (Machine Learning)

Medida do Tempo de Execução de um Programa

ALGORITMO GENÉTICO COMO REPRESENTAÇÃO DAS MUTAÇÕES NA BIOLOGIA

Inteligência Artificial (Lista 1) Prof. Alex F. V. Machado

Um Estudo Empírico de Hiper-Heurísticas

3 Extensões dos modelos matemáticos

Figura 3.1: Fluxograma do algoritmo da Programação Genética.

Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante

Aprendizado por Reforço usando Aproximação

Algoritmos Evolutivos para Otimização

Minicurso Inteligência Artificial Aplicada a Sistemas Elétricos. Niterói, 12 de Maio de 2018

PERCURSOS. André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré

Teoria e Algoritmos em Grafos

Inteligência Artificial

Método Simplex dual. Marina Andretta ICMC-USP. 24 de outubro de 2016

Max Pereira. Inteligência Artificial

Técnicas de Inteligência Artificial

Transcrição:

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Otimização por Enxame de Partículas (PSO) e Otimização por Colônias de Formigas (ASO) aplicadas ao Problema do Caixeiro Viajante (TSP) Aluno: Fabricio Aparecido Breve Prof.: Dr. André Ponce de Leon F. de Carvalho São Carlos São Paulo Maio / 2007

Resumo Este trabalho mostra a aplicação de dois algoritmos distintos: otimização por enxame de partículas (PSO) e Otimização por colônias de formigas (ASO) para resolver o tradicional problema do caixeiro viajante (TSP). Introdução Otimização por enxame de partículas (PSO) é uma forma de inteligência de enxames. Imagine um enxame de insetos, se um vê um caminho desejável para seguir (para obter comida, proteção, etc.) o restante dos elementos do enxame conseguirão segui-lo rapidamente, mesmo que estejam do outro lado do enxame. Por outro lado, para facilitar a exploração do espaço, tipicamente cada partícula deve ter um certo nível de aleatoriedade em seu movimento, para que o movimento do enxame tenha uma certa capacidade exploratória, ou seja, cada partícula deve ser influenciada pelo restante do enxame, mas também deve explorar independentemente até certa extensão. As partículas modeladas em um espaço multidimensional tem posição e velocidade. Estas partículas estão voando no hiper-espaço e tem essencialmente duas capacidades: memorizar sua melhor posição e saber a melhor posição do enxame. Membros do enxame comunicam suas boas posições para os outros que ajustam suas própria posições e velocidades de acordo com essas boas posições. Otimização por colônia de formigas (ACO), é uma técnica probabilística para resolver problemas computacionais, os quais podem ser reduzidos a encontrar bons caminhos em grafos. Esta técnica é inspirada no comportamento de formigas em procurar caminhos da colônia até fontes de alimento. No mundo real, formigas inicialmente andam aleatoriamente em busca de comida, e quando encontram retornam as suas colônias deixando trilhas de feromônio. Se outras formigas encontrarem estes caminhos, elas tendem a não continuar viajando aleatoriamente, mas sim seguir a trilha, retornando e reforçando-a se eventualmente encontrar alimento. Com o tempo, porém, as trilhas de feromônio tendem a evaporar, reduzindo sua força de atração. Quanto maior o tempo que uma formiga leva para viajar pelo caminho e voltar, mais feromônios irão evaporar. Assim, um caminho relativamente curto será atravessado mais rapidamente e, portanto sua densidade de feromônios será maior. Portanto, quando uma formiga encontra um bom caminho (curto) da colônia até a fonte de alimento, outras formigas provavelmente seguirão aquele caminho, e através de um retorno positivo eventualmente todas as formigas seguirão tal caminho. A idéia do algoritmo de colônia é copiar esse comportamento com formigas simuladas andando pelos grafos que representam o problema a ser resolvido. Na primeira etapa deste trabalho aplicamos Otimização por enxame de partículas ao tradicional problema do caixeiro viajante (TSP). Na segunda etapa fazemos o mesmo experimento, porém usando otimização por colônias de formigas. No final é aparesentada uma

comparação dos métodos utilizados neste trabalho, juntamente com o os Algoritmos Genéticos aplicados no trabalho anterior. Especificação do Problema do Caixeiro Viajante (TSP) Um caixeiro viajante deve visitar N cidades em sua área de vendas. Ele começa de uma base, visita cada cidade uma única vez e retorna à sua cidade no final. A cada viagem está associado um custo proporcional à distância percorrida. O caixeiro deve percorrer a rota mais curta. Na tabela 1 temos uma lista de oito cidades e a respectiva distância entre elas. O objetivo é ordenar essas cidades (na ordem em que serão visitadas) de forma que a distância total percorrida seja a menor possível. Tabela 1. Distância entre cidades A B C D E F G H A 0 42 61 30 17 82 31 11 B 42 0 14 87 28 70 19 33 C 61 14 0 20 81 21 8 29 D 30 87 20 0 34 33 91 10 E 17 28 81 34 0 41 34 82 F 82 70 21 33 41 0 19 32 G 31 19 8 91 34 19 0 59 H 11 33 29 10 82 32 59 0 Otimização por Enxame de Partículas (PSO) Ao codificarmos uma string de cidades (ou caminhos), considerando n como o número de cidades teríamos n n soluções possíveis, mas apenas n! soluções válidas, pois o problema determina que cada cidade só poderá ser visitada uma única vez e que todas as cidades devem ser visitadas. Esta limitação já foi observada no trabalho anterior sobre algoritmos genéticos. Esse problema pode ser resolvido através de modificações nas funções de movimentação no hiper-espaço, porém tal alternativa descaracterizaria o algoritmo PSO, cuja principal identidade está nesse algoritmo de movimentação. Dessa forma optamos por apenas penalizar soluções inválidas com um valor de aptidão bastante alto. Assim precisamos contar com uma população relativamente maior e deixar o algoritmo rodar por um tempo maior para tentar contornar essas limitações. Para realização do experimento foi determinada aleatoriamente uma população de 50 indivíduos, cujos vetores correspondem a uma lista de cidades na ordem em que serão visitadas. Após 6000 iterações o menor caminho encontrado tem um custo de 140, o mesmo obtido com o algoritmo genético no trabalho anterior. A Figura 1 mostra a variação da maior aptidão obtida no enxame a cada iteração. Podemos observar que no início o valor é bastante alto, devido à penalidade sofrida por todas as partículas, pois inicialmente a posição delas não

Aptidão correspondia a nenhum caminho válido no problema do TSP. Após algumas iterações caminhos válidos passaram a ser obtidos. Uma melhoria gradativa do melhor caminho é observada a partir daí. Após 1800 iterações o algoritmo parece estabilizar em um valor, mas mesmo com quase 5000 iterações ainda podemos observar mais uma ligeira melhoria. 1400 1200 1000 800 600 400 200 0 0 1000 2000 3000 4000 5000 6000 Iterações Figura 1 Variação da maior aptidão entre os elementos da população em cada iteração para o problema do caixeiro viajante utilizando otimização por enxames de partículas (PSO) Foram feitos alguns experimentos com um número maior de cidades, mas mesmo com um grande número de iterações raramente um caminho válido era encontrado, mesmo utilizando populações maiores e um número bastante grande de iterações. Dessa forma o algoritmo PSO original fica limitado a um número pequeno de cidades, e isto se deve ao fato de a proporção de caminhos inválidos no total de caminhos crescer exponencialmente à medida que se aumenta o número de cidades. Melhores resultados poderiam ser obtidos mesclando outras técnicas, porém descaracterizando o PSO original. Otimização por Colônia de Formigas (ACO) Para o experimento com Colônia de Formigas foi escolhida uma população de 8 elementos (número igual a dimensionalidade do problema). A Figura 2 mostra os resultados obtidos. É importante notar que já na segunda iteração o menor caminho já é obtido, este é o mesmo custo do caminho obtido por GA e PSO, porém o ACO produziu o resultado em um tempo muito menor.

Menor custo 147 Menor caminho=140 146 145 144 143 142 141 140 1 2 3 4 5 6 7 8 9 10 tempo Figura 2 Variação da maior aptidão dos elementos da população em cada iteração para o problema do caixeiro viajante com 8 cidades utilizando Otimização por colônia de formigas (ACO) Para explorar melhor o potencial do ACO foi realizado mais um teste, dessa vez com 70 cidades. O número de elementos da população foi novamente o mesmo número de dimensões (70). A Figura 3 mostra os resultados obtidos. Nela podemos observar que o melhor caminho dentre os 70 elementos em cada iteração varia bastante, porém logo nas primeiras iterações o algoritmo já encontra um caminho com custo bastante razoável. O menor caminho do experimento como um todo é obtido na iteração de número 104, e apesar de o algoritmo continuar rodando até 1000 iterações nenhum outro caminho melhor foi encontrado. Na Figura 4 observamos as 70 cidades representadas por pontos verdes e o melhor caminho encontrado pelo algoritmo ACO traçado em azul. Analisando a imagem é possível perceber que o caminho encontrado não é ótimo, porém é um caminho bastante razoável visualmente, principalmente se considerarmos que existem 1,20 100 caminhos válidos possíveis e que esta solução foi encontrada em muito menos tempo do que levaria uma busca por força-bruta.

Menor Custo 900 Menor custo=694,2988 Iteração do menor custo=104 850 800 750 700 650 0 200 400 600 800 1000 Tempo Figura 3 Variação da maior aptidão dos elementos da população em cada iteração para o problema do caixeiro viajante com 70 cidades utilizando Otimização por colônia de formigas (ACO) 100 70 Cidades 90 80 70 60 50 40 30 20 10 0 0 10 20 30 40 50 60 70 80 90 100 Figura 4 Problema TSP com 70 cidades e o melhor caminho obtido por Otimização por Colônia de Formigas (ACO)

Conclusão Dentre os três algoritmos estudados: Algoritmos Genéticos (GA), Enxame de Partículas (PSO) e Colônia de Formigas (ACO), sem dúvida o mais indicado para resolver o problema do Caixeiro Viajante (TSP) é o algoritmo ACO. O algoritmo ACO é a escolha natural para o problema TSP, pois sua essência consiste em encontrar bons caminhos em grafos. Os algoritmos GA e PSO se baseiam em encontrar soluções navegando em espaços de atributos de alta-dimensionalidade, no caso do TSP as soluções válidas nesse espaço é um número muito reduzido comparado as soluções possíveis de serem obtidas com os algoritmos, assim em sua forma tradicional os algoritmos GA e PSO acabam fazendo algo mais próximo de uma busca aleatória, o que obviamente não é o forte desses algoritmos. No algoritmo de GA ainda foi possível introduzir mudanças nos algoritmos de geração, crossover e mutação para que o mesmo se tornasse eficiente no problema TSP. Apesar das modificações a essência do algoritmo, que consiste em gerar novos elementos com herança genética de seus pais, é mantida. Porém no caso do PSO, modificações no sistema de vôo teriam de ser introduzidas e isto certamente deixaria o algoritmo muito mais parecido com o que foi feito no GA, porém longe de sua concepção original, e assim tais modificações foram evitadas. Os experimentos práticos comprovam essas conclusões teóricas, pois notamos que o algoritmo ACO rapidamente encontra o melhor caminho, superando por uma larga margem os algoritmos PSO e GA originais. Mesmo o algoritmo GA modificado, apesar de ser bastante eficiente ainda é ligeiramente inferior ao ACO.