Hey, guys.
This is my first time working with both Julia and JuMP. It has been an adventure (and a lot of mistakes).
Right now I accomplished to do the base code to work as I need and I am trying to put it inside the JuMP format, but I am having some problems.
First of all, I need to do a lot of calculations using my variable (called DELTA) so I can get the calculation of what I need to minimize with the objetive.
My first question is: Do I need to put this operations inside a function or I can do just like the example below?
@variable(model, DELTA[1:length(CITIES_ID)], Bin)
DN = []
VALUE = []
for i in 1:QTD_PATHS
DEMANDS_OTIM = []
for i in 1:size(DEMANDS,2)
op_mult = DEMANDS[i]*DELTA[i]
push!(DEMANDS_OTIM, op_mult)
end
DEMANDS_OTIM = transpose(DEMANDS_OTIM)
MATRIX_PATHS = []
for j in 1:size(PATHS_NUM,2)
for i in 1:size(PATHS_NUM,1)
subst = PATHS_OTIM[findfirst(isequal(PATHS_NUM[i,j]),CITIES_ID)]
push!(MATRIX_PATHS,subst)
end
end
MATRIX_PATHS = reshape(MATRIX_PATHS, size(PATHS_NUM,1), size(PATHS_NUM,2))
for i in 1:size(FLOW_PATHS,2)
diam = 0.8 * ((FLOW_PATHS[i])/1000)^(1/2)) * 1000
if diam < 100
diam_nominal1 = 75
push!(DN, diam_nominal1)
elseif 100 <= diam <= 400
diam_nominal1 = 50 * div(diam, 50, RoundDown)
vel1 = FLOW_PATHS[i]/(diam_nominal1)
push!(DN, diam_nominal1)
elseif diam > 400
diam_nominal1 = 100 * div(diam, 100, RoundDown)
push!(DN, diam_nominal1)
end
end
end
for i in 1:length(DN)
custos = lista_custos[findfirst(isequal(DN[i]),lista_diam)] * LENGTH[i]
VALUE = vcat(VALUE, custos)
end
VALUE_PATH = []
for i in 1:length(QTD_SUBPATHS)
value_path = sum(VALUE[SUBPATH[i,1]:SUBPATH[i,2]])
VALUE_PATH = vcat(VALUE_PATH, value_path)
end
@constraint (model, DELTA[3]+DELTA[20]=1)
@constraint (model, DELTA[1]=1)
@objective (model, Min, VALUE_PATH[i] for i in 1:QTD_PATHS)
otimizacao = optimize!(transpModel)
This is just an example, just a bit of the code. I am working with excel data, so I don’t know if it would be helpful paste the entire code.