利用LINGO软件优化数学模型
2.Lingo优化软件的使用方法
然后再在求解的基础上,在菜单上选择lingo/range(ctr+R), 计算机会自动对每个变量和资源用有量进行范围分析:保 持最优基不变的情况下,变量或约束行的右端允许增加和 减少的量。注意:对整数规划和0-1规划灵敏度分析意义不 大。
Ranges in which the basis is unchanged:
数学模型如下:
max z [ t (i) r (i)]x (i) s(i) y(i)
i 1 i 1
3
3
s.t.
3 c ijx i b( j) j 1,2,3 i 1 x (i) My(i) i 1,2,3 ___ x (i) 0, x Z y(i) 0,1 i 1,2,3
产品1
资源A 资源B 资源C 2 2 1
产品2 产品3
4 3 2 8 4 3
资源量
500 300
单件可变费 固定费用 单件售价
4 100 8
5 150 10
6 200 12
分析问题和设置变量 x(i)表示第i种产品的产量;i=1,2,3 c(i,j)表示第i种产品对第j种资源的消耗量;i=1,23,j=1,23 b(j)表示第j种资源的拥有量; r(i)表示第i种产品的单件可变费用; s(i)表示第i种产品的固定费用; t(i)表示第i种产品的单位售价。 总收益=销售收入-固定费用-可变费用,由于不知道第i种产品 生产与否,所以,必须给定第i种产品的选择变量 y(i)表示第I种产品的生产选择,y(i)=0,表示不生产第i种产品, y(i)=1表示生产第i种产品。
#LT#(小于) #LE#(小于等于) 逻辑运算的结果只有“真”(TRUE)和“假”(FALES), Llingo用1表示True,其它的都是False。
Lingo软件与数学建模
变量数目:变量总数 (Total)、非线型变量 数(Nonlinear)、整数 变量数(Integer)
约束变量:约束总数 ( Total )、非线性约束 个数(Nonlinear)
非线性系数数量:总数 ( Total )、非线性项的 系数个数(Nonlinear)
内存使用量:单位为千字节
数据多,咋办?
value=1,1.2,0.9,1.1;
enddata
max=@sum(goods:weight*value);
@for(goods:@bin(x));
end
游泳
四名同学的混合泳接 力赛的四种成绩如左 表所示,确定如何分 配使成绩最佳。
蛙蝶自仰 泳泳由泳
泳
甲 99 60 59 73
线性规划
二次规划
非线性规划
LINGO软件的基本操作
双击快捷方式 即可计入程序编辑界面
Lingo软件介绍
➢解决一个简单的线性规划(LP)问题
max z 2x 3y 4x 3y 10
s.t. 3x 5y 12 x, y 0
LINGO软件介绍
点击图标
运行,屏幕上显示运行状态窗口如下: 对于LINGO运行状态窗口,
基 @EXP(X):指数函数(以自然对数e为底),返回eX的值
本 数 学
@ LOG(X):自然对数函数,返回X的自然对数值; @POW(X,Y):指数函数,返回XY的值;
函 @SQR(X):平方函数,返回X2的值;
数 @SQRT( X ):平方根函数,返回X的平方根;
@FLOOR(X):取整函数,返回X的整数部分(向靠近0 的方向取);
@GIN(X):限制X为整数.
0-1规划(线性规划)
lingo案例
LINGO是一种用于线性规划、整数规划、非线性规划、混合整数规划等数学建模和优化问题的软件工具。
它可以用于解决各种实际问题,包括生产计划、物流、资源分配、网络设计等。
以下是一个简单的LINGO案例,以帮助您了解如何使用LINGO进行优化建模和求解问题:**问题描述:**假设有一家制造公司,他们生产两种产品:A和B。
公司有两个工厂,每个工厂都有不同的生产能力和成本。
公司希望确定每个工厂应该生产多少产品A和B,以最大化利润,同时满足生产能力和市场需求的限制。
**问题数据:**- 工厂1的生产能力:最多生产500个A和300个B- 工厂2的生产能力:最多生产400个A和600个B- 产品A的利润:每个A产品的利润为30美元- 产品B的利润:每个B产品的利润为40美元- 生产一个A产品的成本:工厂1为10美元,工厂2为15美元- 生产一个B产品的成本:工厂1为12美元,工厂2为10美元- 市场需求:产品A的市场需求为600个,产品B的市场需求为800个**LINGO建模和求解:**在LINGO中,可以使用数学表达式来建立优化模型。
以下是一个LINGO模型的示例:```SETS:FACTORIES = 1..2;ENDSETSDATA:CAPACITY(FACTORIES) = 500 300400 600;PROFIT = 30 40;COST(FACTORIES) = 10 1512 10;DEMAND = 600 800;ENDDATAVARIABLES:X(FACTORIES) = 0;ENDVARIABLESMAX = @SUM(FACTORIES, PROFIT(FACTORIES) * X(FACTORIES))SUBJECT TOCAPACITY_CONSTRAINT(F)$(FACTORIES): @SUM(FACTORIES, COST(F, FACTORIES) * X(FACTORIES)) <= CAPACITY(F);DEMAND_CONSTRAINT(I)$(FACTORIES): @SUM(FACTORIES,X(FACTORIES)) >= DEMAND(I);POSITIVE_X(F)$(FACTORIES): X(F) >= 0;ENDSUBMODEL:MAX;SOLVE;```上述LINGO模型首先定义了SETS、DATA、VARIABLES和MAX,然后使用SUBJECT TO部分定义了约束条件,最后使用MODEL和SOLVE命令求解优化问题。
用Lingo求解最优化问题
温州大学城市学院
基本作业题Leabharlann ( 2)min z = 13 x1 + 9 x2 + 10 x3 + 11x4 + 12 x5 + 81x6 ,
x1 + x4 = 400, x2 + x5 = 600, x3 + x6 = 500, 0.4 x1 + 1.1 x2 + x3 ≤ 800, 0.5 x + 1.2 x + 1.3 x ≤ 900, 4 5 6 xi ≥ 0, i = 1, 2, 3, 4, 5, 6.
当 x=0 时, 目标函数最小值为 6.
温州大学城市学院 点击 LINGO-Options 选择 Global Solver (全局求解器 全局求解器) 全局求解器 在Use Global Solver 前面打√ 点击“ 再求解. 点击“OK”, 再求解
温州大学城市学院 例2 用Lingo 求函数
f ( x ) = 8 x + 0.01x − x + 0.01x + 6cos x
4 7 5
的最小值点和最小值. 的最小值点和最小值
当 x=14480.28 时, 目标函数最小值为 -0.1334869E+30.
(即-0.1334869×1030) 即 ×
求解器状态窗口 (LINGO Solver Status)
Model: 当前模型的类型 如: LP, NLP) 当前模型的类型(如 State: 当前解的状态 如: Global Optimum(全局最优 当前解的状态(如 全局最优); 全局最优 Local Optimum(局部最优 等) 局部最优)等 局部最优
lingo软件 优化问题
2.2 LP模型在LINGO中的一个典型输入方式
集合定义部分从 (“SETS:”到 “ENDSETS” ): 定义集合及其属性
MIN
I 1,2,3,4
{400 RP ( I ) 450OP( I ) 20 INV ( I )}
RP( I ) 40, I 1, 2, 3, 4 INV ( I ) INV ( I 1) RP ( I ) OP ( I ) DEM ( I ), I 1, 2, 3, 4 INV (0) 10 INV ( I ) 0 OP ( I ) 0 RP ( I ) 0 I 1 4
Step5 回答问题
Global optimal solution found. Objective value: 78450.00 Total solver iterations: 2 Variable Value Reduced Cost RP1 40.00000 0.000000 RP2 40.00000 0.000000 RP3 40.00000 0.000000 RP4 25.00000 0.000000 OP1 0.000000 20.00000 OP2 10.00000 0.000000 OP3 35.00000 0.000000 OP4 0.000000 50.00000 INV1 10.00000 0.000000 INV2 0.000000 20.00000 INV3 0.000000 70.00000 INV4 0.000000 420.0000 Row Slack or Surplus Dual Price 1 78450.00 -1.000000 2 0.000000 30.00000 3 0.000000 50.00000 4 0.000000 50.00000 5 15.00000 0.000000 6 0.000000 430.0000 7 0.000000 450.0000 8 0.000000 450.0000 9 0.000000 400.0000
lingo讲座.ppt
Erlang繁忙概率。 4.@pel(a,x) 当到达负荷为a,服务系统有x个服务器且不允许排队时的Erlang
繁忙概率。 5.@pfd(n,d,x) 自由度为n和d的F分布的累积分布函数。
如果x<0返回-1;否则,返回1
@floor(x)
返回x的整数部分。
@smax(x1,x2,…,xn) 返回x1,x2,…,xn中的最大值
@smin(x1,x2,…,xn) 返回x1,x2,…,xn中的最小值
概率函数 1.@pbn(p,n,x) 二项分布的累积分布函数。当n和(或)x不是整数时,用线性插
复杂变量:集合
Lingo中没有数组,代之以集合及其属性
集是一群相联系的对象,这些对象也称为集的成员。 一个集可能是一系列产品、卡车或雇员。每个集成员 可能有一个或多个与之有关联的特征,我们把这些特征 称为属性。属性值可以预先给定,也可以是未知的, 有待于LINGO求解。例如,产品集中的每个产品可以有 一个价格属性;卡车集中的每辆卡车可以有一个牵引力 属性;雇员集中的每位雇员可以有一个薪水属性,也可 以有一个生日属性等等。
何时会提升速度?
与数据段不同的是:模型中的变量在这里赋值之后,在模型中 几乎一定会被改变!
(2)Lingo中的运算符与内部函数
三类运算符:算术运算符, 逻辑运算符, 关系运算符
优先级 最高
最低
运算符 #NOT# -(负号) ^ */ + -(减法) #EQ# #NE# #GT# #GE# #LT# #LE# #AND# #OR# <(=) = >(=)
lingo软件的使用具体例子
1
4
0
0
3
2
3
1
0
1
3
2
0
1
3
4
1
2
0
3
5
1
1
1
1
6
0
3
0
1
7
0
0
2
3
需求
50
20
15
约束 满足需求
4 x13 x22 x3x4x550 整数约束:
x22x4x53x620
x3x52x715
xi 为整数
钢管下料问题1
当余料没有用处时,通常以总根数最少为目标
目标2(总根数) M Z 2 i x 1 n x 2 x 3 x 4 x 5 x 6 x 7
客户需求
原料钢管:每根19米
4米50根
6米20根
8米15根
问题1. 如何下料最节省 ? 节省的标准是什么?
问题2. 客户增加需求:
5米10根
由于采用不同切割模式太多,会增加生产和管理成本, 规定切割模式不能超过3种。如何下料最节省?
钢管下料
切割模式
按照客户需要在一根原料钢管上安排切割的一种组合。
4米1根 6米1根
切割多少根原料钢管,最为节省?
两种 标准
1. 原料钢管剩余总余量最小 2. 所用原料钢管总根数最少
决策变量 xi ~按第i 种模式切割的原料钢管根数(i=1,2,…7)
目标1(总余量) M Z 1 3 i x 1 n x 2 3 x 3 3 x 4 x 5 x 6 3 x 7
模式 4米根数 6米根数 8米根数 余料
vk(xk,uk)gk(uk)
资源分配问题
数学建模优化模型与Lingo Lindo软件
型
表二 :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
线 性 规
·划
模 型
决策变量:引入0-1变量xij 若选择队员 i 参加泳姿 j
例-1 某服务部门一周中每天需要不同数目的
雇员:周一到周四每天至少需要50人,周五
需要80人,周六和周日需要90人。现规定应
聘者需连续工作5天,试确定聘用方案,即周
线
一到周日每天聘用多少人,是5在满足需要的 前况下聘用总人数最少?
性
优化模型
规
决策变量:记周一到周日每天聘用的人数分别为X1,
划
X2,X3,X4,X5,X6 ,X7,这就是问题的决策变量。
的比赛,记 xij=1,否则记 xij=0.这就是问题的决策变量, 共20个。
目标函数:当队员队员 i 入选泳姿 j 的比赛时,
cij xij表示他的成绩,否则cij xij=0。于是接力队的成绩
可以表示为:
45
f
cij xij
j1 i1
约束条件:根据组成接力队的要求, xij 应该满足下面
方案。显然这不是解决问题的最好方法,随着问题
线
规模的变大,穷举法的计算量是无法接受的。
性
可以用0-1变量表示一个队员是否入选接力队, 从而建立这个问题的0-1规划模型.
LINGO软件求解优化问题
模 1桶 型 牛奶 或
12小时
3公斤A1 4公斤A2
获利24元/公斤 获利16元/公斤
8小时 公斤A 每天 50桶牛奶 时间 桶牛奶 时间480小时 至多加工 小时 至多加工100公斤 1 公斤 决策变量 目标函数 x1桶牛奶生产 1 桶牛奶生产A 获利 24×3x1 × 每天获利 原料供应 劳动时间 加工能力 非负约束 x2桶牛奶生产 2 桶牛奶生产A 获利 16×4 x2 ×
Window|Tile (Alt+T) 平铺窗口 上下文相 关的帮助
File|New (F2) 新建文件
Edit|Cut (Ctrl+X) 剪切
•
Window|Send to Back (Ctrl+B) 窗口后置
3、LINGO的菜单 、 的菜单 栏 • File
– Export File… – User Database Info
有效步数
5、Options 7个选 、 个选 项卡 • 可设置80-90个控制参数
Interface界面 General Solver通用求解 Linear Solver线性求解 Nonlinear Solver非线性求解 Integer Pre-Solver整数预处理 Integer Solver整数求解 Global Solver全局最优求解
结果解 释
Objective value: Variable X1 X2 Row 1 2 3 4 3360.000 Value Reduced Cost 20.00000 30.00000 Slack or Surplus 3360.000 0.000000 0.000000 40.00000 0.000000 0.000000 Dual Price 1.000000 48.00000 2.000000 0.000000
利用LINGO建立最优化模型
利用LINGO建立最优化模型洪文1,朱云鹃1,金震1,王其文21(安徽大学商学院 合肥 230039)2(北京大学光华管理学院 北京 100871)摘 要:本文借助于最优化软件LINGO建立了最小树、最短路、最大流、最小费用流和货郎担问题的LINGO模型,并对模型中的难点给出了注释。
利用本文提供的模型,可以很容易地求出上述5个最优化问题的最优解。
关键词:最小树、最短路、最大流、最小费用流、货郎担问题、LINGO中图分类号:0211.6 文献标识码:A 文章编号:0 引言求解最小树、最短路、最大流、最小费用流和货郎担问题的方法虽然很多,但是利用最优化求解软件LINGO建立相应的模型来求解上述5个问题是一种新的尝试。
本文建立的模型有两个突出的特点。
第一个特点是模型的数据与公式完全分离,这样使得问题的求解变得特别方便(对于不同的问题只要更换数据即可)。
第二个特点是这五个模型都是利用最优化求解软件LINGO编写而成,可进行快速求解。
1 LINGO简介LINGO是一个简单而实用的最优化软件。
利用线性和非线性最优化的方法,LINGO可以用公式简明地表示复杂的规划问题,并可以快速地求出问题的最优解。
LINGO是由美国芝加哥LINDO系统公司研制。
该公司根据用户信息、线性和非线性规划的理论和方法及计算机发展的需要不断推出新的版本。
目前LINGO已成为世界上最为流行的最优化软件之一。
LINGO在我国已经有了相当多的用户。
它的主要特点是:1)LINGO含有一系列的接口函数。
这些接口函数可用在文本文件、电子表格和数据库中,可与外部的输入/输出源进行连接。
2)LINGO可以直接嵌入到Excel中,也可以将Excel嵌入到LINGO模型中。
这样就可以将数据与模型分离,使得模型的维护和调试变得非常容易。
3)LINGO使用Windows的窗口展开优化分析功能,使用对话框展示各种功能。
清晰、直观、易学易用。
4)LINGO具有强大的计算功能。
lingo软件使用教程
lingo软件使用教程一般来说,一个优化模型将由以下三部分组成:1. 目标函数(Objective Function):要达到的目标。
2. 决策变量(Decision variables):每组决策变量的值代表一种方案。
在优化模型中需要确定决策变量的最优值,优化的目标就是找到决策变量的最优值使得目标函数取得最优。
3. 约束条件(Constraints):对于决策变量的一些约束,它限定决策变量可以取的值。
在写数学模型时,一般第一行是目标函数,接下来是约束条件,再接着是一些非负限制等。
在模型窗口输入如下代码:Max = 2*x1+3*x2;X1+2*x2<=8;4*x1<16;4*x2<12;注意:1.每一个lingo表达式最后要跟一个分号;2.多数电脑中没有符号,lingo中<=代替;为了方便可以用<代替小于等于,用>代替大于等于。
3.我们可以添加一些注释,增加程序的可读性。
注释以一个!(叹号必须在英文状态下输入,它会自动变为绿色)开始,以;(分号)结束。
4.Lingo中不区分变量名的大小写。
变量名必须以字母(A-Z)开头,后面的字符可以是字母、数字、下划线。
变量名不能超过32个字符。
Lingo程序的一些规则:1. 在Lingo中最开始都是“MAX=”或者“MIN=”开始表示求目标函数的最大或者最小值。
2. 变量和它前面的系数之间要用“*”连接,中间可以有空格。
3. 变量名不区分大小写,但必须以字母开始,不超过32个字符。
4. 数学表达式结束时要用分号“;”表示结束。
表达式可以写在多行上,但是表达式中间不能用分号。
5. 在电脑系统中一般没有“小于等于”符号,在Lingo采用“<=”来表示“小于等于”,用“>=”表示“大于等于”。
小于等于也可以用更简单的“<”表示,大于等于用“>”表示。
集合段:在我们已经得到的程序里有一些量没有定义,如WAREHOUSES( I),DEMAND( J), LINKS( I, J)。
供应链管理实验
供应链管理 实 验 报 告相关问题说明:一、 实验性质和教学目的本实验是供应链管理课内安排的上机操作实验。
目的是根据供应链中供应管理和需求管理的实际问题,抽象出相应的数学模型,利用Lingo 优化软件求解模型,通过对求解结果的分析,一方面使学生更好地理解和掌握供应链管理的有关原理和概念,另一方面锻炼学生利用计算机等现代工具分析求解实际问题的动手能力,以达到学以致用的最终目的。
二、 实验基本要求要求学生:1. 实验前认真做好理论准备,仔细阅读实验指导书;2. 遵从教师指导,认真完成实验任务,按时按质提交实验报告。
三、 主要参考资料1.LINGO软件2. 优化建模与LINDO/LINGO软件,清华大学出版社,20053.运筹学编写组主编,运筹学(第三版),清华大学出版社,19904.《供应链管理:战略、规划与运作》(第3版)(清华管理学系列英文版教材),(美)乔普拉(Chopra,S),(美)迈因德尔(Meindl,P.)著,清华大学出版社5. 供应链管理(第3版)(工商管理经典译丛),乔普拉等著,陈荣秋等译,中国人民大学出版社实验内容1.Lavare公司是芝加哥郊区主要的不锈钢水槽制造厂,公司现在正在制定来年需求和供给管理计划。
预计每月分销商的需求如表2所示。
Lavare公司的产能由工厂雇佣的操作工人数量决定,工人每月工作20天,每天8小时,其他时间的工作算加班,正常工作时间每小时工资15美元,加班费每小时22美元。
每个工人每月的加班时间不得超过20小时。
工厂现雇佣工人数为250名,每个不锈钢水槽的生产需要2小时,单位库存持有成本为每月3美元,单件产品生产成本为40美元。
每单位的销售价格为125美元销售给分销商。
假定没有转包生产。
假定Lavare公司最初有4000个单位库存,并希望维持年底也有同样多的库存。
表2 Lavare公司每月预计需求量月份 需求量 月份 需求量1 10000 7 300002 11000 8 290003 15000 9 210004 18000 10 180005 25000 11 140006 26000 12 11000市场调查显示,降价1%能够给当月增加20%的销售量,并使得未来两个月销售量的10%提前至当月。
lingo数学模型
lingo数学模型
"lingo"是一种用于数学建模和优化的软件工具。
它提供了一个
直观的界面,用于建立和求解复杂的数学模型,包括线性规划、整
数规划、非线性规划、多目标规划等。
lingo的使用可以帮助分析
师和决策者在面临复杂的决策问题时进行优化决策。
在数学建模方面,lingo可以用来建立数学模型,包括定义决
策变量、约束条件和目标函数。
用户可以通过lingo的界面直观地
输入模型的各个部分,而无需深入了解数学建模的具体语法和规则。
这使得非专业的用户也能够快速地建立数学模型。
在优化方面,lingo提供了强大的求解算法,可以对各种类型
的数学模型进行求解,以找到最优的决策方案。
lingo支持对模型
进行灵敏度分析,帮助用户了解参数变化对最优解的影响,从而更
好地进行决策。
除了数学建模和优化外,lingo还具有数据可视化功能,可以
直观地展示模型的结果和决策方案。
这有助于用户向决策者传达模
型分析的结果,从而更好地支持决策过程。
总的来说,lingo作为数学建模和优化工具,为用户提供了一
个方便、强大的平台,帮助他们解决复杂的决策问题。
通过lingo,用户可以更好地理解问题、制定决策,并得到最优的解决方案。
利用LINGO开发高级模型选讲课件
整数规划在解决组合优化问题时非常有用,例如排班问题、背包问题等。
01
02
03
03
CHAPTER
LINGO高级功能
LINGO中的集合类似于数学中的集合,用于表示一组元素。在LINGO中,可以使用集合来定义决策变量、约束条件等。
模型优化在许多领域都有广泛应用,如生产调度、物流运输、金融投资等。
通过将问题转化为线性方程组,寻找最优解,适用于资源分配、生产计划等问题。
线性规划
处理目标函数或约束条件中含有非线性项的问题,如最大化利润、最小化成本等。
非线性规划
在满足约束条件下,寻找整数解,常用于组合优化问题,如排班、选址等。
整数规划
利用LINGO开发高级模型选讲课件
目录
LINGO软件介绍LINGO建模基础LINGO高级功能LINGO求解算法LINGO模型优化LINGO软件应用案例
01
CHAPTER
LINGO软件介绍
高效求解器
LINGO内置了多种求解算法,可以快速求解各种类型的优化问题。
直观的建模语言
LINGO采用直观的建模语言,用户可以轻松地描述优化问题,无需编写复杂的算法代码。
线性规划问题可以通过单纯形法、椭球法等算法求解,LINGO内置了高效的求解器,可以快速找到最优解。
线性规划在生产计划、资源分配、投资决策等领域有广泛应用。
01
02
03
1
2
3
非线性规划求解算法用于解决目标函数或约束条件中包含非线性函数的问题。
LINGO支持采用梯度法、牛顿法、拟牛顿法等非线性规划求解算法,能够处理复杂的非线性问题。
用LINGO解决非线性规划问题
注意比较:
当去掉第二个约束条件y<=0.5时,最小值 为-3 当x=0, y=1时;
当去掉所有约束条件无条件最值时,最小
值为-5 当x=1, y=2时;
15
三、用LINGO解决非线性规划问题
例3 求解非线性规划问题:
16
三、用LINGO解决非线性规划问题
17
三、用LINGO解决非线性规划问题
18
X1+ 3X2<=18;
X1,X2为决策变量;
2X1+ X2<=16;
4X2<=20; 第二到四行均为约束条件
8
二、用LINGO解决基本的线性规划问题
我们编辑程序并求解后,得到LINGO Model窗口、 Solution report窗口和Solver status窗口如下:
9
二、用LINGO解决基本的线性规划问题
6
二、用LINGO解决基本的线性规划问题
例1 求解如下的线性规划模型:
m ax z 50 x1 70 x2 ,
x1 3 x2 1 8,
2 x 1 x 2 1 6 ,
4x2 20,
x 1 , x 2 0
7
二、用LINGO解决基本的线性规划问题
我们编辑一个LINGO程序:
MAX=50X1+70X2; 目标函数;
三、用LINGO解决非线性规划问题
例4 求解二次规划问题:
直接使用LINGO最大化过程:
max=98x1+277x2-x1^2-0.3x1x2-2x2^2; x1 + x2 <= 100; x1 <= 2x2; ginx1;ginx2;
19
三、用LINGO解决非线性规划问题
Lingo软件在求解数学优化问题的使用技巧
Lingo软件在求解数学优化问题的使用技巧LINGO是一种专门用于求解数学规划问题的软件包。
由于LINGO执行速度快,易于方便地输入、求解和分析数学规划问题,因此在教学、科研和工业界得到广泛应用。
LINGO 主要用于求解线性规划、非线性规划、二次规划和整数规划等问题,也可以用于求解一些线性和非线性方程组及代数方程求根等。
LINGO的最新版本为,但解密版通常为和版本,本书就以为参照而编写。
1.LINGO编写格式LINGO模型以MODEL开始,以END结束。
中间为语句,分为四大部分(SECTION):(1)集合部分(SETS):这部分以“SETS:”开始,以“ENDSETS”结束。
这部分的作用在于定义必要的变量,便于后面进行编程进行大规模计算,就象C语言在在程序的第一部分定义变量和数组一样。
在LINGO中称为集合(SET)及其元素(MEMBER或ELEMENT,类似于数组的下标)和属性(A TTRIBUTE,类似于数组)。
LINGO中的集合有两类:一类是原始集合(PRIMITIVE SETS),其定义的格式为:SETNAME/member list(or 1..n)/:attribute,attribute,etc。
另一类是是导出集合(DERIVED SETS),即引用其它集合定义的集合,其定义的格式为:SETNAME(set1,set2,etc。
):attribute,attribute,etc。
如果要在程序中使用数组,就必须在该部分进行定义,否则可不需要该部分。
(2)目标与约束:这部分定义了目标函数、约束条件等。
一般要用到LINGO的内部函数,可在后面的具体应用中体会其功能与用法。
求解优化问题时,该部分是必须的。
(3)数据部分(DATA):这部分以“DATA:”开始,以“END DA TA”结束。
其作用在于对集合的属性(数组)输入必要的数值。
格式为:attribut=value_list。
该部分主要是方便数据的输入。
用LINGO软件求解优化问题
实验报告专用纸实验室:机号:实验日期:三、实验步骤及方法(1)模型的假设①假设该投资为连续性投资,即该经理投资不会受到年限过长而导致资金周转困难;②假设证券税收政策稳定不变而且该经理优先考虑可以免税的市政证券的情况下再考虑其他证券种类以节约成本;③假设各证券之间相互独立而且各自风险损失率为零;④假设在经理投资后,各证券的信用等级、到期年限都没有发生改变;⑤假设投资不需要任何交易费或者交易费远远少于投资金额和所获得的收益,可以忽略不计;⑥假设所借贷资金所要支付的利息不会随时间增长,直接等于所给的利率乘上借贷资金;(2)问题分析问题一:该经理优先考虑可以免税的市政证券的情况下再考虑其他证券种类以节约成本,在假设都成立的条件下综合考虑约束资金和限制条件,将1000万资金按照一定的比例分别投资各种证券。
在满足政府及代办机构的证券总共至少要购进400万元;所购证券的平均信用等级不超过1.4;所购证券的平均到期年限不超过5年这三个约束条件下,不妨设投资证券A、B、C、D、E的金额分别为x1、x2、x3、x4、x5,最大利润为y建立线性规划模型,用lingo求解即可得到最优投资方案和最大利润。
问题二:利用问题一的模型进行灵敏度分析,把借贷的100万在投资后所获得的收益与借贷所要付出的利息进行比较,即与以2.75%的利率借到的100万资金的利息比较,若大于,则应该借贷;反之,则不借贷。
若借贷,投资方案需将问题一的模型的第二个约束条件右端10该为11,用lingo软件求解。
问题三:是否该改变要看最优解是否改变,如果各证券所对应的字数在最优解不变的条件下目标函数允许的变化范围内,则不应该改变投资方案,反之则改变投资方案。
(3)模型建立设投资证券A,B,C,D,E,的金额分别为x1,x2,x3,x4,x5(百万),最大利润为y,按照规定、限制和1000万元资金约束,列出模型:max y=0.043*x1+0.027*x2+0.022*x4+0.045*x5;s.t x2+x3+x4>=4;x1+x2+x3+x4+x5<=10;6*x1+6*x2-4*x3-4*x4+36*x5<=0;4*x1+10*x2-x3-2*x4-3*x5<=0;(4)模型求解四、实验数据及程序清单问题一求解:灵敏度分析:问题二:对问题一的求解后的影子价格分析可以知道,投资金额每增加100万元,收益可增加0.0298百万元,而借贷100万元所要支付的利息是0.0275百万元,比0.0298百万元少,所以应该借贷这100万元。
利用LINGO软件解决数学建模问题
LINDO:
Max x1+x2+x3+x4 ST(大写或写subject to) x5+x6+x7+x8>=250000 x1+x5<=380000 x2+x6<=265200 x3+x7<=408100 x4+x8<=130100 2.85*x1-1.42*x2+4.27*x318.49*x4>=0; 2.85*x5-1.42*x6+4.27*x718.49*x8>=0; 16.5*x1+2.0*x2-4.0*x3+17*x4>=0; 7.5*x5-7.0*x6-13.0*x7+8.0*x8>=0; end
2) 0.000000 3) 0.000000 4) 0.000000 5) 0.000000 6) 0.000000 7) 0.000000 8) 43454.000000 9) 3239024.250000 10) 1890675.875000
-1.000000 1.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 0.000000
表2
飞机汽油 1 2 辛烷数 >=91 >=100 蒸汽压力(g/cm^2) <=9.96*10^(-2) <=9.96*10^(-2) 产量需求(L) 越多越好 >=250000
建模过程略(详见《运筹学基础》P54—55) 目标函数:max z=x1+x2+x3+x4 约束条件:x5+x6+x7+x8>=250000 x1+x5<=380000 x2+x6<=265200 x3+x7<=408100 x4+x8<=130100 2.85x1-1.42x2+4.27x3-18.49x4>=0 2.85x5-1.42x6+4.27x7-18.49x8>=0 16.5x1+2.0x2-4.0x3+17x4>=0 7.5x5-7.0x6-13.0x7+8.0x8>=0 xj>=0(j=1,2...,8)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由此得N(4.37,3.06), 由此得N(4.37,3.06), M(4.36, 0), 这时的水管 总长度为8.83. 总长度为8.83.
13
5. 利用Lingo求解 利用Lingo求解
利用Lingo建模求解, 利用Lingo建模求解, 设N(x,y),M(m,0), 则只需求x,y,m使NA+NB+NM最小, AB的 则只需求x,y,m使NA+NB+NM最小, 将AB的 坐标代入, 得如下程序. 坐标代入, 得如下程序. MODEL: MIN=@SQRT((x-1)^2+(y-5)^2)+@SQRT((xMIN=@SQRT((x-1)^2+(y-5)^2)+@SQRT((x6)^2+(y-4)^2)+@SQRT((x-m)^2+(y6)^2+(y-4)^2)+@SQRT((x-m)^2+(y-0)^2); END 运行得出的结果与4一致, 表明4 运行得出的结果与4一致, 表明4中的结 果已经是优化到最佳状态了. 果已经是优化到最佳状态了.
18
6
iБайду номын сангаас=1
i
c(i,j)为决策变量, 可编制如下程序: 为决策变量, MODEL: SETS: demand/1..6/:a,b,d; supply/1..2/:x,y,e; link(demand,supply):c; ENDSETS DATA: a=1.25,8.75,0.5,5.75,3,7.25; !需求点的位置; !需求点的位置; b=1.25,0.75,4.75,5,6.5,7.75; d=3,5,4,7,6,11; e=20,20; !供需量及日储量; !供需量及日储量; x,y=5,1,2,7; ENDDATA
1 A B D 1.25 1.25 3 2 8.75 0.75 5 3 0.50 4.75 4 4 5.75 5.00 7 5 3.00 6.50 6 6 7.25 7.75 11
16
1. 料场位置确定时的最少运量
设第i个工地的坐标为( i,b 设第i个工地的坐标为(ai,bi), 水泥用量 为di, 第j个两个临时料场的坐标为(xj,yj), 个两个临时料场的坐标为( j,y 水泥日储量为ej, 从第j个料场运到第i 水泥日储量为ej, 从第j个料场运到第i个工 地的水泥为c 地的水泥为c(i,j), 则有如下数学模型
14
6. 优化效果比较
设计方 案编号 水管总 长度 每次优 化比例 与最长 水管比 1 11.4 2 11.07 3 10.4 5 10.3 4 9.1 6 8.85 7 8.83 0.23%
2.89% 6.05% 0.96% 11.65% 2.75%
2.89% 8.77% 9.65% 20.18% 22.37% 22.54%
5
2. 对称点连线法建模
如果水管 必须分别从 水厂铺设, 水厂铺设, 则 1中的(3)、(4) 中的(3)、 不合要求, 不合要求, 但 (1)、(2)中的 (1)、(2)中的 铺设方法也 不是最佳的. 不是最佳的.
y
A(1,5) B(6,4)
O
W A1 M B1
x
B'(6,4)
图2 对称点法
6
利用光行最速原理求解:如图2 利用光行最速原理求解:如图2, 先作点B关于X轴的对称点B'(6,先作点B关于X轴的对称点B'(6,-4), 再作 线段AB'交 轴于点W, 以点W 线段AB'交X轴于点W, 以点W为自来水 厂的位置, 水管按折线AWB铺设成V 厂的位置, 水管按折线AWB铺设成V型, 所用水管总长为10.30, 该结果优于(1)、 所用水管总长为10.30, 该结果优于(1)、 (2)、(3)方法.但还不如(4)中方法好. (2)、(3)方法.但还不如(4)中方法好. 应该说,许多中学数学教师认为, 2中的模型已经是最优了,未参加过数 学建模培训的大学生基本上都是给出这 个答案. 个答案.
12
由费尔马点性质可知, ANM=∠ 由费尔马点性质可知, ANM=∠BNM= 120度, 120度 从而∠ANP=∠BNQ=30度 从而∠ANP=∠BNQ=30度, 由
PN NQ = cot 30°, = cot 30° AP BQ
列出方程组得 x −1 6− x = 3, = 3, 5− y 4− y 求解得
19
[OBJ] MIN=@SUM(link(i,j): c(i,j)* @SQRT ((x(j)-a(i))^2+(y(j)((x(j)-a(i))^2+(y(j)-b(i))^2)); @FOR(demand(i):[DEMAND_CON] @SUM(supply(j):c(i,j)) =d(i);); !需求约束; !需求约束; @FOR(supply(j):[SUPPLY_CON] @SUM(demand(i):c(i,j)) <=e(j); ); !供应约束; !供应约束; @FOR(supply: @BND(0.5,X,8.75); @BND(0.75,Y,7.75); ); END 运行结果, 最小运量为136.2275. 运行结果, 最小运量为136.2275.
7
3. 利用费尔马点建模
在2中W点建立水厂, 改进水管铺设方 点建立水厂, 法.
8
y A(1,5) B(6,4) N
O
A1
W
图3 费尔马点法
B1
x
9
如图3,取△ABW的费尔马点N, 如图3,取△ABW的费尔马点N, 在 W处建厂, 先铺设总水管至N再分别铺设 处建厂, 先铺设总水管至N 到A、B, 这时的水管总长度为8.85, 比前 这时的水管总长度为8.85, 几种方案都更优. 几种方案都更优. 当然, 也可在W点取水, 而在N 当然, 也可在W点取水, 而在N点建 立水厂进行净化处理后再分别输送到A 立水厂进行净化处理后再分别输送到A、 B, 水管总长度不变. 水管总长度不变.
10
4. 改进费尔马点建模
即便是参加过数学建模培训的大学生, 即便是参加过数学建模培训的大学生,通 常也会认为3中的解就是最优解了. 常也会认为3中的解就是最优解了. 但只要注意 到NW并不与x轴垂直就会想到还可通过改变水 NW并不与x 厂位置进一步优化. 移动W 点使NW 与 轴垂直, 厂位置进一步优化 . 移动 W 点使 NW与 x 轴垂直 , 则水管总长还会变小, 但随着W点的移动, 则水管总长还会变小, 但随着W点的移动,相应 地N又不是新位置的△ABW的费尔马点了, 进一 又不是新位置的△ABW的费尔马点了, 步改变N点的位置, 又改变W点的位置, 步改变N点的位置, 又改变W点的位置, …, 如此 下去, 何时才是最优解呢? 下去, 何时才是最优解呢?
11
y A(1,5) B(6,4) P N Q
x O A1 W M B1
图4 改进费尔马点法
如图4, 设水厂的位置建在点M 如图4, 设水厂的位置建在点M处, 显然M应在 显然M A1与B1之间, 设N(x,y)为△ABM的费尔马点, 则只 A1与B1之间, N(x,y)为△ABM的费尔马点, 有当MN⊥ 轴时, 才可能使AN+BN+MN达到最短, 有当MN⊥X轴时, 才可能使AN+BN+MN达到最短, 于是设点M的坐标为M(x,0).过点N作直线PQ∥ 于是设点M的坐标为M(x,0).过点N作直线PQ∥X轴 交AA1于P、交BB1于Q. AA1于 、交BB1于
20
2. 自动选择新料场的最少运量 自动选择新料场的最少运量
在1中,设工地及水泥用量不变, 料场选在 中,设工地及水泥用量不变, 何处可使总运量最少?能节约多少吨公里数? 模型同1, 但从已知数据中去掉xi及yi而把 模型同1, 但从已知数据中去掉xi及yi而把 c(i,j)及xj,yj均当成决策变量. c(i,j)及xj,yj均当成决策变量. 其程序只需从第一 个程序中去掉x,y=5,1,2,7;并添加@for(supply: 个程序中去掉x,y=5,1,2,7;并添加@for(supply: @free(x);@free(Y);即可. 运行结果, @free(x);@free(Y);即可. 运行结果, 新料场坐标 为(3.25,7.25), (5.65,7.75), 最小运量为85.26604, 最小运量为85.26604, 节约的吨公里数为50.9615. 节约的吨公里数为50.9615.
15
问题2 问题2 选址问题的优化
某公司有6 某公司有6个建筑工地要开工,每个工地的位 置(用平面坐标表示, 距离单位:km)及水泥日用量 用平面坐标表示, 距离单位:km)及水泥日用量 (单位:t)如下表,而在P(5,1)及Q(2,7)处有两个临 单位:t)如下表,而在P(5,1)及Q(2,7)处有两个临 时料场, 日储量各有20t, 如何安排运输, 时料场, 日储量各有20t, 如何安排运输, 可使总的吨 公里数最小? 公里数最小?
利用LINGO软件优化数学模型 软件优化数学模型 利用
邓 磊 西南大学 数学与统计学院 2011年 2011年4月15日 15日
1
提 纲
问题1 问题1 合建水厂问题的优化 问题2 问题2 选址问题的优化
2
问题1 问题1 合建水厂问题的优化
在河边(X轴)有两座城市A 在河边(X轴)有两座城市A、B, 其坐 标分别是A(1,5), 标分别是A(1,5), B(6,4), 现要合建一个自来 水厂, 向它们供水. 水厂, 向它们供水.试设计自来水厂的位置以 及铺设水管的方法, 及铺设水管的方法, 使所铺设的水管总长度 为最短. 为最短. 这个问题实际上也是一个选址问题, 这个问题实际上也是一个选址问题, 通 过对几种选址方案的比较而得出最佳方案. 过对几种选址方案的比较而得出最佳方案.