6优化Lingo
每头奶牛需要1.5英亩土地,冬季需要付出100小 时劳动时间,夏季50小时,每年净收益为450美 元;相应地,每只母鸡不占用土地,冬季0.6小 时,夏季0.3小时,年净收益为3.5美元。养鸡房 最多容纳3000只母鸡,栅拦最多能容纳32头奶牛。
种植一英亩的大豆、玉米、燕麦分别需要冬季劳 动时间20、35、10小时,夏季劳动时间30、75、 40小时,年景收益分别为175、300、120美元。 建立数学模型,帮助该农户确定养殖计划,使得 年净收入最多。
d=5 2 6 10 4 5 7 5 7 6 4 4 9 10 6 2; enddata min=@sum(link(i,j):2*d(i,j)*x(i,j))+@su m(demand(i):5*x(4,i)); @for(demand(j):@sum(supply(i):x(i,j))>= a(j)); @for(supply(i)|i#LT#4:@sum(demand(j):x( i,j))<=b(i)); @for(link(i,j):x(i,j)>=0); end
数学模型与实验(六)
关于LINDO/LINGO软件
LINDO 公司软件产品简要介绍
美国芝加哥(Chicago)大学的Linus Schrage教授于1980 年前后开发, 后来成立 LINDO系统公司(LINDO Systems Inc.), 网址:
LINDO: Linear INteractive and Discrete Optimizer LINGO: Linear INteractive General Optimizer What’s Best!: (SpreadSheet e.g. EXCEL) (V6.1) (V8.0) (V7.0)
Lingo程序(初等形式)
model: min=99*x11+60*x12+59*x13+73*x14+79*x21+65*x22+ 93*x23+87*x24+67*x31+93*x32+63*x33+81*x34+56* x41+79*x42+86*x43+76*x44; x11+x12+x13+x14=1; x21+x22+x23+x24=1; x31+x32+x33+x34=1; x41+x42+x43+x44=1; x11+x21+x31+x41=1; x12+x22+x32+x42=1; x13+x23+x33+x43=1; x14+x24+x34+x44=1; end
@for(ren(i):@sum(yundong(j):x(i,j))=1);
@for(yundong(j):@sum(ren(i):x(i,j))=1);
end
例2 一家大建筑公司正在三个地点开掘。同 时又在其他四个地点建筑,这里需要土方的 填充。在1、2、3处挖掘产生的土方分别为每 天150,400,325立方码。建筑地点A、B、C、 D处需要的填充土方分别为175,125,225, 450立方码。也可以从地点4用每立方码5美元 的价格获得额外的填充土方。填充土方运输 的费用约为一货车容量每英里20美元。一辆 货车可以搬运10立方码的土方(每立方码土方 每英里运输费2美元)。表3-3给出了各地点间 距离的英里数。求使公司花费最少的运输计 划。
例1 混合泳接力赛由蛙泳、蝶泳、自由泳、仰泳
组成。如何根据 4位运动员的4种游泳竞赛成绩 安排混合泳接力队,以取得最佳成绩。 蛙泳 蝶泳 自由泳 仰泳 甲 99 乙 79 60 59 65 93 93
63
81
76
79 86
这就是简单的0-1规划。取决策变量 蛙泳 蝶泳 自由泳 仰泳 甲 X11 X12 X13 X14 乙 X21 X22 X23 X24 丙 X31 X32 X33 X34 丁 X41 X42 X43 X44 Xij=1 让第i人参加第j项比赛,否则 Xij=0
如:尽量少使用绝对值、符号函数、多个变量求 最大/最小值、四舍五入、取整函数等 3、尽量使用线性模型,减少非线性约束和非线性变 量的个数 (如x/y <5 改为x<5y)
4、合理设定变量上下界,尽可能给出变量初始值
5、模型中使用的参数数量级要适当 (如小于103)
需要掌握的几个重要方面
1、LINDO:
习题5
农作物问题
某农户有100英亩土地合5000美元可供投资。每年 冬季家庭成员可以贡献3500小时的劳动时间,而 夏季为4000小时。如果这些劳动时间有富裕,家 庭成员可以去附近农场打工,冬季每小时4.8美元, 夏季每小时5.1美元。 现金收入来源于3种农作物(大豆、玉米、燕麦) 以及2种家禽(奶牛、母鸡)。农作物不需要投资, 但每头奶牛需要400美元初始投资,每只母鸡需要 3美元初始投资。
习题 4
资源的最优配置策略
某工厂有1000台机器, 生产两种产品 A, B, 若投入 y 台机器生产A 产品, 则纯收入为 5y .若投入 y 台机器生产B 产品, 则纯收 入为 4y . 又知, 生产A 种产品机器的年折 损率为20%, , 生产B 种产品机器的年折损 率为10%, 问在5年内如何安排各年度的生产 计划, 才能使总收入最高.
挖掘与建筑地点间的距离(英里) 接收填充土方的地点 挖掘地点 A B C D 1 5 2 6 10 2 4 5 7 5 3 7 6 4 4 4 9 10 6 2
参量、变量 第 j 个工地需要填充土方量为 aj, 第 i 个挖掘点产生的土方量为 bi ,
第i个挖掘点到第 j 个工地的路程为 dij, 计划运输
LINDO API: LINDO Application Programming Interface (V2.0)
演示(试用)版、学生版、高级版、超级版、工业版、 扩展版… (求解问题规模和选件不同)
建模时需要注意的几个基本问题
1、尽量使用实数优化,减少整数约束和整数变量
2、尽量使用光滑优化,减少非光滑约束的个数
练习7* 2005年D题: DVD在线租赁
考虑如下的在线DVD租赁问题。顾客缴纳一定数量 的月费成为会员,订购DVD租赁服务。会员对哪些 DVD有兴趣,只要在线提交订单,网站就会通过快 递的方式尽可能满足要求。会员提交的订单包括多 张DVD,这些DVD是基于其偏爱程度排序的。 问题2 表2中列出了网站手上20种DVD的现有张数和 当前需要处理的100位会员的在线订单,如何对这些 DVD进行分配,才能使会员获得最大的满意度?请 具体列出前30位会员(即C0001~C0030)分别获得 哪些DVD。
的土方量为xij.
如何安排运输计划使总费用最小.
模型:
Min= ij (2 dij xij+ j 5 x4j) i xij = aj j=1,2,3,4. j xij = bi i=1,2,3.
xij >=0
Lingo程序(模式语言) model: sets: demand/1..4/:a; supply/1..4/:b; link(supply,demand):d,x; endsets data: a=175,125,225,450; b=150,400,325,1;
Lingo程序(模式语言)
model: sets: ren/1..4/:r; yundong/1..4/:y; link(ren, yundong):a,x; endsets
data: A=99 60 59 87 73 79 65 93
67 93 63
56 79 86
81
76;
enddata
min=@sum(link(i,j):a(i,j)*x(i,j)) ;
正确阅读求解报告(尤其要掌握敏感性分析)
2、LINGO: 掌握集合(SETS)的应用; 正确阅读求解报告; 正确理解求解状态窗口; 学会设置基本的求解选项(OPTIONS) ; 掌握与外部文件的基本接口方法
Lingo程序(初等形式)
用Lingo软件求解线性规划 Model: Max=110*x1+75*x2+60*x3; x1+x2+x3<=50; 1/2*x1+1/3*x2+1/4*x3<=20; end
练习6*:2004年D题 公务员招聘
经笔试科目:综合基础知识、专业知识和 “行政职业能力测验”三个部分, 每科满 分为100分。16人被选择进入第二阶段的面 试考核。面试考核从高到低分成A/B/C/D四 个等级。由招聘领导小组综合笔初试成绩、 面试成绩、以及各用人部门需求确定录用 名单,并分配到各用人部门。 问题 1. 如果不考虑应聘人员的意愿,择优 按需录用,试帮助招聘领导小组设计一种 录用分配方案。