• Nenhum resultado encontrado

O modelo proposto segue a seguinte lógica: Cada estação de trabalho possui uma capacidade diária em horas, onde tarefas podem ser alocadas. Essa capacidade pode ser ampliada, ativando uma variável binária, que representa trabalho sob regime de hora extra, tal atividade, possui um custo maior do que as atividades alocadas em horário normal.

Dada uma data de entrega para cada grupo de peças que compõe um produto da empresa, o modelo aloca as tarefas para processar essas peças nas estações de trabalho a cada dia, que é a janela de tempo pré-definida, respeitando a sequência de processos que cada peça precisa passar, e respeitando a capacidade diária de cada estação de trabalho. Conhecendo o custo hora máquina e se a máquina está operando em horário normal ou regime de hora extra, o modelo monitora o custo de cada operação, assim, o objetivo do modelo é fazer a alocação das tarefas respeitado os prazos de entrega e minimizando o custo operacional. O modelo proposto não faz o sequenciamento de tarefas a cada dia, mas sim, indica quais tarefas ou quanto de cada tarefa deve ser processado em cada estação de trabalho a cada dia.

O modelo proposto utilizou algumas lógicas dos modelos para CLSP, porém, modificou a estrutura desses modelos consideravelmente. Os modelos para resolver CLSP fazem o monitoramento dos estoques intermediários à cada período de tempo e, baseado nas demandas dos produtos à cada período, fazem o dimensionamento dos lotes de fabricação. No modelo proposto não há a necessidade de monitoramento de estoque, e a demanda não é dada por período, mas sim, representada por uma data de entrega para um produto específico. Como citado anteriormente, os Small Buckets Models fazem o sequenciamento das tarefas simultaneamente ao dimensionamento dos lotes, visto que a janela de tempo escolhida é tão pequena, que apenas um tipo de peça/tarefa é alocado em cada janela. Para o modelo proposto não foi adotada uma janela de tempo que coubesse só uma tarefa, visto que algumas tarefas são realmente muito curtas, mas sim uma janela de tempo de um dia, que pode ser ampliada com hora extra ou não. Sendo assim, o modelo proposto acabou utilizando algumas ideias dos modelos de dimensionamento de lotas, mas tornando-se um modelo único, não podendo ser classificado como CLSP.

Dado um conjunto de p peças (p=1,2,...P) que são processadas em um conjunto de m máquinas (m=1,2,...,M), cada peça possui sua própria sequência t de tarefas (t=1,2,...T) e cada máquina processa apenas uma tarefa por vez. As tarefas são alocadas por dia d (d=1,2,...,D) e cada par máquina-dia (m,d) possui uma capacidade pré-definida, que pode ou não ser ampliada representando assim trabalho em regime de hora extra, ou ainda mais turnos de trabalho, até um limite de 24h. O modelo considera que todas as máquinas estão disponíveis no começo da simulação. Abaixo a lista de índices e variáveis e em seguida a formulação proposta. p : Peças;

t : Tarefas; m : Maquinas; d : Dias;

M1p : Subgrupo de peças p que compõe a máquina 1; M2p : Subgrupo de peças p que compõe a máquina 2; TPp,t : Tempo de processamento da peça p na tarefa t;

MAQp,t : Número da máquina onde a tarefa t da peça p deve ser processada;

CHMm : Custo Hora Máquina da máquina m;

MCOPm,d : Multiplicador do custo de operação da máquina m no dia d; CAPm : Capacidade normal diária da máquina m;

NOPm : Número de operadores ou máquinas do mesmo tipo; SPp,p2 : Indica se a peça p é suplementar da peça p2;

Fs : Multiplicador do custo para abrir segundo turno; Fhex : Multiplicador do custo para operar em hora extra; CMS : Custo de Makespan;

CS : Custo de Setup;

DLM1 : Data limite de entrega das peças da máquina 1; DLM2 : Data limite de entrega das peças da máquina 2;

xp,t,d : Indica o tempo processado da peça p na tarefa t no dia d; CT : Custo total;

Copm,d : Custo de operação da máquina m no dia d; ms : Makespan;

𝑦𝑚,𝑑{ 1 𝑠𝑒 𝑎𝑡𝑖𝑣𝑎 ℎ𝑜𝑟𝑎 𝑒𝑥𝑡𝑟𝑎 𝑛𝑎 𝑚á𝑞𝑢𝑖𝑛𝑎 𝑚 𝑛𝑜 𝑑𝑖𝑎 𝑑 0 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟á𝑟𝑖𝑜 𝑧𝑚,𝑑{1 𝑠𝑒 𝑎𝑡𝑖𝑣𝑎 𝑠𝑒𝑔𝑢𝑛𝑑𝑜 𝑡𝑢𝑟𝑛𝑜 𝑛𝑎 𝑚á𝑞𝑢𝑖𝑛𝑎 𝑚 𝑛𝑜 𝑑𝑖𝑎 𝑑 0 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟á𝑟𝑖𝑜 𝑠𝑝,𝑡,𝑑{1 𝑠𝑒 𝑎𝑡𝑖𝑣𝑎 𝑠𝑒𝑡𝑢𝑝 𝑑𝑎 𝑝𝑒ç𝑎 𝑝 𝑛𝑎 𝑡𝑎𝑟𝑒𝑓𝑎 𝑡 𝑛𝑜 𝑑𝑖𝑎 𝑑 0 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟á𝑟𝑖𝑜 𝑓𝑝,𝑡,𝑑{1 𝑠𝑒 𝑓𝑖𝑛𝑎𝑙𝑖𝑧𝑎 𝑎 𝑡𝑎𝑟𝑒𝑓𝑎 𝑡 𝑑𝑎 𝑝𝑒ç𝑎 𝑝 𝑛𝑜 𝑑𝑖𝑎 𝑑 0 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟á𝑟𝑖𝑜

ordd : Ordinário que representa o dia que está sendo considerado. Minimizar 𝐶𝑇 = ∑𝑚=1𝑀 ∑𝑑=1𝐷 𝐶𝑜𝑝𝑚,𝑑+ (𝑚𝑠 ∗ 𝐶𝑀𝑆) + (∑𝑝=1𝑃 ∑𝑇𝑡=1∑𝐷𝑑=1𝑠𝑝,𝑡,𝑑∗ 𝐶𝑆) (12) s.a. ∑𝐷𝑑=1𝑥𝑝,𝑡,𝑑 =𝑇𝑃𝑝,𝑡 ∀ 𝑝 = 1,2, … 𝑃 , 𝑡 = 1,2, … 𝑇 (13) ∑𝑃𝑝=1∑𝑇𝑡=1𝑥𝑝,𝑡,𝑑 ≤ 𝑁𝑂𝑃𝑚∗ 𝐶𝐴𝑃𝑚+ (𝑁𝑂𝑃𝑚∗ 𝑦𝑚,𝑑∗ 2,34) + (𝑁𝑂𝑃𝑚∗ 𝑧𝑚,𝑑 ∗ 13,36) 𝑚 = 1,2, … 𝑀 , 𝑑 = 1,2, … 𝐷 (14) 𝐶𝑜𝑝𝑚,𝑑 = (𝑀𝐶𝑂𝑃𝑚,𝑑∗ 𝐶𝐻𝑀𝑚∗ 𝑁𝑂𝑃𝑚)(𝑦𝑚,𝑑∗ 𝐹ℎ𝑒𝑥 ∗ 2,34 + 𝑧𝑚,𝑑∗ 𝐹𝑠 ∗ 13,36) + (∑𝑃𝑝=1∑𝑇𝑡=1𝑥𝑝,𝑡,𝑑∗ 𝐶𝐻𝑀𝑚∗ 𝑀𝐶𝑂𝑃𝑚,𝑑) ∀ 𝑚 = 1,2, … 𝑀 , 𝑑 = 1,2, … 𝐷 (15) ∑𝐷𝑑2=1𝑥𝑝,𝑡,𝑑2 ≤ (1 − 𝑓𝑝,𝑡,𝑑) ∗ 𝑇𝑃𝑝,𝑡 ∀ 𝑝 = 1,2, … 𝑃 , 𝑡 = 1,2, … 𝑇, 𝑑 = 1,2, … 𝐷, 𝑑2 > 𝑑 (16) 𝑠𝑝,𝑡,𝑑≤ 𝐺 ∗ ∑𝐷𝑑2=1𝑓𝑝,𝑡−1,𝑑2 ∀ 𝑝 = 1,2, … 𝑃 , 𝑡 = 1,2, … 𝑇, 𝑑 = 1,2, … 𝐷, 𝑠𝑒 𝑑2 < 𝑑 (17) 𝑚𝑠 ≥ 𝑜𝑟𝑑𝑑∗ 𝑓𝑝,𝑡,𝑑 ∀ 𝑝 = 1,2, … 𝑃 , 𝑡 = 1,2, … 𝑇, 𝑑 = 1,2, … 𝐷 (18) 𝑥𝑝,𝑡,𝑑 ≤ 𝑠𝑝,𝑡,𝑑∗ 𝐺 ∀ 𝑝 = 1,2, … 𝑃 , 𝑡 = 1,2, … 𝑇, 𝑑 = 1,2, … 𝐷 (19) ∑𝐷𝑑=1𝑓𝑝,𝑡,𝑑= 1 ∀ 𝑝 = 1,2, … 𝑃 , 𝑡 = 1,2, … 𝑇 (20) 𝑜𝑟𝑑𝑑 ∗ 𝑓𝑝,𝑡,𝑑 ≤ 𝐷𝐿𝑀1 ∀ 𝑀1𝑝 , 𝑡 = 1,2, … 𝑇, 𝑑 = 1,2, … 𝐷 (21) 𝑜𝑟𝑑𝑑 ∗ 𝑓𝑝,𝑡,𝑑 ≤ 𝐷𝐿𝑀2 ∀ 𝑀2𝑝 , 𝑡 = 1,2, … 𝑇, 𝑑 = 1,2, … 𝐷 (22) (𝑓𝑝,𝑇,𝑑− 1)𝐺 ≤ − ∑𝐷𝑑2𝑠𝑝,𝑡,𝑑 ∀ 𝑝, 𝑝2 = 1,2, … 𝑃 , 𝑡 = 1,2, … 𝑇, 𝑑1,2, … 𝐷, 𝑑2 < 𝑑, 𝑒 𝑠𝑒 𝑆𝑃𝑝,𝑝2 = 1 (23) 𝑓𝑝,𝑡,𝑑≤ 𝑠𝑝,𝑡,𝑑 ∀ 𝑝 = 1,2, … 𝑃 , 𝑡 = 1,2, … 𝑇, 𝑑 = 1,2, … 𝐷 (24) 𝐺(𝑠𝑝,𝑡,𝑑+ 𝑓𝑝,𝑡,𝑑−1) ≥ 𝑠𝑝,𝑡,𝑑−1 ∀ 𝑝 = 1,2, … 𝑃 , 𝑡 = 1,2, … 𝑇, 𝑑 = 1,2, … 𝐷 (25) 𝑥𝑝,𝑡,𝑑 ≥ 0 ∀ 𝑝 = 1,2, … 𝑃 , 𝑡 = 1,2, … 𝑇, 𝑑 = 1,2, … 𝐷 (26) 𝑦𝑚,𝑑 , 𝑧𝑚,𝑑 , 𝑠𝑝,𝑡,𝑑 𝑒 𝑓𝑝,𝑡,𝑑∈ (0,1) ∀ 𝑝 = 1,2, … 𝑃 , 𝑡 = 1,2, … 𝑇, 𝑑 = 1,2, … 𝐷 (27)

A função objetivo a ser minimizada (12) é composta de três parcelas, sendo a primeira referente ao custo operacional, a segunda parcela tem função de minimizar o Makespan e a terceira minimizar a quantidade de setups. As inequações (13) garantem o tempo de processamento de cada tarefa de cada peça seja representado pela variável “x”. As inequações (14) garantem que a quantidade de horas alocada em cada máquina em cada dia não seja maior que a capacidade em horas. Essa capacidade pode ser aumentada ativando os binários 𝑦𝑚,𝑑 e 𝑧𝑚,𝑑. As equações (15) definem o custo operacional de cada máquina a cada dia, o parâmetro multiplicador 𝑀𝐶𝑂𝑃𝑚,𝑑 foi definido com valor 1 de segunda à sexta, 2 para sábados e 3 para domingos como mostra a Figura 6. Este parâmetro força o modelo a programar tarefas preferencialmente de segunda à sexta-feira, caso necessário utiliza os sábados, caso ainda haja necessidade utiliza os domingos.

Figura 6 – Detalhe do modelo

Fonte: O autor.

As inequações (16) garantem que não haverá processamento da peça p na tarefa t após ser finalizada pelo binário f. As inequações (17) garantem a sequência de tarefas, ou seja, só libera setup da peça p na tarefa t se já houve conclusão na tarefa t-1 nos dias anteriores. A inequação (18) define o limite inferior para o Makespan, porém como ela está na função objetivo, este por fim assume o valor do dia da finalização da última tarefa de todas as tarefas sequenciadas. As inequações (19) forçam a ativação do binário 𝑠𝑝,𝑡,𝑑 (setup) sempre que alguma tarefa for agendada. As equações (20) dizem que toda a tarefa precisa ser finalizada. As inequações (21) e (22) definem o dia limite para finalizar as peças das máquinas 1 e 2. Podem ser criados quantos subgrupos de peças forem necessários, no exemplo deste modelo apenas 2 subgrupos foram sequenciados. As inequações (23) garantem

que a primeira tarefa da peça principal só seja iniciada após finalizada a última tarefa de seus suplementares. Neste exemplo a tarefa “T” representa a última tarefa e “t” qualquer tarefa. As inequações (24), em conjunto com outras equações do modelo, garantem que a ativação do binário 𝑓𝑝,𝑡,𝑑 ocorra no mesmo dia do último setup. As

inequações (25) fazem com que o setup fique ativado enquanto a peça não é finalizada. As funções (26) e (27) definem o domínio das variáveis.

O modelo proposto escrito no GAMS, com o problema LA19 utilizado para validação do modelo pode ser visto no Apêndice 2. Outras inequações foram incluídas no modelo pois mostraram-se efetivas para melhorar o desempenho computacional.

Documentos relacionados