我想从JuMP优化报告中访问变量(“ x”,“ u”等)及其各自的值,并将其用于绘图。想知道是否有人可以协助我完成这项任务。我已经添加了完整的代码,以进行细读和帮助。谢谢。 使用JuMP,MathProgBase,Gurobi
## Define model:----------#
m = Model(solver=GurobiSolver())
###----Define Model Parameters, Sets, and Constants: ----#
n = 5 # number of n-nodes (same as n)
c = [999 8 4 9 9;
8 999 6 7 10;
4 6 999 5 6;
9 7 5 999 4;
9 10 6 4 999]
## define Variables:------------
@variable(m, x[i=1:n,j=1:n], Bin) # binary variable
@variable(m, u[i=2:n]>=0) # variable, flow after node i is visited.
## define Objective function:---------------
@objective(m, Min, sum(c[i,j] * x[i,j] for i = 1:n for j = 1:n)) #objective
is to minimize the total travel time
## Constraints:----------------------##
# Constraint 2.0
for j = 1:n
@constraint(m, sum(x[i,j] for i=1:n) == 1)
end
# 2.1
for i = 1:n
@constraint(m, sum(x[i,j] for j=1:n) == 1)
end
# 2.2
for i=2:n
for j=2:n
if i !=j
@constraint(m, u[i]-u[j]+n*x[i,j]-n+1 <=0)
end
end
end
## Printing model results:---------------
print(m)
status = solve(m)
println("Objective value: ", getobjectivevalue(m))
println("x = ", getvalue(x))
println("u = ", getvalue(u))
例如,下面是一个示例,我想访问值“ x”为1的值。此外,我还想提取相应的元组列表-Optimal_Route:[(1、3),输出报告中x变量的(2,1),(3,2),(4,5),...]-,用于使用networkx绘制最佳路径。
x = [-0.0 1.0 -0.0 -0.0 -0.0; -0.0 -0.0 -0.0 1.0 -0.0; 1.0 -0.0 -0.0 -0.0 -0.0; -0.0 -0.0 -0.0 -0.0 1.0; -0.0 -0.0 1.0 -0.0 -0.0]。