In [4]:
from gurobipy import *
try:
# Create a new model
m = Model("mip1")
# Create variables
x = m.addVar(vtype=GRB.BINARY, name="x")
y = m.addVar(vtype=GRB.BINARY, name="y")
z = m.addVar(vtype=GRB.BINARY, name="z")
# Integrate new variables
m.update()
# Set objective
m.setObjective(x + y + 2 * z, GRB.MAXIMIZE)
# Add constraint: x + 2 y + 3 z <= 4
m.addConstr(x + 2 * y + 3 * z <= 4, "c0")
# Add constraint: x + y >= 1
m.addConstr(x + y >= 1, "c1")
m.optimize()
for v in m.getVars():
print (v.varName, v.x)
print ('Obj:', m.objVal)
except GurobiError:
print ('Error reported')
In [9]:
from gurobipy import *
try:
# Create a new model
m = Model("Dorian Example")
# Create variables
x1 = m.addVar(vtype=GRB.CONTINUOUS, name="x1")
x2 = m.addVar(vtype=GRB.CONTINUOUS, name="x1")
# Integrate new variables
m.update()
# Set objective
# Min z = 50x1 + 100x2 (objective function in $1,000)
m.setObjective(50 * x1 + 100 * x2, GRB.MINIMIZE)
# Add constraint: x + 2 y + 3 z <= 4
# 7x1 + 2x2 ≥ 28 (high-income women)
# 2x1 + 12x2 ≥ 24 (high-income men)
# x1, x2 ≥ 0 (non-negativity constraints)
m.addConstr(7 * x1 + 2* x2 >= 28, "c0")
m.addConstr(2 * x1 + 12* x2 >= 24, "c1")
m.optimize()
for v in m.getVars():
print (v.varName, v.x)
print ('Obj:', m.objVal)
except GurobiError as e:
print (e)
print ('Error reported')