我打算进行优化,但我得到一个我找不到原因的错误。编译器抱怨 servicetime、startlimit 和 endlimit 不是无效的。特别是编译器在约束 TimeConstraint 中抱怨 servicetime['ORIGINS'] 没有值。
有问题的约束是:
subject to TimeConstraint {k in H}: sum{i in UNI, j in UNI} servicetime[i]*x[i,j,k] <= 1440;
在哪里:
set ORIGINS;
set DESTINATIONS;
set UNI;
param servicetime{UNI} integer > 0;
var x{UNI,UNI, H} binary;
param startlimit{UNI};
param endlimit{UNI};
.dat 文件是:
set ORIGINS := 1 2 3 4 5 6 7;
set DESTINATIONS := 8 9 10 11 12 13 14;
set UNI = ORIGINS union DESTINATIONS;
param: startlimit endlimit servicetime:=
1 0 1440 360
2 0 1440 360
3 0 1440 360
4 0 1440 360
5 0 1440 360
6 0 1440 120
7 0 1440 120
8 0 1440 360
9 0 1440 360
10 0 1440 360
11 0 1440 360
12 0 1440 360
13 0 1440 120
14 0 1440 120;
我看不出这怎么行。对我来说,这看起来很准确。希望有人可以对此有所了解!问候,