AMPL для JuMP (Юлия) - PullRequest
       68

AMPL для JuMP (Юлия)

1 голос
/ 10 марта 2020

Мне нужно преобразовать код 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?

1 Ответ

1 голос
/ 10 марта 2020

Одной из наиболее важных частей документации может быть Руководство по быстрому запуску для ознакомления с основами работы 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. Самый простой способ в Джулии будет построить и решить модель в функции, принимающей параметры задачи в аргументе:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...