CPLEX 元组的一部分

问题描述 投票:0回答:1

    tuple sa_pjt
    {
      int p;
      int j;
      int t;
      int SA_pjt;
    }
    {sa_pjt} SA_pjt =...;

对于这些元组,我有所有 t=1 的 SA_pjt,但剩余的 t= 2..T 将通过模型计算。我该如何修改代码来弥补这一点?我需要更改 .dat 文件吗?

这会导致所有 SA_pjt 的 SA_pjt 输出未定义

optimization tuples cplex docplex
1个回答
0
投票

在 OPL 中,您可以从现有集合中计算出新集合。

.mod

tuple sa_pjt
    {
      int p;
      int j;
      int t;
      int SA_pjt;
    }
    
{sa_pjt} SA_pjt =...;

{sa_pjt} SA_pjt2 = {<a,b,t+k,d> | k in 1..10 , <a,b,t,d> in SA_pjt};

execute
{
  writeln( SA_pjt2 );
}

.dat

SA_pjt ={<1,1,1,1>};

给予

{<1 1 2 1> <1 1 3 1> <1 1 4 1> <1 1 5 1> <1 1 6 1>
     <1 1 7 1> <1 1 8 1> <1 1 9 1> <1 1 10 1>
     <1 1 11 1>}
© www.soinside.com 2019 - 2024. All rights reserved.