lxxnp1234 发表于 2007-2-10 19:31

200702网友求助《程序排错》

本帖最后由 为你奋斗 于 2009-12-3 15:54 编辑

<STRONG><FONT size="2"><SPAN class="smalltxt"><SPAN class="bold">急求高手修改下LINGO程序</SPAN></SPAN><BR><BR></FONT></STRONG><SPAN style="FONT-SIZE: 12px;">急需一个lingo程序的修改,那位高手帮忙改一下吧,不胜感激!<BR>我的原程序也附在上面了,多谢多谢,万分感谢啦!<BR>min u<BR>s.t.∑x(i,j,a)=1    1≤a≤90.(对j求和)<BR>   ∑x(i,j,a)=2  1≤a≤90.(对i求和)<BR>    u≥(i-1)*10+0.5*∑(j-1)*x(i,j,a)+300   (这是对j求和)<BR>    x(i,j,a)=0,1          i=1...6, j=1...3, a=1...90.<BR>    x(i,j,a)≠x(i,j,b)    a≠b,  1≤a,b≤90<BR><BR>model:<BR>sets:<BR>  AC/1..90/:a,b;<BR>  IC/1..6/:i;<BR>  JC/1..3/:j;<BR>  link(IC,JC,AC):xija;<BR>  UC(AC):u;<BR>endsets<BR><BR>   min=@min(AC(a): u(a));<BR>   <BR>   @for(AC(a): @for(IC(i): @sum(JC(j): xija(i,j,a))= 1);<BR>             @for(JC(j): @sum(IC(i): xija(i,j,a))= 2));<BR>   @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)));<BR>   <BR>   @for(link(IC,JC,AC): @BIN(xija));<BR><BR>[<I> 本帖最后由 lxxnp1234 于 2007-2-10 07:33 PM 编辑 </I>]</SPAN>

lxxnp1234 发表于 2007-2-10 19:51

好心的大哥帮帮我啊~~

madio 发表于 2007-2-10 21:57

<p>model:<br/>sets:<br/>&nbsp; AC/1..90/:a,b;<br/>&nbsp; IC/1..6/:i;<br/>&nbsp; JC/1..3/:j;<br/>&nbsp; link(IC,JC,AC):xija;<br/>&nbsp; UC(AC):u;<br/>endsets</p><p>&nbsp;&nbsp; <a href="mailto:min=@min(AC(a">min=@min(AC(a</a>): u(a));<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; @for(AC(a): @for(IC(i): @sum(JC(j): xija(i,j,a))= 1);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @for(JC(j): @sum(IC(i): xija(i,j,a))= 2));<br/>&nbsp;&nbsp; @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)));<br/>&nbsp;&nbsp; <br/>&nbsp;&nbsp; @for(link(IC,JC,AC): @BIN(xija));<br/>end</p><p>这段程序应该没有问题,我的Lingo没有注册,提示不能求解这样规模的问题!</p>

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
页: [1]
查看完整版本: 200702网友求助《程序排错》