Optimization 如何解决cplex中的元组问题? 我在CPLEX中使用了元组 该错误运算符不适用于dvar int++需求:int、原点:int、目标:int、时间:int 我如何解决这个问题

Optimization 如何解决cplex中的元组问题? 我在CPLEX中使用了元组 该错误运算符不适用于dvar int++需求:int、原点:int、目标:int、时间:int 我如何解决这个问题,optimization,tuples,cplex,Optimization,Tuples,Cplex,在 dm是一个元组,但您需要一个值,而不是总和中的元组,因此您应该编写 u[i][j][t]== u[i][j][t-1] + dm[i][j][t].demand- l[i][j][t]; 另外,因为使用t-1作为索引,所以应该进行更改 forall(i in origins, j in destinations, t in time) 进入 inti=//一套起源 int j=//目的地集 int t=//时间步长集 范围原点=1..i; 范围目的地=1..j; 距离时间=1..t; 元

dm是一个元组,但您需要一个值,而不是总和中的元组,因此您应该编写

u[i][j][t]== u[i][j][t-1] + dm[i][j][t].demand- l[i][j][t];
另外,因为使用t-1作为索引,所以应该进行更改

forall(i in origins, j in destinations, t in time)
进入

inti=//一套起源
int j=//目的地集
int t=//时间步长集
范围原点=1..i;
范围目的地=1..j;
距离时间=1..t;
元组需求类型{
智力需求;
智力起源;
国际旅游目的地;
整数时间;
}
demandType dm=//车辆需求
浮点p=//罚款成本
dvar int+l[起点][目的地][时间]//t期间从起点i到目的地j的车辆数量
dvar int+u[起点][目的地][时间]//从起点i到终点j的未满足需求
dexpr浮动成本1=总和(i在起点,j在目的地,t在时间)(p*u[i][j][t]);
//目标函数
尽量减少成本1;
服从{
约束1:
forall(i在起点,j在目的地,t在时间:(t-1)在时间)
u[i][j][t]==u[i][j][t-1]+dm.demands-l[i][j][t];
} ```
模型看起来不错,但错误来自数据文件。
dm={,};
“需求[][目的地][时间]”的数据项“19”意外。

非常感谢您提供的解决方案。数据仍然有问题。刚刚发布了错误。您好,您将dm声明为demandType dm=//需求的车辆,但dm是一个元组集,所以您宁愿写{demandType}dm=//对车辆的需求
u[i][j][t]== u[i][j][t-1] + dm[i][j][t].demand- l[i][j][t];
forall(i in origins, j in destinations, t in time)
forall(i in origins, j in destinations, t in time:(t-1) in time)
int i=...; //set of origins
int j=...; //set of destinations
int t=...;//set of time step

range origins=1..i;
range destinations=1..j;
range time=1..t;

tuple demandType {
int demands;
int origins;
int destinations;
int time;
}

demandType dm=...;//Demand of vehicles


float p=...;//Penalty cost 

dvar int+ l[origins][destinations][time];//numbers of vehicles from origin i to destination j during t
dvar int+ u[origins][destinations][time];//unmet demand from origin i to destination j at the end of t

dexpr float cost1= sum(i in origins,j in destinations, t in time)(p*u[i][j][t]);

//Objective Function
minimize cost1;

subject to{
constraint1:
forall(i in origins, j in destinations, t in time:(t-1) in time)
u[i][j][t]== u[i][j][t-1] + dm.demands- l[i][j][t];

} ```

The model looks fine but the error is from the data file. 
dm = { <19, 1,1,1>, <17, 2,1,1>, <18, 2,1,2>};
Data item "19" unexpected for "Demand[][destinations][time]".