56
Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de Enxame - 2012/03

Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Embed Size (px)

Citation preview

Page 1: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajanteAluno: Luiz Évora Disciplina: CPE 730 – Inteligência de Enxame - 2012/03

Page 2: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Sumário• Problema do caixeiro viajante• Algorítimos ACO para TSP• AS (Ant System) e seus sucessores diretos• EAS, Asrank, MMAS

• Extensões de AS• ACS, ANTS, Hipercubo

• Avaliação experimental• ACO com busca local• Implementação de algorítimos de ACO• Conclusões

Page 3: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Introdução• O problema do caixeiro viajante (TSP)• Extensivamente estudado na literatura• Atrai uma quantidade considerável de pesquisa

• O primeiro algorítmo ACO foi testado primeiramente em TSP

• Porque escolher o problema do TSP?• Importante problema de otimização NP-hard • Algorítimos ACO são aplicados facilmente• Fácil entendimento• Padrão para testes de novas idéias algorítimicas

Page 4: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Problema do Caixeiro Viajante

Iniciando de sua cidade natal, visitar cidades na menor rota possível, visitando cada cidade apenas uma vez

G = (N, A) N = conjunto de nós representando as cidadesA = conjunto de arcos

TSP assimétrico: dij ≠ djiTSP simétrico: dij = dji

Objetivo TSP: Achar o comprimento mínimo do circuito Hamiltoniano do grafo (caminho fechado visitando casa n = |N| nós de G exatamente uma vez)

Page 5: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Problema do Caixeiro Viajante• Solução ótima é a permutação ∏ dos índices dos nós tal que o

comprimento f(∏) seja mínimo

• Experimentos computacionais

532 cidades nos EUA Furos em placas de circuito impresso

http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/

Page 6: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Algorítimos ACO para TSP• ACO pode ser aplicado ao TSP de maneira direta• G = (C, L) onde C=N e L=A

• O grafo de construção é um grafo completo• Grafo simples em que todo vértice é adjacente a todos os outros vértices• Qualquer caminho fechado que visita todos os nós sem repetir qualquer

nó corresponde a um circuito realizável

• Em todos os algorítmos ACO para TSP, trilhas de feromônios são associadas aos arcos• τij se refere a atração de visitar a cidade j diretamente após a cidade i• A informação heurística é escolhida como ηij = 1/dij

Page 7: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Construção de circuitos

1. Escolher, de acordo com algum critério, uma cidade inicial para posicionar a formiga

2. Usar valores de feromônio e heurística para construir probabilisticamente o circuito• Iterativamente adicionando cidades que a formiga ainda não visitou

3. Retornar a cidade inicial• Com isso, deposita-se o feromônio no caminho correspondente

Page 8: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Algorítimo básico

• Esse algorítimo é aplicado a maioria dos algorítimos ACO para TSP• Exceção quando evaporação é intercalada com a construção do circuito

Page 9: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Algorítimos ACO• Ant System foi introduzido com TSP como exemplo de

aplicação• Inferior aos algorítimos estado da arte para TSP• Inspirou um grande número de extensões com melhoras de

performance

Algorítimos ACO de acordo com a ordem cronológica de aparição

Page 10: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Ant System

• Inicialmente, três versões de AS foram propostas• Ant-density e ant,quantity• Atualização de feromônio após cada movimento entre

cidades• Ant-cycle (referência)• Atualização de feromônio após a construção de todos os

circuitos• Sua quantidade como função da qualidade do circuito

Page 11: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Inicialização• Uma boa heurística é inicializar as trilhas de feromônios em

um valor levemente maior que o depósito esperado em uma iteração• τij = τ0 = m/Cnn , onde m é o número de formigas e Cnn é o

comprimento do circuito gerado pelos vizinhos mais próximos

• Esse tipo de inicialização traz vantagens• Se feromônios inicias baixos, busca rapidamente tendenciosa

para os primeiros circuitos• Se altos, muitas iterações até a evaporação fazer efeito

Page 12: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Construção do circuito• Em AS, m formigas constroem o circuito concorrentemente

1. Formigas são colocadas em cidades aleatórias2. A cada passo, a formiga k aplica a regra de escolha de ação

probabilística (Regra proporcionalmente aleatória) para decidir qual cidade visitar em seguida

• ηij = 1/dij é um valor heurístico disponível a priori• α e β determina a influência do feromônio e da informação heurística• é o conjunto de cidades não visitadas

Page 13: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Escolha de parâmetros

• Para cada caso, escolhas de parâmetros específicas podem retornar um melhor resultado• Entretanto, esses parâmetros apresentam performance razoável

em um conjunto significante de problemas de TSP

Page 14: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Construção do circuito• Cada formiga mantém uma memória Mk que contém as

cidades já visitadas e a ordem de visita• Ajuda na definição dos destinos possíveis

• A memória Mk permite computar o comprimento do circuito percorrido e de fazer o depósito de feromônio

• Existem duas alternativas de construção (equivalentes)• Paralela: A cada passo, todas as formigas se movem de uma cidade para

outra• Sequencial: Uma formiga completa um circuito antes da próxima iniciar

outro

Page 15: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Atualização de feromônios• Após a construção de todos os circuitos, as trilhas de

feromônios são atualizadas

1. Diminuir o valor de feromônio em todos os arcos por um valor constante

2. Adicionar feromônio aos arcos nos quais formigas atravessaram

Onde p é a taxa de evaporação

se o arco (i, j) pertence a Tk

caso contrário

• Arcos que usados por muitas formigas e que são parte de circuitos curtos recebem mais feromônios

• Performance de AS cai dramaticamente com o aumento do tamanho do problema

Page 16: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Elitist Ant System (EAS)• Fornece reforço adicional para arcos pertencentes ao melhor

circuito desde o início do algorítimo• Circuito Tbs (best-so-far)

• Atualização do feromônio

• Resultados computacionais sugerem que EAS com um valor apropriado de e permite encontrar soluções melhores e em um número menor de iterações

se o arco (i, j) pertence a Tbs

caso contrário

Page 17: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Rank-Based Ant System (ASrank)

• Cada formiga deposita uma quantidade de feromônio que varia com seu rank• A melhor formiga ainda deposita a maior quantidade de

feromônio em cada iteração

• Antes da atualização, as formigas são ordenadas pelo tamanho do circuito• Empates são resolvidos de maneira aleatória• A cada iteração, apenas as (w-1) melhores formigas e a formiga

que produziu o melhor circuito depositam feromônio

Page 18: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Max-Min Ant System (MMAS)• Explora fortemente os melhores circuitos encontrados• Apenas a formiga da melhor iteração ou a melhor até o momento

depositam feromônio• Pode levar a estagnação

• Trilhas de feromônio limitadas a [τmin, τmax]• Inicialização no limite máximo• Pequena taxa de evaporação, aumenta a exploração no início

• Reinicialização das trilhas cada vez que o sistema se aproxima da estagnação • Ou o circuito não apresenta melhora por um certo número de iterações

Page 19: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Atualização do feromônio• Evaporação -> Depósito de novo feromônio

• Onde , que pode ser o best-so-far ou o melhor da iteração• É possível utilizar os dois valores de maneira alternada

• A escolha da maneria de atualização tem influência em quão gananciosa a busca será• Best-so-far – Busca foca rapidamente em torno do Tbs

• Iteration-best – Número de arcos recebendo feromônio é maior e a busca menos direcionada

Com pequenas instâncias, iteration-best apresenta melhor performance, enquanto para TSP maiores, best-so-far é recomendado

Page 20: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Limites de feromônios• A imposição de limites tem o efeito de limitar a probabilidade

pij de selecionar a cidade j quando a formiga está em i• 0 < pmin ≤ pij ≤ pmax ≤ 1

• O limite superior é delimitado por 1/ρC*, onde C* é o comprimento do circuito ótimo• Com isso, uma estimativa 1/ρCbs define τmax a cada iteração• O limite inferior é definido como τmin = τmax/a

Page 21: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Inicialização de feromônios

• Para iniciar, os feromônios iniciais são atribuídos como uma estimativa de seu limite superior• Fase inicial é bastante explorativa

• Reinicialização é feita para aumentar a exploração de caminhos que tem probabilidade baixa de serem escolhidos• Tipicamente quando chega a estagnação ou não

apresenta melhora

Page 22: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Ant Colony System

• Difere do AS em três pontos principais

1. Explora a experiência de busca mais agressivamente

2. Evaporação e depósito de feromônio apenas nos arcos do circuito best-so-far

3. Cada vez que uma formiga utiliza um arco, feromônio é removido

Page 23: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Construção do circuito• Quando na cidade i, a formiga k se move para a cidade j de

acordo com a regra proporcional pseudoaleatória dada por

• Onde q é uma variável aleatória uniformemente distribuída em [0, 1], q0 um parâmetro e J uma variável aleatória de acordo com a probabilidade de escolha

• Exploração realizada pelas trilhas de feromônios e informação heurística, ou uma exploração tendenciosa• Controlado pelo parâmetro q0

se caso contrário

Page 24: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Atualização de feromônio global

• Em ACS, apenas a formiga best-so-far pode adicionar feromônio a cada iteração

• Evaporação e depósito apenas nos arcos de Tbs

• Complexidade cai de O(n2) para O(n)

• Uso de melhor da iteração não produz melhoras

onde

Soma ponderada entre feromônio antigo e novo

Page 25: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Atualização de feromônio local• Aplicada imediatamente a formiga ter atravessado um arco

• Experimentalmente = 0,1, enquanto um bom valor para τ0 é • n é o número de cidades e Cnn o comprimento do circuito de

vizinhos mais próximos

• Efeito: Cada vez que uma formiga utiliza um arco, ele se torna menos desejado• Aumenta a exploração, não apresenta estagnação• Contrução em paralelo ou sequencial não são indiferentes

Page 26: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Considerações• ACO foi o primeiro ACO a utilizar lista de candidatas• Restringir o número de escolhas disponíveis a serem

consideradas• Para o caso de TSP, as lista contém as cidades mais próximas

• Lista permanece fixa durante todo o processo• Apenas se todas as cidades na lista foram visitadas, outras são

escolhidas

• Aumenta a qualidade da solução• Aumenta a velocidade de resposta

Page 27: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Approximated Nondeterministic Tree Search (ANTS)• Explora idéias de programação matemática• Computa limites inferiores em soluções parciais para definir a

informação heurística que é utilizada por cada formiga

• Repetidamente tenta adicionar um arco em uma solução parcial• Estima-se o custo de um circuito completo contendo esse arco

por um limite inferior• Quanto mais baixa a estimativa, mais atrativo é o arco

• Com isso, soluções que poderiam ser consideradas são descartadas se seus custos são maiores que a best-so-far

Page 28: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Construção da solução• A escolha da próxima cidade a ser visitada é dada pela

probabilidade

• Onde é um parâmetro entre 0 e 1

• Apenas um parâmetro é utilizado, assim como operações mais simples (somas ao invés de multiplicações)

Page 29: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

• Não existe evaporação explícita, sendo implementada por

• Onde

• Se a solução é pior que a média, os feromônios dos arcos utilizados pela formiga são diminuidos

• é um parâmetro• LB é o limite inferior, sendo LB ≤ C*, onde C* é o tamanho do

circuito ótimo• Lavg a média móvel dos últimos l circuitos gerados pelas formigas

Atualização de feromônios

se o arco (i, j) partence a Tk

caso contrário

Não foi aplicado a TSP

Page 30: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Hyper-Cube Framework• Automaticamente reescala os valores dos feromônios para

estarem no intervalo [0, 1]

se arco (i, j) é utilizado pela formiga k

caso contrário

Page 31: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Avaliação experimental• Os experimentos dão uma indicação do comportamento geral

dos algorítimos ACO quando aplicados a problemas de otimização combinatorial NP-hard

• Ilustração do que acontece quando incluída a busca local

• Os resultados não pretendem competir com algorítimos estado da arte em TSP

• Porém, os resultados são interessantes por podem ser refletidos em outros problemas NP-hard

Page 32: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Comportamento de ACO• Quanto mais escuro , maior o valor do feromônio

Simétrico, 14 cidades, 0, 5, 10 e 100 iterações

Page 33: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Estagnação da solução• A longo prazo e com bons parâmetros, a tendência é reduzir o

espaço de busca explorado• Mas pode ser indesejado se acontecer muito cedo

• Os desvios padrões σL dos circuitos de cada iteração podem ser utilizado para detectar estagnação• Se 0, percorreu o mesmo caminho• Depende dos valores absolutos dos caminhos

• Uma alternativa é utilizar o coeficiente de variação• σL / Média de comprimento dos circuitos• Independente de escala

Page 34: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Estagnação da solução• Uma maneira de medir a distância entre dois circuitos é contar

o número de arcos contidos em um circuito mas não no outro• Se essa distância chegar a 0, chegamos a uma estagnação• Computacionalmente caro

• λ-branching factor, 0 < λ < 1, mede a distribuição de feromônios mais diretamente• É dado pelo número de arcos que possuem feromônios com valor

• Da uma indicação do espaço de busca efetivamente explorado pelas formigas

Page 35: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Comportamento de ASGood: Bad:

• Uma má escolha dos parâmetros leva a uma estagnação rápida• Experimentos mostram que AS entra em estagnação se α é muito grande• Também não acha bons resultados para valores muito menores que 1

Page 36: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Comportamento de AS

• Resultados ruins por excesso de exploração• Não consegue focar a busca nas partes mais promissoras do espaço de

busca• Deve-se achar o equilíbrio entre um foco muito grande na busca, ou

uma busca pouco orientada

Good: Bad:

Page 37: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Comportamento das extensões de AS

AS

ACS

EAS

AS-RANK

MMAS

Page 38: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Comportamento das extensões de AS

AS

EASAS-RANK

ACS

MMAS

Page 39: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Comportamento da MMAS• Possui o maior período de busca exploratória• Trilhas inicializadas com valor limite máximo e taxa de evaporação

baixa (0,02)

• Feromônios nos arcos do melhor circuito sobem até o limite máximo, enquanto os outros podem descer até o mínimo

• Mesmo assim, ainda é possível explorar circuitos, pois devido ao valor mínimo, a probabilidade de escolha não é 0

Page 40: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Comportamento da ACS• Busca bastante agressiva que foca desde o início no circuito

best-so-far Tbs

• Enquanto atravessados por formigas, os arcos têm seus feromônios diminuídos• Favorece a exploração de arcos não-visitados• Como consequência, formigas nunca convergem para um mesmo

circuito

Page 41: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

AS x ExtensõesInstância A

Page 42: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

AS x ExtensõesInstância B

Page 43: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

ACO com busca local• Para TSP, algorítimos com busca local possuem as melhores

performances• Iterativamente aplicam busca local em soluções iniciais que são

geradas introduzindo modificações em algumas soluções ótimas locais

• Como ACO utiliza diferença de vizinhanças ao invés de busca local, a solução pode ser melhorada com a sua adição

Page 44: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Busca Local

• 2-opt

• 3-opt

• 2,5-opt

Page 45: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Questões• Na maioria de procedimentos de busca local, quanto maior a

qualidade do resultado, maior o tempo de processamento• Aplicar uma busca local rápida frequentemente que melhora um

pouco os resultados?• Aplicar uma busca local lenta mas mais efetiva menos

frequentemente?• Qual o número de formigas utilizar?• Usar informação heurística?• Que formigas podem utilizar a busca local?• Os parâmetros sem a busca local ainda são os melhores com a

busca local?

Page 46: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Comparação – Busca local

• Qualidade aumenta de 2-opt para 3-opt• Também aumenta o tempo de computação

MMAS

Page 47: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Número de formigas• Número de formigas de 1 a 100• O melhor custo-benefício entre qualidade e tempo é obtido com um

números entre 2 e 10• Em instâncias maiores, um número maior de formigas tem uma

utilidade mais aparente

Page 48: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Informação heurística

• Na fase inicial de construção, se os feromônios são aleatórios, os circuitos são de qualidade muito ruins

• A informação heurística visa evitar isso, buscando circuitos de qualidade desde o início

• Se busca local é utilizada, a inicialização aleatória é suficiente• Será a informação heurística ainda necessária?

Page 49: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Comparação

• Calcular a distância entre cidades é de fácil cálculo computacional, mas para outros problemas pode ser mais difícil a heurística

• Pelos experimentos, ACO com busca local deve ser suficiente

MMAS ACS

Page 50: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Atualização de feromônios com busca local

• Cada formiga produz um circuito s1, que pode ser transformado em s2 pela busca local

Lamarckian

Depositar feromônios em relação ao circuito final s2

Depositar feromônios em relação ao circuito intermediário s1

Darwinian

MMAS ACS

Page 51: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Implementação do algorítimo

• Estruturas principais

Page 52: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Implementação do algorítimo

• Inicialização do algorítimo

• Condições de término• Solução encontrada dentro do limite pré-definido para solução ótima• Número máximo de circuitos ou iterações atingido• Máximo de tempo de CPU• Comportamento de estagnação

Page 53: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Implementação do algorítimo

Limpeza de memória

Formigas em cidades iniciais aleatórias

Formigas retornam a cidade inicial

Processo de construção do circuito

Page 54: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Implementação do algorítimo

Cidades com peso proporcional (roleta)

Escolha da cidade

Page 55: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Implementação do algorítimo

Utiliza lista de candidatas

Renova a lista de candidatas se todas já forma visitadas

Page 56: Cap. 3 – Algorítimos de otimização por colônia de formigas para o problema do caixeiro viajante Aluno: Luiz Évora Disciplina: CPE 730 – Inteligência de

Conclusões• TSP foi o primeiro problema de otimização combinatória a ser

estudado por ACO• AS tinha boa performance para pequenas instâncias, e serviu de

base para extensões

• As extensões de AS alcançam resultados muito melhores que o algorítimo original

• ACO alcança melhor performance com otimização local

• ACO com busca local não necessita de um número grande de formigas, e a heurística perde importância