数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 7793|回复: 27

Lingo进阶篇

[复制链接]
发表于 2005-9-14 06:12:34 | 显示全部楼层 |阅读模式
<TABLE  height="85%" width="95%" align=center border=0>

<TR>
<TD  vAlign=top width=* height="100%">
<>2004电力市场输电阻塞管理</P>
<>要准确计费,必须给出第i台机组出力和对应其当前段价的函数关系式,这是个难点,没几个队能正确写出,好在当年没有最佳答案,大家就可各显神通,错了评委也难知道.</P>
<>想用LINGO解,必用其自定义函数@user(),我们可定义其为阶跃函数,从而解决本问题.</P>
<br>
<P>MODEL:<BR>SETS:<BR>  i6/1..6/:y,c;<BR>  i8/1..8/:x,x0,u,v,T,TT,q,vv,uu,xx;<BR>  i12/1..12/:z6;<BR>  i10/1..10/:;<BR>  cc(i6,i8):A;<BR>  dd(i8,i10):e,h,ee;<BR>ENDSETS<BR>p=0.5;<BR>!j0=303; !r=0;<BR>j0=356; r=0.397;  <BR><a href="http://www.shumo.com/bbs/mailtmin=0.25*@sum(i8(i):p*j0*(-x(i))*@user(-x(i))+T(i)*@user(x(i" target="_blank" ><FONT color=#000000>min=0.25*@sum(i8(i):p*j0*(-x(i))*@user(-x(i))+T(i)*@user(x(i</FONT></A>)));</P>
<P>@for(i8(i):T(i)=x(i)*(TT(i)-j0));</P>
<P>@for(i8(i):TT(i)=h(i,1)*@user(x0(i)+x(i))+(h(i,2)-h(i,1))*@user(x0(i)+x(i)-ee(i,1))+(h(i,3)-h(i,2))*@user(x0(i)+x(i)-ee(i,2))+(h(i,4)-h(i,3))*@user(x0(i)+x(i)-ee(i,3))+(h(i,5)-h(i,4))*@user(x0(i)+x(i)-ee(i,4))+(h(i,6)-h(i,5))*@user(x0(i)+x(i)-ee(i,5))+(h(i,7)-h(i,6))*@user(x0(i)+x(i)-ee(i,6))+(h(i,8)-h(i,7))*@user(x0(i)+x(i)-ee(i,7))+(h(i,9)-h(i,8))*@user(x0(i)+x(i)-ee(i,8))+(h(i,10)-h(i,9))*@user(x0(i)+x(i)-ee(i,9)));</P>
<P>@sum(i8(i):x(i))=0;<BR>@sum(i8(j):A(1,j)*(x(j)+x0(j)))+c(1)&lt;z6(1)*(1+z6(7)*r);<BR>@sum(i8(j):A(2,j)*(x(j)+x0(j)))+c(2)&lt;z6(2)*(1+z6(8)*r);<BR><a href="http://www.shumo.com/bbs/mailt-@sum(i8(j):A(3,j)*(x(j)+x0(j)))+c(3)<z6(3)*(1+z6(9)*r" target="_blank" ><FONT color=#000000>-@sum(i8(j):A(3,j)*(x(j)+x0(j)))+c(3)&lt;z6(3)*(1+z6(9)*r</FONT></A>);<BR>@sum(i8(j):A(4,j)*(x(j)+x0(j)))+c(4)&lt;z6(4)*(1+z6(10)*r);<BR>@sum(i8(j):A(5,j)*(x(j)+x0(j)))+c(5)&lt;z6(5)*(1+z6(11)*r);<BR>@sum(i8(j):A(6,j)*(x(j)+x0(j)))+c(6)&lt;z6(6)*(1+z6(12)*r);</P>
<P>@for(i6(i):y(i)=@sum(i8(j):A(i,j)*(x0(j)+x(j)))+c(i));<BR>@for(i8(i):xx(i)=x0(i)+x(i));<BR>@FOR(i8(i)BND(vv,xx,uu));<BR>@FOR(i8(i)BND(-v,x,u));<BR>@for(i8(i)free(x(i)));<BR>@for(i8(i):@free(xx(i)));<BR>@for(i6(i):@free(y(i)));<BR>@for(i8(i):@free(q(i)));<BR>@for(i8(i):@free(TT(i)));<BR>@for(i8(i):@free(T(i)));</P>
<P>DATA:<BR>A=0.0828,    0.0483,    0.0530,    0.1199,   -0.0254,    0.1220,    0.1216,  -0.0012,<BR>   -0.0546,    0.1279,         0,    0.0333,    0.0868,   -0.1124,   -0.0189,  0.0987,<BR>   -0.0695,   0.0616,   -0.1566,   -0.0099,    0.1245,    0.0021,   -0.0025,  -0.2014,<BR>   -0.0345,   -0.1024,    0.2052,   -0.0208,   -0.0118,    0.0060,    0.1449,  0.0765,<BR>    0.0005,    0.2433,   -0.0646,   -0.0411,   -0.0652,    0.0703,   -0.0043,  -0.0089,<BR>    0.2378,   -0.0602,   -0.0779,    0.0930,    0.0469,    0.0001,    0.1659,  0.0007;</P>
<P><BR>c=110.2965  131.2289 -108.8732   77.4817  132.9745  120.6633;</P>
<P><BR>!v=63.0000   21.0000   48.0000   39.0000   27.0000   45.0000   34.9000  50.9000;<BR>!u=3.0000    ,9.0000   ,48.0000 ,        0 ,  27.0000  , 15.0000  ,  7.1000 , 3.1000;<BR>u=3.0000    7.0000    9.8000         0   17.0000    5.0000    0.0000   0;<BR>v=  63.0000   23.0000   86.2000   39.0000   37.0000   55.0000   42.0000     54.00;</P>
<P>z6=165, 150, 160, 155, 132, 162, 0.13, 0.18, 0.09, 0.11, 0.15, 0.14 ;<BR>!x0=150.0000   79.0000  180.0000   99.5000  125.0000  140.0000   95.0000  113.9000;<BR>x0= 150.0000   81.0000  218.2000   99.5000  135.0000  150.0000  102.100  117.0000;</P>
<P>uu=190  89  280  116  155  180  125  160;<BR>vv=0 0 0 0 0 0 0 0;<BR>!x1=153  86.87  228  90.1124  152  95.3222  60.1  117;</P>
<P>e=70 0 50 0 0 30 0 0 0 40<BR>  30 0 20 8 15 6 2 0 0 8<BR>  110 0 40 0 30 0 20 40 0 40<BR>  55 5 10 10 10 10 15 0 0 1<BR>  75 5 15 0 15 15 0 10 10 10<BR>  95 0 10 20 0 15 10 20 0 10<BR>  50 15 5 15 10 10 5 10 3 2<BR>  70 0 20 0 20 0 20 10 15 5;</P>
<P>h=-505 0 124 168 210 252 312 330 363 489<BR>  -560 0 182 203 245 300 320 360 410 495<BR>  -610 0 152 189 233 258 308 356 415 500<BR>  -500 150 170 200 255 302 325 380 435 800<BR>  -590 0 116 146 188 215 250 310 396 510<BR>  -607 0 159 173 205 252 305 380 405 520<BR>  -500 120 180 251 260 306 315 335 348 548<BR>  -800 153 183 233 253 283 303 318 400 800;</P>
<P><BR>   ee=70    70   120   120   120   150   150   150   150   190<BR>       30    30    50    58    73    79    81    81    81    89<BR>       110   110   150   150   180   180   200   240   240   280<BR>       55    60    70    80    90   100   115   115   115   116<BR>       75    80    95    95   110   125   125   135   145   155<BR>       95    95   105   125   125   140   150   170   170   180<BR>       50    65    70    85    95   105   110   120   123   125<BR>       70    70    90    90   110   110   130   140   155   160;</P>
<P><BR>ENDDATA<BR>END<BR></P></TD></TR>
<TR>
<TD></TD></TR></TABLE>
发表于 2005-9-15 01:06:40 | 显示全部楼层
<>顶!!!</P>
<>敢问Lingo达到这个高度需要几个月?</P>[em01][em01][em01]
 楼主| 发表于 2005-9-14 06:22:46 | 显示全部楼层
< 0cm 0cm 0pt; mso-layout-grid-align: none"> 结果为:(按15分钟计)</P>
< 0cm 0cm 0pt; mso-layout-grid-align: none">   W=982.4MW时<FONT face="Times New Roman">   </FONT>阻塞费用 <B normal">F=</B><B normal">5805</B><B normal">元</B>         <FONT face="Times New Roman"> J0=303<p></p></FONT></P>
< 0cm 0cm 0pt 24.05pt; TEXT-INDENT: 24pt"><v:shapetype><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path connecttype="rect" gradientshapeok="t" extrusionok="f"></v:path><lock aspectratio="t" v:ext="edit"></lock></v:shapetype><v:shape><v:imagedata><FONT face="Times New Roman"></FONT></v:imagedata></v:shape>X增量=[0.492  9  48  -9.42  27  -43.27  -34.9  3.1]        <p></p></P>
<P 0cm 0cm 0pt; TEXT-INDENT: 48pt"><v:shape><v:imagedata></v:imagedata></v:shape>X0=[150.0  79.0  180.0   99.5  125.0  140.0  95.0  113.9 ]<p></p></P>
<P 0cm 0cm 0pt">          由  x =<v:shape> <v:imagedata></v:imagedata></v:shape>+<v:shape> <v:imagedata></v:imagedata></v:shape> 得分配方案即8个电机组出力如下:  <p></p></P>
<P 0cm 0cm 0pt; TEXT-INDENT: 24pt">      X = [150.49  88  228  90  152  96.73  60.1  117]<p></p></P>
<P 0cm 0cm 0pt">          由 Y=A*x+c; 及分配预案,得到6条线路的潮流值如下:<p></p></P>
<P 0cm 0cm 0pt">          Y= [165  150  -155.1  124.63  131.62  158.96]   </P>
<P 0cm 0cm 0pt"><p></p> </P>
<P 0cm 0cm 0pt; TEXT-INDENT: 24pt">W =1052.8 Mw时    用二分法搜索出最小的R =0.397,对应如下结果:<p></p></P>
<P 0cm 0cm 0pt; mso-layout-grid-align: none"><FONT face="Times New Roman">              </FONT>阻塞费用 <B normal">F=2512元       </B><B normal">J0=356</B><B normal"><p></p></B></P>
<P 0cm 0cm 0pt 24pt">     <v:shape><v:imagedata></v:imagedata></v:shape>=[1.425  7  9.8  0  17  -35.22  0  0 ]        <p></p></P>
<P 0cm 0cm 0pt; TEXT-INDENT: 48pt"><v:shape><v:imagedata></v:imagedata></v:shape>=[150.0  81.0  218.2  99.5  135  150  102  117 ]<p></p></P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">        </FONT>由<FONT face="Times New Roman">x =</FONT><v:shape><FONT face="Times New Roman"> <v:imagedata></v:imagedata></FONT></v:shape><FONT face="Times New Roman">+</FONT><v:shape><FONT face="Times New Roman"> <v:imagedata></v:imagedata></FONT></v:shape>得<FONT face="Times New Roman">8</FONT>个电机组出力为<FONT face="Times New Roman">: </FONT></P>
<P 0cm 0cm 0pt"><FONT face="Times New Roman">         x=[151.43  88  228  99.5  152  114  102.1  117 ]<p></p></FONT></P>
<P 0cm 0cm 0pt; TEXT-INDENT: 24pt">6条线路的潮流值为:  Y= [173.52  147.44  -155.32  130.6  132.32  167.03 ]  <p></p></P>
 楼主| 发表于 2005-9-14 06:25:30 | 显示全部楼层
<>1997(A)产品参数设计的 Lingo 程序 </P>
<>MODEL:<BR>SETS:<BR>NODES/1..7/:x,d,c,t,b,a;<BR>ENDSETS</P>
<>min=ff;<BR>ff=1000*(@SUM(NODES:C)+1000*100*(f-1.5)^2+1000*100/9*@sum(NODESd*x*t)^2));<BR>f=174.42*(x(1)/x(5))*((x(3)/(x(2)-x(1)))^0.85)*g/h;<BR>g=(1-2.62*q*(x(4)/x(2))^1.16)^0.5;<BR>q=(1-0.36*(x(2)/x(4))^0.56)^1.5;<BR>h=(x(6)*x(7))^0.5;<BR>d(1)=f*(1/x(1)+0.85/(x(2)-x(1)));<BR>d(3)=0.85*f/x(3);<BR>d(5)=f/x(5);<BR>d(6)=f/(2*x(6));<BR>d(7)=f/(2*x(7));<BR>d(4)=f*1.31/x(2)^1.16*(z41+z42)/f4;<BR>z40=1-0.36*x(2)^0.56/x(4)^0.56;<BR>f4=1-2.62*z40^1.5*x(4)^1.16/x(2)^1.16;<BR>z41=1.16*x(4)^0.16*z40^1.5;<BR>z42=1.5*0.36*0.56*z40^0.5*x(2)^0.56/x(4)^0.4;<BR>d(2)=f*0.85/(x(2)-x(1))+1.31*f*x(4)^1.16*(z21+z22)/f4;<BR>z21=-1.16*z40^1.5/x(2)^2.16;<BR>z22=-1.5*0.36*0.56*z40^0.5/x(4)^0.56/x(2)^1.6;</P>
<P>@FOR(NODES( I): @BND(a,x,b));<BR>@free(f); @free(g); @free(q); @free(h); @free(v);<BR>@free(z40); @free(f4); @free(z41);<BR>@free(z42); @free(z21);@free(z22);   @free(ff);</P>
<P>DATA:<BR>a=0.075,0.225,0.075,0.075,1.125,12,0.5625;<BR>b=0.125,0.375,0.125,0.125,1.875,20,0.935;<BR>C=25,50,50,50,50,25,25;<BR>t=0.05,0.05,0.05,0.1,0.1,0.05,0.05;<BR>ENDDATA<BR>END</P>
<P>---------------------------------</P>
<P>Rows=     19 Vars=     26 No. integer vars=      0<BR>Nonlinear rows=     18 Nonlinear vars=     24 Nonlinear constraints=     18<BR>Nonzeros=     90 Constraint nonz=    84 Density=0.175</P>
<P>** WARNING ** Problem is poorly scaled.  The units<BR>of the rows and variables should be changed so the<BR>coefficients cover a much smaller range.</P>
<P>Optimal solution found at step:        56<BR>Objective value:                 748736.8=74.87万元/1000件产品</P>
<P>                       Variable           Value        Reduced Cost<BR>                             FF        748736.8            1.000000<BR>                              F        1.496842           0.0000000E+00<BR>                              G       0.9350423           0.0000000E+00<BR>                              H        2.598093           0.0000000E+00<BR>                              Q       0.1798687           0.0000000E+00<BR>                            Z41       0.1486261           0.0000000E+00<BR>                            Z42       0.2301376           0.0000000E+00<BR>                             F4       0.8743041           0.0000000E+00<BR>                            Z40       0.3186425           0.0000000E+00<BR>                            Z21       -1.735826           0.0000000E+00<BR>                            Z22       -2.687810           0.0000000E+00<BR>                              V        1.234568           0.0000000E+00<BR>                          X( 1)       0.7500000E-01       0.0000000E+00<BR>                          X( 2)       0.3750000           0.0000000E+00<BR>                          X( 3)       0.1249971           0.0000000E+00<BR>                          X( 4)       0.1200215           0.0000000E+00<BR>                          X( 5)        1.494412           0.0000000E+00<BR>                          X( 6)        12.00000           0.0000000E+00<BR>                          X( 7)       0.5625072           0.0000000E+00</P>
 楼主| 发表于 2005-9-14 06:28:34 | 显示全部楼层
<>1997(A)产品参数设计的 Lingo 程序没用108个循环,若要用也可,但难度大增,我这就不帖出了,帖出一般人也看不懂!</P>
 楼主| 发表于 2005-9-14 06:31:41 | 显示全部楼层
<TABLE fixed; WORD-BREAK: break-all" height="85%" width="95%" align=center border=0>

<TR>
<TD 9pt; LINE-HEIGHT: 12pt" vAlign=top width=* height="100%"><IMG src="http://www.shumo.com/bbs/Skins/Default/topicface/face1.gif"> <B></B><BR>
<>1998(A)大基金投资组合的 Lingo 程序 </P>
<>MODEL:<BR>SETS:<BR>QUARTERS/A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,<BR>A15/,Q,X,R;<BR>ENDSETS<BR>MIN=0.3884*Y-0.6116*Z;<BR><a href="http://www.shumo.com/bbs/mailtZ=5+@SUM(QUARTERS(R-P)/(1+P)-0.05)*X" target="_blank" ><FONT color=#000000>Z=5+@SUM(QUARTERS(R-P)/(1+P)-0.05)*X</FONT></A>);<BR>@FOR(QUARTERS:Y&gt;X/(1+P)*Q);<BR>@SUM(QUARTERS:X)=100;<BR>DATA:<BR>R=0.05,0.096,0.185,0.494,0.239,0.081,0.14,0.407,0.312,0.336,0.368,0.118,<BR>0.09,0.35,0.094,0.15;<BR>=0,0.021,0.032,0.06,0.015,0.076,0.034,0.056,0.031,0.027,0.029,0.051,<BR>0.057,0.027,0.045,0.076;<BR>Q=0,0.42,0.54,0.60,0.42,0.012,0.39,0.68,0.334,0.533,0.4,0.31,0.055,<BR>0.46,0.053,0.23;<BR>ENDDATA<BR>END</P>
<P>-------------------------------------</P>
<P>Rows=     19 Vars=     18 No. integer vars=      0  ( all are linear)<BR>Nonzeros=     69 Constraint nonz=    63(    33 are +- 1) Density=0.191<BR>Smallest and largest elements in absolute value=   0.311005E-02    100.000<BR>No. &lt; :   0 No. =:   2 No. &gt; :  16, Obj=MIN, GUBs &lt;=   4<BR>Single cols=    0</P>
<P>Optimal solution found at step:        12<BR>Objective value:                -16.64271</P>
<P>                       Variable           Value        Reduced Cost<BR>                              Y        7.611293           0.0000000E+00<BR>                              Z        32.04536           0.0000000E+00</P>
<P>                         X( A0)       0.0000000E+00       0.1358472<BR>                         X( A1)       0.0000000E+00       0.1215006<BR>                         X( A2)       0.0000000E+00       0.7575390E-01<BR>                         X( A3)        13.44662           0.0000000E+00<BR>                         X( A4)       0.0000000E+00       0.3145336E-01<BR>                         X( A5)       0.0000000E+00       0.1635851<BR>                         X( A6)       0.0000000E+00       0.1037293<BR>                         X( A7)        11.81989           0.0000000E+00<BR>                         X( A8)        23.49474           0.0000000E+00<BR>                         X( A9)        14.66566           0.0000000E+00<BR>                        X( A10)        19.58005           0.0000000E+00<BR>                        X( A11)       0.0000000E+00       0.1274384<BR>                        X( A12)       0.0000000E+00       0.1473327<BR>                        X( A13)        16.99304           0.0000000E+00<BR>                        X( A14)       0.0000000E+00       0.1377493<BR>                        X( A15)       0.0000000E+00       0.1243654</P></TD></TR></TABLE>
发表于 2005-9-14 06:33:47 | 显示全部楼层
<>太难了吧</P>
 楼主| 发表于 2005-9-14 06:36:13 | 显示全部楼层
想学就简单!
 楼主| 发表于 2005-9-14 06:59:27 | 显示全部楼层
<>2004电力市场输电阻塞管理-----最简明的模型</P>

<>min R    (R为裕量的统一升缩因子,在0~1中变化)</P>
<>min F      (F堵塞费用)</P>
<P>sum(dx(i))=0         dx(i)为x(i)的增量</P>
<P>0&lt;=x(i)&lt;=x(i)的上界(即第i台机组最大发电量)</P>
<P>|y(i)|&lt;y(i)的上限*(1+R*裕度T(i))  (6个不等式)      </P>
<P>vlb&lt;dx&lt;ulb     ulb(i)----爬坡对dx(i)的上限限制</P>
<P>------------------------------------------------------------------------------------------------------------<BR>上为求解最精巧的模型,其中:</P>
<P>sum(x(i))=1052.8      </P>
<P>x(i)=x0(i)+dx(i) </P>
<P>  x=(x(1) x(2)...x(8))  </P>
<P><a href="http://www.shumo.com/bbs/mailt用Lingo8.0解,须会使用@USE()函数,即定义阶跃函数,此外,还须懂一些特定的小计巧才行" target="_blank" ><FONT color=#000000>用Lingo8.0解,须会使用@USER()函数,即定义阶跃函数,此外,还须懂一些特定的小计巧才行</FONT></A>。</P>
 楼主| 发表于 2005-9-14 07:13:22 | 显示全部楼层
<>论创新:</P>
<>--------人人都爱说创新,其实,真正懂得辩证法的人应该知道,创新是一把双刃剑。人类上月球,有的人构思了用气球载人登月球;大学导数符号有的学生不按国际规范来书写;自动化生产线上,有的工人不按操作规范来做;家长规定的纪律孩子不遵守;高速公路上来个“创意”----违犯交通规则行车,....。其时,创新是有条件的,创新在大多数情况下要合理,合情。一个好的“创新”须要一段时间的“不创新”来发扬光大!我们的社会需要大量不创新的人,也需要一定数量创新的人,当然也需要少数意想天开的人!</P>
<>我们以前太强调整齐划一了,这可能会伤害到我们的创新,反过来,当我们太强调....!</P>
<P>---------------------------------------------------------------------------------------------------------</P>
<P>何时该创新,何时不该创新?------这是有较高水平和素质的人才能掌握的!</P>
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-29 16:25 , Processed in 0.074752 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表