LINDO/LINGO软件初步
Lindo/Lingo软件初步
Lindo/Lingo软件是美国Lindo系统公司开发的一套专门用于求解优化
模型的软件。Lindo系统公司面向全社会免费提供该软件的“演示版”,我们
现在使用的就是这个演示版。占领硬盘空间大约20MB .
一(Lingo入门
1(编写简单的Lingo程序
Lingo程序:在“模型窗口”中,按Lingo语法格式,输入一个完整的
优化模型。 (注意:一个程序就是一个优化模型)
maxz,2x,3y,
s.t.4x,3y,10, 例1 要求解线性
规划
污水管网监理规划下载职业规划大学生职业规划个人职业规划职业规划论文
问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
3x,5y,12,
x,y,0.输入程序:
max=2*x+3*y;
4*x+3*y<=10;
3*x+5*y<=12;
22max98x,277x,x,0.3xx,2x,121122
s.t.x,x,100,12 例2 求解 x,2x,12
x,x,0,且都是整数.12
输入程序:
max=98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2;
x1<=2*x2;x1+x2<=100; @gin(x1); @gin(x2);
2(语法格式
(1)目标函数 max= 或 min=
(2)每个语句的结尾要有“;”
(3)程序中,各个语句的先后次序无关
(4)自动默认各个变量均为大于等于零的实数
(5)不区分大写、小写
(6)程序中的“<=”、“<”等同于原模型中的“,”
程序中的“>=”、“>”等同于原模型中的“,”
(7)对一个特定的变量 x ,进行限制:
@free(x) :把x放宽为任意实数
@gin(x) :限制x为整数
@bin(x) :限制x只能取0或1
@bnd(-6,x,18) :限制x为闭区间[-6,18]上的任意实数
例3:某学校游泳队要从5名队员中选4名参加4乘100米混合泳接力赛。
5名队员4种泳姿的百米成绩(单位:秒)
-----------------------------------------------------------------------------------
李 王 张 刘 赵
蝶泳 66.8 57.2 78 70 67.4
仰泳 75.6 66 67.8 74.2 71
蛙泳 87 66.4 84.6 69.6 83.8
自由泳 58.6 53 59.4 57.2 62.4 -----------------------------------------------------------------------------------
如何选拔,
(1)请建立“0----1规划”模型;
(2)用Lingo求解。
解:若第i名队员参加第j种泳姿比赛,则令;否则令;共有20x,1x,0ijij
。第i名队员的第j种泳姿成绩记为,则 个决策变量xcijij
54
目标函数为: mincx,,ijijij,,11
4
约束条件有:每名队员顶多能参加一种泳姿比赛 ; x,1,i,1,2,3,4,5,ijj,1
5
x,1,j,1,2,3,4.每种泳姿有且仅有一人参加 ,iji,1
这样就能建立如下“0----1规划”模型:
54
mincx,,ijijij,,11
4
s.t. x,1,i,1,2,3,4,5,ijj,1
5
x,1,j,1,2,3,4. ,iji,1
x,0或1,i,1,2,3,4,5,j,1,2,3,4.ij
Lingo程序如下:
min=66.8*x11+57.2*x21+78*x31+70*x41+67.4*x51+75.6*x12+66*x22+67.8*x
32+74.2*x42+71*x52+87*x13+66.4*x23+84.6*x33+69.6*x43+83.8*x53+58.6*x
14+53*x24+59.4*x34+57.2*x44+62.4*x54;
x11+x12+x13+x14<=1;
x21+x22+x23+x24<=1;
x31+x32+x33+x34<=1;
x41+x42+x43+x44<=1;
x51+x52+x53+x54<=1;
x11+x21+x31+x41+x51=1;
x12+x22+x32+x42+x52=1;
x13+x23+x33+x43+x53=1;
x14+x24+x34+x44+x54=1;
@bin(x11); @bin(x21); @bin(x31); @bin(x41); @bin(x51);
@bin(x12); @bin(x22); @bin(x32); @bin(x42); @bin(x52);
@bin(x13); @bin(x23); @bin(x33); @bin(x43); @bin(x53);
@bin(x14); @bin(x24); @bin(x34); @bin(x44); @bin(x54);
答:均等于1,即,依次取第2个人王、第3个人张、第4个x,x,x,x21324314
人刘、第1个人李参加蝶泳、仰泳、蛙泳、自由泳,成绩为253.2秒。
再介绍本题的另一个解法:用遍历法求出最佳组队
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
。从5人中任取4人,
随意安排各人的泳姿,则共有 5!=120 种方案,取成绩最佳的方案。Matlab程序为
clear
c=[66.8,75.6,87,58.6;57.2,66,66.4,53;78,67.8,84.6,59.4;70,74.2,69.6,57.2;67.4,71,
83.8,62.4];
zxcj=888;
for a1=1:5
for a2=1:5
for a3=1:5
for a4=1:5
aabb=(a1-a2)*(a1-a3)*(a1-a4)*(a2-a3)*(a2-a4)*(a3-a4);
if aabb~=0
cj=c(a1,1)+c(a2,2)+c(a3,3)+c(a4,4);
if cj
小于等于 等于 大于等于
(Lingo中的关系运算式通常作为约束条件来使用,用来规定数与数之间的大小关系) 优先级: #not# -(负号)
^
* /
+ -
#eq# #ne# #gt# #ge# #lt# #le#
#and# #or#
< = >
2(基本的数学函数 ( 对于给定的数x ,可以计算其函数值 ) sin(x) cos(x) tan(x) exp(x) log(x) sqrt(x) abs(x)
3(集合循环函数
(下面5个函数,其括号中的格式为 集合名:表达式 )
@for( ) @sum( )
@max( ) @min( ) @prod( )
积
4(变量定界函数
@free(x) :把x放宽为任意实数
@gin(x) :限制x为整数
@bin(x) :限制x只能取0或1
@bnd(-6,x,18) :限制x为闭区间[-6,18]上的任意实数
七(练习题
题1.总运力问题
某卡车公司拨款800万元用于购买新的运输工具,有3种运输工具可供选择:
A的载重量10吨,平均时速45千米,价格26万元;
B的载重量20吨,平均时速40千米,价格36万元;
C的载重量18吨,平均时速40千米,价格42万元。
其中,C是B的变种,新设了一个卧铺,所以载重降低了、价格上升了。A需要1名司机,如果每天三班工作,每天可运行18小时. 当地法律规定B和C均需要两名司机,如果三班工作,B每天可运行18小时,C可运行21小时. 该公司目前每天有150名司机可用,短期内无法招募到其他训练有素的司机。当地工会禁止司机每天工作超过一个班次。此外,受维修保障能力的限制,公司最多能拥有30辆运输工具。请你建立数学模型,确定A、B、C的数量使得公司的总运力最大。
题2.生产与销售计划问题
某公司用两种原油(A和B)混合加工成两种汽油(甲和乙)。甲、乙两种汽油含原油A的最低比例分别为50%和60%,每吨售价分别为4800元和5600元。该公司现有原油A
和B的库存量分别为500吨和1000吨,还可以从市场上买到不超过1500吨的原油A. 原油A的市场价为:购买量不超过500吨时的单价为10000元/吨;购买量超过500吨但不超过1000吨时,超过500吨的部分单价为8000元/吨;购买量超过1000吨时,超过
吨。该公司应怎样安排原油的采购和加工, 1000吨的部分单价为6000元/
提示:约定:货币单位是“千元”;价格单位是“千元/吨”
设 原油A用于生产甲、乙两种汽油的数量分别为, x,x12
原油B用于生产甲、乙两种汽油的数量分别为, x,x34
分别是以价格10、8、6购进的原油A的量。 x,x,x567
答案
八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案
:采购1000吨原油A,不生产汽油甲,用全部的1500吨原油A、1000吨原油B投入生产汽油乙;此时,利润达到最大值5000千元.
题3.机票的销售策略
在四个城市A、B、C、H之间,有唯一一家航空公司提供三个航班,这三个航班的“出发地—目的地”分别为AH、HB、HC,可搭载旅客的最大数量分别为120人、100人、110人,机票的价格分头等舱和经济舱两类。经过市场调查,公司销售部得到了每天旅客的相关信息,见下表。该公司应该在每条航线上分别分配多少张头等舱和经济舱的机票,
出发地—目的地 头等舱头等舱经济舱经济舱
需求/人 价格/人 需求/人 价格/人
33 190 56 90 AH
AB(经H转机) 24 244 43 193
AC(经H转机) 12 261 67 199
HB 44 140 69 80
HC 16 186 17 103
提示:题中以“顾客的起点、终点”将顾客分成5类,现将飞机航线也做相应的
i(i,1,2,3,4,5)分类:AH、AB、AC、HB、HC,依次编号为;相应的头等舱需求记为,ai价格记为;相应的经济舱需求记为,价格记为;相应的头等舱机票数记为,pbqxiiii经济舱机票数记为. 是表中所给的已知数据,是决策变量 ya,p,b,qx,yiiiiiii
答案:5个航线AH、AB、AC、HB、HC上分别销售33、10、12、44、16张头等舱机票和0、0、65、46、17张经济舱机票,可使总销售收入达到最大值39344元.
题4.飞行计划问题
下面这个问题是以第二次世界大战中的一个实际情况为背景,经过简化而提出来的。
己方一部分部队被敌方包围,水陆交通被完全割断,只能靠飞机空运向他们供给。根据整个战争进程分析,预计将有长达4个月的包围期。
这4个月分别需要2、3、3、4次编队飞行运送供给,每次飞行编队由50架飞机组成,每架需要3名飞行员,每架飞机每月只能飞一次,每名飞行员每月也只能飞一次。
在每次执行完运输任务后的返回途中,有20%的飞机会被敌方击落,被击落飞机上的飞行员也损失掉。
第1月初,有110架飞机和330名熟练飞行员。每个月初都可以购进新飞机、招收新飞行员,这些新飞机、新飞行员必须经过1个月的检查、训练才能投入使用。每个月初从熟练飞行员中取部分人作为当月教练,每名教练带领19名新飞行员组成一个训练组训练1个月,训练组全体成员下个月变成熟练飞行员。
每执行完一次飞行任务后回来的熟练飞行员,下个月带薪休假1个月,结束假期后才能投入飞行。
各项费用(单位略去)如下表所示,请你安排计划。
第1月 第2月 第3月 第4月
新飞机的价格 200.0 195.0 190.0 185.0
闲置的熟练飞行员报酬 7.0 6.9 6.8 6.7
训练组成员报酬 10.0 9.9 9.8 9.7
投入飞行的飞行员报酬 9.0 8.9 9.8 9.7
带薪休假的飞行员报酬 5.0 4.9 4.8 4.7
另外,如果把条件“每名教练带领19名新飞行员组成一个训练组”改成“每名教练带领不超过20名新飞行员组成一个训练组”,你的模型、结果有哪些变化,
提示:这个问题看起来很复杂,但只要理解了题中所描述的事实,就不难建立其优化模型。首先可以看出,投入飞行以及带薪休假的飞行员数量是常数,所以这部分费
i,1,2,3,4用(报酬)是固定的,在优化目标中不予考虑。令 . 设第个月购买新飞机i架,新飞行员及教练共名. 另外,第个月中闲置的飞机数量记为,闲置的熟练xuyiiii飞行员数量记为. vi
答案:最优解是
(x,x,x,x),(60,30,80,0),(u,u,u,u),(460,220,240,0)12341234
(y,y,y,y),(10,0,0,0),(v,v,v,v),(7,6,4,4) 12341234
minz,42324.4