|
- import gurobipy as gp
- from gurobipy import GRB
-
- try:
-
- # Create a new model
- m = gp.Model("1_1")
-
- # Create variables
- x1A = m.addVar(vtype=GRB.CONTINUOUS, name="x1A")
- x1D = m.addVar(vtype=GRB.CONTINUOUS, name="x1D")
- x2A = m.addVar(vtype=GRB.CONTINUOUS, name="x2A")
- x2C = m.addVar(vtype=GRB.CONTINUOUS, name="x2C")
- x2D = m.addVar(vtype=GRB.CONTINUOUS, name="x2D")
- x3A = m.addVar(vtype=GRB.CONTINUOUS, name="x3A")
- x3B = m.addVar(vtype=GRB.CONTINUOUS, name="x3B")
- x3D = m.addVar(vtype=GRB.CONTINUOUS, name="x3D")
- x4A = m.addVar(vtype=GRB.CONTINUOUS, name="x4A")
- x4D = m.addVar(vtype=GRB.CONTINUOUS, name="x4D")
- x5D = m.addVar(vtype=GRB.CONTINUOUS, name="x5D")
-
- # Set parameters
- a = 1.15
- b = 1.25
- c = 1.40
- d = 1.06
- con1 = 100000
- con2 = 30000
- con3 = 40000
-
- # Set objective
- m.setObjective(a * x4A + c * x2C + b * x3B + d * x5D, GRB.MAXIMIZE)
-
- # Add constraint
- m.addConstr(x1A + x1D == con1, "c0")
- m.addConstr(-d * x1D + x2A + x2C + x2D == 0, "c1")
- m.addConstr(-a * x1A - d * x2D + x3A + x3B + x3D == 0, "c2")
- m.addConstr(-a * x2A - d * x3D + x4A + x4D == 0, "c3")
- m.addConstr(-a * x3A - d * x4D + x5D == 0, "c4")
- m.addConstr(x2C <= con2, "c5")
- m.addConstr(x3B <= con3, "c6")
-
- # Optimize model
- m.optimize()
-
- for v in m.getVars():
- print('%s %g' % (v.VarName, v.X))
-
- print('Obj: %g' % m.ObjVal)
-
- except gp.GurobiError as e:
- print('Error code ' + str(e.errno) + ': ' + str(e))
-
- except AttributeError:
- print('Encountered an attribute error')
|