accelerate build_constraints

feature/replay^2
Alinson S. Xavier 1 year ago
parent 15dfcac32e
commit 46ed6859f2

@ -164,13 +164,21 @@ function build_constraints(model::JuMP.Model, cs::ConstraintSet)
nrows, _ = size(cs.lhs)
constrs = []
for i = 1:nrows
# Build LHS expression
row = cs.lhs[i, :]
lhs_expr = AffExpr()
for (offset, val) in enumerate(row.nzval)
add_to_expression!(lhs_expr, vars[row.nzind[offset]], val)
end
# Build JuMP constraint
c = nothing
if isinf(cs.ub[i])
c = @build_constraint(cs.lb[i] <= dot(cs.lhs[i, :], vars))
c = @build_constraint(cs.lb[i] <= lhs_expr)
elseif isinf(cs.lb[i])
c = @build_constraint(dot(cs.lhs[i, :], vars) <= cs.ub[i])
c = @build_constraint(lhs_expr <= cs.ub[i])
else
c = @build_constraint(cs.lb[i] <= dot(cs.lhs[i, :], vars) <= cs.ub[i])
c = @build_constraint(cs.lb[i] <= lhs_expr <= cs.ub[i])
end
push!(constrs, c)
end

Loading…
Cancel
Save