【发布时间】:2019-09-26 07:26:40
【问题描述】:
我正在尝试使用 OPL、cplex 对问题进行建模。我陷入了一个约束。我有一组格式为:
N_set = {
<1, {180}>
<8, {546, 154}>
<11, {193, 532, 43, 363}>
...
};
所以我基本上尝试使用地图结构。给定一个整数,我希望能够达到对应的集合。我使用了一个包含集合的元组来实现这一点。下面的代码不完整,它是我正在尝试做的简化版本,但仍然无法正常工作。以下是我得到的错误:
不支持 {int} 类型的形参“t2”的定义 这个上下文。
我主要想学习如何遍历这个集合t2中的项目j。假设 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];
};
我对这门语言完全陌生。也许我正在尝试做的是完全错误的。我会很感激任何建议。
谢谢。
【问题讨论】:
标签: cplex integer-programming opl