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+DELTA=1) @constraint (model, DELTA=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.