您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 用LINGO软件求解“非线性规划”问题
用LINGOLINGOLINGOLINGO软件求解“非线性规划”问题丁老师(超盾博客)一....选址问题(选取位置,使总运量最小)例某工程,6个工地同时开工,每个工地的位置),(iiibaM,距离值(单位:km)、水泥日需求量)(td(单位:吨)由下表给出:iiiiMMMM1M2M3M4M5M6Mia1.258.750.55.7537.25ib1.250.754.7556.57.75)(td3547611目前暂定2个临时料场位于P(5,1)、Q(2,7)用于存储水泥,日储量20吨。假设从料场到工地之间均可开通直线道路相连。试寻找更好的料场位置,使得总运输量(吨·公里)更小。解将题目和表格进行整理得到:6个工地i(程序j)1M2M3M4M5M6M工地坐标ia(程序a(j))1.258.750.55.7537.25ib(程序b(j))1.250.754.7556.57.75需求demand)(td(程序d(j))3547611假设:(1)),(21ppP、),(21qqQ为料场;(2)从P调jc1吨水泥到jM,从Q调jc2吨水泥到jM(1表示P,2表示Q),j=1,…,6.“总吨·公里”的表示方法:“总:∑;吨:c;公里:两点间距”,目标函数是“非线性”的,根据上述“总吨·公里”的表示方法得到“非线性”规划模型:222126222125222124222123222122222121222116222115222114222113222112222111)75.7()25.7()5.6()3()5()75.5()75.4()5.0()75.0()75.8()25.1()25.1()75.7()25.7()5.6()3()5()75.25.1()75.4()5.0()75.0()75.8()25.1()25.1(min−+−+−+−+−+−+−+−+−+−+−+−+−+−+−+−+−+−+−+−+−+−+−+−=qqcqqcqqcqqcqqcqqcppcppcppcppcppcppcf⎪⎪⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎪⎪⎨⎧=≤⇒⎭⎬⎫≤+++++≤+++++==⇒=+⇒⎪⎪⎪⎪⎭⎪⎪⎪⎪⎬⎫=+=+=+=+=+=+≥∑∑==)2,1(2020)6...,,1(11674530..612625242322211615141312112121261625152414231322122111iecccccccccccccjdcdccccccccccccccctsijijijijjjjij用LINGO9.0求解,首先分析此问题中的向量和矩阵,有:(1)3个6维向量:a,b,d;(2)3个2维向量:p,q,e,其中p和q表示题目中给出的最初暂定的两个料场的坐标;(3)1个2×6调度矩阵:c.LINGO总程序:sets:demand/1..6/:a,b,d;!3个6维向量;supply/1..2/:p,q,e;!3个2维向量;link(supply,demand):c;!1个2×6调度矩阵;endsetsdata:a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;d=3,5,4,7,6,11;e=20,20;enddatainit:!迭代初始点;p=5,2;q=1,7;endinit!link(i,j):c(i,j)表示2×6调度矩阵;![obj]表示在结果中标注目标函数所在行代码;[obj]min=@sum(link(i,j):c(i,j)*((p(i)-a(j))^2+(q(i)-b(j))^2)^(1/2));!先变i后变j;@for(demand(j):[demand_con]@sum(supply(i):c(i,j))=d(j););!先变j后变i;@for(supply(i):[supply_con]@sum(demand(j):c(i,j))=e(i););@for(supply(i):@free(x);@free(y););!所有变量可取负值;end点击保存后,按“Ctrl+S”运行得到结果:Objectivevalue:85.26604(即:总运输量为85.26604吨·公里)VariableValueReducedCostP(1)3.2548830.000000P(2)7.2500000.8084079E-07Q(1)5.6523320.000000Q(2)7.7500000.2675276E-06P(1)、P(2)、Q(1)、Q(2)的值即为对初始点(题给最初临时料场)优化迭代后得到的料场的选取,即料场选取在),(21ppP=P(3.254883,5.652332)与),(21qqQ=Q(7.250000,7.750000)比较好。注意:程序中的P(1)对应数学式中的1p,但程序中的P(2)对应的是数学式中的1q而不是2p。
本文标题:用LINGO软件求解“非线性规划”问题
链接地址:https://www.777doc.com/doc-7096486 .html