Skip to content

Commit e2dcc83

Browse files
committed
refactor
1 parent 5c5949f commit e2dcc83

File tree

3 files changed

+10
-219
lines changed

3 files changed

+10
-219
lines changed

problema_camisetas/camisetasParte2.dat

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ data;
22

33
param custoNorm := 2.00;
44
param custoExtra := 2.80;
5-
param custoDuasUltimas := 2.50;
5+
param custoSemanasFinais := 2.50;
66
param custoArm := 0.20;
77

88
param capacidadeNormal := 25000;

problema_camisetas/camisetasParte2.mod

+9-11
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
param custoNorm;
22
param custoExtra;
3-
param custoDuasUltimas;
3+
param custoSemanasFinais;
44
param custoArm;
55
param capacidadeNormal;
66
param capacidadeExtra;
@@ -18,28 +18,26 @@ param demanda{T in TIMES, i in S};
1818

1919
var x{T in TIMES, i in S} >= 0; # quantidade de camisetas produzidas do time T na semana i
2020
var y{T in TIMES, i in SExtra} >= 0; # quantidade de camisetas produzidas extra do time T na semana i
21-
var v{T in TIMES, i in S} >= 0; # quantidade de camisetas vendidas do time T na semana i
21+
var vendas{T in TIMES, i in S} >= 0;
2222
var estoque{T in TIMES, i in S} >= 0; # quantidade de camisetas em estoque do time T na semana i
23-
var excedente{T in TIMES, i in S} >= 0;
2423

2524
# maximizar lucro
2625
maximize Lucro:
27-
sum{T in TIMES, i in S} (preco[T,i] * v[T,i] - custoNorm * x[T,i]) # preço liquido das camisetas sem1 e sem2
28-
+ sum{T in TIMES, i in SExtra} (preco[T,i] * v[T,i] - custoExtra * y[T,i]) # preço liquido das camisetas prodE
29-
- sum{T in TIMES, i in inicioSemanasFinais..fimSemanasFinais} (custoDuasUltimas * x[T,i]) # custo fabricao semanas 3 e 4
30-
- sum{T in TIMES, i in S} (custoArm * estoque[T,i]); # custo total de armazenamento
26+
sum{T in TIMES, i in 1..fimSemanasIniciais} (preco[T,i] * vendas[T,i] - custoNorm * x[T,i] - custoArm * estoque[T,i] - custoExtra * y[T,i])
27+
+ sum{T in TIMES, i in inicioSemanasFinais..fimSemanasFinais} (preco[T,i] * x[T,i] - (custoSemanasFinais * x[T,i]) - (custoArm * estoque[T,i]));
3128

3229

3330
# Atualização do estoque
3431
subj to atualiza_estoque{T in TIMES, i in S}:
35-
estoque[T,i] = (if i == 1 then 0 else estoque[T,i-1]) + x[T,i] + (if i <= fimSemanasIniciais then y[T,i] else 0) - v[T,i];
32+
estoque[T,i] = (if i == 1 then 0 else estoque[T,i-1]) + x[T,i] + (if i <= fimSemanasIniciais then y[T,i] else 0) - vendas[T,i];
33+
3634
# o estoque e atualizado semana a semana, cada time tem um estoque de camisetas, ele e resultado
3735
# da soma do estoque do mes anterior com o excedente do mes atual (note que se o excedente e negativo
3836
#temos que o estoque sera reduzido.
3937

4038
# de demanda (nao da para vender mais do que a demanda)
41-
subj to r_demanda{T in TIMES, i in S}:
42-
v[T,i] <= demanda[T,i];
39+
subj to restr_vendas1{T in TIMES, i in S}:
40+
vendas[T,i] <= demanda[T,i];
4341

4442
# de produção (não dá para produzir mais do que a capacidade normal)
4543
subj to prodN{i in S}:
@@ -51,7 +49,7 @@ subj to prodE{i in SExtra}:
5149

5250
# de estoque e producao (nao da para vender mais do que o estoque + producao)
5351
subj to venda_estoque_prod{T in TIMES, i in S}:
54-
v[T,i] <= x[T,i] + (if i <= fimSemanasIniciais then y[T,i] else 0) + (if i > 1 then estoque[T,i-1] else 0);
52+
vendas[T,i] <= x[T,i] + (if i <= fimSemanasIniciais then y[T,i] else 0) + (if i > 1 then estoque[T,i-1] else 0);
5553

5654

5755
end;

problema_camisetas/saida2.txt

-207
This file was deleted.

0 commit comments

Comments
 (0)