• Nenhum resultado encontrado

3 LEIAUTES E MONTAGEM DE ORDENS

4.2 Simulated Annealing (SA)

Segundo Gendreau e Potvin (2010) o SA é um algoritmo de busca local capaz de escapar de ótimos locais. Esse algoritmo é uma metaheurística que deriva do ramo onde são encontrados métodos aproximados de otimização, veja a ramificação dos métodos de otimização na Figura 22.

Segundo Suman e Kumar (2006) o SA é uma técnica robusta e compacta, a qual fornece excelente soluções para problemas de otimização, com único ou múltiplos objetivos, e também com uma significativa redução no tempo computacional.

A implementação é relativamente fácil, quando comparado com outras metaheurística de busca local e usa o chamado movimento entre vales e picos para escapar dos ótimos locais (Gendreau e Potvin, 2010).

São muitos os campos da pesquisa operacional onde o SA vem sendo aplicado. Sridhar e Rajendran (1993) descrevem três esquemas de perturbação para gerar novas sequências para a resolver o problema de sequenciamento de ordens em um processo de manufatura celular.

65

Meller e Bozer (1996) aplicam o SA no problema de facility layout problem (FLP). O FLP se refere ao problema de posicionar diversas áreas em um layout fabril. Os autores consideram neste trabalho que o problema criação do layout fabril consiste em encontrar um arranjo ortogonal para “n” áreas retangulares dentro de uma planta retangular de tal forma a minimizar a distância entre as “n” áreas. O problema de layout é altamente combinatório por natureza e geralmente possui muitos mínimos locais o que justifica a utilização do SA.

Kim et al (2002) consideram um problema de planejamento de transporte para um centro de distribuição considerando múltiplos períodos, múltiplas paradas e múltiplos varejistas, buscando otimizar as rotas dos veículos e as quantidades entregues para cada varejista. Para resolver esse problema os autores sugerem uma heurística em dois estágios baseado no SA.

McCormick e Powell (2004) descrevem um algoritmo de SA, em dois estágios, para o planejamento das bombas que fazem a distribuição de água para os diversos reservatórios em uma cidade usados para o abastecimento das residências. O modelo construído pode produzir um planejamento discreto perto do ótimo em um tempo bastante curto para ser usado nas rotinas operacionais.

4.2.1 A História e o funcionamento do SA

O interesse na utilização do SA começou com a publicação do trabalho de Kirkpatrick et al. (1983) e Cerny (1985). Eles mostraram como o modelo recozimento dos sólidos, como proposto por Metropolis et al. (1953), poderia ser usado para problemas de otimização, onde a função-objetivo a ser minimizada corresponde a energia dos estados sólidos.

O nome Simulated Annealing foi dado por causa da analogia com o processo físico de recozimento dos sólidos, no qual um sólido é aquecido e então deixado resfriar bem lentamente até que atinja a mais regular configuração de estrutura cristalina, isto é, o mínimo estado de energia para as suas moléculas ficarem livres de tensões.

Se o plano de resfriamento é suficientemente lento, a configuração final resulta em um sólido com uma integridade estrutural superior. O SA estabelece a conexão entre esse tipo de comportamento termodinâmico e a pesquisa por mínimos globais em problemas de otimização discreta.

A cada iteração, o algoritmo compara duas soluções, a solução atual e uma nova solução selecionada. Soluções melhores são sempre aceitas, enquanto uma fração de soluções piores são aceitas no intuito de escapar dos ótimos locais e seguir na busca do ótimo global.

A probabilidade de aceitar soluções piores depende do parâmetro temperatura, o qual é tipicamente diminuído a cada iteração do algoritmo. A característica chave do SA é permitir soluções piores da função-objetivo, entre as iterações, de forma a permitir movimentos de picos e vales buscando escapar dos ótimos locais.

Com o parâmetro temperatura caminhando para o valor zero, a cada iteração, esses movimentos de picos e vales vão ocorrendo com menor frequência fazendo com o algoritmo convirja para uma forma a qual todas as probabilidades estejam concentradas em um conjunto de soluções globalmente ótimas.

A Figura 28 apresenta o comportamento do algoritmo SA onde pode se notar a tentativa, com maior ou menor probabilidade, de escapar dos ótimos locais aceitando piorar o objetivo, na busca de valores que minimizem a função-objetivo, com o aceite de soluções vizinha x’. Neste gráfico o espaço de busca está no eixo x e o objetivo no eixo y.

67

Figura 28 - Simulated Annealing escapando do ótimo local. Fonte: Adaptado de Talbi (2009).

4.2.2 Definições matemáticas

Para descrever as características específicas do algoritmo SA para problemas de otimização discreta e descrever o pseudocódigo na próxima seção, serão feitas algumas definições que foram baseadas nos textos de Talbi, 2009 e Eglese (1990).

Seja Ω o espaço de solução, isto é, o conjunto de todas as soluções possíveis. Seja f: Ω→ℜ uma função-objetivo definida no espaço das soluções. O objetivo é encontrar um mínimo global, 2′ (onde, 2\∈ Ω tal que T 2′ ≤ T 2 para todo 2′ ∈ Ω). A função objetivo deve ser limitada para garantir que 2′exista. Define-se N(2) a função vizinha para 2 ∈ Ω. Portanto, associada a cada solução, 2 ∈ Ω, são soluções vizinhas, N(2), que podem ser atingidas em uma única iteração do algoritmo de busca local.

O SA começa com uma solução inicial 2 ∈ Ω. Uma solução vizinha 2′ ∈ N(2) é então gerada (aleatoriamente ou usando alguma regra pré-especificada). A solução candidata, 2′, é aceita como a solução atual baseada na probabilidade de aceitação: ^ 2\ _6WF `*#abc de*a c ) fg h , @6 T 2 \ $ T 2 i 0 1, @6 T 2\ $ T 2 0. (6)

Define-se Aj como o parâmetro de controle o qual corresponde a temperatura em analogia com o recozimento, na iteração S, tal que:

Aj i 0 FDGD AJ J S 6 lim8→nAj 0. (7) O elemento básico do mecanismo de busca no SA é dado pelo aceite da probabilidade (P). Se a temperatura é reduzida de forma suficientemente lenta, então o sistema pode atingir um equilíbrio (estado de equilíbrio) a cada iteração S. Seja T 2 e T 2\ os valores da função-objetivo associados com a solução ω ∈ Ω e ω’ ∈ N(ω), respectivamente.

4.2.3 O pseudocódigo do SA

O trabalho de Eglese (1990) foi utilizado como base para escrever o pseudocódigo abaixo.

Definições iniciais

Defina uma solução inicial ω ∈ Ω

Defina o contador para a mudança de temperatura S 0 Defina a temperatura de resfriamento Aj

Defina uma temperatura inicial Ao ≥ 0

Defina o número de iterações, pj, que será executada para cada temperatura, Aj

Repita

Defina o contador 0

Repita

Gere uma solução ω’ ∈ N(ω) Calcule ∆c,cd T 2\ $ T 2 Se ∆c,cd 0, então 2 ← 2′

Se ∆c,cdi 0, então 2 ← 2′ com uma probabilidade exp $∆c,cd/Aj

← + 1

69

S ← S + 1

Repetir até que o critério de parada seja atingido

O algoritmo do SA ou qualquer outro algoritmo de busca local tem a sua velocidade de convergência e a possibilidade de atingimento do ponto ótimo, fortemente dependente da qualidade da solução inicial.

A escolha dos parâmetros iniciais é também muito importante para o SA, tais como: a temperatura inicial ( ), a escolha da função de decaimento da temperatura Aj , O número de iteração para cada temperatura pj e o critério de parada do algoritmo.

Outros dois pontos que em alguns casos podem influenciar o desempenho do SA são: a dificuldade de geração de soluções vizinhas factíveis e na avaliação dos valores das soluções.

O método desenvolvido nesta dissertação, que é explicado no Capítulo 5, para resolver o problema do posicionamento dos SKUs na área do picking utiliza o SA em duas camadas, sendo a primeira camada utilizada para resolver o problema global, que consiste em minimizar a distância percorrida pelo separador e na segunda camada para resolver cada uma das rotas associadas as ordens que devem ser montadas pelo separador. Esta segunda camada equivale a resolver sucessivos problemas de caixeiro viajante que será apresentado na próxima seção.

Documentos relacionados