首页 > 解决方案 > 如何在 CPLEX 上编辑关于元组的代码?

问题描述

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

元组之夜{

国际工作;晚上是的;

}

{夜}jobnotturni =...;

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

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

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

标签: tuplescplex

解决方案


如果您将 .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}

推荐阅读