otimização por colônia de formigas (aco)

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

Upload: bruno-felipe

Post on 18-Dec-2014

4.945 views

Category:

Technology


1 download

DESCRIPTION

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

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.