4 Copyright (c) by Joao Pedro PEDROSO, Masahiro MURAMATSU and Mikio KUBO, 2012
6 from pyscipopt
import Model, quicksum, multidict
9 """prodmix: robust production planning using soco
13 a[i][k] - coef. matrix
14 p[i] - price of material i
15 LB[k] - amount needed for k
16 Returns a model, ready to be solved.
19 model = Model(
"robust product mix")
23 x[i] = model.addVar(vtype=
"C", name=
"x(%s)"%i)
25 rhs[k] = model.addVar(vtype=
"C", name=
"rhs(%s)"%k)
27 model.addCons(
quicksum(x[i]
for i
in I) == 1)
29 model.addCons(rhs[k] == -LB[k]+
quicksum(a[i,k]*x[i]
for i
in I) )
30 model.addCons(
quicksum(epsilon*epsilon*x[i]*x[i]
for i
in I) <= rhs[k]*rhs[k])
32 model.setObjective(
quicksum(p[i]*x[i]
for i
in I),
"minimize")
39 """creates example data set"""
40 a = { (1,1):.25, (1,2):.15, (1,3):.2,
41 (2,1):.3, (2,2):.3, (2,3):.1,
42 (3,1):.15, (3,2):.65, (3,3):.05,
43 (4,1):.1, (4,2):.05, (4,3):.8
48 return I,K,a,p,epsilon,LB
51 if __name__ ==
"__main__":
55 print(
"Objective value:",model.getObjVal())
58 print(i,
": ",model.getVal(x[i]))