• Nenhum resultado encontrado

MODELO CONJUNTO DE PROGRAMAÇÃO DA PRODUÇÃO E DIMENSIONAMENTO DE LOTES APLICADO A UMA INDÚSTRIA DE BEBIDAS

N/A
N/A
Protected

Academic year: 2021

Share "MODELO CONJUNTO DE PROGRAMAÇÃO DA PRODUÇÃO E DIMENSIONAMENTO DE LOTES APLICADO A UMA INDÚSTRIA DE BEBIDAS"

Copied!
12
0
0

Texto

(1)

MODELO CONJUNTO DE PROGRAMAÇÃO DA PRODUÇÃO E

DIMENSIONAMENTO DE LOTES APLICADO A UMA INDÚSTRIA DE

BEBIDAS

Prof. Dr. Alf Kimms

Technische Universität Bergakademie Freiberg Lessingstrasse 45, 09599, Freiberg, Alemanha.

alf.kimms@bwl.tu-freiberg.de Claudio Fabiano Motta Toledo.

Universidade Estadual de Campinas, FEEC, Densis.

Rua Albert Einstein, 400, CP 6101, CEP13083-970, Campinas, SP, Brazil cláudio@densis.fee.unicamp.br

Prof. Dr. Paulo Morelato França.

Universidade Estadual de Campinas, FEEC, Densis.

Rua Albert Einstein, 400, CP 6101, CEP13083-853, Campinas, SP, Brazil franca@densis.fee.unicamp.br

Abstract: The contribution of this paper is a mathematical description of the real-world process of bottling soft drinks at a bottling plant. A mixed--integer model describes a multi-level, capacity-constrained lot sizing and scheduling problem with parallel machines and sequence dependent setup times and costs. The mathematical model is evaluated on a set of small and large instances which are solved using a GAMS/CPLEX solver. The solver looks for solutions within one hour of computational time. Optimal or best feasible solutions are found for small instances. This approach is not practical to solve large instances and we try to obtain a lower bound for them by performing three types of variable relaxation. Keywords: lot sizing, scheduling, mixed--integer modeling; variable relaxation.

1 – Introdução

A formulação matemática para um problema industrial será apresentada e avaliada neste trabalho. O problema evolve o dimensionamento e a programação da produção de refrigerantes em uma planta industrial. Diversos aspectos reais estão presentes no problema como capacidade disponível limitada, custos de armazenamento, custos de produção, custos e tempos de troca dependentes da seqüência e um conjunto de máquinas paralelas entre outros. A seção 2 apresenta detalhes sobre o problema industrial. Uma visão geral de problemas de dimensionamento (e programação) de lotes pode ser encontrada em Drexl (1997). O problema estudado aqui também envolve tempos de troca dependentes da seqüência e discussões a respeito podem ser encontradas em Fleischmann (1994). Um trabalho recente envolvendo custos de troca dependentes da seqüência em máquinas paralelas foi apresentado por Kang (1999). Um dos poucos procedimentos ótimos para problemas de dimensionamento e programação da produção com tempos de troca dependentes da seqüência foi proposto por Haase (2000). Para problemas multi-nível de dimensionamento de lote existem algumas publicações como Stadtler (1996) e Tempelmeier (1996), mas para problemas multi-nível de dimensionamento de lotes e programação da produção a literatura é mais escassa (Kimms, 1997 e 1997b). Um artigo sobre máquinas paralelas com demanda constante foi proposto por Carreno (1990), mas em nosso caso a demanda é dinâmica. Os benefícios em se dedicar uma ou mais máquinas em paralelo para um problema foi discutido por Campbell (1992). Outras discussões incluindo máquinas paralelas são encontradas em deMatta (1995), Kuhn (2002), Quadt (2003) e Meyr (2002).

2 – Problema Industrial

(2)

produzir diferentes tipos de produtos (bebidas) que, num estágio subseqüente, devem ser embalados/engarrafados em linhas de produção disponíveis em paralelo. Para realizar a produção, a matéria-prima de um produto é diluída juntamente com outros ingredientes dando origem a um xarope. Diferentes tipos de xaropes são preparados e armazenados em tanques de onde escoam para linhas de engarrafamento. O produto final (bebida) é definido pela combinação do tipo de xarope escoado pelo tanque com o tipo de engarrafamento realizado pela linha de produção. Por exemplo, um mesmo xarope pode ser produzido em garrafas de 600 ml ou em garrafas de 2 litros de acordo com a demanda estabelecida. O problema a ser resolvido envolve o dimensionamento e a programação dos diversos tipos de xarope nos tanques e o dimensionamento e a programação dos diversos tipos de produtos nas linhas de engarrafamento (Figura 1).

Um xarope somente é trocado por outro após ter sido consumido completamente pelas linhas de engarrafamento. Além disso, a troca de xaropes nos tanques requer sua limpeza e, dependendo do tipo de xarope anteriormente armazenado, a limpeza será mais rápida ou não. A mudança no tipo de engarrafamento realizado por uma linha também requer um tempo de ajuste e, dependendo do tipo de engarrafamento realizado anteriormente, o tempo de ajuste necessário é variável. Assim, um tempo de troca (preparo) dependente da seqüência será gasto tanto nos tanques quanto nas linhas de engarrafamento. O tempo de troca ocasiona um custo, já que tanques e linhas deixam de ser utilizados; logo um custo de troca dependente da seqüência também está presente no problema.

3 – Modelo matemático

As variáveis e parâmetros utilizados aqui estão definidos no apêndice. O modelo matemático linear inteiro-misto procura minimizar os custos de produção, preparo e estoque envolvidos. A primeira linha da função objetivo (1) apresenta os custos referentes à produção nas linhas e a segunda linha ao armazenamento nos tanques. As demandas que não forem atendidas serão armazenadas na variável qj0

e são altamente penalizadas.

+

+

+

∑∑

∑∑ ∑

∑ ∑∑ ∑

= = = = = = = = =

s

z

h

I

v

q

jls J j L l S T s jl jt J j T t j ijl J i J j L l S s ijl 1 1 . 1 1 1 1 1 1 1

+

+

+

∑ ∑ ∑

∑ ∑ ∑

∑ ∑ ∑ ∑

= = = = = = = = = =

s

z

h

I

v

q

jks J j L k S T s jl T t jk J j L k T t j ijl J i J j L k S s ijl m 1 1 . 1 . , 1 1 1 1 1 1 1

= J j j

q

M

1 0 (1) Inicialmente, precisamos garantir que um produto é produzido apenas na linha capaz de produzi-lo, que ocorre um único produto por lote e que não há produção sem a atribuição de um produto ao lote.

(3)

produzido em l. Para cada primeiro lote em um macro período t, parte do tempo de preparo poderá ocorrer no final do macro período anterior (ωlt >0) e isso deve ser levado em conta.

1 1 , − + ≥

x

x

z

ijls jls ils i,j=1,...,J ; l=1,…,L; s=1,…,T.S (5)

∑ ∑ ′

= =

=

J i J j ijls ijl ls

z

1 1

σ

σ

i,j=1,...,J ; l=1,…,L; s=1,…,T.S (6) 1 ) 1 ( , − +

l t S lts

σ

ω

l=1,...,L; t=1,...T; (7)

ω

τ

τ τ ( 1) 1 ,. , , 1

.

+ + − =

E lt S t l T t m

x

C

m

C

t

l=1,…,L; t=1,…,T-1 (8)

+ − = = + ≤ ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + S t S t s lt J j jl jls ls

p

q

C . 1 ) 1 (

σ

1

ω

l=1,...,L; t=1,...T (9)

As equações de balanço de estoque aparecem a seguir e consideram as q0j demandas não atendidas.

d

q

q

I

I

j L l S s jls j j j 1 1 1 0 0 1= + +

∑ ∑

− = = j=1,...,J; (10)

d

q

I

I

jt L l S t S t s jls t j jt

=

+

∑ ∑

= = − + − 1 . 1 ) 1 ( 1 , j=1,...,J; t=2,...,T (11)

O tempo entre o final de um lote s e o final do lote anterior s-1 deve ser suficiente para que ocorra a produção do produto em s mais o respectivo tempo de preparo.

= − + − = + − =

+

J j jl jls ls E s l T t T t m E ls T t T t m

q

p

x

C

x

C

m m m m , 1, 1 . 1 ) 1 ( . 1 ) 1 (

σ

τ

τ

τ τ τ τ l=1,...,L;t=1,...,T; s=(t-1)S+1,…,T.S (12)

= − + + − + − + − =

+

+

J j jl jl t S lt S t l E S t l T t T t m

q

p

x

C

t

C

m m ,( 1) 1, ,( 1) 1 1 ,( 1) 1 . 1 ) 1 (

)

1

(

σ

ω

τ

τ τ l=1,...,L;t=1,...,T; s=1,…,T.S (13) Todo lote deverá ter um único início e um único fim em cada linha:

+ − =

=

T t T t E ls m m

x

. 1 ) 1 (

1

τ τ l=1,...L; t=1,...,T; s=(t-1)S+1,…,T.S (14)

+ − =

=

T t T t B ls m m

x

. 1 ) 1 (

1

τ τ l=1,...L; t=1,...,T; s=(t-1)S+1,…,T.S (15)

Se um lote não é usado, então a produção deve ser nula. Caso contrário, uma produção mínima ocorre:

=

J j ls jls jl

q

Cu

p

1 l = 1,...,L; s=1,...,T.S (16)

=

J j jls ls

q

u

1

ε

l = 1,...,L; s=1,...,T.S (17)

Se um lote não é usado por algum produto, nenhum intervalo de tempo é reservado para sua produção:

u

T

x

x

ls m T t T t B ls T t T t E ls m m m m

+ − = + − = . 1 ) 1 ( . 1 ) 1 ( τ τ τ

τ

τ

τ

l=1,...L; t=1,...,T; s=(t-1)S+1,…,T.S (18)

u

x

x

ls T t T t E ls T t T t B ls m m m m

+ − = + − = . 1 ) 1 ( . 1 ) 1 ( τ τ τ

τ

τ

τ

l=1,...L; t=1,...,T; s=(t-1)S+1,…,T.S (19)

Se um lote não é usado, seu início será ajustado para ocorrer logo após o término do lote anterior:

(4)

u

T

T

t

x

l t S m m T t T t B S t l m m ,( 1) 1 . 1 ) 1 ( ,( 1) 1,

)

1

)

1

((

− + + − = − +

+

τ

τ

τ l=1,...L; t=1,...,T (21)

Um lote somente é utilizado pela linha se o lote anterior já houver sido efetivamente ocupado:

u

u

ls

l,s+1 l=1,...L; t=1,...,T; s=(t-1)S+1,…,T.S-1 (22)

O início e o fim de um lote indicam os micro-períodos onde a produção realmente começa e termina:

q

p

x

C

x

C

u

jls J j jl T t T t B m ls T t T t E m ls ls m m m m

= + − = + − =

+

1 . 1 ) 1 ( . 1 ) 1 ( τ τ τ

τ

τ

τ

ε

l=1,...L; t=1,...,T; s=(t-1)S+1,…,T.S (23)

C

q

p

x

C

x

C

jls m J j jl T t T t B m ls T t T t E m ls m m m m

= + − = + − = 1 . 1 ) 1 ( . 1 ) 1 ( τ τ τ

τ

τ

τ

l=1,...L; t=1,...,T; s=(t-1)S+1,…,T.S (24) A quantidade de produtos em um lote de uma linha deverá estar armazenada nos tanques. Além disso, a retirada do produto dos tanques ocorrerá dentro do intervalo de produção do lote na linha:

= = − +

=

L k T t T t kjls jls m m

q

q

1 . 1 ) 1 ( τ τ l=1,...L; t=1,...,T; s=(t-1)S+1,…,T.S, τ=(t-1)Tm +1,…,t.Tm (25)

∑ ∑

= = ′= − + ′

L k J j T t T t E ls m kjls jl m m

x

C

q

p

1 1 . 1 ) 1 ( τ τ τ l=1,...L; t=1,...,T; s=(t-1)S+1,…,T.S, τ=(t-1)Tm+1,…,t.Tm (26)

∑ ∑

= = ′= − + ′

L k J j T t T t B ls m kjls jl m m

x

C

q

p

1 1 . 1 ) 1 ( τ τ τ l=1,...L; t=1,...,T; s=(t-1)S+1,…,T.S, τ=(t-1)T m +1,…,t.Tm (27)

No primeiro micro período de produção de um lote, algum tempo δls é reservado para troca de

produtos ou indica tempo ocioso. O tempo restante neste micro período é utilizado para produção.

= − + − = + − =

+

=

J j jl jls m B s l T t T t m E ls T t T t m ls

C

x

C

x

C

p

q

m m m m , 1, 1 . 1 ) 1 ( . 1 ) 1 (

1

τ

τ

τ τ τ τ

δ

l=1,...L; t=1,...,T; s=(t-1)S+1,…,T.S, τ=(t-1)Tm +1,…,t.Tm (28)

(

)

∑ ∑

= =

+

L k J j m B ls ls m kjls jl

q

C

x

C

p

1 1

1

τ τ

δ

l=1,...L; t=1,...,T; s=(t-1)S+1,…,T.S, τ=(t-1)Tm+1,…,t.Tm (29) As restrições relativas aos tanques serão consideradas agora. Da mesma forma que ocorreu nas restrições (2) e (3), teremos xaropes armazenados nos devidos tanques e apenas um xarope por lote.

0

=

x

jks j=1,...,J; k∈{1,...,

L

}\

L

j; s = 1,..., TS (30)

=

=

J j 1 jks

1

x

k=1,...

L

; s = 1,...,TS (31)

A quantidade efetivamente atribuída a um tanque deve satisfazer sua capacidade máxima e mínima.

(5)

restrições para o tempo de preparo são semelhantes àquelas apresentadas para linhas.

u

x

x

z

ijks

jks

+

ik,s−1

2

+

ks i,j=1,...,J, k=1,...

L

; s = 1,...,T.S (35)

u

x

x

jks

jk,s−1

ks i,j=1,...,J, k=1,...

L

; s = 1,...,T.S (36)

∑ ∑ ′

= =

=

J i J j ijk ijks ks

z

1 1

σ

σ

(37)

k,(t1)S+1 kts

σ

ω

i,j=1,...,J, k=1,...

L

; s = 1,...,T.S (38)

+ − =

+

S t S t s ks kt

C

. 1 ) 1 (

σ

ϖ

i,j=1,...,J, k=1,...

L

; s = 1,...,T.S (39)

O lote armazenado em um tanque corresponde à quantidade distribuída nos micro períodos.

+ − =

=

tT T t jks jks m m

q

q

. 1 ) 1 ( τ τ j=1,...,J, k=1,...

L

; t=1,…,T; s = 1,...,T.S (40)

Os lotes armazenados nos tanques devem atender as equações de balanço de estoque, onde é levado em conta o que é retirado do tanque para ser produzido nas linhas. Para coordenar linhas e tanques, exige-se que a quantidade a ser retirada esteja armazenada pelo menos um micro período antes:

∑ ∑ ∑

= = = − + + − = −

+

=

J i L l S t S t s ji kils S t S t s jks jk jk

I

q

r

q

I

1 1 . 1 ) 1 ( . 1 ) 1 ( 1 ,τ τ τ τ j=1,...,J, k=1,...

L

; t=1,…,T; τ = (t-1)Tm+1,...,t..Tm (41)

∑∑ ∑

= = = − + +

J i L l S t S t s ji kils jk

r

q

I

1 1 . 1 ) 1 ( ,τ 1 τ j=1,...,J, k=1,...

L

; t=1,…,T; τ = (t-1)T m +1,...,t..Tm-1 (42)

Um lote é programado tal que seu tempo de preparo ocorra entre o fim da produção do lote anterior e o final do lote considerado. Aqui parte do tempo de preparo também pode ocorrer no macro período anterior.

ϖ

τ

τ τ ,. , , 1 . 1 ) 1 (

.

+ + − =

E kt S t k T t T t m

x

C

m m

C

t

k=1,...

L

; t=1,…,T-1; (43)

σ

τ

τ

τ τ τ τ ks E s k T t T t m E ks T t T t m

x

C

x

C

m m m m

+ − = + − =

, 1, . 1 ) 1 ( . 1 ) 1 ( k=1,...

L

; t=1,…,T; s = (t-1) S+1,...,t.S (44)

ϖ

σ

τ

τ τ k t S kt E S t k T t T t m

C

t

x

C

m m

+

+ + − + − =

,( 1) 1, ,( 1). 1 . 1 ) 1 (

)

1

(

k=1,...

L

; t=1,…,T (45)

O final do tempo de preparo (troca) de um lote é único e o xarope estará disponível para produção apenas quando o tempo de preparo for completado:

+ − =

=

T t T t E ks m m

x

. 1 ) 1 (

1

τ τ k=1,...

L

; t=1,…,T; s = (t-1) S+1,...,t.S;τ = (t-1)Tm +1,...,t..Tm (46)

=

J j E ks k jks

Q

x

q

1 τ τ k=1,...

L

; t=1,…,T; s = (t-1) S+1,...,t.S;τ = (t-1)Tm+1,...,t..Tm (47) O início do tempo de preparo de um tanque também deverá ser único:

(6)

O intervalo no qual um lote é programado será positivo, se e somente se ocorre tempo de preparo:

u

T

x

x

ks m T t T t B ks T t T t E ks m m m m

+ − = + − = . 1 ) 1 ( . 1 ) 1 ( τ τ τ τ

τ

τ

k=1,...

L

; t=1,…,T; s = (t-1) S+2,...,t.S; (51)

u

T

x

x

k t S m T t T t B S t k T t T t E S t k m m m m ,( 1) 1 . 1 ) 2 ( , 1 ) 1 ( , . 1 ) 1 ( , 1 ) 1 ( , − + + − = − + + − = − +

τ τ τ τ

τ

τ

k=1,...

L

; t=2,…,T; (52)

u

T

x

x

k m T B k T E k m m 1 1 1 1 1

= = τ τ τ

τ

τ

τ

k=1,...

L

; (53)

u

x

x

ks T t T t E ks T t T t B ks m m m m

+ − = + − = . 1 ) 1 ( . 1 ) 1 ( τ τ τ τ

τ

τ

k=1,...

L

; t=1,…,T; s = (t-1) S+2,...,t.S; (54)

u

x

x

k t S T t T t E S t k T t T t B S t k m m m m ,( 1) 1 . 1 ) 1 ( , 1 ) 1 ( , . 1 ) 2 ( , 1 ) 1 ( , − + + − = − + + − = − +

τ τ τ τ

τ

τ

k=1,...

L

; t=2,…,T; (55)

u

x

x

k T E k T B k m m 1 1 1 1 1

= = τ τ τ

τ

τ

τ

k=1,...

L

; (56)

Lotes vazios são programados logo após o fim dos lotes anteriores para evitar redundâncias.

u

T

x

x

ks m T t T t E s k T t T t B ks m m m m

+ − = − + − = . 1 ) 1 ( , 1, . 1 ) 1 ( τ τ τ

τ

τ

τ

k=1,...

L

; t=1,…,T; s = (t-1) S+2,...,t.S; (57)

u

T

T

t

x

k t S m m T t T t B S t k m m ,( 1) 1 . 1 ) 1 ( ,( 1) 1,

)

1

)

1

((

+ + − = − +

+

τ

τ

τ k=1,...

L

; t=2,…,T; (58)

u

T

x

k m T B k m 1 1 1

1≤

= τ

τ

τ k=1,...

L

; (59)

Lotes vazios ficam por último dentro dos macro-períodos:

u

u

ksk,s+1 k=1,...

L

; t=1,…,T; s = (t-1) S+1,...,t.S-1; (60)

Sem perda de generalidade, o tempo necessário para preparo de um tanque será um inteiro múltiplo da capacidade do micro período. Assim, o início e o fim de um lote em um tanque é igual ao tempo necessário para se trocar o xarope no tanque:

σ

τ

τ

τ τ τ τ ks T t T t B ks m T t T t E ks m ks m m m m m

C

x

C

x

u

C

+

=

+ − = + − = . 1 ) 1 ( . 1 ) 1 ( k=1,...

L

; t=1,…,T; s = (t-1) S+2,...,t.S; (61)

σ

τ

τ

τ τ τ τ ,( 1) 1 . 1 ) 2 ( ,( 1) 1, . 1 ) 1 ( ,( 1) 1, 1 ) 1 ( , − + + − = − + + − = − + + −

+

=

k t S T t T t B S t k m T t T t E S t k m S t k m m m m m

C

x

C

x

u

C

k=1,...

L

; t=2,…,T; (62)

ω

σ

τ

τ

τ τ τ 1 1τ 1 1 1 1 1 k k T B k m T E k m k m m m

x

C

x

C

u

C

+

=

= = k=1,...

L

(63)

Um tanque poderá ser reabastecido apenas quando estiver vazio:

(7)

k=1,...

L

; s = (t-1) S+1,...,t.S+1;τ = (t-1)Tm

+1,...,t..Tm (65)

4 – Resultados Computacionais

O modelo matemático foi avaliado através da ferramenta computacional GAMS utilizando como solver o pacote CPLEX. Os testes foram realizados em um Pentium IV com 2.8 GHz. Um conjunto de instâncias de pequena e elevada dimensão foi criado. O Gams/Cplex foi ajustado para levar no máximo 1 hora em cada instância.

4.1 – Instâncias de pequena dimensão:

Um conjunto de 10 instâncias foi criado para cada uma das 9 combinações de parâmetros presentes na Tabela 1 e para cada macro-período T=1,2,3,4. Logo, um total de 10x9x4 = 360 instâncias foram avaliadas.

L

L

J J S S 2 2 2 1 2 2 2 2 3 2 3 2 2 2 4 2 3 2 3 3 2 1 2 2 3 3 3 2 3 2 3 3 4 2 3 2 4 3 2 1 2 2 4 3 3 2 3 2 4 3 4 2 3 2

Tabela 1 – Parâmetros para instâncias de pequena dimensão

Outros parâmetros também utilizados para gerar instâncias foram: • dit∈ [0,20000],

h

j

=

h

j

=

1

,

Q

=1000

k e

Q

k=5000

σ

'

ijl

[

0,5;1

]

,

σ

'

ikl

[ ]

1

;

2

, pjl ∈ [1000, 2000] e rji ∈ [0.3, 3].

A Tabela 2 apresenta os resultados obtidos quando T=1. Cada combinação

L

/

L

/

J

/

J

representa um conjunto com 10 instâncias. A coluna # s* tem o número de soluções ótimas e # sFact tem o número de soluções factíveis retornadas quando a solução ótima não é encontrada. O valor médio (Avg), máximo (Max), mínimo (Min) e o desvio padrão (Std) do gap e cpu também são listados. O gap é o desvio entre a solução retornada pelo método e o limitante inferior obtido.

Soluções Gap (%) CPU (seg.)

J

J

L

L

/

/

/

# s*

# sFact Avg Max Min Std Avg Max Min Std

2 / 2 / 2 / 1 10 0 0,00 0,00 0,00 0,00 2,08 10,22 0,09 3,14 2 / 2 / 3 / 2 10 0 0,00 0,00 0,00 0,00 0,96 4,06 0,09 1,25 2 / 2 / 4 / 2 10 0 0,00 0,00 0,00 0,00 0,77 2,11 0,22 0,61 3 / 2 / 2 / 1 10 0 0,00 0,00 0,00 0,00 573,32 2323,84 2,53 839,98 3 / 2 / 3 / 2 10 0 0,00 0,00 0,00 0,00 151,79 513,77 0,33 218,89 3 / 2 / 4 / 2 10 0 0,00 0,00 0,00 0,00 46,26 240,52 0,67 72,36 4 / 2 / 2 / 1 2 8 1,13 3,23 0,00 1,11 3068,64 3600,0 10,73 1203,42 4 / 2 / 3 / 2 8 2 0,55 3,03 0,00 1,17 989,39 3600,0 0,78 1474,24 4 / 2 / 4 / 2 7 3 0,80 3,05 0,00 1,29 1356,72 3600,0 18,39 1621,32 Tabela 2 – Conjuntos de instâncias com T=1

(8)

Soluções Gap (%) CPU (seg.)

J

J

L

L

/

/

/

# s*

# sFact Avg Max Min Std Avg Max Min Std

2 / 2 / 2 / 1 10 0 0,00 0,00 0,00 0,00 28,27 107,97 1,02 34,30 2 / 2 / 3 / 2 6 4 1,50 7,42 0,00 2,51 1703,08 3600,00 17,09 1697,02 2 / 2 / 4 / 2 6 4 1,02 4,49 0,00 1,54 1545,06 3600,00 6,31 1775,13 3 / 2 / 2 / 1 1 9 0,82 1,71 0,00 0,52 3365,86 3600,00 1258,02 740,62 3 / 2 / 3 / 2 0 10 3,15 11,75 0,21 3,66 3600,00 3600,00 3600,00 0,00 3 / 2 / 4 / 2 1 9 2,21 7,59 0,00 2,21 3260,23 3600,00 201,67 1074,67 4 / 2 / 2 / 1 0 10 1,23 2,41 0,27 0,78 3600,00 3600,00 3600,00 0,00 4 / 2 / 3 / 2 1 9 1,07 3,48 0,00 1,01 3254,55 3600,00 144,70 1092,69 4 / 2 / 4 / 2 0 10 4,23 17,45 0,62 4,99 3600,00 3600,00 3600,00 0,00

Tabela 3 – Conjuntos de instâncias com T=2

O Gams/Cplex começa a ter problemas para determinar a solução ótima. Um maior número de soluções apenas factíveis passa a ser retornado, provocando um aumento no tempo computacional e no valor do gap. Essa tendência é confirmada pelos resultados obtidos para T=3 e T=4 nas Tabelas 4 e 5.

Soluções Gap (%) CPU (seg.)

J

J

L

L

/

/

/

# s*

# sFact Avg Max Min Std Avg Max Min Std

2 / 2 / 2 / 1 2 8 1,23 2,69 0,00 0,87 3146,80 3600,00 1101,94 961,77 2 / 2 / 3 / 2 3 7 2,37 6,65 0,00 2,34 3076,89 3600,00 6,33 1193,28 2 / 2 / 4 / 2 3 7 6,07 20,09 0,00 6,92 2911,83 3600,00 188,92 1330,87 3 / 2 / 2 / 1 0 10 1,49 2,89 0,04 0,86 3600,00 3600,00 3600,00 0,00 3 / 2 / 3 / 2 0 10 5,79 14,81 1,93 4,21 3600,00 3600,00 3600,00 0,00 3 / 2 / 4 / 2 0 10 4,70 13,22 1,14 3,50 3600,00 3600,00 3600,00 0,00 4 / 2 / 2 / 1 1 9 1,54 3,69 0,00 1,09 3281,30 3600,00 412,27 1008,07 4 / 2 / 3 / 2 0 10 9,41 29,44 0,58 9,19 3600,00 3600,00 3600,00 0,00 4 / 2 / 4 / 2 0 10 7,23 14,08 1,67 3,98 3600,00 3600,00 3600,00 0,00

Tabela 4 – Conjuntos de instâncias com T=3

Soluções Gap (%) CPU (seg.)

J

J

L

L

/

/

/

# s*

# sFact Avg Max Min Std Avg Max Min Std

2 / 2 / 2 / 1 1 9 1,50 3,34 0,00 0,99 3377,44 3600,00 1373,91 703,97 2 / 2 / 3 / 2 1 9 5,36 11,75 0,00 4,04 3244,53 3600,00 44,50 1124,38 2 / 2 / 4 / 2 0 10 4,29 15,84 0,29 5,17 3600,00 3600,00 3600,00 0,00 3 / 2 / 2 / 1 0 10 1,71 2,92 0,72 0,62 3600,00 3600,00 3600,00 0,00 3 / 2 / 3 / 2 0 10 8,25 22,32 1,72 6,27 3600,00 3600,00 3600,00 0,00 3 / 2 / 4 / 2 0 10 8,54 15,75 1,81 4,93 3600,00 3600,00 3600,00 0,00 4 / 2 / 2 / 1 0 10 1,71 3,12 0,48 0,82 3600,00 3600,00 3600,00 0,00 4 / 2 / 3 / 2 0 10 8,79 19,21 1,40 5,62 3600,00 3600,00 3600,00 0,00 4 / 2 / 4 / 2 0 10 11,02 20,78 3,35 6,16 3600,00 3600,00 3600,00 0,00

Tabela 5 – Conjuntos de instâncias com T=4

(9)

Conjuntos de Instâncias

Total 2/2/2/1 2/2/3/2 2/2/4/2 3/2/2/1 3/2/3/2 3/2/4/2 4/2/2/1 4/2/3/2 4/2/4/2

0/1 430 574 598 645 861 897 957 1029 1077

Var. 1073 2014 2475 1844 3553 4422 3072 4433 5590

Equações 1163 1859 2067 1736 2764 3128 2659 3339 3759

Tabela 6 – Total de variáveis 0/1, total de variáveis e total de equações com T=4

O número de equações e variáveis envolvido pode justificar a dificuldade encontrada pela ferramenta computacional em determinar soluções ótimas dentro de 1 hora de tempo computacional. O Gams/Cplex precisa em T=4 solucionar modelos com um total de variáveis binárias entre 430 e 1077.

4.2 – Instâncias de elevada dimensão:

Os resultados computacionais anteriores indicam a dificuldade que é encontrar soluções ótimas ou pelo menos factíveis em um tempo computacional razoável para problemas de elevada dimensão. Por isso, iremos usar a ferramenta computacional para solucionar versões relaxadas do modelo matemático. Três versões serão avaliadas:

• Relax1: todas as variáveis binárias do modelo matemático são relaxadas (contínuas). • Relax2: apenas as variáveis

u

ls e

u

ks permanecem como binárias.

• Relax3: apenas as variáveis

u

ls,

u

ks,

x

jls e

x

jks permanecem como binárias. Os novos parâmetros para criação das instâncias de elevada dimensão estão na Tabela 7.

L

L

J J S S

T

T

m 5 5 10 5 5 3 4 10 5 5 15 8 8 4 4 10 5 5 10 5 5 3 8 10 5 5 15 8 8 4 8 10 5 5 10 5 5 3 12 10 5 5 15 8 8 4 12 10

Tabela 7 – Parâmetros para instâncias de grande dimensão

A Tabela 8 apresenta o número de soluções ótimas (#s*), soluções factíveis não ótimas (#sFact.) e soluções não retornadas (#ssemSol ) dentro do tempo limite de 3600 segundos.

Relax1 Relax2 Relax3

T

J

J

L

L

/

/

/

/

#s*

#s

Fact.

#s

semSol

#s* #s

Fact.

#s

semSol

#s* #s

Fact.

#s

semSol

5/5/10/5/4 10 0 0 6 4 0 0 5 5 5/5/15/8/4 8 2 0 0 10 0 0 0 10 5/5/10/5/8 10 0 0 0 8 2 0 0 10 5/5/15/8/8 8 2 0 0 2 8 0 0 10 5/5/10/5/12 10 0 0 0 10 0 0 0 10 5/5/15/8/12 8 2 0 0 0 10 0 0 10

Tabela 8 – Número e tipo de soluções retornadas pelo método

(10)

Relax1 - Cpu (seg) Relax2 - Cpu (seg) Relax3 - Cpu (seg)

T

J

J

L

L

/

/

/

/

Avg Max Min Std Avg Max Min Std Avg Max Min Std

5/5/10/5/4 19,63 96,72 3,05 28,21 1876,71 3600 239,45 1519,71 3600,00 3600,00 3600,00 0,00 5/5/15/8/4 1343,70 3600,00 162,69 1483,76 3600,00 3600 3600 0,00 3600,00 3600,00 3600,00 0,00 5/5/10/5/8 247,49 1295,91 22,42 377,28 3600,00 3600 3600 0,00 3600,00 3600,00 3600,00 0,00 5/5/15/8/8 1275,38 3600,00 184,00 1331,37 3600,00 3600 3600 0,00 3600,00 3600,00 3600,00 0,00 5/5/10/5/12 48,47 158,67 8,97 46,48 3600,00 3600 3600 0,00 3600,00 3600,00 3600,00 0,00 5/5/15/8/12 929,51 2690,31 92,48 964,67 3600,00 3600 3600 0,00 3600,00 3600,00 3600,00 0,00

Tabela 9 – Tempo computacional em segundos

O tempo computacional gasto em Relax2 e Relax3 demonstra a dificuldade em se resolver instâncias de dimensão mais elevada. O tempo limite foi alcançado pelo método de resolução na maioria das instâncias e muitas vezes sem retornar soluções factíveis. A justificativa para isso reside na complexidade dos modelos solucionados. A Tabela 10 apresenta informações que suportam essa idéia.

T

J

J

L

L

/

/

/

/

Total Var. Total Var. 0/1 Relax2 Total Var. 0/1 Relax3

5/5/10/5/4 71961 160 1460 5/5/15/8/4 180906 240 3280 5/5/10/5/8 143961 320 2920 5/5/15/8/8 361846 480 6560 5/5/10/5/12 215961 480 4380 5/5/15/8/12 542786 720 9840

Tabela 10 – Número de variáveis nos modelos

Um considerável número de variáveis (binárias e contínuas) está presente em cada instância como esperado em instâncias que consideramos de elevada dimensão. O número de variáveis binárias em Relax3 fica acima de 1000 em todas as instâncias. Relax2 também apresenta uma quantidade relevante de variáveis binárias, além das demais variáveis contínuas. Por exemplo, um total de 71961 variáveis está presente em 5/5/10/5/5 sendo que 160 são binárias em Relax2 e 1460 em Relax3. Dessa forma, a determinação de soluções factíveis pela ferramenta computacional mostra-se proibitiva se pensarmos em considerar todas as variáveis binárias presentes no modelo proposto.

5 – Conclusões

Um modelo matemático capaz de representar um problema industrial foi apresentado. O problema industrial é um problema multi-nível de dimensionamento de lote e programação da produção em máquinas paralelas com custos e tempos de troca dependentes da seqüência. O modelo proposto busca representar todas essas características e também sincronizar a produção nos dois níveis (tanques e linhas). Isso levou a uma formulação matemática bastante complexa que é refletida pelos resultados computacionais obtidos para instâncias de pequena e elevada dimensão. O objetivo era determinar soluções em no máximo 1 hora. O pacote computacional Gams/Cplex foi utilizado e encontrou dificuldades em determinar soluções ótimas em instâncias de pequena dimensão. Instâncias de elevada dimensão foram solucionadas apenas quando variáveis binárias foram relaxadas. Isso nos leva a conclusão de que a melhor abordagem para se resolver tal problema é através do uso de meta-heurísticas. Atualmente, duas meta-heurísticas baseadas em Algoritmos Genéticos (AG) e Algoritmos Meméticos (AM) estão sendo implementadas. Um novo tipo de codificação para os indivíduos do AG é proposto com operadores genéticos desenvolvidos especificamente para o problema aqui tratado. Uma busca local também é criada para explorar a vizinhança dessa nova codificação, sendo incorporada ao AG resultando em um AM. Os resultados dessas meta-heurísticas serão apresentados futuramente.

6 – Agradecimentos

(11)

Referências

CAMPBELL, G.M. (1992) - Using Short-Term Dedication for Scheduling Multiple Products on Parallel Machines. Production and Operations Management Vol. 1, pp.295-307.

CARRENO, J.J. (1990) - Economic Lot Scheduling for Multiple Products on Parallel Identical Processors. Management Science Vol. 36, pp.348-358.

DE MATTA, R., GUIGNARD, M. (1995) - The Performance of Rolling Production Schedules in a Process Industry. IIE Transactions Vol. 27, pp.564-573.

DREXL, A., KIMMS, A. (1997) - Lot Sizing and Scheduling - Survey and Extensions. European Journal of Operational Research Vol. 99, pp.221-235.

FLEISCHMANN, B. (1994) - The Discrete Lot--Sizing and Scheduling Problem with Sequence-Dependent Setup Costs. European Journal of Operational Research Vol.75, pp.395-404.

HAASE, K., KIMMS, A. (2000) - Lot Sizing and Scheduling with Sequence Dependent Setup Costs and Times and Efficient Rescheduling Opportunities. International Journal of Production Economics, Vol.66, pp.159-169.

KANG, S., MALIK, K., THOMAS, L.J. (1999) - Lotsizing and Scheduling on Parallel Machines with Sequence--Dependent Setup Costs. Management Science, Vol.45, pp.273-289.

KIMMS, A. (1997) - Demand Shuffle - A Method for Multi-Level Proportional Lot Sizing and Scheduling, Naval Research Logistics, Vol.44,pp.319-340.

KIMMS, A. (1997) - Multi-Level Lot Sizing and Scheduling, Heidelberg., Physica.

KUHN, H., QUADT, D., (2002) - Lot Sizing and Scheduling in Semiconductor Assembly - A Hierarchical Planning Approach. In: Mackulak, G.T., Fowler, J.W., Schömig, A., (eds.),

Proceedings of the International Conference on Modeling and Analysis of Semiconductor Manufacturing, Tempe, USA, pp.211-216.

MEYR, H., (2002) - Simultaneous Lotsizing and Scheduling on Parallel Machines. European Journal

of Operational Research Vol.139, pp.277-292.

QUADT, D., KUHN, H., (2003) - Production Planning in Semiconductor Assembly. Working Paper, Catholic University of Eichstätt--Ingolstadt}

STADTLER, H., (1996) - Mixed Integer Programming Model Formulations for Dynamic Multi-Item Multi--Level Capacitated Lotsizing. European Journal of Operational Research, Vol.94, pp.561-581. TEMPELMEIER, H., DERSTROFF, (1996) - A Lagrangean--Based Heuristic for Dynamic Multilevel Multi-item Constrained Lotsizing with Setup Times. Management Science Vol.42, pp.738-757.

ANEXO

Parâmetros e Variáveis Usados no Modelo Matemático Parâmetros Gerais

T: número de macro-períodos, Tm: Número de micro-períodos por macro períodos.

C: Capacidade de cada macro-período, Cm capacidade de cada micro período.

ε: número real positivo muito pequeno, M: número muito grande. Parâmetros para as linhas de produção

J: número de produtos, L: número de linhas em paralelo. Lj: conjunto de linhas nas quais o produto j pode ser produzido.

S: número máximo de lotes por macro-período. djt: demanda do produto j no final do macro-período t. sijl: custo de troca dependente da seqüência de produção do produto i para j na linha l (sijl=0).

hj: custo de estoque para cada unidade do produto j. vjl: custo de produção do produto j na linha l. pjl: tempo de processamento de uma unidade do produto j na linha l (hipótese: pjl≤ C

m

).

xjl0 = 1, se a linha l está ajustada inicialmente para o produto j.

σ’ijl: tempo de troca produto i para o produto j na linha l (hipóteses: σ’ijl: ≤ C e σ’ijl: =0).

ωl1: tempo de troca para o primeiro lote na linha l no macro-período 1 que já foi executado antes do

macro-período 1 começar (Observação: se ωl1>0$, então os valores xjl1 são conhecidos e estas

variáveis devem ser ajustadas adequadamente).

(12)

Variáveis de decisão para as linhas de produção

zijls = 1, se a linha l é ajustada a partir do produto i para j no lote s; 0, caso contrário (zijls ≥0). Ijt: quantidade de produto j em estoque no final do macro-período t.

qjls: numero de produtos j produzidos na linha l no lote s.

xjls = 1, se lote s na linha l pode ser usado para produzir o produto j; 0, caso contrário. uls = 1, se uma quantidade é efetivamente produzida no lote s na linha l, 0, caso contrário. σ’ls : tempo de troca na linha l no início do lote s.

ωlt: tempo de troca para o primeiro lote na linha l em t programado ao final do macro-período t-1. xElsτ = 1, se o lote s na linha l termina no micro período τ.

xB lsτ = 1, se o lote s na linha l começa no macro período τ.

δls: tempo no primeiro micro-período do lote que é reservado para tempo de troca e tempo ocioso. q0j: atalho do produto j, ou seja, será positivo toda vez que a demanda do produto não for satisfeita.

Parâmetros para os Tanques

J: número de xaropes, L: número de tanques.Lj: conjunto de tanques onde o xarope j é armazenado.

S: número máximo de lotes por macro-período.

s

ijk: custo de troca do xarope i para j no tanque k.

hj: custo de estoque do xarope j. vjk: custo de produção do xarope j no tanque k.

1

0=

xjk , se o tanque k é ajustado para o xarope j no início do horizonte de planejamento.

'

σ

ijk: tempo de troca do xarope i para j no tanque k (

σ

'

ijk

C

e

σ

'

ijk é um inteiro múltiplo de C m

).

ω

k1: tempo de troca do primeiro lote no tanque k no período 1 realizado antes do

macro-período 1 começar (Obs: se

ω

k1

>

0

,os valores

x

jk1 são conhecidos e devem ser ajustados).

Ijk0: estoque inicial do xarope j no tanque k. Qk: capacidade máxima do tanque k. Q

k: capacidade mínima do tanque k.

Variáveis de decisão para os Tanques

1 =

zijks , se ocorre troca do xarope i para j no início do lote s; 0, caso contrário(

z

ijks

>

0

é suficiente).

Ijkτ: quantidade de xarope j no tanque k no final do micro-período τ.

q

jks: quantidade de xarope j armazenada no tanque k no lote s.

q

jksτ: quantidade de xarope j armazenada no tanque k no lote s no micro-período τ. 1

=

xjks , se lote s pode ser usado para armazenar o xarope j no tanque k; 0, caso contrário. 1

=

u

ks , se lote s é usado para armazenar xarope no tanque k; 0, caso contrário.

σ

ks: tempo de troca gasto no tanque k no início do lote s.

ω

kt: tempo de troca programado ao final do macro-período t-1. 1

=

x

ksEτ , se o tempo de troca do produto atribuído ao lote s no tanque k termina no micro-período τ. 1

=

x

ksBτ , se o tempo de troca do produto atribuído ao lote s no tanque k começa no micro-período τ. Parâmetros para ajustar Linhas de Produção e Tanques

rji: quantidade de xarope j necessária para produzir uma unidade do produto i.

Variáveis de Decisão para ajustar Linhas de Produção e Tanques

q

kjlsτ

: quantidade de produto j, produzida na linha l, micro-período τ e lote s, com xarope do

Referências

Documentos relacionados

Não se está perante a situação de uma única falta injustificada; só se pode falar em falta de assiduidade se houver alguma continuidade, o que não implica que tenham de ser faltas

A estabilidade do corpo docente permanente permite atribuir o conceito muito bom, segundo os parâmetros da área, para o item 2.2 (pelo menos 75% dos docentes permanentes foram

Lembramos que, na forma do Regimento Interno, em seu artigo 30 § 2°, o prazo para apresentação do parecer é de 30 (trinta) dias, e que deve ser precedido de ementa e encerrado

O segundo Beneficiário será designado pelo Segurado na Proposta de Adesão, podendo ser substituído a qualquer tempo, mediante solicitação formal assinada pelo próprio Segurado, para

Júri de Seleção de trabalhos Ginecologia/ Obstetrícia Hélder Ferreira Luís Guedes Martins Júri de Prémio CO Ginecologia/ Obstetrícia Anabela Branco José Cabral Luísa Vieira

Resposta: Conforme item 3.1.9.5 do Anexo 02 do Edital, caso o atestado apresente mais do que 12 meses de prestação de serviços ininterruptos, será considerada a média mensal do

No período de primeiro de janeiro a 30 de junho de 2011, foram encaminhadas, ao Comitê de Segurança do Paciente da instituição sede do estudo, 218 notificações de

Os elementos caracterizadores da obra são: a presença constante de componentes da tragédia clássica e o fatalismo, onde o destino acompanha todos os momentos das vidas das