Single Constraint with Sum of Binary Variable
AnsweredI am new to this community and am struggling with seemingly simple modeling question.
I would to create a single constraint that sums a set of binary variables x[i,j] where i = j for all i in V and sets it equal to a predefined value p.
Example:
x[1,1] + x[2,2] + ... +x[n,n] = p
The x[i,j] variable can be thought of as an edge on a graph, i and j are indexed on the vertices of the graph, and x[i,i] is an edge that goes back to the same vertex.
I am using python with gurobi and here is the code I tried:
m.addConstrs(x.sum(i, i) == p for i in V)
It returns a constraint for each value of i in V.
Any help would be appreciated.
-
Official comment
This post is more than three 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. -
Model.addConstrs() is used to add multiple constraints to the model. To add one constraint to the model, use Model.addConstr().
You are summing over all \(i\) in \(V\), so the \(\texttt{for}\) loop should be placed inside of the summation:
x = m.addVars(V, V, vtype=GRB.BINARY, name='x')
m.addConstr(gp.quicksum(x[i, i] for i in V) == p)0 -
Eli - That did the trick. Thank you.
0
Post is closed for comments.
Comments
3 comments