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.