GNU MathProg:符号集与整数集
GNU MathProg: symbolic set vs. integer set
我在 GNU MathProg 中的简化数据集如下,Verts
是一组顶点索引,coords
是这些顶点坐标的 table:
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
现在无法索引参数 table Coords
。具体来说,glpsol
returns Coords[1,X] out of domain
.
直觉上,我假设使用 shorthand 的定义定义了一个整数集,而对于索引,我需要某种符号,"string" 类型。
我的直觉是正确的吗?如果是这样,如果 table 中没有 4 个,而是 10 000 个元素,我应该怎么写 set Verts := ?;
?
集合表达式如..
为not recognized in the AMPL (or MathProg, which is a subset of AMPL) data mode。您应该明确列出所有集合成员或移动
set Verts := 1..4;
给模特。
我在 GNU MathProg 中的简化数据集如下,Verts
是一组顶点索引,coords
是这些顶点坐标的 table:
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
现在无法索引参数 table Coords
。具体来说,glpsol
returns Coords[1,X] out of domain
.
直觉上,我假设使用 shorthand 的定义定义了一个整数集,而对于索引,我需要某种符号,"string" 类型。
我的直觉是正确的吗?如果是这样,如果 table 中没有 4 个,而是 10 000 个元素,我应该怎么写 set Verts := ?;
?
集合表达式如..
为not recognized in the AMPL (or MathProg, which is a subset of AMPL) data mode。您应该明确列出所有集合成员或移动
set Verts := 1..4;
给模特。