数学建模社区-数学中国

标题: 这个模型写出来的程序找不到可行解,大家能帮我看看吗? [打印本页]

作者: 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