• Nenhum resultado encontrado

As heurísticas Hd2 e Hd3 são adaptações da heurística Hd1 para situações específicas em que existem estágios com apenas uma máquina. Quando todos os estágios possuem má- quinas paralelas, as heurísticas Hd1, Hd2 e Hd3 são idênticas.

Qualquer que seja o estágio com apenas uma única máquina, as heurísticas Hd2 e Hd3 resolvem-no como um típico Problema do Caixeiro Viajante (vide seção 2.3). Na literatura, existem diversos métodos de solução para o problema cíclico direcionado do Caixeiro Viajan- te e, portanto, também para o problema de programação da produção. Assim, a heurística Hd2 aplica o algoritmo FITSP (Farthest Insertion Traveling Salesman Procedure) e a heurística

Hd3 utiliza o NITSP (Nearest Insertion Traveling Salesman Procedure), ambos descritos a seguir.

Algoritmo FITSP (Farthest Insertion Traveling Salesman Procedure)

Como descrito por Moccellin (1992, p.29-30), o algoritmo de inserção denominado

FITSP escolhe arbitrariamente uma cidade (s) para ser a cidade-base ou o nó inicial da rota,

entre as n cidades a serem visitadas. Dentre as (n–1) cidades remanescentes, a próxima cidade (p) a ser inserida na rota é determinada por meio de um critério de seleção específico. A partir de então, tem-se uma sub-rota ou um ciclo composto por dois nós (s e p). Entre os (n–2) nós remanescentes, um terceiro nó (cidade q) é selecionado e inserido no ciclo atual. As duas al- ternativas possíveis de inserção, (s, q, p, s) e (s, p, q, s), são examinadas, sendo escolhida a que corresponde ao menor comprimento total da sub-rota. O processo de inserção continua até que seja obtida uma rota completa.

Rosenkrantz, Stearns e Lewis (1974) comprovaram experimentalmente que o método

FITSP fornece melhores resultados tanto quando comparado ao NITSP como à inserção alea-

tória.

O algoritmo FITSP é constituído por (n–1) iterações:

PASSO 1: Escolha arbitrariamente o nó inicial (tarefa fictícia J0).

PASSO 2: Encontre o próximo nó da sub-rota que tenha a maior distância do nó esco- lhido anteriormente.

PASSO 3(PASSO DE SELEÇÃO): Entre os nós ainda não selecionados, escolha o que tenha a maior distância de qualquer nó da sub-rota.

PASSO 4(PASSO DE INSERÇÃO): Examine todas as possibilidades de inserção do nó esco- lhido na sub-rota atual, adotando aquela que leva ao menor comprimento total.

PASSO 5: Se todos os nós foram inseridos na rota, PARE. Caso contrário, vá para o PASSO 3.

Algoritmo NITSP (Nearest Insertion Traveling Salesman Procedure)

O algoritmo NITSP é análogo ao procedimento do FITSP, diferenciando apenas no critério de seleção do próximo nó da sub-rota (Passos 2 e 3). O algoritmo NITSP escolhe o nó que tenha a menor distância da sub-rota.

É importante salientar que tanto o algoritmo FITSP como o NITSP escolhem a sub- rota com o menor comprimento no critério de inserção (Passo 4).

Algoritmo Hd2/Hd3

PASSO 1. Nos estágios k, de 1 a g–1, se k possuir máquinas paralelas, analise todas as possibilidades de alocação tarefa-máquina e escolha a opção com a menor data de término.

Senão, se o estágio k possuir apenas uma máquina, aplique o Algoritmo

FITSP (ou NITSP, na Hd3). No Passo de Seleção, considere na matriz de dis-

tâncias a soma rjk+sijk, com i∈Vk∪{0}, j∈Vk, e no Passo de Inserção, calcule

o comprimento total considerando as datas de liberação das tarefas (rjk) e a

antecipação ou não do setup.

PASSO 2. Repita o passo 1 até que todas as tarefas estejam programadas e vá para o

PASSO 3.

PASSO 3. Se o último estágio possuir máquinas paralelas, aplique o Algoritmo Multiple

Insertion.

Observação: no passo de inserção dos algoritmos FITSP e NITSP, também se conside-

ram os valores de rjk e sijk no cálculo do comprimento da sub-rota atual.

Heurística Hd4

A heurística Hd4 utiliza o procedimento desenvolvido por Stinson (STINSON,51977

apud STINSON; SMITH, 1982) tanto no sequenciamento como na alocação no flexible flow line. Stinson e Smith (1982) adaptaram o Método de Aproximação de Vogel para o sequenci-

amento do flow shop com setup dependente da sequência. Este método é conhecido pela sua eficácia em fornecer boas soluções iniciais para o problema de transporte.

A heurística de Stinson é utilizada para fornecer uma sequência de tarefas que minimi- zam o tempo total de setup. Este procedimento também já foi aplicado por Simons Jr. (1992) no flow shop tradicional, por Fuchigami (2005) na ordenação inicial para o flow shop híbrido e por Chen (2008) como uma etapa de melhoria na sua heurística para o problema de máquina única.

O procedimento proposto a partir de Stinson e Smith (1982), Simons Jr. (1992) e Chen (2008) é definido a seguir.

Heurística de Stinson

PASSO 1. Construa uma matriz n×n dos dados de entrada do problema.

PASSO 2. Calcule a diferença entre os dois menores elementos de cada linha e de cada

coluna da matriz. O elemento (j,j), onde 1≤jn, não é considerado. Na etapa

STINSON, J.P. (1977). A heuristic algorithm for obtaining an initial solution for the Traveling Salesman Prob- lem, School of Management Working Paper, 77-12, Syracuse University, Syracuse, New York.

em que houver apenas um elemento na linha ou coluna, considera-se a dife- rença igual a zero.

PASSO 3. Identifique a linha ou a coluna com a maior diferença. Nesta, selecione o e- lemento (i,j) com o menor valor. Desempate selecionando o elemento que possui o menor valor entre todas as linhas e/ou colunas com a maior diferença.

PASSO 4. Elimine todos os elementos da linha i e da coluna j e o elemento (j,i).

PASSO 5. Repita os PASSOS 2 a 4 até que todas as tarefas estejam programadas.

Os dados de entrada para a construção da matriz podem ser apenas os tempos de setup ou estes tempos somados aos de processamento, ou então utilizar os dados de estágios especí- ficos (apenas do primeiro estágio, todos os estágios etc.). A construção da matriz e os critérios de desempate utilizados durante o algoritmo influenciam no desempenho da heurística.

A programação final considerada por Simons Jr. (1992) é obtida quebrando a sequên- cia circular (ciclo) formada pelas tarefas em cada ponto possível, implementando a programa- ção no flow shop e selecionando a opção em que o makespan é o menor.

Fuchigami (2005) utilizou o algoritmo TOTAL de Simons Jr. (1992) apenas como regra de prioridade para o primeiro estágio, acarretando na separação dos pares de tarefas ao efetuar a alocação às máquinas. Ou seja, a sequência definida não se mantém na programação do flow shop híbrido, servindo apenas para definir a prioridade de alocação das tarefas. Na- quele trabalho, também não foi considerado no algoritmo a característica de setup antecipado. A ideia da heurística Hd4 é utilizar a sequência fornecida pela heurística de Stinson, mantendo juntas as tarefas o máximo possível na alocação. Isto pode ser feito quebrando a

sequência de tarefas em “mk” partes da forma mais equitativa possível, e alocando cada parte

Os métodos construtivos que programam uma tarefa de cada vez podem ser míopes, pois analisam localmente apenas a melhor opção para a tarefa sendo programada. A heurística Hd4, por utilizar matrizes com todos os tempos de setup e processamento, possibilita a análise global e a escolha de bons pares de tarefas.

O objetivo aqui é manter juntos bons pares de tarefas no primeiro estágio e considerar as características específicas do ambiente tratado. Assim, a matriz dos dados de entrada será

da ordem v1 × v1 (contendo apenas as tarefas que visitam o primeiro estágio) e cada elemento

eij será composto pela soma dos tempos de processamento e de setup não antecipados de todos

os estágios

[

(

)

]

      ∈ − + =

∈ 1 , , 1 A s parai j V p e G k ijk ijk jk ij .

Critério para formação de mk partes equitativas

Tendo sido definida a sequência completa de tarefas que visitam o primeiro estágio,

divide-se o tempo total de fluxo pela quantidade de máquinas do estágio (m1) e denomina-se

esta quantidade de “fração f”.

Todas as tarefas cujas datas de término (ou tempo de fluxo) são inferiores a f, serão alocadas na mesma sequência à primeira máquina do estágio. A próxima tarefa da sequência, chamada de “tarefa-limite” será alocada na primeira ou na segunda máquina, dependendo do critério descrito a seguir.

Estabelecendo a fração f como um marco na sequência completa, se a maior parte da carga da tarefa-limite (tempo de setup mais tempo de processamento) ficar à esquerda de f, tal tarefa será alocada à primeira máquina, caso contrário, na segunda. Ou seja, se a diferença entre f e o início do setup da tarefa-limite for maior do que a diferença entre o fim da tarefa- limite e f, então a tarefa-limite será associada à primeira máquina, caso contrário, na segunda máquina.

Considerando agora na segunda máquina a tarefa fictícia 0 antecedendo a primeira tarefa não programada, calcula-se o novo valor dos tempos de fluxos das tarefas. Da mesma forma, divide-se novamente o tempo total de fluxo pela quantidade de máquinas ainda não programadas, obtendo-se uma nova fração f. Verificam-se as tarefas cujas datas de término são inferiores a f, alocando-as sequencialmente à primeira máquina ainda não programada e utiliza-se o mesmo critério acima para definir a qual máquina será associada a nova tarefa- limite.

Este procedimento é repetido até que as m1 partes da sequência original de tarefas se-

jam alocadas às m1 máquinas do primeiro estágio.

Algoritmo Hd4

PASSO 1. No primeiro estágio, aplique a heurística de Stinson, considerando a matriz

formada pelos elementos

gk=1

[(

1− Aijk

)

sjk + pjk

]

, com i,j∈V1.

PASSO 2. Quebre a sequência circular obtida em cada ponto possível e selecione a se- quência com o menor tempo total de fluxo (considerando a tarefa fictícia ini- cial e os dados do primeiro estágio) como se fosse um problema de máquina única.

PASSO 3. Quebre a sequência obtida em m1 partes da forma mais equitativa possível e

aloque cada parte a uma máquina do primeiro estágio e vá para o estágio 2.

PASSO 4. Atualize as datas de liberação como as datas de término do estágio anterior.

PASSO 5. Analise todas as possibilidades de alocação tarefa-máquina e escolha a opção com a menor data de término.

PASSO 7. Vá para o próximo estágio e repita os PASSOS 4 a 6 até que todos os estágios

estejam programados.

Documentos relacionados