我想在Zimpl中执行此操作,但在运行zimpl test.zpl后出现以下错误:
set A := { 1..6 };
set B := { 1..4 };
set dim[A] := <1> {1}, <2> {1}, <3> {3}, <4> {2}, <5> {1}, <6> {4};
set C := {<i, j> in A*B with j<dim[i]};
错误800:文件test.zpl第4行:语法错误,意外的SETSYM
设置C:= {在A * B中,其中j <暗淡[I]};
基本上我想要A*B:
{<1,1>,<2,1>,<3,1>,<3,2>,<3,3>,<4,1>,<4,2>,<5,1>,<6,1>,<6,2>,<6,3>,<6,4>}
知道为什么会这样,以及如何解决这个问题?
答案 0 :(得分:1)
您需要将dim
定义为参数而不是集合。您的示例应如下所示:
set A := { 1..6 };
set B := { 1..4 };
param dim[A] := <1> 1, <2> 1, <3> 3, <4> 2, <5> 1, <6> 4;
set C := {<i, j> in A*B with j < dim[i]};
do print C;