繁体   English   中英

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;

“参数 f”将是一个整数。 我知道怎么做的变量。 但是套装呢? 它在 JuMP 中的等价物是什么?

最相关的文档之一可能是获取 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM