Otimização da Colônia de Formigas

9
Otimização da Colônia de Formigas: Um novo Meta-heurística Título original: Ant Colony Optimization: A New Meta-Heuristic Traduzido por Bruno Barretto Anunciação [email protected] Marco Dorigo IRIDLA Université Libre de Bruxelles [email protected] Gianni Di Caro IRIDIA Université Libre de Bruxelles [email protected] Resumo: Recentemente, um número de algoritmos inspirados no comportamento de forragear da colônia de formigas tem sido aplicado para a solução de difíceis problemas de otimização discreta. Neste trabalho, colocamos esses algoritmos em uma estrutura comum por otimização da Colônia de Formigas (OCF) meta-heurística. Alguns exemplos paradigmais das aplicações dessas novas meta- heurísticas são dados, bem como um resumo das aplicações existentes. 1. Introdução No início dos anos noventa, um algoritmo chamado Sistema de Formigas foi proposto como uma nova introdução heurística para a solução de problemas de otimização combinatória. (Dorigo et al., 1991; Dorigo, 1992; Dorigoet al., 1996). Sistema de formigas (SF), que foi primeiro aplicado aos problemas mais seguros de viagem, foi recentemente estendido e/ou modificado ambos para aperfeiçoar seu desempenho e para aplicá-lo em outros problemas de otimização. Versões mais avançaads do SF incluem, entre outros, ACS (Dorigo & Gambardella, 1997), MAX-MIN Sistema de Formigas (Stiizle & Hoods, 1998b), e SF rank (Bullnheimer et al., 1997b). Todos esses algoritmos têm sido aplicados em TSP com diferentes níveis de sucesso, mas sempre aperfeiçoando ainda mais o desempenho do SF. Tanto essas versões, como a original SF, têm sido aplicadas a diversos conjuntos de problemas de otimização. São exemplos: Alocação quadrática (Maniezzo et al., 1994; Stützel & Hoods, 1998a), rota de veículos (Bullnheirmer et al., 1997ª; Gambardella et al., 1999), conexões orientadas e conexões de roteamento em rede (Schoonderwoerd et al., 1996; Di Caro & Dorigo, 1998; Di Caro & Dorigo, 1998), Ordenação Sequencial (Gambardella & Dorigo, 1997), grafo (Costa & Hertz, 1997), menor sequência comum (Michael & Middendorf, 1998), máquina individual de atraso (Bauer et al., 1999), mochila múltipla (leguizamón & Michalewicz, 1999) etc. Por muitos desses problemas, os resultados obtidos colocam o sistema de formigas entre abordagens baseadas nos melhores heurísticos disponíveis. Nesse trabalho, nós apresentamos o sistema de Otimização de Colônia de Formigas (OCF) meta-heurística, isto é, o resultado de um esforço para definir uma estrutura comum para todas as versões do SF. As principais motivações para definir a OCF meta-heurística são o desejo de fornecer uma única visão da pesquisa em crescimento, bem como a esperança de que tal caracterização irá ajudar a identificar os mais importantes aspectos desses algoritmos e portanto desenvolver novas aplicações mais fáceis. 2. A OCF meta-heurística A OCF meta-heurística pode ser aplicada em problemas de otimização discreta caracterizado como mostra a seguir: C = {c 1 , c 2 , ..., c Nc } é um conjunto finito de componentes. L = {l cicj | (c i , c j ) Є Č-, |L| ≤ N² C é um conjunto de conexões/transições possível finito entre os elementos de Č, em que Č é um subconjunto do produto cartesiano C x C. J cicj Ξ J (l cicj ,t) é uma conexão de fundo de custo associada a cada l cicj Є L, possivelmente parametrizada por alguma medida de tempo t. Ω Ξ Ω(C, L, t) é um conjunto finito de restrições atribuídas ao longo dos elementos de C e L. s = (c i , c j , ..., c k , ...) é uma sequência dos elementos de C (ou, equivalentemente, de L). Uma sequência s é, também, chamada

description

Otimização da Colônia de Formigas: Um novo Meta-heurísticaTítulo original: Ant Colony Optimization: A New Meta-Heuristic Traduzido por Bruno Barretto Anunciação [email protected] Dorigo IRIDLA Université Libre de Bruxelles [email protected] Di Caro IRIDIA Université Libre de Bruxelles [email protected]: Recentemente, um número de algoritmos inspirados no comportamento de forragear da colônia de formigas tem sido aplicado para a solução de difíceis problem

Transcript of Otimização da Colônia de Formigas

Page 1: Otimização da Colônia de Formigas

Otimização da Colônia de Formigas: Um novo Meta-heurística

Título original: Ant Colony Optimization: A New Meta-Heuristic

Traduzido por Bruno Barretto Anunciação [email protected]

Marco Dorigo

IRIDLA Université Libre de Bruxelles

[email protected]

Gianni Di Caro IRIDIA

Université Libre de Bruxelles [email protected]

Resumo: Recentemente, um número de algoritmos inspirados no comportamento de forragear da colônia de formigas tem sido aplicado para a solução de difíceis problemas de otimização discreta. Neste trabalho, colocamos esses algoritmos em uma estrutura comum por otimização da Colônia de Formigas (OCF) meta-heurística. Alguns exemplos paradigmais das aplicações dessas novas meta-heurísticas são dados, bem como um resumo das aplicações existentes. 1. Introdução

No início dos anos noventa, um algoritmo chamado Sistema de Formigas foi proposto como uma nova introdução heurística para a solução de problemas de otimização combinatória. (Dorigo et al., 1991; Dorigo, 1992; Dorigoet al., 1996). Sistema de formigas (SF), que foi primeiro aplicado aos problemas mais seguros de viagem, foi recentemente estendido e/ou modificado ambos para aperfeiçoar seu desempenho e para aplicá-lo em outros problemas de otimização. Versões mais avançaads do SF incluem, entre outros, ACS (Dorigo & Gambardella, 1997), MAX-MIN Sistema de Formigas (Stiizle & Hoods, 1998b), e SFrank (Bullnheimer et al., 1997b). Todos esses algoritmos têm sido aplicados em TSP com diferentes níveis de sucesso, mas sempre aperfeiçoando ainda mais o desempenho do SF. Tanto essas versões, como a original SF, têm sido aplicadas a diversos conjuntos de problemas de otimização. São exemplos: Alocação quadrática (Maniezzo et al., 1994; Stützel & Hoods, 1998a), rota de veículos (Bullnheirmer et al., 1997ª; Gambardella et al., 1999), conexões orientadas e conexões de roteamento em rede (Schoonderwoerd et al., 1996; Di Caro & Dorigo, 1998; Di Caro & Dorigo, 1998), Ordenação Sequencial (Gambardella & Dorigo, 1997), grafo (Costa & Hertz, 1997),

menor sequência comum (Michael & Middendorf, 1998), máquina individual de atraso (Bauer et al., 1999), mochila múltipla (leguizamón & Michalewicz, 1999) etc. Por muitos desses problemas, os resultados obtidos colocam o sistema de formigas entre abordagens baseadas nos melhores heurísticos disponíveis.

Nesse trabalho, nós apresentamos o sistema de Otimização de Colônia de Formigas (OCF) meta-heurística, isto é, o resultado de um esforço para definir uma estrutura comum para todas as versões do SF. As principais motivações para definir a OCF meta-heurística são o desejo de fornecer uma única visão da pesquisa em crescimento, bem como a esperança de que tal caracterização irá ajudar a identificar os mais importantes aspectos desses algoritmos e portanto desenvolver novas aplicações mais fáceis.

2. A OCF meta-heurística

A OCF meta-heurística pode ser aplicada em problemas de otimização discreta caracterizado como mostra a seguir:

C = {c1, c2, ..., cNc} é um conjunto finito de componentes.

L = {lcicj | (ci, cj) Є Č-, |L| ≤ N²C é um

conjunto de conexões/transições possível finito entre os elementos de Č, em que Č é um subconjunto do produto cartesiano C x C.

Jcicj Ξ J (lcicj,t) é uma conexão de fundo

de custo associada a cada lcicj Є L,

possivelmente parametrizada por alguma medida de tempo t.

Ω Ξ Ω(C, L, t) é um conjunto finito de restrições atribuídas ao longo dos elementos de C e L.

s = (ci, cj, ..., ck, ...) é uma sequência dos elementos de C (ou, equivalentemente, de L). Uma sequência s é, também, chamada

Page 2: Otimização da Colônia de Formigas

de estado do problema. Se S é um conjunto de todas as possíveis sequências, o conjunto Ŝ de todas as (sub)sequências que são viáveis com respeito às restrições Ω(C, L, t), é um subconjunto de S. Os elementos em Ŝ definem o estado viável do problema. O comprimento de uma sequência s, isto é, o número de componentes da sequência, é expresso por |s|.

Dois estados dados s1 e s2, em estruturas vizinhas, definidas a seguir: o estado s2 é o vizinho de s1 se ambos, s1 e s2, estão em S, e o estado s2 pode ser alcançado de s1 em um passo lógico (que é, se c1 é o último componente em uma sequência a determinar o estado s1, deve existir c2 Є C

bem como lc1c2 Є L e s2 Ξ (s1, c2)). A

vizinhança de um estado s é denotada por Ns.

Ψ é uma solução se for um elemento de Ŝ e satisfizer todos os requisitos do problema. Uma solução multidimensional é uma solução definida em termos de múltiplas sequências distintas dos elementos de C.

JΨ (L, t) é um custo associado a cada solução Ψ.

JΨ (L, t) é uma função de todos os custos Jcicj de todas as conexões que pertencem à solução Ψ.

Considere um gráfico G = (C, L) associado a um dado problema de otimização discreta exemplificado como definido acima. As soluções para o problema de otimização podem ser expressas em termos de execução viável no grafo G. Os algoritmos da OCF podem ser usados para encontrar caminhos de custo mínimo (sequências) viáveis relacionadas com as restrições Ω. Por exemplo, no problema do vendedor viajante, C é um conjunto de cidades, L é um conjunto de arcos de ligação de cidades e a solução Ψ é um circuito Hamiltoniano. Algoritmos OCF, isto é, instâncias de a OCF meta-heurísticas introduzida a seguir nesta seção, usam uma população de formigas para resolver coletivamente o problema de otimização em análise usando a representação gráfica acima definida. Informações coletadas pelas formigas durante o processo de pesquisa estão armazenadas nas trilas de feromônio Tij

associados às conexões lij. (De agora em diante,

simplificamos a notação referida a lcicj como lij.)

Trilhas de feromônio codificam um termo longo de memória sobre todo o processo de busca

das formigas. Dependendo da representação problema escolhida, trilhas de feromônios podem ser associadas a todos os problemas do arco, ou apenas a alguns deles. Arcos podem também ser associados a valores heurísticos ƞij representando uma informação primária sobre a definição da instância do problema ou executar informações em tempo fornecido por uma fonte diferente das formigas. Formigas das colônias têm as seguintes propriedades:

Uma formiga procura por soluções viáveis de custo mínimo ĴΨ = minΨ JΨ(L, t).

Uma formiga k tem a memória Mk que

pode ser usada to armazenar informações no caminho que seguiu até o momento. Memória pode ser usada para construir soluções viáveis, para avaliar a solução encontrada e para retroceder o caminho.

Uma formiga k no estado sr = (sr-1, i) pode mover-se para qualquer nó j na sua

vizinhança viável Nki = ,j | (j Є Ni) ^ ((sr,

j) Є Ŝ)}.

Uma formiga k pode atribuir um estado inicial s

ks e um ou mais condições de

terminação ek. Usualmente, o estado inicial é

expresso como uma sequência de unidade de comprimento seqüencial, isto é, um único componente.

As Formigas começam pelo estado inicial e movem-se para estados vizinhos viáveis, construindo a solução em um modo de incremento. O procedimento de construção pára quando pelo menos uma formiga k ao menos uma das condições de terminação e

k está satisfeita.

Uma formiaga k localizada no nó i pode

mover-se para o nó j escolhido por Nki. A

mudança é selecionada aplicando a regra de decisão probabilística.

A regra de decisão probabilística das formigas é uma função de (i) os valores armazenados em um nó de estrutura de

dado local Ai = [aij] chamado tabela de

roteamento de formigas, obtida através de uma composição funcional das trilhas de feromônio localmente disponíveis do nó, (ii) a memória privada de uma formiga armazena seu histórico passado, e (iii) o problema de restrições.

Quando move de um nó i para o vinho j a formiga pode atualizar as trilhas de feromônio Tij no arco (i, j). Isto é chamada atualização do feromônio com conexão passo a passo.

Page 3: Otimização da Colônia de Formigas

Uma vez construída a solução, as formigas podem retroceder o mesmo caminho e atualizar as trilhas de feromônio nos arcos atravessados. Isto é chamado atualização do feromônio conectado em atrasado.

Uma vez construída a solução, e, se for o caso, depois de retrocedido o caminho de volta às forças do nó, a formiga morre, liberando todas as alocações de recursos.

Apesar de cada formiga da colônia ser complexa o suficiente para encontra uma solução viável para o problema sob consideração, boas qualidades de soluções podem apenas emergir como o resultado da interação coletiva entre as formigas. Cada formiga faz uso apenas de informações privadas e de informações locais para o nó que está visitando (note que usamos os termos nó e componente, bem como arco e conexão/transição, como sinônimos), e a comunicação entre formigas é indireta e é mediante informações que elas lêem /escrevem nas variáveis armazenadas nos valores das trilhas de feromônios. Formigas adaptativamente modificam o caminho que o problema é representado e percebem através de outras formigas, mas elas não se adaptam elas próprias. Informalmente, o comportamento das formigas em um algoritmo OCF pode ser resumido da seguinte forma. Uma colônia de formigas concomitantemente e de forma assíncrona move através de estados adjacentes do problema movendo-se através dos nós vizinhos de G. Elas movem aplicando uma decisão política estocástica local que faz uso das informações contidas nos nós locais das tabelas de rota da formiga. Movendo-se, as formigas constroem soluções para aperfeiçoar o problema. Uma vez que uma formiga tenha montado uma solução, ou enquanto a solução é montada, a formiga avalia a solução (parcial) e deposita as informações sobre isto voluntariamente nas trilhas dos feromônios das conexões que ela usa. Estas informações dos feromônios irão diretamente para a busca das próximas formigas. Além das atividades das formigas, um algoritmo OCF inclui mais dois procedimentos: evaporação da trilha de feromônio e ações demoníacas. Evaporação dos feromônios é o processo no qual a trilha de feromônio decresce com o tempo. De um ponto de vista prático, a evaporação do feromônio é necessária para que se evite uma convergência muito rápida do algoritmo com relação a uma

região sub-ótima. Isso implementa uma forma útil de esquecimento, favorecendo a exploração de novas áreas da busca de espaço. Ações demoníacas são uma componente opcional da OCF meta-heurística, podem ser usadas para implementar ações centralizadas que não podem ser realizadas por uma única formiga. A ativação de um procedimento de otimização de um local é exemplo, ou a coleção de informações globais que podem ser usadas para decidir quando é útil ou não depositar feromônios adicionais para influenciar o processo de busca de um local não perspectivo. Como um exemplo prático, o demônio pode observar o caminho encontrado por cada formiga na colônia e escolher depositar feromônio extra nos arcos usados pelas formigas que fez o caminho mais curto. As atualizações do feromônio realizada pelo demônio são chamadas atualizações do feromônio off-line. Na figura 1 a OCF meta-heurística é descrita em um pseudocódigo. O processo principal da OCF meta-heurística gerencia, via construção das atividades do cronograma, o cronograma das três componentes discutidos acima de um algoritmo OCF: criação e atividades de formigas, evaporação do feromônio, e ações demoníacas. É importante notar que a construção do cronograma das atividades não especifica como essa três atividades são planejadas e sincronizadas e, em particular, se elas podem ser executadas em completo paralelo e modo independente, ou se algum tipo de sincronização é necessário entre elas. Isso deixa o projetista livre para escolher de que modo esses três procedimentos irão interagir.

Page 4: Otimização da Colônia de Formigas

Figura 1: A OCF meta-heurística. No procediment ACO_meta_heuristic (), o procedimento deamon_actions () (linha 6) é opcional. Quando implementado, refere-se às ações centralizadas executadas por um demônio que possui um conhecimento globa. No procedimetno new-activie_ant (), o tar-get_state (linha 4) refere-se à solução complementar encontrada pela formiga, enquanto que o passo a passo e atraso do processo de atualização do feromônio nas linhas 9-10 e 14-15 são frequentemente mutuamente exclusivas. Quando duas delas estão ausentes o feromônio é depositado pelo demônio. Os comentários são incluídos nos colchetes. Apesar de os algoritmos OCF serem adequados para encontrar um caminho de custo mínimo (menor) no gráfico em geral, é importante notar que é uma importante abordagem

apenas para estes problemas de menores caminhos nos quais algoritmos clássicos como programação dinâmica ou métodos de rótulos de correção (Bertsekas, 1995) não pode ser aplicado eficientemente. Este é o caso, por exemplo, para os seguintes tipos de problemas com caminhos curtos:

Problemas NP-hard, para o qual a dimensão o espaço-estado gráfico completo é exponencial na dimensão da representação do problema. Neste caso, formigas fazem uso do menor gráfico G, montador a partir das componentes do problema, e usam a memória delas para gerar soluções viáveis em que a maioria das implementações OCF são então tomadas para um local ótimo por um problema de ótimo local específico.

Aqueles problemas de caminhos menores em que as representações gráficas das propriedades do problema variam ao longo do tempo simultaneamente com o processo de otimização, que precisa adaptar-se com as dinâmicas do problema. Neste caso, o gráfico do problema pode ainda estar fisicamente disponível (como em problemas de redes), mas as propriedades deles, como os valores dos custos de conexões Jcicj (t), podem variar ao longo do tempo. Neste caso, nós presumimos que o uso de algoritmos OCF torna-se cada vez mais apropriados com a variação da taxa de custo Jcicj (t) (crescimento) e/ou o conhecimento da diminuição do processo de variação.

Tais problemas, no qual a arquitetura computacional está espacialmente distribuída, como no caso de paralelo e/ou processo de rede. Aqui, algoritmos OCF, devido a sua distribuição intrínseca e natureza de agentes múltiplos que também correspondem a esses tipos de arquitetura, podem muito eficientes.

Na seção a seguir, iremos considerar as aplicações da meta-heurística-OCF para dois problemas paradigmáticos que pertencem às classes dos problemas acima: o traveling salesman problem – TSP (problema do caixeiro viajante - PCV) e roteamento adaptativo em comunicações de rede. PCV é o protótipo representante de problemas de otimização combinatória NP-hard (Garey & Johnson, 1979) em que o problema instanciado é atribuído estaticamente e a informação é globalmente avaliada. Pelo contrário, no problema de roteamento adaptativo (o tráfico de entrada) faz a instanciação do problema variar ao longo

Page 5: Otimização da Colônia de Formigas

do tempo, e as restrições temporais impões solucionar o problema de modo distribuído. 3. OCF para problema do caixeiro viajante Usando a terminologia introduzida na seção anterior, o problema do caixeiro viajando pode ser definido a segui. C é um conjunto de componentes, representando cidades, L é um conjunto de conexões que conectam os elementos de C completamente, e Jcicj é o custo (comprimento) das conexões entre ci e cj, isto é, a distância entre as cidades i e j. O PCV é o problema que quer encontrar o menor comprimento do circuito Hamiltoniano no gráfico G = (C, L). Um circuito Hamiltoniano de gráfico G é um circuito fechado Ψ visitado uma, e apenas uma, vez por todos os nós Nc de G. Seu tamanho é dado por a soma de comprimentos de Jcicj de todos os arque que o compõem. As distâncias devem ser assimétricas: temos então um PCV assimétrico e que Jcicj pode ser diferente de Jcicj. Também, o gráfico não precisa estar conectado: se não está, os arcos que faltam pode ser adicionados dando a eles um comprimento muito grande. O problema do caixeiro viajando desempenha um papel central em uma otimização de colônia de formigas porque foi o primeiro problema a ser estudado por estes métodos (veja (Dorigo, 1992; Dorigo et at., 1991; Dorigo et al., 19996)). Entre as razões, o PCV foi escolhido, encontramos as seguintes: (i) é relativamente fácil adaptar a metáfora da colônia de formigas a ele, (ii) é um problema muito difícil (NP-hard), (iii) é um dos problemas mais estudados em otimização combinatória (Lawler et al., 1958; Reinelt, 1994), e (iv) é muito fácil de explicá-lom então o comportamento do algoritmo não é obscurecido por vários detalhes técnicos. A seguir iremos apresentar o Sistema de Formigas, um exemplo paradigmático de como algoritmos OCF pode ser aplicado ao PCV. Extensões do Sistema de Formigas pode ser encontradas, por exemplo, (Bullnheimer et al., 1997b; Dorigo & Gambardella, 1997; Stützle & Hoos, 1998b). Sistema de Formigas (SF) podem ser

informalmente descritos a seguir. Um úmero m

de formigas está posicionado em paralelo a m cidades. O estado inicial das formigas, isto é, a cidade inicial, pode ser escolhido

aleatoriamente e a memória Mk de cada

formiga k é inicializada adicionando a cidade inicial atual para o conjunto de cidades visitadas aleatoriamente (inicialmente vazias).

As formigas então entram num ciclo (Figura 1, linhas 4 new_active_ant () procedimento) no qual dura NC interações, isto é, até cada formiga completar o circuito. Durante cada etapa, uma formiga localizada no nó i considera a vizinhança viável, lê as

entradas aij’s da tabela de rota da formiga Ai

do no i (Figura 1, linha 5, new_activie_ant () procedimento), computa as probabilidades de transição (linha 6), e então aplica sua regra de decisão para escolher para qual cidade irá mover-se (linha 7), move-se para a nova cidade (linha 8), e atualiza a memória (linha 11). Note que, como no SF não existe conexão passo a passo da atualização do feromônio, nas instruções das linhas 9 e 10 do procedimento new_active_ant () na Figura 1 não são executadas. Uma vez que as formigas tenham completado o circuito (o que acontece sincronicamente dada, uma vez que durante cada interação enquanto que cada laço a formiga adiciona uma nova cidade para o circuito em construção), usam a memória para avaliar a solução que montaram e para retroceder o mesmo circuito de volta e aumentar a intensidade das trilhas de

feromônio Tij das conexões visitadas lij (Figura

1, linhas 13 16). Isso tem o efeito de fazer com que as conexões visitadas venham a ser mais desejadas por futuras formigas. Então a formiga morre, liberando todos os recursos alocados. Em SF, todas as formigas depositam feromônio e as ações de demônio não específicas são cumpridas. O desencadeamento da evaporação do feromônio acontece depois que todas as formigas tenham completado seus circuitos. Claro que, seria mais fácil adicionar uma ação otimização local do demônio, como um procedimento3-opt (Lin, 1965); isso tem sido efeito na maioria dos algoritmos OCF para PCV que tem desenvolvidos extensões de SF (veja, por exemplo (Dorigo & Gambardella, 1997; Stützle & Hoos, 1998ª)). O total de trilhas de feromônio Tij (t) mantém

em conexão lij ao invés de representar a

vontade aprendida de escolher a cidade j quando na cidade i (que também corresponde

à vontade que o arco lij pertence ao circuito

construído pela formiga). As informações da trilha de feromônio variam durante a solução do problema para refletir a experiência adquirida por outras formigas durante a solução do problema. Elas depositam uma quantidade de feromônio proporcional à qualidade das soluções Ψ que produzem: quanto menor o circuito gerado por uma

Page 6: Otimização da Colônia de Formigas

formiga, maior será a quantidade de feromônio depositado nos arcos que serão usados para gerar o circuito. Esta escolha ajuda a direcionar a busca a boas soluções.

A memória (ou estado intelectual) Mk de cada

formiga contém as cidades que já foram

visitadas. A memória Mk é usada para definir,

para cada formiga k o conjunto de cidades que uma formiga localizada na cidade i ainda irá

visitar. Explorando Mk, uma formiga k pode

encontrar uma solução prática, isto é, pode evitar visitar a mesma cidade duas vezes. Também, a memória permite que a formiga compute o comprimento da trajetória gerada e cubra o mesmo banho de volta depositando feromônio nos arcos visitados.

A tabela de toda da formiga Ai = [aij (t)] do nó

i, quando Ni é o conjunto de todos os nós

vizinhos de i, é obtida através da seguinte composição funcional das trilhas de feromônio Tij (t) e valores heurísticos locais ƞij:

Onde α e β são dois parâmetros que controlam a

quantidade de trilhas de feromônio e valores

heurísticos. Os valores heurísticos usados são

ƞij = 1/Jcicj, em que Jcicj é a distância entre duas cidades i e j. Em outras palavras, quanto menor a distância entre duas cidades i e j, maior será o valor heurístico ƞij. A probabilidade p

kij (t) com que o t-ésimo

algoritmo interage com uma formiga k

localizada na cidade i escolhe a cidade j Є Nki

para mover-se, é dado pela regra de decisão probabilística a seguir:

Onde Nk

i Ni é a vizinhança viável do nó i

para a formiga k (isto é, o conjunto de cidades que a formiga k ainda não tenha visitado) como definida usando a memória privada da formiga

Mk e as restrições do problema.

A função de parâmetro α e β é a seguinte. Se

α = 0, as cidades mais perto deverão ser as

selecionadas: isto corresponde ao clássico

algoritmo “guloso” estocástico (com pontos

iniciais múltiplis desde que as formigas estão

inicialmente distribuídas aleatoriamente nos

nós). Se, ao contrário, β = 0, apenas a

amplificação de feromônio está ativa: este

método conduzirá ao rápido aparecimento de

uma estagnação, isto é, uma situação na qual

todas as formigas fazer o mesmo circuito em

que, em geral, é fortemente sub-ótimo. (Dorigo

et at., 1996). Um negócio apropriado é definir

entre valores heurísticos e rastro de fuga.

Depois que todas as formigas tenham

completado os circuitos, cada formiga k

deposita uma quantidade de feromônio

em cada conexão lij que tenha

sido usada, onde Jk

Ψ (t) é o tamanho do circuito Ψ

k (t)feito pela formiga k em cada interação t:

onde cada número m de formigas em cada

interação é mantido constante, e é definido

como m = NC. Estas definições de parâmetros,

bem como as definições α = 1, β = 5 e ρ = 0,5;

foram encontradas experimentalmente por

Dorigo (Dorigo, 1992).

O modo de definir os valores , define a

função de desempenho da formiga: quanto

menor for o circuito feito, maior será o total de

feromônio depositado.

Depois da atualização do feromônio tiver sido feita pela formiga, a evaporação do feromônio é desencadeada: a seguinte lei é aplicada para

todos os arcos lij do gráfico G

onde ρ Є (0,1] é o coeficiente de decaimento da

trilha de feromônio (o valor inicial do

feromônio Tij (0) é definido como uma valor

constante positivo pequeno T0 em todos os

arcos).

4. OCF para redes de comunicação roteadas Um problema de roteamento genérico em redes de comunicação pode ser declarado informalmente como o problema de construção e uso de tabelas de roteamento para trafego de dados direto para que alguma medida de desempenho da rede, função do tipo de rede e de serviços prestados, é maximizada. Podemos usar a terminologia introduzida na Seção 2 para dar uma definição formal de um problema de roteamento. Sendo os conjuntos C e L correspondentes, respectivamente, aos conjuntos de nós de processamento e links de comunicação de uma rede real. Seja G = (C, L) um gráfico direto, onde cada nó do conjunto C representa um nó de rede com processamento/espera e transmissão de capacidades, e cada arco orientado em L é um sistema de transmissão direcional (link). Cada link tem associado uma medida de custo definida por suas propriedades físicas e passagem de fluxo de tráfego. Aplicações de rede geram fluxo de dados da fonte aos nós de destino. De cada nó da rede, o componente de

Page 7: Otimização da Colônia de Formigas

roteamento local usa a tabela de routeamento local para escolher o melhor link de saída para direcionar os dados recebidos para seus nós de

destino. A tabela de roteamento Ri = [rijd] de

um nó genérico i, onde Ni é o conjunto de

vizinhos de i, diz que os pacotes de dados que entram no nó i e em direção do nó d, o qual

deveria ser o próximo nó j Є Ni a mover-se. As

tabelas de roteamento são bidimensionais, porque a escolha do nó vizinho para qual o pacote de dados que entram em um nó genérico i deveria ser enviada é uma função do pacote de destino do nó d. As tabelas de roteamente das formigas possuem a mesma estrutura bidimensional: trilhas de feromônio associadas a cada conexão são vetores de Nc – 1 valores. Na verdade, tabelas de roteamento de formigas, em todas as implementações OCF para encaminhamento, são usadas para construir as tabelas de roteamente através de implementações dependentes de transformações. Estas trilhas de feromônio vetoriais são a extensão natural das trilhas escalares usadas para PCV. Outras importantes diferenças com a implementação PCV originam-se da diferente natureza dos dois problemas: (i) cada formiga é atribuída ao par definido (s, d) dos nós iniciais de destino e, descobrindo um caminho entre s e d, as formigas constroem apenas uma parte de toda a solução do problema, definida em termos dos caminhos entre todos os pares (i, j) na rede, (i) o custo associado às conexões não são atribuídas estaticamente: dependem das propriedades físicas das conexões e sobre o tráfego de passagem das conexões, que interagem recursivamente com as decisões do roteamento. Nas seção a seguir nós apresentamos uma versão simplificada do algoritmo AntNet. Uma descrição completa do AntNet pode ser encontrada em (Di Caro & Dorigo, 1998) 4.1. AntNet Em AntNet, cada formiga procura por um caminho de menor custo entre um par de nós de uma rede. As formigas são lançadas de cada nó da rede em direção aos nós destino selecionados aleatoriamente para combinar com os padrões de tráfego. Cada formiga tem um nó fonte s e um nó destino d, e move-se de s para d esperando de um nó para o próximo até que o nó d seja alcançado. Quando a formiga k está no nó i, ela escolhe o nó j para mover-se de acordo com a regra da decisão probabilística que é uma função de memória da

formiga Mk e da tabela de roteamente local da

formiga Ai.

As trilhas de feromônio ainda são conectadas aos arcos, mas são memorizadas em associações variáveis aos pares de arco destino. Isto é, cada arco dirigido (i,j) tem Nc – 1 valores de trilhas Tijd Є *0, 1+ associados, um para cada possível nó destino d que uma formiga localizada no nó i pode ter (portanto, em geral, Tijd ≠ Tijd). Cada arco tem também valores heurísticos associados ƞij Є *0, 1+ independente da decisão final. Os valores heurísticos são definidos a seguir:

onde qij é o tamanho (em bits esperando para serem enviados) da linha de conexão do nó com o seu vizinho j. Em AntNet, bem como maioria das outras implementações de algoritmos OCF para problemas de roteamento, a componente demônio (linha 6 do OCF meta-heuristico na Figura 1) não está presente.

A tabela local de roteamento da formiga Ai é

obtida por uma composição funcional das trilhas de feromônio locais Tijd e valores heurísticos ƞij. Enquanto constroe-se o caminho para o destino, as formigas movem-se usando o mesmo link de dados. Deste modo, a experiênciada formiga tem os mesmos atrasos

como pacotes de dados e o tempo Tsd

decorrido enquanto move-se de um nó fonte s para um nó destino d pode ser usado como uma medida de qualidade do caminho. A “qualidade” geral de um caminho pode ser avaliada por uma função heurística do tempo

de viagem Tsd e do um modelo adaptável de

estatística local mantido em cada nó. Na verdade, os caminhos precisam ser avaliados relativos aos status das redes, porque o tempo

de viagem T julgado como baixa qualidade sob

condições de congestionamento reduzido poderiam ser de uma excelente qualidade sob alto tráfego. Uma vez que a formiga genérica k tenha completado o caminho, ela deposita no nó visitado uma quantidade de feromônio

proporcional à qualidade do caminho encontrado. Para este propósito, depois de atingido o destino, a formiga volta para o seu nó fonte através do mesmo caminho e usa os links de alta prioridade, para dar uma rápida propagação das informações coletadas. Durante esse caminho de volta, a formiga aumenta o valor da trilha de feromônio Tijd (t)

em cada conexão lcicj previamente usada

Page 8: Otimização da Colônia de Formigas

enquanto movia-se de s para d. A intensidade da trilha de feromônio é aumentada pela aplicação da seguinte regra:

A razão para que a formiga atualize a trilha de feromônio durante o caminho de volta é que, antes de computar o total de feromônio para depositar nos arcos visitados, ela precisa completar o caminho da fonte até o destino para avaliá-lo. Depois de a trilha de feromônio do arco visitado ser atualizada, o valor do feromônio de todas as conexões de saída do mesmo nó i, relativo ao destino d, evapora:

onde Ni é o conjunto dos nós vizinhos a i.

Como falamos, a tabela de roteamente das

formigas do AntNet Ai = [aijd (t)] do nó i obtido,

como de costume, pela composição dos valores das trilhas de feromônio com os valores heurísticos locais. Isto é feito da seguinte forma:

Onde j Є Ni , d é o nó destino, W Є [0, 1] é um

peso e o denominador é um termo de normalização. A regra decisão das formigas está definida a seguir. Seja, o tempo t, uma formiga k localizada no nó i e direciona-se ao nó d. Se

Ni Mk, isto é, se houver ao menos uma

cidade na vizinhança do circuito da formiga que a formiga k ainda não tenha visitado, então a

formiga escolhe o nó j Є Ni com a

probabilidade

por outro lado, a formiga escolhe a cidade j Є

Ni com a probabilidade uniforme:

. (Note que em AntNet, diferentemente do que acontece no Sistema de Formiga, a vizinhança e vizinhança favorável são a mesma, isto é, .) Em outras palavras, as formigas tentam evitar ciclos (equação 9) mas, no caso de todos os nós da vizinhança de i já terem sidos visitados pela formiga, ela não tem escolha e revisita um nó, gerando neste caminho um ciclo. Neste caso, o ciclo gerado é deletado da memória da formiga, que o esquece completamente. Considerando a estocasticidade da regra de decisão e a evolução das condições de tráfego, é muito improvável que a formiga repita o mesmo ciclo um e outra vez.

5. Outras aplicações OCF meta-heurística Hoje existem muitas implementações bem sucedidas de OCD meta-heurística aplicada a um número diferente de problemas de otimização combinatória. Os problemas mais amplamente estudados usando algoritmos OCF são os problemas do caixeiro viajante e ao problema de alocação quadrática – PAQ (quadratic assignmet problem – QAP). Resultados obtidos através da aplicação de algoritmos OCF para PCV são encorajadores (veja (Stützle & Dorigo,1999b) para uma visão geral de aplicações de algoritmos OCF para PCV): eles são frequentemente melhores que aqueles obtidos usando outro propósito heurístico geral como computação evolutiva ou simulated annealing. Também, quando é adicionado a um algoritmo OCF, procedimentos sofisticados de procura local baseados no 3-opt (Lin, 1965), a qualidade dos resultados obtidos (Dorigo & Gambardella, 1997) é próxima àquela adquirível por métodos mais sofisticados. Mais pesquisas serão necessárias para avaliar se os algoritmos OCF podem alcançar a performance de algoritmos estado-da-arte como Iterated Lin-Kernigham (Johnson & McGeoch, 1997). Como no caso de PCV, a primeira aplicação de algoritmo OCF para PAQ tem sido a de Sistema de Formigas (Maniezzo et al., 1994). Nos últimos dois anos, vários algoritmos OCF para PAQ têm sido apresentados por Maniezzo e Colorni (Maniezzo & Colorni, 1999, na imprensa), Maniezzo (Maniezzo, 1998), e Stützle (Stützle & Hoos, 1998ª). Atualmente, algoritmos OCF estão entre os melhores heurísticos por “atacar” casos reais de PAQ. Referimos-nos a (Stützle & Dorigo, 199ª) por uma visão geral dessas abordagens. O problema de ordenação seqüencial é rigorosamente relacionado ao PCV assimétrico, mas procedimentos adicionais restringem entre os nós que precisam ser satisfeitos. Gambardella & Dorigo, 1997). Eles obtiveram resultados excelentes e foram capazes de aperfeiçoar as melhores soluções conhecidas para muitos casos referenciadas. A primeira aplicação de SF para o problema de programação trabalho-compras tem sido apresentada em (Colorni et al., 1994). Apesar de mostrar a viabilidade da abordagem, os resultados computacionais não são competitivos com os algoritmos estado-da-arte.

Mais recentemente, MMAS tem aplicado ao

problema de programação de fluxo de compras – PPF (flow shop scheduling problem – FSP) em

Page 9: Otimização da Colônia de Formigas

(Stützle, 1998). Os resultados computacionais

têm mostrado que MMAS supera a proposta

anterior de algoritmos Simulated Annealing, enquanto que executa comparativamente a Tabu Search. Outra aplicação muito recente é a da única máquina de problema de atraso total, discutido em um trabalho publicado neste mesmo processo (Bauer et al., 1999). Outra vez, os resultados obtidos são muito promissores. Casta e Herz (Costa & Hertz, 1997) propuseram uma extensão do SF para atribuir tipos de problemas e apresentar uma aplicação para aproximar o problema de coloração do gráfico obtendo resultados comparáveis aos obtidos por outra abordagem heurística. Uma aplicação de SFrank para o problema de roteamento de veículo capacitado é apresentado por Bullnheimer, Hartl e Strauss (Bullnheimer et al., 1997ª). Eles obtiveram bons resultados computacionais para padrões de casos de referência, ligeiramente piores que as melhores performances dos melhores algoritmos Tabu Search. Uma aplicação recente por Gambardella, Taillard e Agazzi ao problema de roteamento de veículo com janelas de tempo que aperfeiçoam as melhores soluções conhecidas por alguns casos referenciados (Gambardella et al., 1999). Michel e Middenforf (Michel & Middenforf, 1998; Michel & Middenforf, 1999) propuseram uma aplicação para SF para uma supersequência comum mais curta. Eles introduziram o uso de uma função de busca progressiva durante a construção da solução pelas formigas. Eles também apresentam uma visão paralela dos seus algoritmos baseados no típico modelo de ilha de muitas implementações de algoritmos paralelos genéticos.

MMAS tem aplicado recentemente ao

problema de atribuição generalizada por Ramalhino Lourenço e Serra (Lourenço & Serra, 1998), obtiveram resultados computacionais muito promissores. Em particular, o algoritmo deles mostra como encontrar uma solução ótima e ótima próxima mais rápidas que o algoritmo GRASP que foi usado para comparação. Outra aplicação muito recente de OCF meta-heurística é o único problema de sacos múltiplos proposto em um dos artigos publicados neste mesmo processo (Leguizamón & Mechalewicz, 1999). Também obtiveram resultados muito promissores. Talvez a pesquisa mais atual na área de algoritmos OCF é o estudo das suas aplicações

em redes de telecomunicações, em particular, redes roteadas (Schoonderwoerd et al., 1996; Di Caro & Dorigo, 1998). A aplicação de algoritmos OCF a problemas de otimização de rede é atraente porque estes problemas têm características como informação distribuída, dinâmica estocástica não-estacionária e evolução assíncrona do status da rede que iguala algumas propriedades dos algoritmos OCF como o uso de informações locais para gerar soluções, comunicação indireta via trilhas de feromônio e estados de transições estocásticas. Uma visão detalhadas das aplicações de algoritmos OCF pode ser encontradas em (Dorigo et al., 1998). 6. Conclusões Neste artigo, demos uma descrição formal da Otimização da Colônia de Formigas meta-heurística, bem como as classes dos problemas a qual ela pode ser aplicada. Podemos então descrever duas aplicações paradigmáticas dos algoritmos OCF para o problema do caixeiro viajante e ao de roteamente em rede de comutação de pacotes e concluímos com um rápido panorama nas aplicações atualmente disponíveis. Os trabalhos em curso seguem três direções principais: o estudo de propriedades formais para uma versão simplificada do sistema de formigas, o desenvolvimento do AntNet para aplicações de qualidade de serviço e o desenvolvimento de futuras aplicações para problemas de otimização combinatória.