Capítulo 4 Ant Colony Optimization
4.4. A Meta-Heurística Ant Colony Optimization (ACO)
A meta-heurística ACO, baseada no comportamento de formigas reais, é proposta para problemas combinatórios considerados NP-difíceis (DORIGO; STÜTZLE, 2003), isto é, a categoria de problemas em que o tempo de solução ótima cresce de maneira não polinomial com o número de variáveis. A ideia por trás da ACO é que boas soluções sejam encontradas através das interações entre os agentes, por meio da comunicação estigmérgica, resolvendo problemas de otimização combinatórios de característica estática ou dinâmica (DORIGO; STÜTZLE, 2004).
Para que os problemas possam ser resolvidos pela meta-heurística ACO, entretanto, é preciso que eles possam ser representados de uma maneira específica (DORIGO; STÜTZLE, 2004).
4.4.1. Representação de Problemas para ACO
As formigas artificiais do ACO são procedimentos construtivos estocásticos, que compõem uma solução elemento a elemento, isto é, adicionam elementos selecionados a uma solução parcial em construção. Esta característica permite que a meta-heurística ACO seja aplicada a qualquer problema de otimização combinatória para o qual possa ser definida uma heurística construtiva. O ponto crucial, entretanto, é a representação do problema em um formato que possa ser usado pelas formigas para a construção de soluções (DORIGO; STÜTZLE, 2004).
Considerando-se um problema (S, f, Ω), em que S é o conjunto de soluções, f é a função objetivo que associa um custo f(s,t) para cada s ∈ S, e Ω(t) é um conjunto de restrições, o objetivo é encontrar a solução possível s* globalmente ótima, ou seja, a solução de menor custo para um problema
de minimização de custos. A representação deste problema deve atender às seguintes características (DORIGO; STÜTZLE, 2004):
a) Um conjunto finito C = { c1, c2, ..., cNc } de componentes é dado,
sendo Nc o número de componentes.
b) Os estados são definidos por sequências x = <ci, cj, ..., ch, ...> de
comprimentos finitos sobre os elementos de C, sendo todos os estados denotados por χ.
c) O conjunto de soluções candidatas S é um subconjunto de χ. d) Um conjunto de estados χ', com χ' ⊆ χ, definido por testes que dependem do problema, que verifique que não é impossível completar a sequência x ∈ χ em uma solução que satisfaça Ω.
e) Um conjunto não vazio de soluções ótimas S*, com S* ⊆ χ' e S* ⊆
S.
f) Um custo g(s,t) associado a cada solução s ∈ S, sendo que na maioria dos casos g(s,t) ≡ f(s,t), ∀s ∈ S', onde S' ⊆ S é o conjunto de soluções possíveis, ou seja, limitadas por Ω.
g) Em alguns casos, um custo ou sua estimativa J(x,t) podem ser associadas com estados que não são soluções candidatas. Neste caso, se xj pode ser obtido somando elementos em um estado xi, então J(xi,t) ≤ J(xj,t),
com J(s,t) ≡ g(s,t).
Com base nesta formulação, as formigas artificiais construirão soluções através de caminhos aleatórios no grafo completamente conectado Gc = (C,L), nos quais os nós são os componentes C e os arcos L, chamados conexões, conectam todos os elementos C. O grafo Gc é chamado de Grafo de Construção. As restrições Ω(t) podem ser implementadas nas regras seguidas pelas formigas artificiais, sendo que isso permite um grau de flexibilidade, obrigando a construção de soluções viáveis ou permitindo também soluções inviáveis (DORIGO; STÜTZLE, 2004).
4.4.2. Comportamento das Formigas
As formigas artificiais apresentam um comportamento estocástico governado pelas restrições Ω(t). Os nós e/ou arcos podem ser associados a uma trilha de feromônios τ e a um valor heurístico η, o primeiro representando uma memória de longo prazo e o segundo representando informações que, em geral, podem ser calculadas a priori, como o custo de um elemento entrar na solução. Cada formiga k deve atender aos seguintes requisitos (DORIGO; STÜTZLE, 2004):
a) Explora o grafo de construção Gc para encontrar a solução ótima. b) Possui uma memória Mk para guardar o caminho percorrido, de
maneira que possa computar valores heurísticos η, verificar adequação às restrições Ω(t), avaliar a solução, depositar feromônios etc.
c) Possui um estado inicial, como um nó de origem e memória vazia, e uma condição de término.
d) Quando ainda não se encontra na situação de término, move-se de xi para xj em sua vizinhança.
e) Seleciona caminhos por decisões probabilísticas, associadas aos valores heurísticos (memória, qualidade intrínseca dos caminhos, restrições etc.)
f) Cada componente adicionado à Mk da formiga pode ser usado para
depósito de feromônio assim que a condição de término for atingida.
Cada formiga deve agir concorrentemente e independentemente das outras e a interação entre elas é que levará a boas soluções (DORIGO, 2004).
4.4.3. A Meta-Heurística
Basicamente, a meta-heurística ACO pode ser definida como três processos básicos: ConstruirSoluçõesDasFormigas, AtualizarFeromônios e AçõesAuxiliares, conforme representado no pseudocódigo da Figura 4.3 (DORIGO; STÜTZLE, 2004).
A construção das soluções das formigas, como já descrito, é feita com base em decisões probabilísticas associadas a informações heurísticas (BONASSER, 2005; DORIGO; STÜTZLE, 2004). Uma vez construída uma solução completa, a avaliação da solução é realizada (DORIGO; STÜTZLE, 2004).
procedimento MetaHeurísticaACO AtividadesProgramadas ConstruirSoluçõesDasFormigas AtualizarFeromônios AçõesAuxiliares % opcional fim-AtividadesProgramadas fim-procedimento
Figura 4.3 - Esqueleto da Meta-Heurística ACO (Adaptado de: DORIGO; STÜTZLE, 2004)
A atualização dos feromônios é feita pelo caminho trilhado pela formiga. Em problemas de minimização, a quantidade de feromônio depositada deve ser tão menor quanto mais custosa for a solução encontrada. É possível também promover uma evaporação dos feromônios, evitando uma convergência muito rápida (DORIGO; STÜTZLE, 2004).
As ações auxiliares, por sua vez, são aquelas que não podem ser realizadas por formigas individualmente. Um exemplo deste tipo de ação seria depósito extra de feromônios em soluções especialmente boas (DORIGO; STÜTZLE, 2004).
Ressalta-se, entretanto, que não há uma sequência rígida para a execução desses processos ou na definição de como as interações ocorrem entre eles, ficando livre ao projetista da heurística para adequá-la às necessidades de seu problema (DORIGO; STÜTZLE, 2004).
4.4.4. Critérios Heurísticos e o Papel das Melhorias Locais
Em problemas combinatórios com muitas restrições, quando as soluções são representadas por longas sequências, é comum que soluções geradas pelas formigas de maneira aleatória - em especial as soluções iniciais -, sejam de qualidade muito ruim (DORIGO; STÜTZLE, 2004). Assim, os critérios heurísticos têm um papel bastante relevante no bom resultado da meta-heurística ACO, por permitirem uma adequada
exploração das características do problema específico (DORIGO; STÜTZLE, 2003).
O uso de melhorias locais pode, também, aprimorar muito o resultado da meta-heurística, no sentido em que é um procedimento complementar àquele realizado pelas formigas na construção da solução. As melhorias locais, em geral, são eficientes em melhorar uma dada solução; por outro lado, a qualidade do resultado de uma busca local pode ficar limitada pela qualidade da solução inicial. Quando alimentadas com soluções iniciais ruins, as melhorias locais tendem a encontrar apenas ótimos locais. Em conjunto com melhorias locais, o papel da meta-heurística ACO passa a ser, então, o de encontrar boas - e variadas - soluções iniciais para que a busca local seja aplicada (DORIGO; STÜTZLE, 2003).
Neste caso, a busca local passa a ser uma das "Ações Auxiliares" da meta-heurística e, em certo grau, reduzem a importância da informação heurística na construção das soluções, uma vez que as melhorias locais podem considerar tais informações de uma maneira muito mais direta. Essa conclusão é bastante útil, em especial nos problemas em que é difícil definir uma boa informação heurística a priori (DORIGO; STÜTZLE, 2003).
A busca local pode ser aplicada a todas as soluções ou apenas às melhores. Adicionalmente, podem-se depositar feromônios em todos os componentes da solução original ou apenas nos componentes presentes na solução já otimizada pela busca local. A maior parte dos trabalhos usa apenas a segunda abordagem, depositando feromônios nas soluções já otimizadas pela busca local, dado que alguns estudos parecem indicar que outras estratégias levam a resultados de qualidade inferior (DORIGO; STÜTZLE, 2003).
4.4.5. Aplicação a Problemas Dinâmicos
Muitos problemas, para os quais se buscam soluções, são classificados como estáticos, isto é, todos os coeficientes e parâmetros podem ser obtidos a priori e não mudam durante a solução. Outros problemas, entretanto, são denominados dinâmicos, pois seus coeficientes e parâmetros variam com o tempo ou com o desenvolvimento da própria solução. Uma das situações em que isso ocorre é o roteamento de pacotes de dados em redes de telecomunicação - em que pode haver variações tanto da capacidade de tráfego quanto da topologia da rede, em tempo real. Para este caso específico, foram propostas adaptações da ACO (DORIGO; STÜTZLE, 2004).
Devido à sua característica construtiva, a meta-heurística ACO se adapta bem a este tipo de problema, com características dinâmicas; por outro lado, a convergência é mais complexa, sendo comum a formação de caminhos circulares e grandes flutuações nos resultados (BERTSEKAS; GALLAGER, 19929 apud DORIGO; STÜTZLE, 2004).
De toda forma, no caso específico do AntNet, ele foi comparado com diversos procedimentos no estado da arte e teve resultados favoráveis com relação aos concorrentes nos casos de benchmarking, sendo bastante robusto com relação a variações de tráfego e configuração de parâmetros (DI CARO; DORIGO, 199810 apud DORIGO; STÜTZLE, 2004).