数学建模社区-数学中国
标题:
这个模型写出来的程序找不到可行解,大家能帮我看看吗?
[打印本页]
作者:
hitman
时间:
2010-5-8 15:43
标题:
这个模型写出来的程序找不到可行解,大家能帮我看看吗?
本帖最后由 hitman 于 2010-5-8 15:46 编辑
这个模型手工算了下可以得到解,可是程序写出来就是求不到可行解,查了1天了没看出问题来,请教各位和斑竹了。
http://flashupload/swf/100508074257yfm3gxnx82fe.jpg
程序如下:
model:
sets:
region/1..3/:x,y,a,b; !x,y分别表示质心的横坐标、纵坐标,a表示region在x
轴上的距离、b表示region在y轴上的距离;
link(region,region):T,z; ! z(i,j)=1表示i和j紧邻,否则=0 ;
endsets
data: !关联度矩阵,要对称;
T=
-1000 4 0
0 -1000 4
0 0 -1000
;
h=4;
g=1;
a=1,2,1;
b=1,1,1;
enddata
! 关联度最大;
max=@sum(link(i,j)|i
#ne# j: T(i,j)*z(i,j));
@for(link(i,j)|i #ne# j:z(i,j)=@if((@abs(x(i)-x(j)) #eq# 0.5*(a(i)+a(j)) #and# @abs(y(i)-y(j))#lt# 0.5*(b(i)+b(j)))
#or#(@abs(y(i)-y(j)) #eq# 0.5*(b(i)+b(j)) #and# @abs(x(i)-x(j)) #lt# 0.5*(a(i)+a(j))),1,0));
@for(region(i): @for(region(j)|i #ne# j: @abs(x(i)-x(j))>=0.5*(a(i)+a(j))));
@for(region(i): @for(region(j)|i #ne# j: @abs(y(i)-y(j))>=0.5*(b(i)+b(j))));
@for(region(i):x(i)<h);
@for(region(i):y(i)<g);
@for(link(i,j)|i #ne# j: @bin(z(i,j)));
end
作者:
hwh30101
时间:
2010-5-8 16:45
。。。。。。。。。。。。。。。。。。。。。。。。。。。
作者:
hitman
时间:
2010-5-10 20:59
版主和各位高手能帮我看看这段程序吗?实在是比较急,但是自己又查不出问题来。谢谢!
作者:
ppv2k3
时间:
2011-8-24 21:56
我也遇到同样的问题了…
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5