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> 好心的大哥帮帮我啊~~ <p>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</p><p> <a href="mailto:min=@min(AC(a">min=@min(AC(a</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/>end</p><p>这段程序应该没有问题,我的Lingo没有注册,提示不能求解这样规模的问题!</p> 我的可以啊,需要的话和我联系 呵呵!!!!!过来看看!!!!!!! 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表示的是许可。 ls说的不错,求解出来是347.5
页:
[1]