我正在尝试编写一个集合F
,其中包含AMPL中未知大小的子集。
示例包括:F1 = {2,3}
,F2 = {5}
,F3={4}
,F4={5}
。
完整集的格式为{(2,3),(5),(4),(5)}
。
我需要以这种方式组织集合,因为我将在约束中使用此集合,我将需要迭代集合j
中包含的每个Fi
。因此,当i=1
时,j
将针对j=1,2
进行迭代,依此类推。
有没有办法在AMPL中编程此设置?
我正在编写有关装配线平衡问题的编程,并且需要此装置来编写优先级约束;即。任务1必须发生在任务2和3之前,任务3发生在4之前,任务2发生在5之前。
感谢。
答案 0 :(得分:0)
您可以在AMPL中将F
表示为indexed set:
set F{1..4};
data;
set F[1] = 2 3;
set F[2] = 5;
set F[3] = 4;
set F[4] = 5;