Top Banner
Ant Colony Optimization (Otimização por Colônia de Formigas) Por: Bruno Felipe [email protected]
22

Otimização por Colônia de Formigas (ACO)

Dec 18, 2014

Download

Technology

Bruno Felipe

Uma descrição de como surgiu e funciona a técnica de otimizaçõa por colônia de formigas. Com um exemplo aplicado ao problema clássico de otimização Caixeiro Viajante
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Otimização por Colônia de Formigas (ACO)

Ant Colony Optimization(Otimização por Colônia de Formigas)

Por: Bruno [email protected]

Page 2: Otimização por Colônia de Formigas (ACO)

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.

Page 3: Otimização por Colônia de Formigas (ACO)

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.

Page 4: Otimização por Colônia de Formigas (ACO)

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.

Page 5: Otimização por Colônia de Formigas (ACO)

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.

Page 6: Otimização por Colônia de Formigas (ACO)

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∗

Page 7: Otimização por Colônia de Formigas (ACO)

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

Page 8: Otimização por Colônia de Formigas (ACO)

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

Page 9: Otimização por Colônia de Formigas (ACO)

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

?

Page 10: Otimização por Colônia de Formigas (ACO)

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 ).

Page 11: Otimização por Colônia de Formigas (ACO)

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.

Page 12: Otimização por Colônia de Formigas (ACO)

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.

Page 13: Otimização por Colônia de Formigas (ACO)

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

Page 14: Otimização por Colônia de Formigas (ACO)

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

Page 15: Otimização por Colônia de Formigas (ACO)

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

Page 16: Otimização por Colônia de Formigas (ACO)

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

Page 17: Otimização por Colônia de Formigas (ACO)

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).

Page 18: Otimização por Colônia de Formigas (ACO)

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.

Page 19: Otimização por Colônia de Formigas (ACO)

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.

Page 20: Otimização por Colônia de Formigas (ACO)

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.

Page 21: Otimização por Colônia de Formigas (ACO)

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.

Page 22: Otimização por Colônia de Formigas (ACO)

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.