JuMP-如何从优化输出报告中访问变量值以进行绘制

时间:2018-06-25 21:08:17

标签: julia-jump

我想从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]。

我还附上了一个情节示例供您细读。谢谢 enter image description here

0 个答案:

没有答案