- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章_LINGO软件使用简介及技巧课件
数学建模简明教程; 第十章 LINGO软件使用 简介及技巧;LINGO是一种专门用于求解数学规划问题的;一、LINGO使用介绍;LINGO中的集合有两类:一类是原始集合;(2) 目标与约束:这部分定义了目标函数、约束;编写LINGO程序要注意:;2.1 常用数学函数;@SIGN( X) 返回变量X的符号值,当X0时;2.2 集合函数;常见的集合函数如下:;@SIZE(set_name)返回数据集set_name中包;二、利用LINGO求解优化模型实例;设司机和乘务人员分别在各时间区段一开始上班,;LINGO程序如下:;得到的解为:;各农场均可种植甜菜、棉花和高粱三种作物,;解 ;根据题目条件,可建立如下线性模型:;LINGO编程如下:;得到结果如下:;根据题目条件,可建立如下线性模型:;LINGO程序如下:;3.公司在各地有4项业务,选定了4位业务员去处;解 ;LINGO程序如下:;得到的结果如下:;MODEL:
SETS:
person/1..4/;
task/1..4/;
assign(person,task):a,x;
ENDSETS
DATA:
a=@file(data.txt);
ENDDATA
min=@sum(assign:a*x);
@for(person(i):@sum(task(j):x(i,j))=1);
@for(task(j):@sum(person(i):x(i,j))=1);
@for(assign(i,j):@bin(x(i,j)));
END;1100,800,1000,700
600,500,300,800
400,800,1000,900
1100,1000,500,700;出场阵容满足如下条件: ;则目标函数很容易给出: ;如1号和4号均上场,则6号不出场.则可用如下一;用LINGO编程如下:;即第2,3,4,5,6名队员被选上.; 应当选择哪些任务,才能使总的设计报酬最大?;根据题目要求分别列出约束条件如下:;LINGO程序如下:;MODEL:
SETS:
mat/1..5/:m,t,x;
ENDSETS
DATA:
m=7,17,11,9,21; !定义报酬数组;
t=3,8,5,4,10; !定义完成时间;
ENDDATA
max=@SUM(mat(i):m(i)*x(i)); !定义目标函数;
@SUM(mat(i):t(i)*x(i))=20; !期限约束 ;
@SUM(mat(i):x(i))=3; !至少完成3项任务;
x(2)=x(1); !若选择任务1,必须同时选择任务2;
x(3)+x(4)=1; !任务3和任务4不能同时选择;
@FOR(mat(i):@BIN(x(i))); !使各变量为0-1变量;
END;即在满足各种约束条件下,选择设计任务1,2,3,;;第I种产品销售一件可收入7-4=3元,第II种产品;. ;LINGO程序.;7. 某企业和用户签定了设备交货合同,已知该;解法1;LINGO程序如下:;解法2;12.3
11.2
11.6
12.5;LINGO程序如下:;得到的结果如下:;9. 旅行售货商问题(TSP问题);城市;用来表示经过的各城市之间的路线.设;LINGO程序如下:; MIN=@SUM(link:d*s);
@SUM(city(j)|j#GT#1:S(j,1))=2; !与第1个城市相连的有两个城市;
!与第i个城市相连有两个城市;
@FOR(city(i)|i#GT#1:@SUM(city(j)|j#GT#i:s(j,i))+
@SUM(city(k)|k#LT#i:s(i,k))=2);
@FOR(link:@BIN(s));;优缺点分析:;考虑每个城市后只有一个城市,则: ;于是我们可以得到如下的模型:;LINGO程序; MIN=@SUM(link:d*s);
@for(city(j):@sum(city(i)|j#ne#i:s(i,j))=1); !城市j前有一个城市相连;
@for(city(i):@sum(city(j)|j#ne#i:s(i,j))=1); !城市i后前有一个城市相连;
@for(link(i,j)|i#NE#j#and#i#gt#1:u(i)-u(j)+10*s(i,j)=9);
@for(city(i)|i#gt#1:u(i)=8);
@FOR(link:@BIN(s));
end;时直接劳动、3千克材料;生产每件B产品需要2小时;分析与求解 ;目录;由于目标函数是非线性的,采用自己编写用户函数 ;该函数采用动态库编写.这里的例子采用VC编写动;文件名.如CB.;DllExport
文档评论(0)