Otimização por Colônia de Formigas (ACO)
-
Upload
bruno-felipe -
Category
Technology
-
view
4.944 -
download
1
description
Transcript of Otimização por Colônia de Formigas (ACO)
Ant Colony Optimization(Otimização por Colônia de Formigas)
Por: Bruno [email protected]
O que é Otimização por Colônia de Formigas?
É uma meta-heurística baseada em população e inspirada no comportamento de uma colônia de formigas.
Como é o comportamento de uma colônia de formiga?
Como essa técnica é baseada no comportamento das formigas, Marco Doringo observou que as formigas ao saírem de sua colônia para buscarem alimento primeiramente traçam diferentes caminhos. Com o passar do tempo, na busca do alimento elas descobrem caminhos alternativos mais curtos entre sua colônia e o alimento, então nessas rotas é deixado uma substância chamada feromônio, que serve para as formigas se comunicarem através do cheiro. Então as formigas escolhem o melhor caminho, com probabilidade no maior teor de feromônio em uma determinada rota. Com isso é encontrado a melhor rota com o caminho mais curto entre a colônia e o alimento.
Computacionalmente falando...
No meio computacional, existem diversos algoritmos baseados no comportamento das formigas, onde se tem como principal objetivo a otimização e a busca por soluções. As formigas reais são substituídas por “formigas artificiais” e o feromônio por “feromônio artificial”, assim como outras variantes. As formigas artificiais são heurísticas probabilísticas que constroem informações de duas formas: trilha de feromônio e informações heurísticas.
ANT Sytem
ANT System foi o primeiro algoritmo implementado no comportamento das formigas. Tem como características a otimização e busca por soluções. A partir dele, foi desenvolvido soluções de otimização em roteamento de redes, sistema de roteamento de veículos, busca por soluções em grafos dinâmicos e usado no problema do caixeiro viajante.
Pseudo-Código Ant System
Coloque cada formiga em uma cidade aleatória
para t = 1 até número de iteraçõespara k = 1 até m
enquanto a formiga k não construir a viagem Sk
Selecione a próxima cidade pela regra pk
fim enquantoCalcule a distância Lk da viagem Sk
se Lk < L∗ então
S∗ = Sk , L∗ = Lk
fim sefim paraAtualize os feromônios
fim para retornar S∗
O Ant System aplico ao TSP(Travelling Salesman Problem)
1 2 3 4 5
1 0,0 1,0 2,2 2,0 4,1
2 1,0 0,0 1,4 2,2 4,0
3 2,2 1,4 0,0 2,2 3,2
4 2,0 2,2 2,2 0,0 2,2
5 4,1 4,0 3,2 2,2 0,0
Matriz distância do PCV
1
23
45
Cidades do PCV
Cada formiga irá construir uma solução movendo-se de uma cidade para outra.No ínicio, cada formiga é colocada em uma cidade diferente (ou colocada aleatoriamente).
1
23
45
Como a formiga constrói uma solução?
Começando de uma cidade i , a formiga move-se escolhendo probabilisticamente a cidade vizinha j (entre os vizinhos factíveis).
2
34
5
?
A Probabilidade de Transição
A probabilidade da formiga k que está na cidade i de escolher a cidade j é dada pela regra:
• τij é feromônio associado a aresta (i , j );
• α e β são parâmetros para determinar a influência do feromônio e da informação heurística;
• Ni é a vizinhança factível da formiga k (i.e., o conjunto das cidades ainda não
visitadas pela formiga k ).
Informações Heurísticas do PVC
Associada a aresta (i , j ) existe um valor heurístico ηij dado por:
que representa a atratividade da formiga visitar a cidade i depois de visitar a cidade j.
O valor ηij é inversamente proporcional a distância dij entre as cidades i e j.
Começo da primeira iteração: passo 1
formigaCandidatos / prob.de transição
soluçãoparcial
1 2(45%), 3(21%), 4(23%), 5(11%) 1-22 1(41%), 3(30%), 4(19%), 5(10%) 2-13 1(23%), 2(37%), 4(23%), 5(16%) 3-44 1(27%), 2(24%), 3(24%), 5(24%) 4-55 1(19%), 2(20%), 3(25%), 4(36%) 5-2
A escolha do candidato é de acordo com a probabilidadede transição. É feita de forma similar ao algoritmo da roleta dos algoritmos genéticos.
Passo 2
formigaCandidatos / prob.de transição
soluçãoparcial
1 3(50%), 4(32%), 5(18%) 1-2-32 3(38%), 4(42%), 5(20%) 2-1-43 1(35%), 2(32%), 5(32%) 3-4-54 1(30%), 2(31%), 3(39%) 4-5-25 1(46%), 3(33%), 4(21%) 5-2-1
Passo 3
formigaCandidatos / prob.de transição
soluçãoparcial
1 4(59%), 5(41%) 1-2-3-52 3(50%), 5(50%) 2-1-4-53 1(49%), 2(51%) 3-4-5-14 1(58%), 3(42%) 4-5-2-15 3(48%), 4(52%) 5-2-1-4
Passo 4
formigaCandidatos / prob.de transição
soluçãoparcial
1 4(100%) 1-2-3-5-42 3(100%) 2-1-4-5-33 2(100%) 3-4-5-1-24 3(100%) 4-5-2-1-35 3(100%) 5-2-1-4-3
Final da primeira iteração
formiga(k)
soluçãocompleta
comprimentoda viagem (Lk )
1 1-2-3-5-4-1 9,82 2-1-4-5-3-2 9,83 3-4-5-1-2-3 10,94 4-5-2-1-3-4 11,65 5-2-1-4-3-5 12,4
Atualização do feromônio
É necessário atualizar os feromônios.
No feromônio τij associado a aresta (i , j ) ocorre dois eventos: A evaporação;
• Evita que o feromônio acumulado cresça indefinidamente;• Permite esquecer pobres decisões do passado da busca.
O depósito de feromônio de todas as formigas que passaram sobre (i , j).
Atualização do feromônio
Depois que todas as formigas construíram suas viagens,o feromônio é atualizado.
é a quantidade de feromônio que a formiga kdeposita sobre a aresta (i , j ). É dado por:
se a aresta (i , j ) pertence a viagem Sk .Caso contrário.
onde Q é uma constante.
Atualização do feromônio
O feromônio τij associado a aresta (i , j ) é atualizado pelo fórmula:
onde 0 < ρ ≤ 1 é a taxa de evaporação de feromônio.
Atualização do feromônio (atualizando a aresta 3, 5)
Apenas as formigas 1, 2 e 5 depositam feromônio nesta aresta. SuponhaQ = 1, 0. A contribuição de cada formiga:
Suponha ρ = 0, 5.
Quando parar com a iteração?
• Estagnação é a situação na qual todas as formigas seguem sempre o mesmo percurso.
• A Estagnação é causado pelo excessivo crescimento de feromônio nas arestas de uma viagem subótima.
Estagnação
Apesar da natureza estocástica do algoritmo, a forte concentração de feromônio nas arestas força a formiga a fazer sempre o mesmo percurso.
Distribuição de feromônio no inicio da busca.
Distribuição de feromônioapós 100 iterações.