【问题标题】:How to define this kind of decision variables in CPLEX如何在 CPLEX 中定义这种决策变量
【发布时间】:2018-10-13 15:23:43
【问题描述】:

我是 CPLEX 的新手,我想知道如何使用 OPL 定义像 xijk 这样的决策变量,但仅限于带有下标 i < ji ≠ j 的那些。

代码是这样的

int jobsNum = ...;
int machinesNum = ...;

range jobs = 0..jobsNum-1
range machines = 0..machinesNum-1;

dvar boolean x[jobs][jobs][machines];

x[jobs][jobs][machines]是job i和job j在机器k上的相对处理顺序,但是这样写会引入一些冗余变量,不知道能不能写成这样的

dvar boolean x[i in jobs][j in jobs: j < i][machines];

【问题讨论】:

  • 请提供您的代码示例
  • @Federico Navarrete 嗨,我已经编辑了我的问题并提供了一个简单的例子,谢谢!

标签: cplex opl


【解决方案1】:

我举个例子

int jobsNum = 3;
int machinesNum = 4;

range jobs = 0..jobsNum-1;
range machines = 0..machinesNum-1;

tuple t
{
int i;
int j;
}

{t} transitions={<i,j> | ordered i,j in jobs};

dvar boolean x[transitions][machines];

subject to
{
x[<1,2>][1]==1;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    相关资源
    最近更新 更多