CPLEX: Как вы можете получить максимальное / минимальное значение массива?

#arrays #max #min #cplex #opl

#массивы #макс #min #cplex #opl

Вопрос:

Я подсчитал затраты для множества сценариев и решений. Я хотел бы использовать максимум по всем сценариям для каждого решения. После этого я хотел бы использовать минимум из всех этих максимумов для каждого решения. CPLEX возвращает эту ошибку: «неожиданный ‘)’, ожидающий в «. Кто-нибудь может помочь мне разобраться в этом?

 minimize t;
 
subject to{

m[d] == max(c[d,1..nbscenarios]);  
t== min (m[1..nbdecisions]);

...
}
  

Ответ №1:

позвольте мне помочь с синтаксисом

 range r=1..4;
int nbscenarios=5;
range s=1..nbscenarios;

dvar int c[r][s];
dvar int m[r];
dvar int t; 
minimize t;

subject to{

forall(d in r )m[d] == max(i in s)c[d][i];
t== min (d in r)(m[d]);
 }
  

работает нормально