Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### Task 1
- ### Implements a simple LP with the gurobi py interface
- from gurobipy import *
- import random
- import copy
- ### Parameters definitions
- product_type = 2 # {standard, premium}
- price = [300, 450]
- required_painting = [6, 9]
- required_assembly = [14, 23]
- total_hour_painting = 90
- total_hour_assembly = 180
- mod = Model("motorcycle")
- ### Variable definitions
- z_p = {} #production of motorcycle of type p
- for ii in range(product_type):
- # for binary: vtype=GRB.BINARY
- z_p[ii] = mod.addVar(lb=0.0, obj=-price[ii], name="x_p{0}".format(ii))
- mod.update()
- # Objective already set above
- ### Constraints
- mod.addConstr(quicksum(z_p[ii]*required_painting[ii] for ii in range(product_type)) <= total_hour_painting, "painting hours")
- mod.addConstr(quicksum(z_p[ii]*required_assembly[ii] for ii in range(product_type)) <= total_hour_assembly, "assembly hours")
- mod.addConstr(z_p[0] <= 12, "c0")
- mod.addConstr(z_p[1] >= 1, "c1")
- mod.addConstr(z_p[0] <= 11, "c2")
- mod.addConstr(z_p[1] <= 1, "c3")
- # Non-negativity set in variable definition
- mod.optimize()
- print("Optimal objective: {0:.3f}".format(mod.objVal))
- for var in mod.getVars():
- print("{0}: {1:.3f}".format(var.varName, var.x))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement