ImageVerifierCode 换一换
格式:DOC , 页数:24 ,大小:103.04KB ,
资源ID:3031027      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3031027.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(lingo解决线性规划方案问题的程序.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

lingo解决线性规划方案问题的程序.doc

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;

2、 r2 :b; r3 :c; link2(r1,r2):x; link3(r1,r2,r3):y; endsets data: ALPHA = 0.7; a=11 12 13 ; r2 = 1..3; b = 11 12 13; c = 11 12 13; enddata 例2 运送问题 计算6 个发点8 个收点最小费用运送问题。产销单位运价如下表。 B1 B2 B3 B4 B5 B6 B7 B8 产量 A1 6 2 6 7 4 2 5 9 60 A2 4

3、 9 5 3 8 5 8 2 55 A3 5 2 1 9 7 4 3 3 51 A4 7 6 7 3 9 2 7 1 43 A5 2 3 9 5 7 2 6 5 41 A6 5 5 2 2 8 1 4 3 52 销量 35 37 22 32 41 32 43 38 解: 设决策变量 = 第i个发点到第j个售点运货量,i=1,2,…m; j=1,2,…n;记为 =第i个发点到第j个售点运送单价,i =1,2,…m; j=1,2,…n 记 =第i个发点产量, i=1,2,…m

4、记 =第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;!售点需求限制; links(rows,cols):c,x;!运送单价,决策运送量; endsets !-----------------------------------

5、 data: s = 60,55,51,43,41,52; d = 35 37 22 32 41 32 43 38; c = 6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata !------------------------------------; min = @sum(links:c*x);!目的函数=运送总成本; @for(rows(i):

6、 @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 !==============

7、 data: s = 60,55,51,43,41,52; d = 35 37 22 32 41 32 43 38; c = 6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata !==================================; submodel transfer: min = cost;

8、 !目的函数极小化; cost = @sum(links:c*x);!目的函数:运送总成本; @for(rows(i): @sum(cols(j):x(i,j)) < s(i) );!产量约束; @for(cols(j): @sum(rows(i):x(i,j)) > d(j) ); !需求约束; endsubmodel !==================================; calc: @solve(transfer); !运营子模块(解线性规划); @divert('transfer_out.txt');!向.tx

9、t文献按自定格式输出数据; @write('最小运送成本=',cost,@newline(1),'最优运送方案x='); @for(rows(i): @write(@newline(1)); @writefor(cols(j):' ',@format(x(i,j),'3.0f') ) ); @divert();!关闭输出文献; endcalc end 打开transfer_out.txt文献,内容为: 最小运送成本=664 最优运送方案x= 0 19 0 0 41 0 0 0 1 0

10、 0 32 0 0 0 0 0 11 0 0 0 0 40 0 0 0 0 0 0 5 0 38 34 7 0 0 0 0 0 0 0 0 22 0 0 27 3 0 例4 data段编写技巧(1):从txt文献中读取原始数据 !exam_3.lg4 源程序中data也可以写为: data: s = @file('transfer_data.txt'); d = @file('transfer_data.txt'

11、); c = @file('transfer_data.txt'); enddata 其中,transfer_data.txt内容为: !transfer.lg4程序数据; !产量约束s= ; 60,55,51,43,41,52 ~ !需求约束d= ; 35 37 22 32 41 32 43 38 ~ !运送单价c= ; 6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3 ~ !注:字符~是数据分割符,若无

12、此符,视所有数据为一种数据块,只赋给一种变量; 例5 lingo程序3种输入和3种输出办法; !exam_5.lg4源程序; sets: rows/1..3/:; cols/1..4/:; link(rows,cols):a,b,mat1,mat2; endsets data: b = 1,2,3,4 5,6,7,8 9,10,11,12; !程序内输入; a = @file('a.txt');!外部txt文献输入; mat1 = @ole('d:\lingo12\data.xls',mat1);!

13、EXcel文献输入; enddata calc: @text('a_out.txt') = a;!列向量形式输出数据; @for(link:mat2 = 2*mat1); @ole('d:\lingo12\data.xls') = mat2 ;!把mat2输出到xls文献中同名数据块; !向.txt文献按自定格式输出数据(参照前例); Endcalc 例6 程序段中循环和选取构造举例 !exam_6.lg4源程序; sets: rows/1..5/:; cols/1..3/:; links(rows,

14、cols):d; endsets data: d=0 2 3 4 3 2 1 3 2 4 7 2 2 1 6; enddata calc: i=1; @while(i#le#5: a = d(i,1);b = d(i,2);c = d(i,3); @ifc(a#eq#0: @write('infeasible!',@newline(1)); @else delta = b^

15、2-4*a*c; sqrt = @sqrt(@if(delta#ge#0,delta,-delta)); @ifc(delta#ge#0: @write('x1=',(-b+sqrt)/2/a,' x2=',(-b-sqrt)/2/a,@newline(1)); @else @write('x1=',-b/2/a,'+',sqrt/2/a,'i','x2=',-b/2/a,'-',sqrt/2/a,'i',@newlin

16、e(1)); ); ); i=i+1; ); endcalc 本程序中循环构造也可以用@for(rows(i):程序体);进行计算。 例7 指派问题 (n人n任务费用最小) B1 B2 B3 B4 B5 B6 A1 6 2 6 7 4 2 A2 4 9 5 3 8 5 A3 5 2 1 9 7 4 A4 7 6 7 3 9 2 A5 2 3 9 5 7 2 A6 5 5 2 2 8 1 解:

17、 设决策变量=1或0,表达第i个人与否完毕第j项任务,i,j=1,2,…n; 记 =第i个人完毕第j项任务费用,i,j =1,2,…n; n = 6. 设目的函数为总费用,约束条件为(1)每人只完毕一项任务;(2)每项任务只由一人完毕。 于是形成如下规划问题: !exam_7.lg4源程序; model:!6人6任务指派问题; sets: rows/1..6/:;!6人6任务; links(rows,rows):c,x;!费用和决策变量; endsets !-------------------------------------; data:

18、 c = 6 2 6 7 4 2 4 9 5 3 8 5 5 2 1 9 7 4 7 6 7 3 9 2 2 3 9 5 7 2 5 5 2 2 8 1; enddata !==================================; submodel appointment: min = cost; !目的函数极小化; cost = @sum(links:c*x);!目的函数:总费用; @for(rows(i): @sum(rows(j):x(i,j)) = 1 );!每

19、人完毕一项 ; @for(rows(j): @sum(rows(i):x(i,j))= 1 );!每项由一人完毕; @for(links:@bin(x));!0-1变量约束; endsubmodel submodel binVar: @for(links:@bin(x));!0-1变量约束; endsubmodel !==================================; calc: @solve(appointment,binVar); !运营子模块(解线性规划); @divert('appointment_ou

20、t.txt');!向.txt文献按自定格式输出数据; @write('最小指派费用=',cost,@newline(1),'分派方案x='); @for(rows(i): @write(@newline(1)); @writefor(rows(j):' ',@format(x(i,j),'3.0f') ) ); @divert();!关闭输出文献; endcalc end 例8 多目的规划转化为单目的规划问题举例 把上述运送问题稍加修改,考虑到运送量可以要取整数,就变成整数规划问题,并且运送问题除了成本最小一

21、种目的以外,有时也要考虑各发点运送量尽量均衡作为另一种目的。本程序解决办法一是两目的加权平均,办法二是只选一种目的,另一种目的转化为约束,从而把多目的改为单目的。 !exam_8.lg4 源程序; model: !6发点8收点运送问题; sets: rows/1..6/:s;!发点产量限制; cols/1..8/:d;!售点需求限制; links(rows,cols):c,x;!运送单价,决策运送量; endsets !==================================; data: s = 60,55,51,43,41,52;

22、 d = 35 37 22 32 41 32 43 38; c = 6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata !==================================; submodel obj_1: min = minCost; !目的函数极小化; minCost = @sum(links:c*x);!目的函数:运送总成本; e

23、ndsubmodel submodel obj_2: min = objValue; objValue = 0.4*obj1+0.6*obj2; !二目的加权平均; obj1 = @sum(links:c*x);!目的函数1:运送总成本; obj2 = max1-min1; !目的函数2:发点运送量极差; @for(links(i,j): @sum(cols(j):x(i,j)) < max1 ; @sum(cols(j):x(i,j)) > min1 ;); endsubmodel s

24、ubmodel obj_3: min = obj2; obj2 = max1-min1; !目的函数:发点运送量极差; @for(links(i,j): @sum(cols(j):x(i,j)) < max1 ; @sum(cols(j):x(i,j)) > min1 ;); cost1 = @sum(links:c*x);!运送总成本; cost1 < 1.05*minCost; !运送总成本约束; endsubmodel submodel subject_to_1: @fo

25、r(rows(i): @sum(cols(j):x(i,j)) < s(i) );!产量约束; @for(cols(j): @sum(rows(i):x(i,j)) > d(j) ); !需求约束; endsubmodel submodel subject_to_2: @for(links:@gin(x));!整数约束; endsubmodel !==================================; calc: @solve(obj_1,subject_to_1,subject_to_2); !运营子模块(解线性整数规划

26、 @divert('intModel_out.txt'); @write(@newline(2),'整数规划最小运送成本=',minCost,@newline(1),'最优运送方案x='); @for(rows(i): @write(@newline(1)); @writefor(cols(j):' ',@format(x(i,j),'3.0f') ) ); @divert();@pause(); @solve(obj_2,subject_to_1,subject_to_2); !运营子模块(解线性整数规划); @diver

27、t('intModel_out.txt','a');!向.txt文献追加输出数据; @write(@newline(2),'二目的加权平均最小值=',objValue,@newline(1),'最优运送方案x='); @for(rows(i): @write(@newline(1)); @writefor(cols(j):' ',@format(x(i,j),'3.0f') ) ); @divert();@pause(); @solve(obj_3,subject_to_1,subject_to_2); !运营子模块(解线性整数规划)

28、 @divert('intModel_out.txt','a');!向.txt文献追加输出数据; @write(@newline(2),'成本约束时极差最小值=',obj2,@newline(1),'成本约束时运送量最平均方案x='); @for(rows(i): @write(@newline(1)); @writefor(cols(j):' ',@format(x(i,j),'3.0f') ) ); @divert(); endcalc end 本例中运送量均衡指标,可以用方差表达,但变成非线性规划问题,只能求出局部最优解,而线

29、性规划最优解是全局最优解。 例9 杂例1 model: !费波那契数列;!exam_9.lg4 源程序; sets: II/1..100/:Fi;!费波那契数列; endsets !==================================; submodel myProc: Fi(1) = 1; Fi(2) = 1; @for(II(i)|(i#ge#3)#and#(i#le#n): Fi(i)=Fi(i-1)+Fi(i-2) ); endsubmodel !=================================

30、 calc: n = 10; @solve(myProc); @divert('Fibo_out.txt'); @writefor(II(k)|k#le#n:'Fi(',@format(k,'2.0f'),')=', @format(Fi(k),'3.0f'),@newline(1) ); @divert(); endcalc end 例10 杂例2 sets: II/1..3/:; links(II,II):a,x; endsets data: a = 1,2,3

31、 2,1,4 3,2,2; enddata submodel fMin: !求函数极值,极小值点; min = z^2+4*z+3; @free(z); endsubmodel submodel fzero: !解方程,求函数零点; @cos(y) = y; @bnd(0,y,5); endsubmodel submodel get_invMat: !解矩阵方程,求逆阵; @for(II(i): @for(II(j): @sum(II(k):a(i,k)*x(

32、k,j)) = @if(i#eq#j,1,0))); @for(links:@free(x)); endsubmodel calc: @solve(fMin); @solve(fzero); @solve(get_invMat); endcalc Lingo编程语言参照: LINGO 有9 种类型函数: 1. 基本运算符:涉及算术运算符、逻辑运算符和关系运算符 2. 数学函数:三角函数和常规数学函数 3. 金融函数:LINGO提供两种金融函数 4. 概率函数:LING

33、O提供了大量概率有关函数 5. 变量界定函数:此类函数用来定义变量取值范畴 6. 集操作函数:此类函数为对集操作提供协助 7. 集循环函数:遍历集元素,执行一定操作函数 8. 数据输入输出函数:容许模型和外部数据源相联系,进行数据输入输出 9. 辅助函数:各种杂类函数 1. 基本运算符 1.1 算术运算符 ^ 、﹡ 、/ 、﹢ 、﹣ 1.2 逻辑运算符: #not# 否定该操作数逻辑值,#not#是一种一元运算符 #eq# 若两个运算数相等,则为true;否则为flase #ne# 若两个运算符不相等,则为true;否则为flase #g

34、t# 若左边运算符严格不不大于右边运算符,则为true;否则为flase #ge# 若左边运算符不不大于或等于右边运算符,则为true;否则为flase #lt# 若左边运算符严格不大于右边运算符,则为true;否则为flase #le# 若左边运算符不大于或等于右边运算符,则为true;否则为flase #and# 仅当两个参数都为true 时,成果为true;否则为flase #or# 仅当两个参数都为false 时,成果为false;否则为true 1.3 关系运算符 “=”、“<=”和“>=”,LINGO 中还能用“<”表达不大于等于关系, 2.2

35、数学函数 三角函数 @sin(x),@sinh(x),@asin(x),@asinh(x),@cos(x),@cosh(x),@acos(x),@acosh(x),@tan(x),@tanh(x),@atan(x),@atanh(x),@atan2(x) @abs(x) 返回x 绝对值 @exp(x) 返回常数e x 次方 @floor(x) 返回去掉小数某些后整数 @log(x) 返回x 自然对数 @log10(x) 返回x 以10为底对数 @lgm(x) 返回xgamma 函数自然对数 @mod(m,n) 返回用n整除m余数.,如@mod(5,3)返回2;

36、@pi() 返回圆周率 @pow(x,y) 返回xy次幂 @sign(x) 如果x<0 返回-1;否则,返回1 @smax(x1,x2,…,xn) 返回x1,x2,…,xn 中最大值 @smin(x1,x2,…,xn) 返回x1,x2,…,xn 中最小值 @sqr(x) 返回x平方. @sqrt(x) 返回x平方根. 2. 3 金融函数 @fpa(I,n) 返回如下情形净现值:单位时段利率为I, 持续n个时段支付,每个时段支付单位费用。若每个时段支付x单位费用,则净现值可用x乘以@ fpa(I,n)算得。 @fpl(I,n) 返回如下情形净现值:单位时段利率为I

37、第n 个时段支付单位费用。 2.4 概率函数 @norminv(p,mu,sigma) N(mu,sigma^2)分布函数反函数 @norminv(p,mu,sigma) N(0,1)分布函数反函数 @pbn(p,n,x) 二项分布累积分布函数。当n和(或)x不是整数时,用线性插值法进行计算。 @pcx(n,x) 自由度为nχ2分布累积分布函数。 @peb(a,x) 当到达负荷为a,服务系统有x个服务器且容许无穷排队时Erlang 繁忙概率。 @pel(a,x) 当到达负荷为a,服务系统有x个服务器且不容许排队时Erlang 繁忙概率。

38、 @pfd(n,d,x) 自由度为n和d F 分布累积分布函数。@pfs(a,x,c) 当负荷上限为a,顾客数为c,平行服务器数量为x时,有限源Poisson 服务系统等待或返修顾客数盼望值。a是顾客数乘以平均服务时间,再除以平均返修时间。(或)x不是整数时,采用线性插值进行计算。 @phg(pop,g,n,x) 超几何(Hypergeometric)分布累积分布函数。pop表达产品总数,g是正品数。从所有产品中任意取出n(n≤pop)件。pop,g,n和x都可以是非整数,这时采用线性插值进行计算。 @ppl(a,x) Poisson 分布线性损失函数,即返回max(0,

39、z-x)盼望值,其中随机变量z服从均值为aPoisson 分布。 @pps(a,x) 均值为aPoisson 分布累积分布函数。当x不是整数时,采用线性插值进行计算。 @psl(x) 单位正态线性损失函数,即返回max(0,z-x)盼望值,其中随机变量z 服从原则正态分布。 @psn(x) 原则正态分布累积分布函数。 @ptd(n,x) 自由度为nt 分布累积分布函数。 @qrand(seed) 产生服从(0,1)区间拟随机数。 @rand(seed) 返回0 和1 间伪随机数, 2.5 变量界定函数 变量界定函数实现对变量取值范畴附加限制,

40、共4 种: @bin(x) 限制x 为0 或1 @bnd(L,x,U) 限制L≤x≤U @free(x) 取消对变量x 默认下界为0 限制,即x 可以取任意实数 @gin(x) 限制x 为整数 在默认状况下,LINGO 规定变量是非负,也就是说下界为0, 上界为+∞。@free 取消了默认下界为0 限制,使变量也可以取负值。@bnd 用于设定一种变量上下界,它也可以取消默认下界为0 约束。 @semic(L,x,U),半持续约束。约束x或者取0或者取[L,U]内数据。 2. 6 集操作函数 @in(set_name,primitive_index_1 [,primi

41、tive_index_2,…]) 如果元素在指定集中,返回1;否则返回0。 @index([set_name,] primitive_set_element) 该函数返回在集set_name 中原始集成员primitive_set_element 索引。如果set_name被忽视,那么LINGO 将返回与primitive_set_element 匹配第一种原始集成员索引。如 果找不到,则产生一种错误。 @wrap(index,limit) 该函数返回j=index-k*limit,其中k 是一种整数,取恰当值保证j 落在区间[1,limit] 内。该函数相称于index

42、模limit 再加1 。该函数在循环、多阶段筹划编制中特别有用。 @size(set_name) 该函数返回集set_name 成员个数。在模型中明确给出集大小时最佳使用该函数。它使用使模型更加数据中立,集大小变化时也更易维护。 2.7 集循环函数 集循环函数遍历整个集进行操作。其语法为 @function(setname[(set_index_list)[|conditional_qualifier]]:expression_list); @function 相应于下面罗列五个集循环函数之一;setname 是要遍历集;set_index_list 是集索引列表;c

43、onditional_qualifier 是用来限制集循环函数范畴,当集循环函数遍历集每个成员时,LINGO 都要对conditional_qualifier进行评价,若成果为真, 则对该成员执行@function操作,否则跳过,继续执行下一次循环。expression_list 是被应用到每个集成员表达式列表,当用是@for函数时,expression_list 可以包括各种表达式,其间用逗号隔开。这些表达式将被作为约束加到模型中。当使用别的三个集循环函 数时,expression_list 只能有一种表达式。如果省略set_index_lis t,那么在 expression_list

44、 中引用所有属性类型都是setname 集。 @for 该函数用来产生对集成员约束。基于建模语言标量需要显式输入每个约束,但是@for 函数容许只输入一种约束,然后LINGO 自动产生每个集成员约束。 @sum 该函数返回遍历指定集成员一种表达式和。 @prod 该函数返回遍历指定集成员一种表达式积。 @min 和@max 返回指定集成员一种表达式最小值或最大值。 2.8 输入和输出函数 @file 函数 该函数用从外部文献中输入数据,可以放在模型中任何地方。该函数语法格式为 @file(‘filename’)。 这里filename 是文献名,可以

45、采用相对途径和绝对途径两种表达方式。@file 函数对同一文献两种表达方式解决和对两个不同文献解决是同样,这一点必要注意。 @text 函数 该函数被用在数据某些用来把解输出至文本文献中。它可以输出集成员和集属性值。其语法为 @text([’filename’]) 这里filename 是文献名,可以采用相对途径和绝对途径两种表达方式。如果忽视filename,那么数据就被输出到原则输出设备(大多数情形都是屏幕)。@text函数仅能出当前模型数据某些一条语句左边,右边是集名(用来输出该集所有成员名)或集属性名(用来输出该集属性值)。 @ole 函数 @OLE 是从EXC

46、EL 中引入或输出数据接口函数,它是基于传播OLE 技术。OLE 传播直接在内存中传播数据,并不借助于中间文献。当使用@OLE时,LINGO 先装载EXCEL, 再告知EXCEL 装载指定电子数据表,最后从电子数据表中获得Ranges。为了使用OLE 函数, 必要有EXCEL5 及其以上版本。OLE函数可在数据某些和初始某些引入数据。 @OLE 可以同步读集成员和集属性,集成员最佳用文本格式,集属性最佳用数值格式。原始集每个集成员需要一种单元(cell),而对于n元派生集每个集成员需要n个单元,这 里第一行n个单元相应派生集第一种集成员,第二行n个单元相应派生集第二个集成员,依此类推。 @O

47、LE 只能读一维或二维Ranges( 在单个EXCEL 工作表(sheet)中),但不能读间断或三维Ranges。Ranges是自左而右、自上而下来读。 @ranged(variable_or_row_name) 为了保持最优基不变,变量费用系数或约束行右端项容许减少量。 @rangeu(variable_or_row_name) 为了保持最优基不变,变量费用系数或约束行右端项容许增长量。 @status() @dual(variable_or_row_na me)返回变量鉴别数(检查数)或约束行对偶(影子)价格(dual prices)。 2.9 辅助函数 @if(logical_condition,true_result,false_result) @if 函数将评价一种逻辑表达式logical_condit ion,如果为真,返回true_ result,否则返回false_result。 @warn(’text’,logical_condition) 如果逻辑条件logical_condition 为真,则产生一种内容为’text’信息框。 3. 敏感性分析(略)

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服