我在GNU MathProg中的简化数据集如下,Verts
是一组顶点索引,coords
是这些顶点的坐标表:
data;
set Indices := X Y;
set Verts := 1 2 3 4;
param Coords : X Y :=
1 1.2 0.3
2 4.2 13.0
3 1.5 1.0
4 0.5 0.8;
end;
这样可行,但如果我按如下方式替换Verts的定义:
set Verts := (1..4);
编译在此阶段成功,但Verts
现在无法索引参数表Coords
。具体而言,glpsol
会返回Coords[1,X] out of domain
。
直观地说,我假设使用速记定义了一个整数集,而对于索引,我需要某种符号的“字符串”类型。
我的直觉是否正确?如果是这样的话,如果表中没有4个元素,那么我应该如何写set Verts := ?;
?
答案 0 :(得分:1)
设置..
等表达式为not recognized in the AMPL (or MathProg, which is a subset of AMPL) data mode。您应该明确列出所有集合成员或移动
set Verts := 1..4;
到模特。