Я пытаюсь смоделировать проблему, используя OPL, cplex.Я застрял в ограничении.У меня есть набор кортежей в формате:
N_set = {
<1, {180}>
<8, {546, 154}>
<11, {193, 532, 43, 363}>
...
};
Так что я в основном пытаюсь использовать структуру карты.Учитывая целое число, я хочу быть в состоянии достигнуть набора основных ответвлений к нему.Я использовал кортеж, который включает в себя набор для достижения этой цели.Приведенный ниже код не является полным, это упрощенная версия того, что я пытаюсь сделать, но все еще не работает.Ниже приведена ошибка, которую я получаю:
Определение формального параметра "t2" типа {int} не поддерживается в этом контексте.
В основном я хочу узнать, как яможно перебирать элементы j в этом наборе t2 .Предположим, dec1 и dec2 - мои переменные решения.Моя структура выглядит следующим образом:
tuple Neighborhood {
int e1;
{int} neigh;
}
{Neighborhood} N_set = ...;
forall(p in P)
{
sum(<t1, t2> in N_set, j in t2) dec1[j][p]) == card(t2) * dec2[p];
};
Я совершенно новый для языка.Может быть, то, что я пытаюсь сделать, совершенно неправильно.Буду признателен за любые предложения.
Спасибо.