有序集 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;
我正在尝试编写一组 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;