
A会报错,报错代码为70,错误原因属性的下标越界
详解:for循环,i取1到4,当i=4时,s(i+1)=s(5),而根据前面集的定义知道s只有4个元素而已,不存在s(5),也就是下标越界
正确写法应该是@for(yuefen(i)|i#LT#4:s(i+1)=s(i)+x(i)-d(i));或@for(yuefen(i)|i#LE#3:s(i+1)=s(i)+x(i)-d(i));
F的第一个下标表示第几辆,第二个下标表示第几次经过城市,第三个下标表示经过哪个城市
F( 1, 1, 10) 1000000 0000000
F( 1, 2, 7) 1000000 0000000
F( 1, 3, 9) 1000000 1399381
F( 1, 4, 5) 1000000 2965530
F( 1, 5, 10) 1000000 0000000
F( 2, 1, 10) 1000000 0000000
F( 2, 2, 6) 1000000 5744603
F( 2, 3, 3) 1000000 5390751
F( 2, 4, 2) 1000000 0000000
F( 2, 5, 10) 1000000 0000000
F( 3, 1, 10) 1000000 0000000
F( 3, 2, 4) 1000000 1397852
F( 3, 3, 1) 1000000 1516603
F( 3, 4, 8) 1000000 -2195383
F( 3, 5, 10) 1000000 0000000
从上述结果可以看出,
第一辆车的行走路线为10-7-9-5-10
第二辆车的行走路线为10-6-3-2-10
第三辆车的行走路线为10-4-1-8-10
可以设计成3维问题,例子如下:
model:
sets:
a/12/:x;
b/12/:y;
c/12/:z;
links(a,b,c)|&2#NE#&1:k,m;
endsets
data:
x=1,2;
y=1,2;
z=1,3;
m=1,2,3,4;
enddata
max=@sum(links:km);
@for(links:@bin(k));
end
你试一下就可以看到结果表示形式。
第三个问题不太理解啥意思,我只见过4维问题,你可以看《优化模型与lindo/lingo软件》一书,比较好~~~上面有3,4维问题的模型。
分成两组不就行了
model:
sets:
num/1500/:odd,even;
endsets
min=@sum(num:even-odd);
@sum(num:even+odd)<=10000;
@sum(num:even)>=1000;
@sum(num:odd)<=1000;
end
以上就是关于LINGO程序问题全部的内容,包括:LINGO程序问题、车辆调度lingo编程、初学者向Lingo高手请教关于Lingo程序的小问题,非常感谢!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)