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
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 N = conjunto de nós representando as cidades A = conjunto de arcos G = (N, A) TSP assimétrico: dij ≠ dji TSP 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 Escolher, de acordo com algum critério, uma cidade inicial para posicionar a formiga Usar valores de feromônio e heurística para construir probabilisticamente o circuito Iterativamente adicionando cidades que a formiga ainda não visitou 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 Formigas são colocadas em cidades aleatórias 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 Diminuir o valor de feromônio em todos os arcos por um valor constante 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 Explora a experiência de busca mais agressivamente Evaporação e depósito de feromônio apenas nos arcos do circuito best-so-far 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)
Atualização de feromônios 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 se o arco (i, j) partence a Tk caso contrário é 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 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
Simétrico, 14 cidades, 0, 5, 10 e 100 iterações 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 AS Good: 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 Good: Bad: 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
Comportamento das extensões de AS MMAS AS-RANK EAS ACS
Comportamento das extensões de AS MMAS AS AS-RANK EAS ACS
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ões Instância A
AS x Extensões Instâ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 MMAS Qualidade aumenta de 2-opt para 3-opt Também aumenta o tempo de computação
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 MMAS ACS 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
Atualização de feromônios com busca local Cada formiga produz um circuito s1, que pode ser transformado em s2 pela busca local Lamarckian Darwinian Depositar feromônios em relação ao circuito final s2 Depositar feromônios em relação ao circuito intermediário s1 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 Processo de construção do circuito Formigas retornam a cidade inicial
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