Advertisement
gab709

Untitled

Jan 17th, 2020
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. import numpy as np
  2. import gurobipy as gp
  3. from gurobipy import GRB
  4.  
  5. def f(w):
  6. y = np.exp(w)
  7. return y
  8. # return w+np.ones(len(w))
  9.  
  10. def error_function(target, predicted):
  11. error = target - predicted
  12. return error.mean()
  13.  
  14.  
  15. def print_solutions(model):
  16. for v in model.getVars():
  17. print('%s %g' % (v.varName, v.x))
  18. print('Obj: %g' % model.getObjective().getValue())
  19.  
  20. targets = np.array([3, 2, 1])
  21.  
  22. model = gp.Model("qp")
  23. model.setParam("PSDTol", float('Inf'))
  24.  
  25. weight1 = model.addVar(lb=-100, ub=100, name="w_1", vtype=GRB.CONTINUOUS)
  26. weight2 = model.addVar(lb=-100, ub=100, name="w_2", vtype=GRB.CONTINUOUS)
  27. weight3 = model.addVar(lb=-100, ub=100, name="w_3", vtype=GRB.CONTINUOUS)
  28. var1 = model.addVar(lb=-100, ub=100, name="var_1", vtype=GRB.CONTINUOUS)
  29. var2 = model.addVar(lb=-100, ub=100, name="var_2", vtype=GRB.CONTINUOUS)
  30. var3 = model.addVar(lb=-100, ub=100, name="var_3", vtype=GRB.CONTINUOUS)
  31.  
  32. var = np.array([var1, var2, var3])
  33.  
  34. obj = error_function(targets, var)
  35. model.setObjective(obj, GRB.MINIMIZE)
  36.  
  37. model.addConstr(var1 == f(weight1), "c1")
  38. model.addConstr(var2 == f(weight2), "c2")
  39. model.addConstr(var3 == f(weight3), "c3")
  40.  
  41. model.optimize()
  42. print_solutions(model)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement