cap. 3 – algorítimos de otimização por colônia de formigas para o problema do caixeiro...
TRANSCRIPT
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
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
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
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)
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/
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
• 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
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
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
Comportamento de ACO• Quanto mais escuro , maior o valor do feromônio
Simétrico, 14 cidades, 0, 5, 10 e 100 iterações
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
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
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
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:
Comportamento das extensões de AS
AS
ACS
EAS
AS-RANK
MMAS
Comportamento das extensões de AS
AS
EASAS-RANK
ACS
MMAS
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
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
AS x ExtensõesInstância A
AS x ExtensõesInstância B
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
Busca Local
• 2-opt
• 3-opt
• 2,5-opt
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?
Comparação – Busca local
• Qualidade aumenta de 2-opt para 3-opt• Também aumenta o tempo de computação
MMAS
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
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?
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
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
Implementação do algorítimo
• Estruturas principais
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
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
Implementação do algorítimo
Cidades com peso proporcional (roleta)
Escolha da cidade
Implementação do algorítimo
Utiliza lista de candidatas
Renova a lista de candidatas se todas já forma visitadas
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