Defining constraint over dense and sparse constraint

Hi @danrib07,

This might give you some ideas:

using JuMP

M, N = 5, 3
data_matrix = rand(Bool, (M, N))

model = Model()
@variable(model, x[i in 1:M, j in 1:N])
@variable(model, y[i in 1:M, j in 1:N; data_matrix[i,j]])

# Option 1
for i in 1:M, j in 1:N
    @constraint(model, x[i,j] + (data_matrix[i,j] ? y[i,j] : 0) <= 0)
end

# Option 2
@constraint(model, [i in 1:M, j in 1:N; data_matrix[i,j]], x[i,j] + y[i,j] <= 0)
@constraint(model, [i in 1:M, j in 1:N; !data_matrix[i,j]], x[i,j] <= 0)