Переменные вызова в Cplex - PullRequest
0 голосов
/ 04 июля 2018

Я хочу вызвать переменную Cplex, чтобы один аргумент принадлежал другому:

{string} part = ...; // job indexed by n or p 
tuple Tpart
{
    int Demand;
    int Lotsize;
    int Maxsublots;
}
Tpart partCriteria[part] = ...;

Затем я создаю переменную jobC, принадлежащую part и partCriteria[part].Maxsublots

но это не правильно

dvar float+ jobC[i in part, 1..partCriteria[part].Maxsublots];

1 Ответ

0 голосов
/ 04 июля 2018

Массивы OPL не могут иметь размеры, которые зависят от предыдущих измерений.

Вы могли бы написать

{string} part = {"A","B"}; // job indexed by n or p 
tuple Tpart
{
    int Demand;
    int Lotsize;
    int Maxsublots;
}
Tpart partCriteria[part] = [<1,1,1>,<2,2,2>];

int maxsublots=max(i in part) partCriteria[i].Maxsublots;

dvar float+ jobC[i in part, j in 1..maxsublots];

subject to
{

}

привет

...