lingo解决线性规划问题的程序(经典)

lingo解决线性规划问题的程序(经典)

ID:35363321

大小:168.50 KB

页数:16页

时间:2019-03-24

lingo解决线性规划问题的程序(经典)_第1页
lingo解决线性规划问题的程序(经典)_第2页
lingo解决线性规划问题的程序(经典)_第3页
lingo解决线性规划问题的程序(经典)_第4页
lingo解决线性规划问题的程序(经典)_第5页
资源描述:

《lingo解决线性规划问题的程序(经典)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Lingo12软件培训教案Lingo主要用于求解线性规划,整数规划,非线性规划,V10以上版本可编程。例1一个简单的线性规划问题!exam_1.lg4源程序max=2*x+3*y;[st_1]x+y<350;[st_2]x<100;2*x+y<600;!决策变量黙认为非负;<相当于<=;大小写不区分当规划问题的规模很大时,需要定义数组(或称为矩阵),以及下标集(set)下面定义下标集和对应数组的三种方法,效果相同::r1=r2=r3,a=b=c.sets:r1/1..3/:a;r2:b;r3:c;lin

2、k2(r1,r2):x;link3(r1,r2,r3):y;endsetsdata:ALPHA=0.7;a=111213;r2=1..3;b=111213;c=111213;enddata例2运输问题计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。B1B2B3B4B5B6B7B8产量A16267425960A24953858255A35219743351A47673927143A52395726541A65522814352销量3537223241324338解:设决策变量=第i个发点到第j

3、个售点的运货量,i=1,2,…m;j=1,2,…n;记为=第i个发点到第j个售点的运输单价,i=1,2,…m;j=1,2,…n记=第i个发点的产量,i=1,2,…m;记=第j个售点的需求量,j=1,2,…n.其中,m=6;n=8.设目标函数为总成本,约束条件为(1)产量约束;(2)需求约束。于是形成如下规划问题:把上述程序翻译成LINGO语言,编制程序如下:!exam_2.lg4源程序model:!6发点8收点运输问题;sets:rows/1..6/:s;!发点的产量限制;cols/1..8/:d;!售

4、点的需求限制;links(rows,cols):c,x;!运输单价,决策运输量;endsets!-------------------------------------;data:s=60,55,51,43,41,52;d=3537223241324338;c=626742954953858252197433767392712395726555228143;enddata!------------------------------------;min=@sum(links:c*x);!目标函数=运输

5、总成本;@for(rows(i):@sum(cols(j):x(i,j))<=s(i));!产量约束;@for(cols(j):@sum(rows(i):x(i,j))=d(j));!需求约束;end例3把上述程序进行改进,引进运行子模块和打印运算结果的语句:!exam_3.lg4源程序model:!6发点8收点运输问题;sets:rows/1..6/:s;!发点的产量限制;cols/1..8/:d;!售点的需求限制;links(rows,cols):c,x;!运输单价,决策运输量;endsets!==

6、================================;data:s=60,55,51,43,41,52;d=3537223241324338;c=626742954953858252197433767392712395726555228143;enddata!==================================;submodeltransfer:min=cost;!目标函数极小化;cost=@sum(links:c*x);!目标函数:运输总成本;@for(rows(i):@s

7、um(cols(j):x(i,j))d(j));!需求约束;endsubmodel!==================================;calc:@solve(transfer);!运行子模块(解线性规划);@divert('transfer_out.txt');!向.txt文件按自定格式输出数据;@write('最小运输成本=',cost,@newline(1),'最优运输方案x=');@f

8、or(rows(i):@write(@newline(1));@writefor(cols(j):'',@format(x(i,j),'3.0f')));@divert();!关闭输出文件;endcalcend打开transfer_out.txt文件,内容为:最小运输成本=664最优运输方案x=019004100010032000001100004000000050383470000000022002730例4data段的编写技巧(1):从

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。