【发布时间】:2021-12-21 09:10:47
【问题描述】:
我尝试在 OPL 中定义集合。问题是:
- 我有几个计算平台,例如:{"DC1", "DC2", "MP1"}
- 每个计算平台可以有多个配置,例如:DC1 可能有 {"conf1", "conf3"},DC2 可能有 {"conf1", "conf2", "conf3"},MP1 可能有 {"conf1" ", "conf3"}
- 每个计算平台都有几个属性,例如容量 (vcpu)
- AMPL中set的集合,参数可以很容易的写成如下:
set COMPPLATFORMS;
set CONFCP{COMPPLATFORMS}
param vcpu {d in COMPPLATFORMS, CONFCP[d]};
但是,在 OPL 中,我们没有直接声明索引集的方法。我注意到我们可以使用元组或者一些预处理。但是现在不知道如何为索引集声明参数“vcpu”?
我知道我们可以有一个集合数组或数组集合。但是我们可以有一套吗?
OPL 中有没有遵循类似结构的示例? 谢谢
【问题讨论】: