syntax-error - CPLEX 中不可用的运算符
问题描述
我在 CPLEX 中的代码中有一个错误:
运算符不适用于 dvar int+[][time] + dexpr float。
int i=...; //set of origins
int j=...; //set of destinations
int t=...;//set of time
//parameters
float al[origins][destinations][time]=...;//Proportion of all utilized vehicles that are dispatched
//variables
dvar int+ o[origins][destinations][time];//numbers of vehicles present at i at beginning of t
dvar int+ l[origins][destinations][time];//numbers of rented vehicles dispatched from i to j during t
dvar int+ e[origins][destinations][time];//numbers of unutilized vehicles dispatched from i to j during t
subject to{
constraint:
forall(i in origins, t in time:(t-1) in time)
o[i][t]== o[i][t-1]+ sum (j in destinations, t in time ) al[i][j][t] * e[j][i][t]- l[i][j][t-1];
}
我该如何解决这个错误?
解决方案
您的决策变量o
被定义为具有 3 个索引,但是,在您的约束中,您只使用两个索引。
还有,我认为
sum (j in destinations, t in time ) al[i][j][t] * e[j][i][t]- l[i][j][t-1];
应该写成(注意额外的括号)
sum (j in destinations, t in time ) (al[i][j][t] * e[j][i][t]- l[i][j][t-1]);
推荐阅读
- python-3.x - How can I change the size of the second ax in ordinate?
- php - 设置 cookie 过期时间:“time()-3600”是否总是正确的?
- linux - automatic dimming keyboard backlight in linux
- swift - How can I access property of instance already created
- c++ - Number of possible arrays such that adjacent elements have difference atmost 1
- angular - 为什么我在 GCP 的代码中不能使用 isDevMode()
- python - Does setting a unique_together cause droping of duplicates upon migration?
- windows - 如何在 Dockerfile 中 CMD Powershell 脚本
- php - PHP字符串表达式错误:这里发生了什么?
- sql - INNER JOIN 中的 VARCHAR 参数不起作用,而同一个表的 INT 参数正在工作