【问题标题】:how to declare a subset from a set in cplex?如何从 cplex 的集合中声明一个子集?
【发布时间】:2021-03-07 08:07:22
【问题描述】:

我是 Cplex 的新手,所以我想知道如何声明集合中包含的子集。 我有一个 S_i :一组航班 i 的可行开始时间元组。 我这样声明这个 et:

        int F=...;
        range flights = 1..F; // set of flights
        {int} S[flights]=...; //Set of feasible start time 

并且我有一个子集 S_i (w) ⊆ S_i 表示可行开始时间元组的子集,如果分配的 w 个工作​​站分配给航班 i。

我声明:

int W=...;
range workingstations=1..W;

但我不知道如何声明子集,请帮助!!!

【问题讨论】:

    标签: set subset cplex opl


    【解决方案1】:
    {string} flights={"A1","A2"};
    {string} workingstations={"W1","W2"};
    
    tuple tup {
    
    
    int sd ; //start time of bagage handling
      int sh ; // start time of storage depletion
    
    }
    {tup} ttt = {};
    tuple Starttime {
      int elt; //earlist_starttime
      int lst; //lastest_starttime
      int  ed; //end time of baggage handling
      tup tt;
      
      }
      
      tup myt1=<3,4>;
      tup myt2=<4,5>;
      
      
      
    Starttime S[flights]=[<1,2,3,myt1>,<1,2,9,myt2>];
    Starttime S2[flights][workingstations]=[[<1,2,3,myt1>,<1,2,9,myt2>],[<1,2,3,myt1>,<1,2,9,myt2>]];
    
    execute PREPROCESSING {
    //initialize tup
      var t1 = ttt.add(1,11);
      var t2 = ttt.add(2,22);
      
      writeln(ttt);
      writeln(S);
      writeln(S2);
      }
    //variables
    dvar int+ sd ;
    dvar int+ sh;
    
    subject to
    {
      
    }
    

    作品

    【讨论】:

    • 您好,尊敬的 Alex 先生,感谢您的回复,我想知道如何将第二组 S2 与决策变量一起使用!!!这意味着该 Set 的索引,我有一个决策变量 x (i)(c) (w)(t2),其中 i 、 c 、 w 、 t2 是航班、旋转木马、工作站的索引,以及您设置的 S2声明先生,所以我这样声明决策变量 x:'dvar boolean x[flights][carousels][workstations][t2 in S2[i][w]];但它显示一个错误“开始时间 [flights] [workstations] 类型不能与“in”一起使用。
    • 和另一个错误“泛型数组不允许使用可变索引器大小”。第二个问题先生:如何在金额上申报???我是这样写的: sum( t2 in S2) x[i][c][w][t2]== 1;但也是同样的错误
    • dvar boolean x[flights][carousels][workstations][t2 in S2[i][w]];不允许,因为所有尺寸都应该有一个给定的尺寸,而不是依赖于另一个以前的尺寸。
    • 您能解释更多吗亲爱的先生!我不明白!那么在x中使用Set S2怎么可能呢??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 2023-01-10
    • 2013-06-25
    • 2020-08-19
    相关资源
    最近更新 更多