谁帮我看一下这段lingo代码哪里错了
<p>model:<br/>sets:<br/> quaters/1..4/:percentage,cost,minreq;<br/> link(quaters,quaters):a;<br/>endsets<br/>data:<br/>cost=35,50,80,95;<br/>minreq=2.4,0.7,5.0,21;<br/>a=2.2 1.4 2.3 12 <br/> 3.4 1.1 5.6 11.9<br/> 7.2 0 11.1 41.8 <br/> 1.5 0.8 1.3 52.1;<br/>enddata<br/><a href="mailto:min=@sum(quaters:percentage(i">min=@sum(quaters:percentage(i</a>) * cost(i));<br/>@for(quaters(j):@sum(quaters:percentage(i)*a(j,i))>=minreq(j););<br/>@sum(quaters(i):percentage(i))=1;<br/>@for(quaters:@free(x););<br/>end</p><p>运行后出现这样的提示:</p><p> </p><img alt="" src="http://crazysdf.googlepages.com/lingo.bmp" border="0"/> <p>model:<br/>sets:<br/> quaters/1..4/:percentage,cost,minreq;<br/> link(quaters,quaters):a;<br/>endsets<br/>data:<br/>cost=35,50,80,95;<br/>minreq=2.4,0.7,5.0,21;<br/>a=2.2 1.4 2.3 12 <br/> 3.4 1.1 5.6 11.9<br/> 7.2 0 11.1 41.8 <br/> 1.5 0.8 1.3 52.1;<br/>enddata<br/><a href="mailto:min=@sum(quaters(i):percentage(i">min=@sum(quaters(i):percentage(i</a>) * cost(i));<br/>@for(quaters(j):@sum(quaters(i):percentage(i)*a(j,i))>=minreq(j););<br/>@sum(quaters(i):percentage(i))=1;<br/>@for(quaters:@free(x););<br/>end</p> <p>错误:</p><p><a href="mailto:min=@sum(quaters:percentage(i" target="_blank">min=@sum(quaters:percentage(i</a>) * cost(i));<br/></p><p>@for(quaters(j):@sum(quaters:percentage(i)*a(j,i))>=minreq(j););</p><p> </p> <p>谢谢啦。刚开始学,粗心了点。</p> 初学者,路过,学习 <p>正确代码</p><p></p><p>model:<br/>sets:<br/> quaters/1..4/:percentage,cost,minreq;<br/> link(quaters,quaters):a;<br/>endsets<br/>data:<br/>cost=35,50,80,95;<br/>minreq=2.4,0.7,5.0,21;<br/>a=2.2 1.4 2.3 12 <br/> 3.4 1.1 5.6 11.9<br/> 7.2 0 11.1 41.8 <br/> 1.5 0.8 1.3 52.1;<br/>enddata<br/><a href="mailto:min=@sum(quaters(i):percentage(i">min=@sum(quaters(i):percentage(i</a>) * cost(i));<br/>@for(quaters(j):@sum(quaters(i):percentage(i)*a(i,j))>=minreq(j));<br/>@sum(quaters(i):percentage(i))=1;<br/>@for(quaters:@free(x));<br/>end</p><p></p> <p>model:<br/>sets:<br/> quaters/1..4/:percentage,cost,minreq;<br/> link(quaters,quaters):a;<br/>endsets<br/>data:<br/>cost=35,50,80,95;<br/>minreq=2.4,0.7,5.0,21;<br/>a=2.2 1.4 2.3 12 <br/> 3.4 1.1 5.6 11.9<br/> 7.2 0 11.1 41.8 <br/> 1.5 0.8 1.3 52.1;<br/>enddata<br/><a href="mailto:min=@sum(quaters:percentage">min=@sum(quaters:percentage</a>* cost);<br/>@for(quaters(j):@sum(quaters(i):percentage(i)*a(j,i))>=minreq(j););<br/>@sum(quaters(i):percentage(i))=1;<br/>@for(quaters:@free(percentage));<br/>end</p><p>此模型无界解!</p><p>如果去掉@for(quaters:@free(percentage));,模型就有解了!</p><p> Global optimal solution found at iteration: 4<br/> Objective value: 58.12253</p><p><br/> Variable Value Reduced Cost<br/> PERCENTAGE( 1) 0.6146245 0.000000<br/> PERCENTAGE( 2) 0.000000 15.83004<br/> PERCENTAGE( 3) 0.000000 45.23715<br/> PERCENTAGE( 4) 0.3853755 0.000000<br/> COST( 1) 35.00000 0.000000<br/> COST( 2) 50.00000 0.000000<br/> COST( 3) 80.00000 0.000000<br/> COST( 4) 95.00000 0.000000<br/> MINREQ( 1) 2.400000 0.000000<br/> MINREQ( 2) 0.7000000 0.000000<br/> MINREQ( 3) 5.000000 0.000000<br/> MINREQ( 4) 21.00000 0.000000<br/> A( 1, 1) 2.200000 0.000000<br/> A( 1, 2) 1.400000 0.000000<br/> A( 1, 3) 2.300000 0.000000<br/> A( 1, 4) 12.00000 0.000000<br/> A( 2, 1) 3.400000 0.000000<br/> A( 2, 2) 1.100000 0.000000<br/> A( 2, 3) 5.600000 0.000000<br/> A( 2, 4) 11.90000 0.000000<br/> A( 3, 1) 7.200000 0.000000<br/> A( 3, 2) 0.000000 0.000000<br/> A( 3, 3) 11.10000 0.000000<br/> A( 3, 4) 41.80000 0.000000<br/> A( 4, 1) 1.500000 0.000000<br/> A( 4, 2) 0.8000000 0.000000<br/> A( 4, 3) 1.300000 0.000000<br/> A( 4, 4) 52.10000 0.000000</p><p> Row Slack or Surplus Dual Price<br/> 1 58.12253 -1.000000<br/> 2 3.576680 0.000000<br/> 3 5.975692 0.000000<br/> 4 15.53399 0.000000<br/> 5 0.000000 -1.185771<br/> 6 0.000000 -33.22134</p><p></p> <p>model:<br/>sets:<br/> quaters/1..4/:percentage,cost,minreq;<br/> link(quaters,quaters):a;<br/>endsets<br/>data:<br/>cost=35,50,80,95;<br/>minreq=2.4,0.7,5.0,21;<br/>a=2.2 1.4 2.3 12 <br/> 3.4 1.1 5.6 11.9<br/> 7.2 0 11.1 41.8 <br/> 1.5 0.8 1.3 52.1;<br/>enddata<br/><a href="mailto:min=@sum(quaters:percentage">min=@sum(quaters:percentage</a>* cost);<br/>@for(quaters(j):@sum(quaters(i):percentage(i)*a(j,i))>=minreq(j););<br/>@sum(quaters(i):percentage(i))=1;</p><p>end<br/> Global optimal solution found at iteration: 0<br/> Objective value: 58.12253</p><p><br/> Variable Value Reduced Cost<br/> PERCENTAGE( 1) 0.6146245 0.000000<br/> PERCENTAGE( 2) 0.000000 15.83004<br/> PERCENTAGE( 3) 0.000000 45.23715<br/> PERCENTAGE( 4) 0.3853755 0.000000<br/> COST( 1) 35.00000 0.000000<br/> COST( 2) 50.00000 0.000000<br/> COST( 3) 80.00000 0.000000<br/> COST( 4) 95.00000 0.000000<br/> MINREQ( 1) 2.400000 0.000000<br/> MINREQ( 2) 0.7000000 0.000000<br/> MINREQ( 3) 5.000000 0.000000<br/> MINREQ( 4) 21.00000 0.000000<br/> A( 1, 1) 2.200000 0.000000<br/> A( 1, 2) 1.400000 0.000000<br/> A( 1, 3) 2.300000 0.000000<br/> A( 1, 4) 12.00000 0.000000<br/> A( 2, 1) 3.400000 0.000000<br/> A( 2, 2) 1.100000 0.000000<br/> A( 2, 3) 5.600000 0.000000<br/> A( 2, 4) 11.90000 0.000000<br/> A( 3, 1) 7.200000 0.000000<br/> A( 3, 2) 0.000000 0.000000<br/> A( 3, 3) 11.10000 0.000000<br/> A( 3, 4) 41.80000 0.000000<br/> A( 4, 1) 1.500000 0.000000<br/> A( 4, 2) 0.8000000 0.000000<br/> A( 4, 3) 1.300000 0.000000<br/> A( 4, 4) 52.10000 0.000000</p><p> Row Slack or Surplus Dual Price<br/> 1 58.12253 -1.000000<br/> 2 3.576680 0.000000<br/> 3 5.975692 0.000000<br/> 4 15.53399 0.000000<br/> 5 0.000000 -1.185771<br/> 6 0.000000 -33.22134</p><p></p> <p>MODEL:<br/>SETS:<br/>venders1/v1,v2/:c1,x1;<br/>goods1/g1,g2/:h1,i1,m1,o1;<br/>vg1(venders1,goods1):q1,d1,z1,g1,b1,p1;<br/>venders2/s1,s2/:c2,x2;<br/>goods2/w1,w2/:h2,i2,m2,o2;<br/>vg2(Venders2,goods2):q2,d2,z2,g2,b2,p2;<br/>ENDSETS<br/>DATA:<br/>c1= 1200,2000;<br/>h1= 1,1.5;<br/>m1= 3500,4000;<br/>q1= 0.04 0.02<br/> 0.03 0.04;<br/>d1= 0.18 0.09<br/> 0.2 0.1;<br/>g1= 2 1.8<br/> 1 0.8;<br/>b1= 3000 5000<br/> 3000 4000;<br/>p1= 5 5.1<br/> 2.2 2.1;<br/>c2= 1200,2000;<br/>h2= 1,1.5;<br/>m2= 3200,3500;<br/>q2= 0.04 0.02<br/> 0.03 0.04;<br/>d2= 0.18 0.09<br/> 0.2 0.1;<br/>G2= 2 1.8<br/> 1 0.8;<br/>b2= 3500 4500<br/> 3000 4000;<br/>p2= 5 5.1<br/> 2.2 2.1;</p><p>o1=100,80;</p><p>o2=100,80;<br/>i1= 0,0;<br/>ENDDATA<br/><a href="mailto:min=@sum(vg1(I,J):P1(I,J)*z1(I,J))+@sum(venders1:x1*c1)+@sum(vg1(i,j):g1(i,j)*z1(i,j))+@sum(goods1:h1*i1)+@sum(vg2(i,j):P2(i,j)*z2(i,j))+@sum(venders2:x2*c2)+@sum(vg2(i,j):g2(i,j)*z2(i,j)+@sum(goods2:h2*i2">min=@sum(vg1(I,J):P1(I,J)*z1(I,J))+@sum(venders1:x1*c1)+@sum(vg1(i,j):g1(i,j)*z1(i,j))+@sum(goods1:h1*i1)+@sum(vg2(i,j):P2(i,j)*z2(i,j))+@sum(venders2:x2*c2)+@sum(vg2(i,j):g2(i,j)*z2(i,j)+@sum(goods2:h2*i2</a>));<br/>@FOR(vg1(i,j):z1(i,j)<=b1(i,j));<br/>@for(vg2(i,j):z2(i,j)<=b2(i,j));</p><p>@for(goods1(j):i1(j)+@sum(goods1(j):z1(i,j)>=m1(j)+1.28o1(j)));<br/>venders1(i):x1(i)=@if(vg1(i,j):z1(i,j)#gt#0,1,0);</p><p>venders2(i):x2(i)=@if(vg2(i,j):z2(i,j)#gt#0,1,0);</p><p>goods2:i2(j)=goods1:i1(j)+@sum(goods2(j):z2(i,j)-m2(j));<br/>end</p><p>这是一个求两阶段规划问题,其中goods2:i2(j)=goods1:i1(j)+@sum(goods2(j):z2(i,j)-m2(j));是状态转移方程,由于本人刚接触lingo 所以用的方法比较笨拙,出现错误也不知如何修改,哪位高手能指点一下吗</p>
页:
[1]