学习LINGO语言课件

上传人:沈*** 文档编号:168569640 上传时间:2022-11-10 格式:PPT 页数:151 大小:770.54KB
收藏 版权申诉 举报 下载
学习LINGO语言课件_第1页
第1页 / 共151页
学习LINGO语言课件_第2页
第2页 / 共151页
学习LINGO语言课件_第3页
第3页 / 共151页
资源描述:

《学习LINGO语言课件》由会员分享,可在线阅读,更多相关《学习LINGO语言课件(151页珍藏版)》请在装配图网上搜索。

1、20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分6秒LINGO 数学科学与技术学院数学科学与技术学院 杨云峰杨云峰 密码:密码:65432120222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分6秒Outline 20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分6秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分6秒约约束束条条件件决策变量决策变量njiDxljx

2、gmixhtsxf )3(,.,1,0)()2(,.,1,0)(.)1()(min目标函数目标函数20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分6秒优化类型优化类型20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分7秒 线性规划线性规划(LP)(LP)目标和约束均为线性函数目标和约束均为线性函数 非线性规划非线性规划(NLP)(NLP)目标或约束中有非线性函数目标或约束中有非线性函数 二次规划二次规划(QP)(QP)目标为二次函数、目标为二次函数、约束为线性约束为线性2022

3、2022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分7秒离散优化离散优化 整数规划整数规划(IP)(IP)决策变量决策变量(全部或部分全部或部分)为整数为整数 整数线性规划整数线性规划(ILP)(ILP),整数非线性规划整数非线性规划(INLP)(INLP)纯整数规划纯整数规划(PIP),(PIP),混合整数规划混合整数规划(MIP)(MIP)一般整数规划一般整数规划,0-10-1(整数)规划(整数)规划20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分7秒20222022年年1111月月

4、1010日日2323时时3131分分2022年11月10日星期四23时31分7秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分7秒建模时需要注意的几个基本问题建模时需要注意的几个基本问题 20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分8秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分8秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分8秒max 2x1

5、+3x2 St.4x1+3x2=10 3x1+5x2=12 x10 x20目标函数目标函数约约束束条条件件决策变量决策变量设有数学模型如下:设有数学模型如下:20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分8秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分8秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分8秒 1)1)选择菜单选择菜单 LINGO|SolveLINGO|Solve 或者按工具栏的或者按工具栏的 2

6、0222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分8秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分9秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分9秒Solver Status 窗口20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分9秒4)4)计算完成后出现计算完成后出现Solution ReportSolution Report窗口窗口显示模型解的详细信

7、息显示模型解的详细信息;20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分9秒Solution Report 窗口窗口 Global optimal solution found at iteration:2 Objective value:7.454545 Variable Value Reduced Cost x1 1.272727 0.000000 x2 1.636364 0.000000 Row Slack or Surplus Dual Price 1 7.454545 1.000000 2 0.000000 0.909090

8、9E-01 3 0.000000 0.545454520222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分9秒在在maxmax模型模型中中:相应变量的相应变量的 reduced costreduced cost值表值表示示当该变量每增加一个单位时目标当该变量每增加一个单位时目标函数减少的量函数减少的量。本例中此值均为本例中此值均为0 020222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分9秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四

9、23时31分9秒 给出约束条件的松驰变量或剩余给出约束条件的松驰变量或剩余变量的值;变量的值;小 于 等 于 约 束 为 松 驰 变 量小 于 等 于 约 束 为 松 驰 变 量(SLACK)(SLACK);+大 于 等 于 约 束 为 剩 余 变 量大 于 等 于 约 束 为 剩 余 变 量(SURPLUS);-(SURPLUS);-20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分9秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分10秒2 20222022年年1111月月

10、1010日日2323时时3131分分2022年11月10日星期四23时31分10秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分10秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分10秒 Lingo Lingo无严格小于,欲使无严格小于,欲使abab,可以适当选取小的正常数可以适当选取小的正常数e e 表示成表示成a+ea+ebb,20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分10秒4)4)LINGOLINGO

11、的每一语句以的每一语句以 结束;结束;20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分10秒6)6)变量名变量名:.不区分大小写不区分大小写.由字母数字下划线组成由字母数字下划线组成.第一个字符必须是字母第一个字符必须是字母.变量名最长为变量名最长为3232个字符个字符20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分10秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分10秒8)8)变量和数字放在约束条件的左、变量和

12、数字放在约束条件的左、右端均可;右端均可;但最好变量在左,数字在右。但最好变量在左,数字在右。20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分11秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分11秒 Global optimal solution found.Objective value:7.454545 Total solver iterations:2 Variable Value Reduced Cost X 1.272727 0.000000 Y 1.63636

13、4 0.000000 Row Slack or Surplus Dual Price OBJECTIVE 7.454545 1.000000 CON1 0.000000 0.9090909E-01 CON2 0.000000 0.545454520222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分11秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分11秒以以运输实例运输实例逐步分析逐步分析20222022年年1111月月1010日日2323时时3131分分2022年11月10日星

14、期四23时31分11秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分11秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分11秒 小小仓仓 贩贩 库库 v1v1 v2v2 v3v3 v4v4 v5 v5 v6v6 v7 v7 v8v8 w1 w1 6 62 26 67 74 42 25 59 9 w2 w2 4 49 95 53 38 85 58 82 2 w3 w3 5 52 21 19 97 74 43 33 3 w4 w4 7 76 67 73 39 92 27 71

15、 1 w5 w5 2 23 39 95 57 72 26 65 5 w6 w6 5 55 52 22 28 81 14 43 320222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分11秒已已知知数数量量决策变量决策变量20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分12秒)8,2,1,6,2,1(0_)6,2,1(_)8,2,1(_.)_*_(min81616181jijivolumeiicapacityjivolumejjdemandjivolumestjivolumejico

16、stjiij20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分12秒当然目标函数可以如下输入当然目标函数可以如下输入:min=6*volume_1_1+2*volume_1_2+6*volume_1_3+.1*volume_6_6+4*volume_6_7+3*volume_6_8;20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分12秒 但是较大模型如果像上面那样但是较大模型如果像上面那样输入又费时,又容易出错!输入又费时,又容易出错!这就需要这就需要LINGOLINGO的的建

17、模语言建模语言20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分12秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分12秒LINGOLINGO模型的构成:模型的构成:5 5个段个段20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分12秒为什么使用为什么使用集合集合20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分13秒20222022年年1111月月1010日日

18、2323时时3131分分2022年11月10日星期四23时31分13秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分13秒LINGOLINGO有两种类型的集合有两种类型的集合20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分14秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分14秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分14秒20222022年年1

19、111月月1010日日2323时时3131分分2022年11月10日星期四23时31分14秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分14秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分14秒(2)(2)字符数字型字符数字型20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分15秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分15秒20222022年年

20、1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分15秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分15秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分15秒*48条运输路线集合定义条运输路线集合定义*20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分15秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分16秒202

21、22022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分16秒4.4.集合成员过滤:集合成员过滤:20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分16秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分16秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分16秒 20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分17

22、秒 20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分17秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分17秒*运输问题的数据部分运输问题的数据部分*20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分17秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分17秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23

23、时31分17秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分18秒 20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分18秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分18秒calc:.endcalc计算段的作用计算段的作用:在模型输入后,在模型输入后,LINGOLINGO开始正式求解模开始正式求解模型之前对原始数据进行一定的计算,得到型之前对原始数据进行一定的计算,得到我们模型中要使用的部分数据。我们模型中要使

24、用的部分数据。20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分18秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分18秒FOR、SUM、MAX、MIN20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分18秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分18秒6181),(*),(minijjivolumejicost20222022年年1111月月1010

25、日日2323时时3131分分2022年11月10日星期四23时31分19秒!从!从6 6个仓库发到个仓库发到第第j j个小贩的货物个小贩的货物量总和量总和;61),(ijivolume20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分19秒81),(jjivolume20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分19秒 对集合对集合setnamesetname中的每个成员独立地生中的每个成员独立地生成约束,约束由约束表达式列表成约束,约束由约束表达式列表expression_

26、listexpression_list描述描述;多个表达式之间用多个表达式之间用分号相隔。分号相隔。20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分19秒8,2,1),(),(61jjdemandjivolumei20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分19秒6,2,1),(),(81iicapacityjivolumej20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分19秒*运输问题的完整模型运输问题的完整

27、模型 运输问题运输问题.lg420222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分19秒返回集合返回集合setnamesetname上的表达式上的表达式expressionexpression的最大值的最大值max (setname (set_index_list)|condition :expression );20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分19秒min (setname (set_index_list)|condition :expression);返回集合

28、返回集合setname上的表达式上的表达式expression的最小值的最小值20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分20秒index(setname,element)20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分20秒model:sets:girls/debbie,sue,alice/:;boys/bob,joe,sue,fred/:;endsetscalc:x=index(boys,sue);y=index(sue);endcalc end20222022年年1

29、111月月1010日日2323时时3131分分2022年11月10日星期四23时31分20秒in(set_name,primitive_index_1 ,primitive_index_2)如果数据集如果数据集set_name中包含成员中包含成员primitive_index_1则返回则返回1,否则,否则 返回返回0。20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分20秒例:例:model:sets:plants/a,b,c,d/:;closed(plants)/b/:;open(plants)|#not#in(closed,&1):

30、x;endsetsdata:x=1,2,3;enddataend20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分20秒 例例2:model:sets:s1/a b c/:;s2/x y z/:;s3(s1,s2)/a,x a,z b,y c,z/:;endsetscalc:x=in(s3,index(s1,b),index(s2,y);endcalcend 本例要判断集合本例要判断集合s3s3中是否包中是否包含元素含元素(b,y(b,y),运行,运行LINGO|SOLVELINGO|SOLVE得到得到x=1x=1,说明包含。,说明包含

31、。20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分20秒wrap(index,limit)当当index位于区间位于区间1,limit时返回时返回index,否则返回否则返回j=index-k*limit,其中其中j位于区间位于区间1,limit20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分20秒职员时序安排模型职员时序安排模型 一项工作一周7 天都需要有人(比如护士工作),每天(周一至周日)所需的最少职员数为20、16、13、16、19、14 和12,并要求每个职员一周连

32、续工作5 天,试求每周所需最少职员数,并给出安排。注意这里我们考虑稳定后的情况。20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分20秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分20秒size(setname)返回集合返回集合setname中所包含的成员中所包含的成员个数。个数。20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分20秒20222022年年1111月月1010日日2323时时3131分分2022年11

33、月10日星期四23时31分20秒From ExelPastefromexel.lg4Pastefromexel.lg420222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分20秒用来与外部数据源连接用来与外部数据源连接 text()、ole()、file()、odbc()、dual()20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分20秒file(filename)20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分20秒se

34、ts:warehouses /file(1.txt)/:capacity;vendors /file(1.txt)/:demand;links(warehouses,vendors):cost,volume;endsets 20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分20秒data:capacity=file(1.txt);demand=file(1.txt);cost=file(1.txt );enddata1.txt文件内容文件内容 1.txt20222022年年1111月月1010日日2323时时3131分分2022年11月

35、10日星期四23时31分21秒text(filename)Outputtotext.lg420222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分21秒ole(spreadsheet_file ,range_name_list)在模型的数据和集合部分使用在模型的数据和集合部分使用,与与excelexcel交换数据交换数据20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分21秒sets:warehouses:capacity;vendors :demand;links(warehouse

36、s,vendors):cost,volume;endsets20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分21秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分21秒在在Excel中定义单元格范围名称的方法:中定义单元格范围名称的方法:按鼠标左键拖曳选择单元格范围,按鼠标左键拖曳选择单元格范围,释放鼠标按钮,释放鼠标按钮,选择选择“插入插入|名称名称|定义定义”,输入希望的名字,输入希望的名字,点击点击“确定确定”按钮。按钮。20222022年年1111月月1010日日23

37、23时时3131分分2022年11月10日星期四23时31分21秒2.xls从从Excel输入数据输入数据.lg420222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分21秒odbc(data_source,table_name,col_1,col_2.)在模型的数据部分使用在模型的数据部分使用,与数据库进与数据库进行数据传输行数据传输 20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分21秒sets:warehouses:capacity;vendors :demand;links

38、(warehouses,vendors):cost,volume;endsets20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分21秒 20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分21秒trans.mdb与数据库的数据传递与数据库的数据传递.lg420222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分21秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分21秒

39、 1.1.标准运算符标准运算符20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分22秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分22秒运算符的优先级运算符的优先级 优先级优先级 运算符运算符最高最高#NOT#NOT#(负号)(负号)*/+(减法)(减法)#EQ#NE#GT#GE#LT#EQ#NE#GT#GE#LT#LE#LE#AND#OR#AND#OR#最低最低(=)(=)20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23

40、时31分22秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分22秒练习练习1 且全为整数且全为整数0,4 30 652 5min211212121xxxxxxxxxZx1=2,x2=3,Z*17练习练习1 120222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分22秒练习练习2 10,(4)64 (3)3 (2)44(1)22523max3213221321321321或或xxxxxxxxxxxxxxxxZX1=1X1=1X2=0X2=0X3=1X3=1Z=8Z=8练习练习2 2

41、20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分22秒abs(x)、cos(x)、sin(x)、tan(x)、exp(x)、sign(x)floor(x)(返回返回x的整数部分的整数部分)smax(x1,x2,xn)(返回返回x1,x2,xn的最大值的最大值)smin(x1,x2,xn)4.数学函数数学函数20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分22秒5.条件控制条件控制20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四2

42、3时31分23秒7 7个选项卡个选项卡(可设置可设置80-9080-90个控制参数个控制参数)20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分23秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分23秒,Ixi整数规划整数规划 整数规划整数规划.lg4,045956.85max212121ixxxxxtsxxz2,1i20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分23秒二次规划的例子(lingo).lg475.0,

43、012.108.12.13.11.8.0223min222zyxzyxzyxtsyzyzxyzyxf20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分23秒递规调用.lg4 已知已知,求,求a7 5,2,1,12;12 1 iiaiaiaaa20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分23秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分23秒 练习练习320222022年年1111月月1010日日2323时时31

44、31分分2022年11月10日星期四23时31分24秒 练习练习320222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分24秒解解1 设在甲车床上加工工件1、2、3的数量为x1、x2、x3,在乙车床上加工工件1、2、3的数量分别为x4、x5、x6。可建立以下线性规划模型:6543218121110913minxxxxxxz 6,2,1,09003.12.15.08001.14.0500600400 x .654321635241ixxxxxxxxxxxxtsi 20222022年年1111月月1010日日2323时时3131分分2022年1

45、1月10日星期四23时31分24秒解解2 设在甲车床上加工工件设在甲车床上加工工件i i的数量为的数量为x(ix(i),单位工件所需加工台时数为单位工件所需加工台时数为timex(itimex(i),),单位工件的加工费用为单位工件的加工费用为costx(icostx(i),),在乙车床上加工工件在乙车床上加工工件i i的数量为的数量为y(iy(i),),单位工件所需加工台时数为单位工件所需加工台时数为timey(itimey(i)单位工件的加工费用为单位工件的加工费用为costy(icosty(i)工件工件i i的加工数量为的加工数量为demand(idemand(i)20222022年年1

46、111月月1010日日2323时时3131分分2022年11月10日星期四23时31分24秒数学模型1,2,3i)(),(3,2,1),()()(900)(*)(800)(*)(.)(*)(cos)(*)(cosmin313131 均取整数,均取整数,iyixiidemandiyixiyitimeyixitimexstiyityixitxiii20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分24秒Lingo建模sets:Chechuang/1.3/:costx,costy,timex,timey,x,y,demand;endsets2

47、0222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分24秒Lingo建模min=sum(chechuang:costx*x+costy*y)sum(chechuang:timex*x)800;sum(chechuang:timey*y)900;for(chechuang:x+y=demand);for(chechuang:gin(x);gin(y);20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分24秒data:costx=13,9,10;costy=11,12,8;timex=0

48、.4,1.1,1;timey=0.5,1.2,1.3;demand=400,600,500;enddata练习练习3 320222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分24秒Lingo-Generate-Display modelMODEL:_1 MIN=13*X_1+11*Y_1+9*X_2+12*Y_2+10*X_3+8*Y_3;_2 0.4*X_1+1.1*X_2+X_3=800;_3 0.5*Y_1+1.2*Y_2+1.3*Y_3=900;_4 X_1+Y_1=400;_5 X_2+Y_2=600;_6 X_3+Y_3=500

49、;GIN(X_1);GIN(Y_1);GIN(X_2);GIN(Y_2);GIN(X_3);GIN(Y_3);END20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分24秒练习练习4-求求S到到T的最短路的最短路jijAjiiLcL),(min20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分24秒model:sets:cities/s,a1,a2,a3,b1,b2,c1,c2,t/:l;roads(cities,cities)/s,a1 s,a2 s,a3 a1,b1 a1,b

50、2 a2,b1 a2,b2 a3,b1 a3,b2 b1,c1 b1,c2 b2,c1 b2,c2 c1,t c2,t/:d;endsets20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分24秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分24秒最短路最短路.lg4.lg420222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分24秒20222022年年1111月月1010日日2323时时3131分分2022年11月10日

51、星期四23时31分24秒条件分支控制条件分支控制 条件循环控制条件循环控制 20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分25秒条件分支控制条件分支控制1、ifc 或或 ifc/else 语句语句2、其基本的使用语法是:、其基本的使用语法是:ifc(condition:可执行语句可执行语句1;else 可执行语句可执行语句2;)其中其中condition 是一个逻辑表达式(表示相应是一个逻辑表达式(表示相应的条件),当的条件),当condition 的逻辑值为的逻辑值为“真(条真(条件成立)时,程序执行语句件成立)时,程序执行语句1

52、;否则程序执行;否则程序执行语句语句2。20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分25秒条件分支控制条件分支控制 请读者注意,请读者注意,ifc 函数和以前用过的函数和以前用过的if 函数的功能是不同的:函数的功能是不同的:ifc 是引导流程控制语句的函数(按是引导流程控制语句的函数(按照不同条件选择不同的程序分支进行执照不同条件选择不同的程序分支进行执行),而行),而 if 一个算术函数,按照不同条一个算术函数,按照不同条件返回不同的计算结果或表达式。件返回不同的计算结果或表达式。20222022年年1111月月1010日日2

53、323时时3131分分2022年11月10日星期四23时31分25秒条件循环控制条件循环控制 在在LINGO 10.0 以上版本中,有两种条件循环以上版本中,有两种条件循环控制语句:控制语句:for和和while。while语句的使用语法是:语句的使用语法是:while(condition:可执行语句可执行语句;)当逻辑表达式当逻辑表达式condition为为“真真”时,执行相时,执行相应的一条或多条可执行语句(多条之间用分应的一条或多条可执行语句(多条之间用分号分隔),直到号分隔),直到condition的值为假为止。的值为假为止。请注意请注意,while条件循环控制语句只能出现条件循环控制

54、语句只能出现在在计算段(计算段(calc)中。中。20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分25秒条件循环控制条件循环控制 在条件循环控制中,还经常会使用到在条件循环控制中,还经常会使用到 break:不需要任何参数,其功能是立即终止当前循环,继不需要任何参数,其功能是立即终止当前循环,继续执行当前循环外的下一条语句。续执行当前循环外的下一条语句。pause(message):暂停程序执行,并弹出一个窗口,等待用户选择继暂停程序执行,并弹出一个窗口,等待用户选择继续执行或者终止程序。续执行或者终止程序。stop(message)

55、:终止程序的运行,并弹出一个窗口,说明程序已经终止程序的运行,并弹出一个窗口,说明程序已经停止运行。停止运行。20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分25秒二分法查找数据二分法查找数据 采用二分搜索算法,从一个递增排列的采用二分搜索算法,从一个递增排列的正整数数列正整数数列X 中找到某个具体的数中找到某个具体的数KEY 在数列在数列X 中所在的位置中所在的位置 二分法查找二分法查找.lg420222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分25秒 子模型必须包含在主模型之

56、内,即必须位于以子模型必须包含在主模型之内,即必须位于以“model:”开头、以开头、以“end”结束的模块内。结束的模块内。同一个主模型中,允许定义多个子模型,所以每个同一个主模型中,允许定义多个子模型,所以每个子模型本身必须命名,子模型本身必须命名,子模型定义子模型定义:submodel mymodel:可执行语句(约束可执行语句(约束+目标函数)目标函数);endsubmodel 其中其中 mymodel 是该子模型的名字,可执行语句不可是该子模型的名字,可执行语句不可以有自身单独的集合段、数据段、初始段和计算段。以有自身单独的集合段、数据段、初始段和计算段。也就是说,同一个主模型内的变

57、量都是全局变量,也就是说,同一个主模型内的变量都是全局变量,这些变量对主模型和所有子模型同样有效。这些变量对主模型和所有子模型同样有效。20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分25秒 子模型调用子模型调用:solve(submodel_name,submodel_name_n)参数可以是多个子模型的名字,即同时求解多参数可以是多个子模型的名字,即同时求解多个子模型。也可以没有参数,如果没有参数则个子模型。也可以没有参数,如果没有参数则求解出现在语句求解出现在语句“solve();”之前的所有子模之前的所有子模型。型。20222022年年1111月月1010日日2323时时3131分分2022年11月10日星期四23时31分25秒1个子模型个子模型.lg44个子模型个子模型.lg4

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!