Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import gurobipy as gp
- from gurobipy import GRB
- def f(w):
- y = np.exp(w)
- return y
- # return w+np.ones(len(w))
- def error_function(target, predicted):
- error = target - predicted
- return error.mean()
- def print_solutions(model):
- for v in model.getVars():
- print('%s %g' % (v.varName, v.x))
- print('Obj: %g' % model.getObjective().getValue())
- targets = np.array([3, 2, 1])
- model = gp.Model("qp")
- model.setParam("PSDTol", float('Inf'))
- weight1 = model.addVar(lb=-100, ub=100, name="w_1", vtype=GRB.CONTINUOUS)
- weight2 = model.addVar(lb=-100, ub=100, name="w_2", vtype=GRB.CONTINUOUS)
- weight3 = model.addVar(lb=-100, ub=100, name="w_3", vtype=GRB.CONTINUOUS)
- var1 = model.addVar(lb=-100, ub=100, name="var_1", vtype=GRB.CONTINUOUS)
- var2 = model.addVar(lb=-100, ub=100, name="var_2", vtype=GRB.CONTINUOUS)
- var3 = model.addVar(lb=-100, ub=100, name="var_3", vtype=GRB.CONTINUOUS)
- var = np.array([var1, var2, var3])
- obj = error_function(targets, var)
- model.setObjective(obj, GRB.MINIMIZE)
- model.addConstr(var1 == f(weight1), "c1")
- model.addConstr(var2 == f(weight2), "c2")
- model.addConstr(var3 == f(weight3), "c3")
- model.optimize()
- print_solutions(model)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement