Linear expression with MAX
AnsweredI have a two set of 'n' variables. I would like a liner combination corresponding variables of the two sets. THis results in 'n' variables. I would like to compare the max resulting 'n' varianles against a constant.
Example -
import gurobipy as gp
ZZZ=[]
for i in range (3):
for j in range (10):
varname="S_%02d_%02d"% (i, j)
XXX[i][j] =opt_mod.addVar(name=varname, vtype=gp.GRB.CONTINUOUS, lb=0.0)
ZZZ.append(XXX[i][j] +YYY[i][j] *W[i])
YYY is defined in similar fashion as XXX.
opt_mod.addConstr(gp.max_(ZZZ) <= KEYWIDTH) # KEYWIDTH is a constant.
0
-
Official comment
This post is more than two years old. Some information may not be up to date. For current information, please check the Gurobi Documentation or Knowledge Base. If you need more help, please create a new post in the community forum, or try Gurobot, our chatbot interface offering instant, expert-level support. -
Hi Shesha,
This can be done with the help of some auxiliary variables.
- Define auxiliary variables Z[i][j], add constraints Z[i][j] = XXX[i][j] +YYY[i][j] *W[i].
- Define another auxiliary variable ZZZ, and set it to max of Z[i][j] variables using the general constraint helper functions max_()
- If you want the max value to be at most KEYWIDTH, set the upper bound of the ZZZ variable to KEYWIDTH.
Best regards,
Simran0 -
Thanks a lot for the information
0
Post is closed for comments.
Comments
3 comments