1
1
param custoNorm;
2
2
param custoExtra;
3
- param custoDuasUltimas ;
3
+ param custoSemanasFinais ;
4
4
param custoArm;
5
5
param capacidadeNormal;
6
6
param capacidadeExtra;
@@ -18,28 +18,26 @@ param demanda{T in TIMES, i in S};
18
18
19
19
var x{T in TIMES, i in S} >= 0 ; # quantidade de camisetas produzidas do time T na semana i
20
20
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 ;
22
22
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 ;
24
23
25
24
# maximizar lucro
26
25
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]));
31
28
32
29
33
30
# Atualização do estoque
34
31
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
+
36
34
# o estoque e atualizado semana a semana, cada time tem um estoque de camisetas, ele e resultado
37
35
# da soma do estoque do mes anterior com o excedente do mes atual (note que se o excedente e negativo
38
36
#temos que o estoque sera reduzido.
39
37
40
38
# 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];
43
41
44
42
# de produção (não dá para produzir mais do que a capacidade normal)
45
43
subj to prodN{i in S}:
@@ -51,7 +49,7 @@ subj to prodE{i in SExtra}:
51
49
52
50
# de estoque e producao (nao da para vender mais do que o estoque + producao)
53
51
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 );
55
53
56
54
57
55
end ;
0 commit comments