【问题标题】:Defining Set of Set in OPL (or indexed set)在 OPL(或索引集)中定义集集
【发布时间】:2021-12-21 09:10:47
【问题描述】:

我尝试在 OPL 中定义集合。问题是:

  1. 我有几个计算平台,例如:{"DC1", "DC2", "MP1"}
  2. 每个计算平台可以有多个配置,例如:DC1 可能有 {"conf1", "conf3"},DC2 可能有 {"conf1", "conf2", "conf3"},MP1 可能有 {"conf1" ", "conf3"}
  3. 每个计算平台都有几个属性,例如容量 (vcpu)
  4. AMPL中set的集合,参数可以很容易的写成如下:
set COMPPLATFORMS;
set CONFCP{COMPPLATFORMS}

param vcpu {d in COMPPLATFORMS, CONFCP[d]};

但是,在 OPL 中,我们没有直接声明索引集的方法。我注意到我们可以使用元组或者一些预处理。但是现在不知道如何为索引集声明参数“vcpu”?

我知道我们可以有一个集合数组或数组集合。但是我们可以有一套吗?

OPL 中有没有遵循类似结构的示例? 谢谢

【问题讨论】:

    标签: set tuples cplex ampl opl


    【解决方案1】:

    how to with OPL 中查看示例power sets 中的集合

    {string} s={"A","B","C","D"};
        range r=1.. ftoi(pow(2,card(s)));
        {string} s2 [k in r] = {i | i in s: ((k div (ftoi(pow(2,(ord(s,i))))) mod 2) == 1)};
    
        execute
        {
         writeln(s2);
        }
    

    【讨论】:

    • 嗨,亚历克斯!谢谢你,我真的很感谢你的帮助! :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多