2.5 Metaheurística colônia de formigas
2.5.3 Algoritmos ACO
2.5.3.3 Max-Min Ant System (MMAS)
Proposto porStützle e Hoos(2000), esse algoritmo também apresenta algumas melhorias em relação ao Ant System (AS). Os autores ressaltam que a chave para encontrar um melhor desempenho em algoritmos ACO é, combinar uma exploração das melhores soluções com um mecanismo para evitar a estagnação precoce, assim, destacam três pontos importantes, apresentados a seguir, que fazem seu algoritmo se diferenciar do AS.
(i) Afim de explorar as melhores soluções encontradas, propõem-se que após cada iteração, apenas uma única formiga contribua para a atualização dos feromônios, esta formiga pode ser a que obteve a melhor solução da iteração atual ou, a que obteve a melhor solução desde o inicio do algoritmo. A atualização de feromônios é apresentada na Equação (2.17) onde ρ é a taxa de evaporação,∆τbest
i j é definido na Equação (2.18), sendo que Lbestpode ser o valor da
melhor solução encontrada na iteração atual ou, da melhor solução encontrada desde o inicio do algoritmo. τi j ←− ρ τi j+ ∆τbesti j (2.17) ∆τbest i j = 1
Lbest se i j pertence a solução da melhor formiga
0 caso contrário (2.18)
(ii) Para evitar que algumas arestas tenham valores de feromônios muito discrepantes, direcionando o espaço de busca de soluções e, levando a uma convergência prematura ou a um ótimo local, limita-se os valores das trilhas de feromônios em um intervalo [τmin, τmax].
O valor de τmaxé calculado conforme Equação (2.19) onde, ρ é a taxa de evaporação e,
Lbesté o valor da melhor solução encontrada desde o inicio do algoritmo. Assim, o valor de τmax
é atualizado sempre que o algoritmo encontrar uma nova melhor solução (Lbest).
τmax = 1 1 − ρ 1 Lbest (2.19) SegundoDorigo e Socha(2006) o valor para τmindeve ser escolhido com bastante cautela
pois, tem bastante influencia na performance do algoritmo. O valor de τminprecisa ser positivo
e diferente de zero, porém, pode ser definido como um valor pequeno próximo de zero ou, proporcional a um valor de τmax, o ideal é fazer experimentos acerca do problema que será
resolvido para decidir como defini-lo.
Stützle e Hoos (2000) apresentam uma abordagem analítica para o cálculo de τmin,
baseados na probabilidade pbest, que a formiga construirá a melhor solução encontrada até o
momento. Supõe-se que a probabilidade de uma formiga tomar a decisão certa (isto é, a decisão que pertence à sequência de decisões, que conduzem à construção da melhor solução encontrada até agora) em cada um dos n passos, é dada por uma constante pdec. Uma formiga tem que
tomar a decisão certa n vezes, para construir a melhor solução com probabilidade pn
dec. Defini-se
pn
dec= pbestassim, pdec =
n √
pbest. Em média, em cada ponto, a formiga tem que escolher entre
avg= n/2 opções de movimentos disponíveis. A fórmula analítica sugerida para calcularτminé
apresentada na Equação (2.20). τmin = τmax(1 − pdec) (avg − 1) pdec = τmax(1 − n √ pbest) (avg − 1) √n p best (2.20) A forma analítica para calcular um valor de τmin, exige que o usuário defina um valor
para a constante pbest, para isto, precisa-se fazer um estudo sobre o problema que será resolvido,
Stützle e Hoos (2000) fazem alguns experimentos para relacionar os valores de pbest com a
convergência do algoritmo e, também mostram experimentalmente, a importância do uso de limites inferiores.
(iii) Para uma maior exploração de soluções no inicio do algoritmo recomenda-se inicia- lizar todas as trilhas de feromônios (todos os τi j) com o valor de τmax. Porém, de acordo com o
calculo sugerido para τmax, apresentado na Equação (2.19), precisará atribuir um valor para Lbest.
A sugestão é, se possível, utilizar uma boa solução já conhecida para o problema. A ideia de inicializar as trilhas de feromônios com τmax, ao invés de τmin, surgiu a partir de experimentos
feitos pelos autores do método com várias instâncias de problemas e, onde a inicialização com τmaxmostrou resultados bem superiores. A seguir, no Algoritmo10apresenta-se o MMAS.
Algoritmo 10: Max-Min Ant System (MMAS), adaptado deStützle e Hoos(2000). Entrada: número máximo de iterações (itmax), número de formigas (m), número de nós
que cada formiga deve percorrer para completar uma solução n, comprimento das arestas que ligam os nós (di j) e, os parâmetros: Lbest, ρ, pdec, α e β
início
Calcular τmaxutilizando uma solução Lbest já conhecida para o problema
Calcular τmin
Inicializar as trilhas de feromônios com τi j = τmax ∀ (i, j)
para w= 1 até itmaxfaça
para f = 1 até m faça
Construir uma solução com base no cálculo de ri jf (Equação (2.12)) Caso a solução encontrada for melhor que a Lbestatualizar τmine τmax
fim
Atualizar os feromônios utilizando Equação (2.17)
Redefinir os feromônios no intervalo [τmin, τmax] conforme Equação (2.21)
fim fim
Após cada iteração, todos os τi j são atualizados para τi j conforme Equação (2.21) para
que os valores dos feromônios permaneçam no intervalo [τmin, τmax].
τi j = τmin se τi j < τmin τmax se τi j > τmax τi j caso contrário (2.21)
A ideia do algoritmo MMAS é, construir soluções utilizando-se da regra de transição proposta no método AS. Porém, a inicialização das trilhas de feromônios será com o valor correspondente a τmaxe, durante as iterações do algoritmo os valores dos feromônios se mantem
no intervalo [τmin, τmax]. Além de um intervalo para limitação dos valores dos feromônios, outra
importante contribuição, é a atualização dos valores destes feromônios, somente após todas as formigas terem construído suas soluções e, somente nas arestas pertencentes a melhor solução. Os métodos de solução, da metaheurística colônia de formigas, apresentados nesta Seção
2.5.3, foram utilizados para resolver o problema do caixeiro viajante mas, também podem ser usados para o problema de flow shop permutacional, que é o tema deste trabalho. Faz-se uma adaptação, considerando que cada cidade do problema do caixeiro viajante, representa uma tarefa. Para construir uma solução (ou caminho), cada formiga deve anexar (ou "andar"por) todas as tarefas, formando assim uma sequência de tarefas.
No problema de flow shop permutacional, a sequência de tarefas é a mesma em todas as máquinas. O custo de cada caminho, pode ser calculado, considerando os tempos de processa- mento e setup, para a sequência de tarefas construída pela formiga. Mais detalhes da aplicação da metaheurística colônia de formigas, no problema de flow shop permutacional, serão descritos no Capítulo4.
Após apresentar o problema de flow shop e, alguns métodos presentes na literatura para construção de sequências de tarefas, a seguir, no Capítulo3apresenta-se um modelo que descreve o problema de flow shop permutacional, com sequência dependente dos tempos de setup, que é objeto de estudo deste trabalho.