我遇到了一个问题,我没有找到任何解决方案来阅读集的 AMPL 文档。
我想建模的是,一个城市,比如 Kir,必须有来自另一个城市的例如 9 个交付,例如 Sto。但是,这些货物必须在某些特定的航站楼到达 Kir ,每个航站楼每天只开放一小段时间(大约 2 分钟)。源节点也必须如此。必须从特定终端指定来自 Sto 的路线(因此可以在结果中“遵循”路径)。
我已经开始对集合使用“在 K 中设置 V”操作进行建模,但这要求 V 必须是相同的集合,或者 K 的子集,其中 K 是表示“节点”的集合 - Kir、Sto 等on 和 V 是终端“Terminal1”、“Terminal2”等名称的集合。
我已经开始检查例如定义为例如“设置 K 维 4”:
set K dimension 4;
data;
set K:=
Sto Kir Terminal1 Terminal2
Bod Kir Terminal3 Terminal2;
其中集合 K 表示应该从哪个城市(例如 Sto)驱动交付(例如 Kir),其中 Sto 的出发终端是 Terminal1,Kir 的交付终端是 Terminal2。这样做的缺点是必须手动指定大量组合(仅 Kir 就有大约 22 个终端等)。我也不知道如何对约束进行建模。例如我之前的“一维”集:
subject to yvar{i in V, j in V}:
sum{k in H} x[i,j,k] <= maxVisits[i,j];
其中 V 是单独的城市集,H 是车辆集,maxVisits 表示从城市 i 到城市 j 的最大交付量,如果使用车辆 k 从 i 到 j 进行交付,则 x 为 1。我不明白如何使用四维集 K 对其进行建模。
问候,