• Nenhum resultado encontrado

2.4 Intelig ˆencia de Enxames

2.4.2 Algoritmo ACO (Ant Colony Optimization)

Ant Colony Optimization - ACO ´e um termo de uso geral utilizado para determinar uma classe de procedimentos metaheur´ısticos fundamentados no comportamento de

4Uma metaheur´ıstica pode ser formalmente definida como um processo de gerac¸ ˜ao iterativa que

orienta uma heur´ıstica subordinada a regi ˜oes promissoras do espac¸o de busca na obtenc¸ ˜ao de soluc¸ ˜oes de alta qualidade. Trata-se de um conjunto de m ´etodos aproximados projetados para a soluc¸ ˜ao de problemas complexos de otimizac¸ ˜ao onde m ´etodos heur´ısticos cl ´assicos n ˜ao atingem bons resultados (OSMAN; LAPORTE, 1996).

formigas (SERAPI ˜AO, 2009).

Em um algoritmo ACO os agentes se comunicam indiretamente atrav ´es da estig- mergia, cooperando na tentativa de encontrar soluc¸ ˜oes para problemas de otimizac¸ ˜ao discreta dif´ıceis. Esta comunicac¸ ˜ao indireta, mediada pelo ambiente, pode levar a boas soluc¸ ˜oes, que s ˜ao uma propriedade emergente da interac¸ ˜ao entre os agentes. Os agentes agem simultaneamente e individualmente e, apesar de cada um possuir a capacidade necess ´aria para encontrar a soluc¸ ˜ao do problema em quest ˜ao, boas soluc¸ ˜oes s ˜ao obtidas apenas atrav ´es da interac¸ ˜ao coletiva entre eles.

De maneira informal um algoritmo ACO pode ser representado atrav ´es da interac¸ ˜ao de tr ˆes procedimentos b ´asicos (DORIGO et al., 2008):

• Construir soluc¸ ˜oes com formigas: consiste na utilizac¸ ˜ao de um m ´etodo constru- tivo e aleatorizado para obtenc¸ ˜ao da populac¸ ˜ao inicial (poss´ıveis soluc¸ ˜oes ini- ciais) utilizando a informac¸ ˜ao heur´ıstica e a quantidade de ferom ˆonio de forma combinada;

• Aplicar busca local: m ´etodo opcional utilizado para melhorar a soluc¸ ˜ao atrav ´es da aplicac¸ ˜ao de busca local com base em soluc¸ ˜oes obtidas por um ou mais agentes;

• Atualizar ferom ˆonio: procedimento utilizado para atualizar o ferom ˆonio, levando em considerac¸ ˜ao o ´ındice de evaporac¸ ˜ao.

Algorithm 1 Pseudoc ´odigo ACO

1: procedure ACO 2: while criterioDeParadaNaoSatisfeito do 3: ProgramarAtividades 4: ConstruirSoluc¸ ˜oes() 5: AtualizarFerom ˆonio() 6: AplicarBuscaLocal() .opcional 7: EndProgramarAtividades 8: end while 9: end procedure

A metaheur´ıstica ACO tem como princ´ıpio b ´asico coordenar o escalonamento dos tr ˆes procedimentos anteriormente descritos. A execuc¸ ˜ao destes procedimentos n ˜ao possui uma regra espec´ıfica, podendo ser executados de forma sincronizada, para- lelamente ou independentemente, de acordo com as caracter´ısticas do problema em quest ˜ao (DORIGO et al., 2008).

Em otimizac¸ ˜ao por col ˆonia de formigas, o problema ´e representado atrav ´es da simulac¸ ˜ao de um n ´umero de formigas artificiais que se deslocam em um grafo. As

formigas percorrem o grafo construindo a soluc¸ ˜ao, passando pelos v ´ertices e pelas arestas, depositando ferom ˆonio nas arestas (Figura 4).

Figura 4: ACO - Exemplo de construc¸ ˜ao de uma soluc¸ ˜ao por uma formiga Fonte: Elaborada pelo autor

Cada aresta (i, j) do grafo possui uma vari ´avel τij que representa uma trilha de

ferom ˆonio artificial. Essa vari ´avel pode ser modificada pelas formigas, sendo incre- mentada de acordo com o percurso realizado por elas. Assim, quanto maior o n´ıvel de ferom ˆonio, maior a chance da aresta ser visitada por outras formigas.

Conforme o exemplo apresentado pela figura 4, dado um grafo G = (i, j), o ca- minho mais curto entre um determinado par de v ´ertices pode ser encontrado. Nesse exemplo, a formiga percorre o grafo partindo inicialmente do v ´ertice 2 e chegando at ´e o v ´ertice 7, obtendo como uma das poss´ıveis soluc¸ ˜oes o caminho 2-3-6-7.

Em cada passo da construc¸ ˜ao da soluc¸ ˜ao, a formiga seleciona o pr ´oximo v ´ertice a ser visitado de acordo com um mecanismo estoc ´astico que ´e influenciado pelo fe- rom ˆonio: quando no v ´ertice i, o seguinte v ´ertice ´e selecionado estocasticamente entre os anteriormente visitados (Figura: 5).

Figura 5: ACO - Selec¸ ˜ao do pr ´oximo caminho - processo estoc ´astico Fonte: DORIGO; BIRATTARI; STUTZLE (2006)

Se j ainda n ˜ao foi visitado, ele pode ser selecionado, com uma probabilidade que ´e proporcional ao ´ındice de ferom ˆonio associado `a aresta (i, j).

Atrav ´es de uma f ´ormula probabil´ıstica, cada formiga k constr ´oi uma soluc¸ ˜ao movendo-se por uma sequ ˆencia de locais vizinhos. Ao final de cada iterac¸ ˜ao o fe-

rom ˆonio ´e atualizado tomando-se por base a qualidade das soluc¸ ˜oes produzidas pelas formigas.

A equac¸ ˜ao ´e dada por:

pkij = [τij] α . [ηij]β P l∈Jk i [τij] α . [ηij] β (9) onde: pk

ij: ´e a probabilidade da formiga k, que se encontra no v ´ertice i, escolher o v ´ertice

j como o pr ´oximo a ser visitado;

τij: quantidade de ferom ˆonio existente na aresta (i, j). Inicialmente, adota-se um

mesmo valor τ0 para todos as arestas do grafo;

ηij: heur´ıstica que representa a atratividade da aresta (i, j);

l ∈ Jk

i: conjunto de v ´ertices ainda n ˜ao visitados pela formiga k, que se encontra

no v ´ertice i;

α: par ˆametro utilizado para determinar a import ˆancia da trilha de ferom ˆonio τij;

β: par ˆametro que pondera a influ ˆencia relativa da vari ´avel ηij para os v ´ertices i e

j no processo de decis ˜ao;

Para que n ˜ao haja uma intensificac¸ ˜ao demasiadamente elevada do n´ıvel de fe- rom ˆonio, a cada iterac¸ ˜ao da fase de construc¸ ˜ao as formigas atualizam o ferom ˆonio da aresta pela qual acabaram de atravessar, de acordo com a express ˜ao:

τij = (1 − ρ).τij + ρ.τ0 (10)

O par ˆametro ρ ´e utilizado para que os caminhos menos frequentados sejam es- quecidos com o passar do tempo. ρ ´e um par ˆametro definido entre 0 e 1 e τ0 ´e o valor

inicial do ferom ˆonio das arestas.

Hoje em dia muitas implementac¸ ˜oes bem sucedidas da metaheur´ıstica ACO est ˜ao dispon´ıveis e t ˆem sido aplicadas `a diferentes problemas de otimizac¸ ˜ao combinat ´oria. Para maiores informac¸ ˜oes, em DORIGO et al. (2008) estas aplicac¸ ˜oes est ˜ao resumi- das em um quadro e s ˜ao discutidas ao longo do livro.