有序集 AMPL

Ordered set AMPL

我正在尝试编写一组 F,其中包含 AMPL 中未知大小的子集。

例如:F1 = {2,3}F2 = {5}F3={4}F4={5}

完整集的形式为 {(2,3),(5),(4),(5)}

我需要以这种方式组织集合,因为我将在约束条件下使用该集合,我需要对集​​合 Fi 中包含的每个 j 进行迭代。所以当i=1时,j会迭代j=1,2等等。

有没有办法在 AMPL 中对这个集合进行编程?

我正在对流水线平衡问题进行编程,将需要此集合来对优先约束进行编程; IE。任务 1 必须在任务 2 和 3 之前发生,任务 3 必须在 4 之前发生,任务 2 和 4 必须在 5 之前发生。

谢谢。

您可以在 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;