AMPL 转 JuMP (Julia)
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" 将是一个整数。我知道该怎么做的变量。但是布景呢?它在 JuMP 中的等价物是什么?
最相关的文档之一可能是Quickstart guide获取 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
我需要将 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" 将是一个整数。我知道该怎么做的变量。但是布景呢?它在 JuMP 中的等价物是什么?
最相关的文档之一可能是Quickstart guide获取 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