数学建模社区-数学中国
标题:
lingo求问
[打印本页]
作者:
SeleneH
时间:
2014-8-21 22:30
标题:
lingo求问
lingo如何限制条件使@SUM等于0或者2:
我是这么写的:@for(sender(i):(@sum(receiver(j):x(i,j))-2 )* @sum(receiver(j):x(i,j)));
但编译错误了..求大侠指导
作者:
madio
时间:
2014-8-22 10:15
你这个是一个互补约束,要乘起来大于等于零吧,你没有右端的项
作者:
SeleneH
时间:
2014-8-22 15:32
madio 发表于 2014-8-22 10:15
你这个是一个互补约束,要乘起来大于等于零吧,你没有右端的项
再请教一下:
sets:
!sender:始发点;
sender/1..6/;
!receiver:接受地点;
receiver/1..6/;
!time:消耗时间;
link(sender,receiver):time,x;
endsets
!目标函数;
min=@sum(link:time*x)/27;
!约束条件;
@for(link:@bin(x));
@for(receiver(j):@sum(sender(i):x(i,j))=1);
@for(sender(i):@sum(receiver(j):x(i,j))=2#or#@sum(receiver(j):x(i,j))=0);
data:
time=
5 64 36 77 35 32
40 8 18 99 56 32
60 144 4.5 66 21 8
80 112 12 5.5 56 24
90 128 30 22 7 4
80 144 12 66 7 4;
!probability:5/27 8/27 3/27 5.5/27 3.5/27 2/27;
enddata
应该怎么改呢?运行错误显示是说等式关系太多。
作者:
madio
时间:
2014-8-23 09:14
sets:
!sender:始发点;
sender/1..6/;
!receiver:接受地点;
receiver/1..6/;
!time:消耗时间;
link(sender,receiver):time,x;
endsets
!目标函数;
min=@sum(link:time*x)/27;
!约束条件;
@for(link:@bin(x));
@for(receiver(j):@sum(sender(i):x(i,j))=1);
@for(sender(i):(@sum(receiver(j):x(i,j))-2)*@sum(receiver(j):x(i,j))=0);
data:
time=
5 64 36 77 35 32
40 8 18 99 56 32
60 144 4.5 66 21 8
80 112 12 5.5 56 24
90 128 30 22 7 4
80 144 12 66 7 4;
!probability:5/27 8/27 3/27 5.5/27 3.5/27 2/27;
enddata
复制代码
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5