如何在 CPLEX 上编辑有关元组的代码?

How can I edit my code on CPLEX about tuple?

晚上好!我创建了这个元组,在其中我用 1 来标识可以在晚上执行的工作,用 0 来标识白天可以执行的工作。在集合 D 中,我只想 select 可以在晚上执行的工作,因此 nightyes 等于 1 的工作。所以在我的示例中,我希望 D 等于 (1,4,5)。我以这种方式尝试,但 CPLEX returns 不分青红皂白地执行所有作业。我该如何更改此代码?谢谢。

元组之夜{

内部职位; int nightyes;

}

{night} jobsnotturni =...;

{int} nightyes = {i.nightyes|我在 jobsnotturni };

{int} D = {i.jobs|i 在 jobsnotturni, n 在 nightyes : n==1};

jobsnotturni = {<1,1>, <2,0>,<3,0>,<4,1>,<5,1>};

如果您将 .mod 更改为

tuple night {

int jobs; int nightyes;

}

{night} jobsnotturni =...;

{int} nightyes = {i.nightyes|i in jobsnotturni };

{int} D = {i.jobs|i in jobsnotturni: i.nightyes==1};

execute
{
  writeln(D);
}

然后你会得到

{1 4 5}