AMPL to JuMP (Julia)



我需要将AMPL代码转换为JuMP。

param f;
set R := 1..N;
set R_OK := 1..M;
set V := 1..N;
param tMax;
set T := 1..tMax;
var primary{R,V}, binary;
var SendPrepReq{T,R,V}, binary;

"param f"应该是int。我知道如何做变量。但是集合呢?它在JuMP中的等价物是什么?

最相关的文档之一可能是Quickstart指南,用于了解JuMP的基本工作原理。

例如,您可以直接声明您的参数:

using JuMP
# declare some parameters
f = 3
N = 10
M = 5
R = 1:N
V = 1:N
R_OK = 1:M
Tmax = 33
T = 1:Tmax
# create the model
m = Model()
# add variables
@variable(m, primary[R,V], Bin)
@variable(m, SendPrepReq[T,R,V], Bin)

编辑

可能需要像AMLP中那样独立于模型声明提供参数。Julia中最直接的方法是在一个函数中建立和求解模型,该函数采用了参数中的问题:

function build_model(f, N, M, Tmax)
R = 1:N
V = 1:N
R_OK = 1:M
T = 1:Tmax
# create the model
m = Model()
# add variables
@variable(m, primary[R,V], Bin)
@variable(m, SendPrepReq[T,R,V], Bin)
return (m, primary, SendPrepReq)
end

最新更新