cap. 3 – algorítimos de otimização por colônia de formigas para o problema do caixeiro...

Post on 07-Apr-2016

221 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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

top related