O documento descreve a técnica de otimização por colônia de formigas, que é inspirada no comportamento das formigas ao procurar alimento. As formigas traçam caminhos entre a colônia e a comida e escolhem o caminho mais curto com base na concentração de feromônio. Computacionalmente, algoritmos como o ANT System imitam esse comportamento usando "formigas artificiais" para encontrar soluções ótimas.
1. Ant Colony Optimization
(Otimização por Colônia de Formigas)
Por: Bruno Felipe
brunofelipefr@gmail.com
2. 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.
3. 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.
4. 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.
5. 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.
6. Pseudo-Código Ant System
Coloque cada formiga em uma cidade aleatória
para t = 1 até número de iterações
para k = 1 até m
enquanto a formiga k não construir a viagem Sk
k
Selecione a próxima cidade pela regra p
fim enquanto
Calcule a distância Lk da viagem Sk
∗
se Lk < L então
∗ ∗
S = S k , L = Lk
fim se
fim para
Atualize os feromônios
∗
fim para retornar S
7. O Ant System aplico ao TSP(Travelling Salesman Problem)
Matriz distância do PCV
1 2 3 4 5
1 0,0 1,0 2,2 2,0 4,1
2
2 1,0 0,0 1,4 2,2 4,0 3
3 2,2 1,4 0,0 2,2 3,2
4 2,0 2,2 2,2 0,0 2,2
1
5 4,1 4,0 3,2 2,2 0,0
Cidades do PCV
4
5
8. 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).
2
3
1
4
5
9. 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
?
4 3
5
10. 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 ).
11. 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.
12. Começo da primeira iteração: passo 1
Candidatos / prob. solução
formiga de transição parcial
1 2(45%), 3(21%), 4(23%), 5(11%) 1-2
2 1(41%), 3(30%), 4(19%), 5(10%) 2-1
3 1(23%), 2(37%), 4(23%), 5(16%) 3-4
4 1(27%), 2(24%), 3(24%), 5(24%) 4-5
5 1(19%), 2(20%), 3(25%), 4(36%) 5-2
A escolha do candidato é de acordo com a probabilidade
de transição. É feita de forma similar ao algoritmo da roleta dos
algoritmos genéticos.
16. Final da primeira iteração
formiga solução comprimento
(k) completa da viagem (Lk )
1 1-2-3-5-4-1 9,8
2 2-1-4-5-3-2 9,8
3 3-4-5-1-2-3 10,9
4 4-5-2-1-3-4 11,6
5 5-2-1-4-3-5 12,4
17. 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).
18. 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 k
deposita sobre a aresta (i , j ). É dado por:
se a aresta (i , j ) pertence a viagem Sk .
Caso contrário.
onde Q é uma constante.
19. 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.
20. Atualização do feromônio
(atualizando a aresta 3, 5)
Apenas as formigas 1, 2 e 5 depositam
feromônio nesta aresta. Suponha
Q = 1, 0. A contribuição de cada formiga:
Suponha ρ = 0, 5.
21. 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.
22. 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 Distribuição de feromônio
no inicio da busca. após 100 iterações.