0

我有几个 if-else 语句。我想cplex用 java 来解决我的问题,但我不知道如何if-elsecplex. 我有这样的声明:

if (stock[i][t] <=Seuil || stock[i][t] <= livraison[i][t] ) 
then ( order[i][t]==Q && stock[i][t+1] == stock[i][t]-livraison[i][t]+order[i][t]);

with stock[i][t]and stock[i][t]: 决策变量 Seuil, livraison[i][t]andQ是已知的(参数)

4

2 回答 2

0

你的问题不清楚。我认为您使用的是 OPL 语言,因为您在陈述中使用了“then”一词。如果是这样,那么if您的陈述部分 if (stock[i][t] <=Seuil || stock[i][t] <= livraison[i][t] ) 是混合决策变量和参数/数据/已知数量。

如果您尝试对 if-then 条件进行建模,则必须引入二进制变量来表示不同的逻辑条件。

于 2018-06-08T17:55:09.823 回答
0

如果您使用 OPL,那么您可以使用逻辑约束。让我给你一个小例子,它适用于你的代码:

int Seuil=5;

range I=1..4;
range T=1..3;
int order[i in I][t in T]=i+t;
int Q=1;

dvar int stock[I][T] in 0..10;
dvar int livraison[I][T] in 0..10;

subject to
{
forall(i in I,t in T:(t+1) in T)
 (stock[i][t] <=Seuil || stock[i][t] <= livraison[i][t] ) 
=> ( order[i][t]==Q && stock[i][t+1] == stock[i][t]-livraison[i][t]+order[i][t]);

}
于 2018-06-14T09:02:01.130 回答