数学建模社区-数学中国

标题: 200702网友求助《程序排错》 [打印本页]

作者: lxxnp1234    时间: 2007-2-10 19:31
标题: 200702网友求助《程序排错》
本帖最后由 为你奋斗 于 2009-12-3 15:54 编辑 急求高手修改下LINGO程序

急需一个lingo程序的修改,那位高手帮忙改一下吧,不胜感激!
我的原程序也附在上面了,多谢多谢,万分感谢啦!
min u[a]
s.t.∑x(i,j,a)=1    1≤a≤90.(对j求和)
   ∑x(i,j,a)=2  1≤a≤90.(对i求和)
    u[a]≥(i-1)*10+0.5*∑(j-1)*x(i,j,a)+300   (这是对j求和)
    x(i,j,a)=0,1          i=1...6, j=1...3, a=1...90.
    x(i,j,a)≠x(i,j,b)    a≠b,  1≤a,b≤90

model:
sets:
  AC/1..90/:a,b;
  IC/1..6/:i;
  JC/1..3/:j;
  link(IC,JC,AC):xija;
  UC(AC):u;
endsets

   min=@min(AC(a): u(a));
   
   @for(AC(a): @for(IC(i): @sum(JC(j): xija(i,j,a))= 1);
             @for(JC(j): @sum(IC(i): xija(i,j,a))= 2));
   @for(AC(a): u(a)=@max(IC(i): ((i-1)*10+0.5*(@sum(JC(j): (j*xija(i,j,a))))*0.5/0.5-3+300)));
   
   @for(link(IC,JC,AC): @BIN(xija));

[ 本帖最后由 lxxnp1234 于 2007-2-10 07:33 PM 编辑 ]

作者: lxxnp1234    时间: 2007-2-10 19:51
好心的大哥帮帮我啊~~
作者: madio    时间: 2007-2-10 21:57

model:
sets:
  AC/1..90/:a,b;
  IC/1..6/:i;
  JC/1..3/:j;
  link(IC,JC,AC):xija;
  UC(AC):u;
endsets

   min=@min(AC(a): u(a));
  
   @for(AC(a): @for(IC(i): @sum(JC(j): xija(i,j,a))= 1);
             @for(JC(j): @sum(IC(i): xija(i,j,a))= 2));
   @for(AC(a): u(a)=@max(IC(i): ((i-1)*10+0.5*(@sum(JC(j): (j*xija(i,j,a))))*0.5/0.5-3+300)));
  
   @for(link(IC,JC,AC): @BIN(xija));
end

这段程序应该没有问题,我的Lingo没有注册,提示不能求解这样规模的问题!


作者: alienlaino    时间: 2009-7-27 15:16
我的可以啊,需要的话和我联系
作者: 日新    时间: 2009-8-5 10:07
呵呵!!!!!过来看看!!!!!!!
作者: 追梦者    时间: 2009-8-13 11:27
O(∩_∩)O~
小弟发表下看法
上面的程序是有问题的:
a,不是作为下标而是一个属性,
程序建议修改如下:
model:
sets:
  AC/1..90/:u;
  IC/1..6/;
  JC/1..3/;
  link(IC,JC,AC):xija;
endsets

   min=@min(AC: u);
   
   @for(AC(k): @for(IC(i): @sum(JC(j): xija(i,j,k))= 1);
             @for(JC(j): @sum(IC(i): xija(i,j,k))= 2));
   @for(AC(k): @for(IC(i):u(k)>=(i-1)*10+0.5*(@sum(JC(j): (j*xija(i,j,k))))+300));
   
   @for(link: @BIN(xija));
不过同意版主的观点,规模对于我们许可小的不能做,上面版主说错了,licnese表示的是许可。
作者: NPOWER    时间: 2009-8-13 11:57
ls说的不错,求解出来是347.5




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5