Network flow problem in JuMP

You could use

ind = [(i, j) for i in 1:size(G, 1), j in 1:size(G, 2) if G[i, j] > 0]
model = Model()
@variable(model, x[ind])
@constraint(
    model, 
    [j=1:size(G, 2)], 
    sum(x[(i, j)] for (i, jj) in ind if jj == j) == 1,
)


model = Model()
@variable(model, x[i=1:size(G,1), j=1:size(G,2); G[i,j] > 0])
@constraint(
    model, 
    [j=1:size(G,2)], 
    sum(x[i, j] for (i, jj) in eachindex(x) if jj == j) == 1,
)
1 Like