基于Lingo软件的目标规划序贯解法
Lingo求解多目标规划[新]
例:某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。
企业的经营目标不仅仅是利润,还需要考虑多个方面:(1) 力求使利润不低于1500元;(2) 考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2;(3) 设备A 为贵重设备,严格禁止超时使用;(4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。
在重要性上,设备C 是设备B 的3倍。
ⅠⅡ设备的生产能力/hA (h/件) 2 2 12B (h/件) 4 0 16C (h/件) 0 5 15 利润 元/件200300解:此题中只有设备A 是刚性约束,其余都是柔性约束。
首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B 、C 的工作时间要有所控制,列为第三级。
在第三级中,设备B 的重要性是设备C 的3倍,因此它们的权重不一样,设备B 的系数是设备C 的3倍。
该计划问题可用数学模型表示为: 目标函数min)33()(433322211++-+--+++++=d d d p d d p d p z满足约束条件 2122x x + 12≤15003002001121=-+++-d d x x022221=-+-+-d d x x 14x 1633=-++-d d155442=-++-d d x3,2,1,0,,,21=≥+-i d d x x i i LINGO 程序为:求第一级目标。
LINGO 程序如下: model: sets:variable/1..2/:x;S_Con_Num/1..4/:g,dplus,dminus; S_con(S_Con_Num,Variable):c; endsets data:g=1500 0 16 15; c=200 300 2 -1 4 0 0 5; enddata min=dminus(1); 2*x(1)+2*x(2)<12;@for(S_Con_Num(i):@sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); end求得dminus(1)=0,即目标函数的最优值为0,第一级偏差为0。
数学建模必备知识——lingo处理实例(多目标问题)
一个简单的LINGO程序
LINGO的基本用法的几点注意事项
•LINGO中不区分大小写字母;变量和行名可以超过8个字符,但 不能超过32个字符,且必须以字母开头。 •用LINGO解优化模型时已假定所有变量非负(除非用限定变量取 值范围的函数@free或@BND另行说明)。 •变量可以放在约束条件的右端(同时数字也可放在约束条件的左 端)。但为了提高LINGO求解时的效率,应尽可能采用线性表达 式定义目标和约束(如果可能的话)。 •语句是组成LINGO模型的基本单位,每个语句都以分号结尾,编 写程序时应注意模型的可读性。例如:一行只写一个语句,按照 语句之间的嵌套关系对语句安排适当的缩进,增强层次感。 •以感叹号开始的是说明语句(说明语句也需要以分号结束))。
LINGO中定义集合及其属性
LP模型在LINGO中的一个典型输入方式
以“MODEL:”开 始
集合定义部分从 (“SETS:”到 “ENDSETS” ): 定义集合及其属性 给出优化目标 和约束 集合定义部分从 (“DATA:”到 “ENDDATA” )
以“END”结 束
目标函数的定义方式 @SUM(集合(下标):关于集合的属性的表达式) 对语句中冒号“:”后面的表达式,按照“:”前 面的集合指定的下标(元素)进行求和。 本例中目标函数也可以等价地写成
LINGO软件的基本使用方法
内容提要
1. LINGO入门 2.在LINGO中使用集合
3. 运算符和函数
4. LINGO的主要菜单命令 5. LINGO命令窗口
6.习题
1. LINGO入门 2.在LINGO中使用集合
3. 运算符和函数
1. LINGO入门 4. LINGO的主要菜单命令 5. LINGO命令窗口
LINGO在多目标规划及最大最小化模型中的应用
LINGO 在多目标规划和最大最小化模型中的应用在许多实际问题中,决策者所期望的目标往往不止一个,如电力网络管理部门在制定发电计划时即希望安全系数要大,也希望发电成本要小,这一类问题称为多目标最优化问题或多目标规划问题。
一、多目标规划的常用解法多目标规划的解法通常是根据问题的实际背景和特征,设法将多目标规划转化为单目标规划,从而获得满意解,常用的解法有:1.主要目标法确定一个主要目标,把次要目标作为约束条件并设定适当的界限值。
2.线性加权求和法对每个目标按其重要程度赋适当权重0≥i ω,且1=∑i i ω,然后把)(x f i ii ∑ω作为新的目标函数(其中p i x f i ,,2,1),( =是原来的p 个目标)。
3.指数加权乘积法设p i x f i ,,2,1),( =是原来的p 个目标,令∏==p i a i ix f Z 1)]([其中i a 为指数权重,把Z 作为新的目标函数。
4.理想点法先分别求出p 个单目标规划的最优解*i f ,令∑-=2*))(()(i i f x f x h然后把它作为新的目标函数。
5.分层序列法将所有p 个目标按其重要程度排序,先求出第一个最重要的目标的最优解,然后在保证前一个目标最优解的前提条件下依次求下一个目标的最优解,一直求到最后一个目标为止。
这些方法各有其优点和适用的场合,但并非总是有效,有些方法存在一些不足之处。
例如,线性加权求和法确定权重系数时有一定主观性,权重系数取值不同,结果也就不一样。
线性加权求和法、指数加权乘积法和理想点法通常只能用于两个目标的单位(量纲)相同的情况,如果两个目标是不同的物理量,它们的量纲不相同,数量级相差很大,则将它们相加或比较是不合适的。
二、最大最小化模型在一些实际问题中,决策者所期望的目标是使若干目标函数中最大的一个达到最小(或多个目标函数中最小的一个达到最大)。
例如,城市规划中需确定急救中心的位置,希望该中心到服务区域内所有居民点的距离中的最大值达到最小,称为最大最小化模型,这种确定目标函数的准则称为最大最小化原则,在控制论,逼近论和决策论中也有使用。
基于Lingo软件的目标规划序贯解法
(2)销售目标 优先满足老客户的需求,并根据三种设备的纯利润分配不同的权因子, A, B, C 三种型 号的设备每小时的利润是
1000 2400 3000 ,因此,老客户的销售目标约束为 , , 5 8 12
2 目标规划的序贯解法 设 x j ( j 1,2,, n )是目标规划的决策变量,共有 m 个约束是刚性约束,可能是等
式约束,也可能是不等式约束。设有 l 个柔性目标约束,其目标规划约束的偏差为 d i , d i 的权重,分别记为 wki , wki (i 1,2, , l ) 。因此目标规划模型的一般数学表达式为
l
(1) (2) (3) (4) (5) (6)
* q 所对应的解
* *
s.t.
a x
j 1
n
tj
j
(, )bt , t 1, , m ,
c
j 1
l i 1
ij
x j d i d i Байду номын сангаасd i0 , i 1,2,, l ,
si i * , s 1,2, , k 1 , wsi di ) zs
3.2 Lingo 软件的求解 求解上述目标规划,现有的方法需要构建 5 个 Lingo 模型,或者是构建一个 Lingo 模型, 但要运行 5 次,每次运行需要把前面几次运行结果的最优值实时输入 Lingo 模型,特别不方 便。Lingo10 引入了子函数功能,利用 Lingo10 的子函数功能,设计一个 Lingo 模型,在 Lingo 运行过程中不需要实时输入数据,就可以一次性得到满意解的所有细节结果。 Lingo10 新引入的子函数必须放在模块 calc:和 endcalc 之间,该模块中不能含有决策变 量,只能含有已知量的迭代运算和子函数。
用LINGO软件求解目标规划问题
10 x1 + 15 x2 + d1 d1+ = 40 + x1 + x2 + d 2 d 2 = 10 s.t. d1+ = 0 x1 , x2 , d , d + ≥ 0, j = 1,2 j j
用LINGO求解,得最优解 d = d 具体LINGO程序及输出信息如下:LINGO程序为(参见图 4.4.4):
+ 1
=0, 1
d2 = 6 ,最优值为6.
精品课程《运筹学》
图4.4.4
精品课程《运筹学》
LINGO运算后输出为(参见图4.4.5):
图4.4.5 精品课程《运筹学》
d 对应于第三优先等级,将d1+ =0, 2 = 6 作为约束条件, 建立线性规划问题:
min z = d 3 10 x1 + 15 x2 + d1 d1+ = 40 + x1 + x2 + d 2 d 2 = 10 x2 + d 3 d 3+ = 7 s.t. d1+ = 0, d 2 = 6 + x1 , x2 , d j , d j ≥ 0, j = 1,2,3
10 x1 + 15 x 2 + d 1 d 1+ = 40 + x1 + x 2 + d 2 d 2 = 10 s.t. x 2 + d 3 d 3+ = 7 x1 , x 2 , d , d + ≥ 0, j = 1,2,3 j j
精品课程《运筹学》
解:首先对应于第一优先等级,建立线性规 划问题:
x1 = 4, x2 = 0, d1+ = d1 = 0 , 用LINGO求解,得最优解是
数学建模lingo作业-习题讲解
基础题:1.目标规划问题最近,某节能灯具厂接到了订购16000套A 型和B 型节能灯具的订货合同,合同中没有对这两种灯具的各自数量做要求,但合同要求工厂在一周内完成生产任务并交货。
根据该厂的生产能力,一周内可以利用的生产时间为20000min ,可利用的包装时间为36000min 。
生产完成和包装一套A 型节能灯具各需要2min ;生产完成和包装完成一套B 型节能灯具各需要1min 和3min 。
每套A 型节能灯成本为7元,销售价为15元,即利润为8元;每套B 型节能灯成本为14元,销售价为20元,即利润为6元。
厂长首先要求必须按合同完成订货任务,并且即不要有足量,也不要有超量。
其次要求满意销售额达到或者尽量接近275000元。
最后要求在生产总时间和包装总时间上可以有所增加,但过量尽量地小。
同时注意到增加生产时间要比包装时间困难得多。
试为该节能灯具厂制定生产计划。
解:将题中数据列表如下:根据问题的实际情况,首先分析确定问题的目标级优先级。
第一优先级目标:恰好完成生产和包装完成节能灯具16000套,赋予优先因子p1;第二优先级目标:完成或者尽量接近销售额为275000元,赋予优先因子p2; 第三优先级目标:生产和包装时间的增加量尽量地小,赋予优先因子p3; 然后建立相应的目标约束。
在此,假设决策变量12,x x 分别表示A 型,B 型节能灯具的数量。
(1) 关于生产数量的目标约束。
用1d -和1d +分别表示未达到和超额完成订货指标16000套的偏差量,因此目标约束为1111211min ,..16000z d d s t x x d d -+-+=+++-=要求恰好达到目标值,即正、负偏差变量都要尽可能地小(2) 关于销售额的目标约束。
用2d -和2d +分别表示未达到和超额完成满意销售指标275000元的偏差值。
因此目标约束为221222min ,..1520-275000.z d s t x x d d --+=++=要求超过目标值,即超过量不限,但必须是负偏差变量要尽可能地小,(另外:d +要求不超过目标值,即允许达不到目标值,就是正偏差变量要尽可能地小) (3) 关于生产和包装时间的目标约束。
Lingo解目标规划
不考虑目标,运输问题的数学模型为:
设xij 表示从第i个产地向第j个销地的运量。则: min z cij xij
i 1 j 1 3 4
x
j 1 3
4
ij
ai , i 1,2,3 b j , j 1,2,3,4
x
i 1
ij
xij 0
Lingo代码:
sets: cd/1..3/:a; xd/1..4/:b; links(cd,xd):c,x; endsets data: a=300 200 400; b=200 100 450 250; c=5 2 6 7 3546 4 5 2 3; enddata min=@sum(links(i,j):c(i,j)*x(i,j)); @for(cd(i):@sum(xd(j):x(i,j))<=a(i)); @for(xd(j):@sum(cd(i):x(i,j))>=b(j));
整数线性规划一般形式:
max(min) z c j x j
j 1
n
( a )
n (b) aij x j ( , )bi j 1 (c ) xj 0 x , x , , x 中部分或全部取整数 ( d ) n 1 2
Lingo代码
min=d31; 2*x1+x2<=11; x1-x2+d11-d12=0; x1+2*x2+d21-d22=10; 8*x1+10*x2+d31-d32=56; d12=0; d21+d22=0;
例2:
min z p1d1 p2 d 2 p3 (2d 3 d 4 )
5 11
Lindo 和Lingo 数学软件的简单使用方法
Lindo 和Lingo 数学软件的简单使用方法一、Lindo最新版本:6.1版(注册版)限制:4000个约束、8000个变量、800个整型变量功能:可以求解线性规划、整数规划、混合整数规划、二次规划、目标规划。
我们主要用它来求解整数规划或混合整数规划。
特点:执行速度非常快 例1:求解整数规划问题12121212max 58..65945,0z x x s t x x x x x x =++≤+≤≥且整解:在lindo 的运行窗口中输入 max 5x1+8x2 stx1+x2<6 5x1+9x2<45 end gin 2然后按Solve 菜单或快捷键得运行结果。
OBJECTIVE FUNCTION V ALUE (目标函数最优值) 1) 40.00000VARIABLE V ALUE REDUCED COST (变量增加1时目标函数改变量) X1 0.000000 -5.000000 X2 5.000000 -8.000000ROW SLACK OR SURPLUS DUAL PRICES (行) (松弛变量值) (对偶价格,表示约束右边常数增加1时目标函数改变量)) 2) 1.000000 0.000000 3) 0.000000 0.000000RANGES IN WHICH THE BASIS IS UNCHANGED (灵敏度分析) OBJ COEFFICIENT RANGES (目标函数中变量的系数的变动范围,在此范围内最优解不变) V ARIABLE CURRENT ALLOWABLE ALLOWABLECOEF (当前系数) INCREASE (增加量) DECREASE (减少量) X1 5.000000 0.000000 INFINITY X2 8.000000 0.000000 INFINITYRIGHTHAND SIDE RANGES (约束条件右边常数的变化范围,在此范围内最优基不变) ROW CURRENT ALLOWABLE ALLOWABLERHS (当前系数)INCREASE (增加量) DECREASE (减少量) 2 6.000000 INFINITY 1.000000 (第一个约束) 3 45.000000 INFINITY 0.000000 (第二个约束)注意:1. 软件中已经假设所以的变量是非负的,所以非负约束不必输入; 2. 可以用 FREE 变量 来取消变量的非负限制; 3. 不区分大小写; 4. 约束条件“<=”、“>=”可以用“<”、“>”代替; 5. 变量名不能超过8个字符;6. 变量与系数间可以有空格,但不能有任何运算符号(如*等); 7. 不允许变量出现在一个约束条件的右端; 8. 输入中不能有“()”和“,”;比如4(x1+x2)应写成4x1+4x2等;9. 在一个式中同一变量不能出现一次以上,比如2x1+3x2-x1应简化为x1+3x2;gin 变量 变量为整数变量 gin nint n 模型中的前n 个变量为0/1整数变量,关于变量的顺序可由输出结果查证! 整数变量申明须放在最后(即end 后)例2:集合覆盖问题设有一集合S={1,2,3,4,5},及S 的一个子集簇P={{1,2},{1,3,5},{2,4,5},{3},{1},{4,5}},假设选择P 中各个元素的费用为1、1.5、1.5、0.8、0.8、1,试从P 中选一些元素使之覆盖S 且所选元素费用之和最小。
lingo求解多目标规划--例题
实验二:目标规划一、实验目得目标规划就是由线性规划发展演变而来得,线性规划考虑得就是只有一个目标函数得问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有得还相互矛盾。
这些问题用线性规划求解就比较困难,因而提出了目标规划。
熟悉目标规划模型得建立,求解过程及结果分析。
二、目标规划得一般模型设)...2,1(n j x j =就是目标规划得决策变量,共有m 个约束就是国内刚性约束,可能就是等式约束,也可能就是不等式约束。
设有l 个柔性目标约束,其目标规划约束得偏差就是),...,2,1(,l i d d i i =-+。
设有q 个优先级别,分别为q p p p ,...,21。
在同一个优先级k p 中,有不同得权重,分别记为),...,2,1(,l j w w kj kj =-+。
因此目标规划模型得一般数学表达式为: min ∑∑=++--=+=l j j kj j kj q k kd w d w p z 11);(s 、t 、,,...2,1,),(1m i b x a n j i j ij =≥=≤∑= .,...2,1,0,,,...,2,1,,,...2,1,1l i d d n x o x l i g d d x ci i j i n j i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。
四、实验内容及步骤1、打开LINGO ,并利用系统菜单与向导在E 盘创建一个项目。
目录与项目名推荐使用学生自己得学号。
2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序得可读性。
例2、1:某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。
企业得经营目标不仅仅就是利润,还需要考虑多个方面:(1) 力求使利润不低于1500元;(2) 考虑到市场需求,Ⅰ、Ⅱ两种产品得产量比应尽量保持1:2;(3) 设备A 为贵重设备,严格禁止超时使用;(4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。
数学建模必备LINGO在多目标规划和最大最小化模型中的应用
数学建模必备LINGO 在多目标规划和最大最小化模型中的应用一、多目标规划的常用解法多目标规划的解法通常是根据问题的实际背景和特征,设法将多目标规划转化为单目标规划,从而获得满意解,常用的解法有:1.主要目标法确定一个主要目标,把次要目标作为约束条件并设定适当的界限值。
2.线性加权求和法对每个目标按其重要程度赋适当权重0≥i ω,且1=∑ii ω,然后把)(x f i ii ∑ω作为新的目标函数(其中p i x f i ,,2,1),( =是原来的p 个目标)。
3.指数加权乘积法设p i x f i ,,2,1),( =是原来的p 个目标,令∏==pi a i ix f Z 1)]([其中i a 为指数权重,把Z 作为新的目标函数。
4.理想点法先分别求出p 个单目标规划的最优解*i f ,令∑-=2*))(()(iifx f x h然后把它作为新的目标函数。
5.分层序列法将所有p 个目标按其重要程度排序,先求出第一个最重要的目标的最优解,然后在保证前一个目标最优解的前提条件下依次求下一个目标的最优解,一直求到最后一个目标为止。
这些方法各有其优点和适用的场合,但并非总是有效,有些方法存在一些不足之处。
例如,线性加权求和法确定权重系数时有一定主观性,权重系数取值不同,结果也就不一样。
线性加权求和法、指数加权乘积法和理想点法通常只能用于两个目标的单位(量纲)相同的情况,如果两个目标是不同的物理量,它们的量纲不相同,数量级相差很大,则将它们相加或比较是不合适的。
二、最大最小化模型在一些实际问题中,决策者所期望的目标是使若干目标函数中最大的一个达到最小(或多个目标函数中最小的一个达到最大)。
例如,城市规划中需确定急救中心的位置,希望该中心到服务区域内所有居民点的距离中的最大值达到最小,称为最大最小化模型,这种确定目标函数的准则称为最大最小化原则,在控制论,逼近论和决策论中也有使用。
最大最小化模型的目标函数可写成)}(,),(),(max{min 21X f X f X f p X或)}(,),(),(min{max 21X f X f X f p X式中T n x x x X ),,,(21 是决策变量。
基于LINGO的多目标规划模型求解
基于LINGO的多目标规划模型求解唐家德(楚雄师范学院数学与统计学院,云南楚雄 675000)摘要建立实际问题的多目标规划数学模型并求解是运筹学中常遇到的问题,应用最优化软件LINGO可以快捷准确地求出该类问题的解,本文以实例的方式介绍了多目标规划数学模型的建立、LINGO求解程序的编写,为实际工作者解决这类优化问题提供了一种便捷的途径。
关键词多目标规划;LINGO;偏差变量;优先级.中图分类号 O221.6文献标识码A0引言多目标规划是运筹学的一个重要内容,它研究在一定约束条件下多个目标函数的极值问题,与传统的单目标函数问题不同,在多目标规划问题中,通常不存在能使得所有目标函数同时得到优化的最优解,往往只需要求出满意解.求解多目标规划的方法主要有两类:第一类是化多为少的方法,即把多目标化为较容易求解的单目标问题进行求解,第二类是分级序列法,即把目标按其重要性给出一个优先级,每次在上一优先级目标的最优解集内求下一优先目标的最优解,直到求出共同的最优解,本文主要介绍第二种方法。
下面我们以一个实例来说明多目标规划的特点、采用分级序列法求解的步骤和LINGO程序的编写。
1 一个实例(运输问题模型)要把一种产品从产地运到客户处,发量、需求量及产地到客户的运输费单价如表1所示.表1 运输费用单价表2 线性规划建模求解设从产地i (1,2i =)到客户(1,2,3)j j =的运送量为ij x ,单位运输费用为ij c ,产地i 的发量为i e ,客户j 的需求量为j d ,则可建立如下的线性规划模型: min 2311ijij i j z cx ===⋅∑∑ (1)s.t.21,1,2,3ijj i xd j ===∑ (2)31,1,2iji j xe i =≤=∑ (3)使用LINGO 软件求解,发现无可行解。
无可行解的原因是客户总需求量(8500)大于产地的总发量(7000),客户需求量无法满足。
由于该问题是一个供求不平衡问题,总需求量缺少1500个单位,因此按下列目标来考虑运输方案:第一目标,客户1为重要部门,需求量必须全部满足; 第二目标,满足其他两个客户至少75%的需要量; 第三目标,使运费尽量少;第四目标,从产地2到客户1的运量至少有1000个单位.3 采用分级序列法对多目标规划求解[13]-3.1 确定目标的优先级与权系数 首先确定目标的优先级与权系数,目标的优先分为两个层次,第一个层次是目标分成不同的优先级,在计算多目标规划时,必须先优化高优先级的目标,然后再优化低优先级的目标,通常以12,,,k P P P 表示不同的优先级,并规定k k p p >-1,在上述实例中,有四个目标,按重要性分为第一至第四目标,我们分别记这四个目标的优先级为1234,,,P P P P 。
Lingo目标规划模型
1. 设置偏差变量
用偏差变量(Deviational variables)来表示实际值与目标值 之间的差异,令
d ---- 超出目标的差值,称为正偏差变d量
d ---- 未达到目标的差值,称为负偏差变量 其中d 与 d至 少有一个为0
好劳资关系的重要因素,但对全职售货员要比 兼职售货员加倍优先考虑; P4: 尽量减少加班时间,但对两种售货员区别对 待,优先权因子由他们对利润的贡献而定。
MIN DPLUS2 + DMINUS2
SUBJECT TO
2X1 + 2X2
<= 12
200X1 + 300X2 - DPLUS1 + DMINUS1 = 1500
2X1 - X2 - DPLUS2 + DMINUS2 = 0
4X1
- DPLUS3 + DMINUS3 = 16
5X2 - DPLUS4 + DMINUS4 = 15
min{d };
5x2
d
d
15.
设备C可以适当加班,但要控制, min{d d };
则目标可表示为
2x1
x2
d
d
0.
设备B既要求充分利用,又尽可能 min{d d };
不加班,则目标可表示为
4x1
d
d
16.
从上面的分析可以看到:
•如果希望不等式保持大于等于,则极小化负偏差;
•如果希望不等式保持小于等于,则极小化正偏差; •如果希望保持等式,则同时极小化正、负偏差.
DMINUS1 = 0
END
修改的目标 增加的约束
实用运筹学4.2 目标规划的Lingo求解
(2) 当任务重时,可以采用加班的方法扩大生产,但每周加 班最好不超过10小时;
(3) 尽量达到销售指标;
(4) 尽可能减少加班时间.
试建立该问题的目标规划模型,并为该厂给出一个满意的生 产方案.
从计算结果可以看出,问题的最优解(满意解 )为甲机械生产10辆,乙机械和丙机械均生产8辆 ,获得利润78万元,有28个设备工时未利用.
练习: 假设某洗衣机厂生产全自动和半自动两种洗衣机,每 生产一台这两种洗衣机都需要工时为1(h/台). 工厂的正常 生产能力是每日两班、每周工作80小时. 根据市场需求,每 周的最大销售量为全自动70台,半自动35台.已知每售出一 台全自动和半自动洗衣机的利润分别为250元和150元,为了 制定合理的生产计划,负责人提出: (1) 尽量避免开工不足;
应用Lingo软件求解可得如下结果: Variable Value Reduced Cost D1_ 0.000000 9669.667 D2 0.000000 0.000000 D3 0.000000 100.0000 D4_ 28.00000 0.000000 D4 0.000000 2.000000 X1 10.00000 0.000000 X2 8.000000 0.000000 X3 8.000000 0.000000 D1 0.000000 330.3333 D2_ 0.000000 1000.000 D3_ 0.000000 0.000000
例4.2.1 某机床厂拟生产甲、乙、丙三种型号的机 床,每生产一台甲、乙、丙型号的机床需要的工时 分别为6小时、9小时、10小时,根据历史销售经验 ,甲、乙、丙型号的机床每月市场需求分别为10台 、12台、8台,每销售一台的利润分别为2.2万元、 3万元、4万元.生产线每天的工作时间为8小时. 企业负责人在制定生产计划时,首先要保证利润不 低于计划利润78万元;其次,根据市场调查,乙型 机床销量有下降的趋势,丙型机床销量有上升的趋 势,因而,乙型机床的产量不应多于丙型机床的产 量;此外,由于市场变化,甲型机床的原材料成本 增加,使得利润下降,应适当降低其产量;最后, 要充分利用原有的设备台时,尽量不要加班生产. 试为该企业制定合理的生产计划.
用LINDO、LINGO 解运筹学问题
用LINDO、LINGO 解运筹学问题一、 软件简介LINDO是一种专门用于求解数学规划问题的软件包。
由于LINDO执行速度很快、易于方便输入、求解和分析数学规划问题。
因此在数学、科研和工业界得到广泛应用。
LINDO主要用于解线性规划、非线性规划、二次规划和整数规划等问题。
也可以用于一些非线性和线性方程组的求解以及代数方程求根等。
LINDO中包含了一种建模语言和许多常用的数学函数(包括大量概论函数),可供使用者建立规划问题时调用。
一般用LINDO(Linear Interactive and Discrete Optimizer)解决线性规划(LP—Linear Programming)。
整数规划(IP—Integer Programming)问题。
其中LINDO 6 .1 学生版至多可求解多达300个变量和150个约束的规划问题。
其正式版(标准版)则可求解的变量和约束在1量级以上。
LINGO则用于求解非线性规划(NLP—NON—LINEAR PROGRAMMING)和二次规则(QP—QUARATIC PROGRAMING)其中LINGO 6.0学生版最多可版最多达300个变量和150个约束的规则问题,其标准版的求解能力亦再10^4量级以上。
虽然LINDO和LINGO不能直接求解目标规划问题,但用序贯式算法可分解成一个个LINDO和LINGO能解决的规划问题。
要学好用这两个软件最好的办法就是学习他们自带的HELP文件。
二、下面拟举数例以说明这两个软件的最基本用法。
(例子均选自张莹《运筹学基础》)例1.(选自《运筹学基础》P54.汽油混合问题,线性规划问题)一种汽油的特性可用两个指标描述:其点火性用“辛烷数”描述,其挥发性用“蒸汽压力”描述。
某炼油厂有四种标准汽油,设其标号分别为1,2,3,4,其特性及库存量列于下表1中,将上述标准汽油适量混合,可得两种飞机汽油,某标号为1,2,这两种飞机汽油的性能指标及产量需求列于表2中。
lingo多目标规划模型 ppt课件
决策者的作用是:评价和判断各目标的相对重 要性;根据目标的当前水平值以及主观的判断和 经验,提供关于决策方案的偏好信息。分析者一 般指能够提供可行方案和各目标之间的折中信息 的人或机器,比如经济学家、工程师、系统分析 员、社会学家、计算机等。
2021/3/26
lingo多目标规划模型 ppt课件
21
23
多目标决策问题的案例及特点
我们介绍两个日常生活中常见的决策问题。第 一个是顾客到商店购买衣服。对于顾客而言,购买 衣服就是一个决策问题,顾客本人是决策者,各种 各样的衣服是行动方案集。该决策问题的解就是顾 客最终买到一件合适的衣服(或选择一个满意的方 案)。那么,一件衣服(即一个方案)合适否(满 意否)应该根据几个指标来评价,比如衣服的质量、 价格、大小、式样、颜色等。
缩写形式:
max(Z m F i(nX)
s.t. (X )G
有n个决策变量,k个目标函数,m个约束方程, 则:
Z=F(X) 是k维函数向量, (X)是m维函数向量; G是m维常数向量;
多目标规划问题的求解不能只追求一个目标的最优化(最大或 最小),而不顾其它目标。 对于上述多目标规划问题,求解就意味着需要做出如下的复合 选择:
15
model:
min=d3_;
10*x1+15*x2+d1_-d1=40;
x1+x2+d2_-d2=10;
x2+d3_-d3=7;
d1=0;
d2_=6;
END
2021/3/26
lingo多目标规划模型 ppt课件
16
图6
2021/3/26
lingo多目标规划模型 ppt课件
17
lingo多目标规划模型
用lingo求解数学规划模型实例
1, 第i个部队分配第j种装备 设 xij 0, 第i个部队不分配第j种装备
目标函数: max aij xij
i 1 j1
9
9
xij 1 i 1 9 s .t . : x 1 ij j1 xij=0或1
( i, j=1,2,…,9)
9
9
EQ1 EQ2 EQ3 EQ4 EQ5 EQ6 EQ7 EQ8 EQ9 AR1 0 0 0 0 0 0 0 0 1 AR2 0 0 0 1 0 0 0 0 0 AR3 0 0 0 0 0 1 0 0 0 AR4 0 0 0 0 1 0 0 0 0 AR5 1 0 0 0 0 0 0 0 0 AR6 0 0 0 0 0 0 1 0 0 AR7 0 0 0 0 0 0 0 1 0 AR8 0 0 1 0 0 0 0 0 0 AR9 0 1 0 0 0 0 0 0 0 装备 部队 1 2 3 4 5 6 7 8 9 A 0.24 0.31 0.31 0.49 0.63 0.45 0.45 0.32 0.33 B 0.42 0.04 0.24 0.06 0.15 0.02 0.07 0.24 0.56 C 0.15 0.60 0.08 0.28 0.31 0.37 0.26 0.58 0.41 D 0.46 0.69 0.14 0.13 0.60 0.14 0.15 0.64 0.13 E 0.34 0.11 0.54 0.65 0.06 0.69 0.18 0.43 0.65 F 0.69 0.24 0.61 0.41 0.41 0.29 0.43 0.45 0.07 G 0.03 0.45 0.37 0.55 0.47 0.61 0.55 0.09 0.22 H 0.57 0.35 0.48 0.25 0.19 0.18 0.66 0.05 0.46 I 0.69 0.27 0.34 0.36 0.31 0.46 0.08 0.20 0.11
数学建模:运用Lindolingo软件求解线性规划
数学建模:运用L i n d o l i n g o软件求解线性规划-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN1、实验内容:对下面是实际问题建立相应的数学模型,并用数学软件包Lindo/lingo 对模型进行求解。
某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论:1)若投资0.8万元可增加原料1千克,问应否作这项投资.2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划.数学建模论文运用lindo/lingo软件求解线性规划运用lindo/lingo软件求解线性规划一、摘要本文要解决的问题是如何安排生产计划,即两种饮料各生产多少使获利最大。
首先,对问题进行重述明确题目的中心思想,做出合理的假设,对符号做简要的说明。
然后,对问题进行分析,根据题目的要求,建立合适的数学模型。
最后,运用lindo/lingo软件求出题目的解。
【关键词】最优解 lindo/lingo软件第二、问题的重述某厂生产甲乙两种口味的饮料,每百箱甲饮料需用原料6千克,工人10名,可获利10万元;每百箱乙饮料需用原料5千克,工人20名,可获利9万元.今工厂共有原料60千克,工人150名,又由于其他条件所限甲饮料产量不超过8百箱.问如何安排生产计划,即两种饮料各生产多少使获利最大.进一步讨论:1)若投资0.8万元可增加原料1千克,问应否作这项投资。
2)若每百箱甲饮料获利可增加1万元,问应否改变生产计划。
第三、模型的基本假设1、每一箱饮料消耗的人力、物力相同。
2、每个人的能力相等。
3、生产设备对生产没有影响。
第四、符号说明1、x.....甲饮料2、y.....乙饮料3、z.....增加的原材料第五、问题分析根据题目要求:如何安排生产计划,即两种饮料各生产多少使获利最大,可知本题所求的是利润的最大值。
(2024年)用Lingo软件编程求解规划问题解决方案
2024/3/26
1
目录
2024/3/26
• 引言 • 规划问题建模 • Lingo软件编程实现 • 规划问题求解与分析 • 案例研究:用Lingo解决实际规划问题 • 总结与展望
2
01
引言
2024/3/26
3
规划问题概述
规划问题定义
规划问题是一类优化问题,旨在 寻找满足一系列约束条件的决策 变量最优解,使得目标函数达到 最优(最大或最小)。
要点三
推动软件升级和普及
Lingo软件作为一款优秀的数学规划 求解工具,未来可以进一步推动其升 级和普及工作。例如,可以增加更多 实用的功能、提高软件的易用性和稳 定性等,以吸引更多的用户使用该软 件解决规划问题。
2024/3/26
29
THANKS
感谢观看
2024/3/26
30
。同时,需要注意Lingo语言的语法和规则,确保模型的正确性和可解
性。
10
03
Lingo软件编程实现
2024/3/26
11
Lingo编程环境介绍
Lingo是一款专门用于求解线性、非线性和整数规划问题的软件,它提供了一个直观易用的编程环境。
Lingo支持多种类型的数学模型,如线性规划、目标规划、整数规划等,并内置了大量的函数和算法, 方便用户快速构建和求解模型。
束条件。
8
数学模型建立
1 2
选择合适的数学模型
根据问题的特点和目标,选择合适的数学模型, 如线性规划、整数规划、非线性规划等。
构建目标函数
根据优化目标,构建目标函数,即问题的优化标 准。
3
构建约束条件方程
lingo序贯算法
06.多目标规划模型的LINGO 求解(序贯算法)例. 一个化工厂生产两种化学试剂,然后用这两种试剂合成一种产品,其利润(千美元)等于两种基本试剂数量的乘积。
这两种试剂将采用相同的加工过程,无论第一种或第二种试剂,每一加仑需1小时的加工时间,而每周可用的加工时间为6小时。
在将两种试剂合成新产品之前,要经过一道老化工序。
每种试剂的老化时间为其每周产量的非线性函数。
用1x 代表试剂1生产的加仑数,2x 代表试剂2生产的加仑数,则其老化时间分别为21)3(−x 和22x 。
经理确定如下原则:① 每周至少获利16000美元;② 限定每周老化时间为9小时;③ 利润目标较限定老化时间的目标重要两倍。
使用LINGO 软件,采用序贯算法,P94例题的程序编制如下:步骤一min =d3;x1*x2+d1_-d1=16;(x1-3)^2+x2^2+d2_-d2=9;x1+x2+d3_-d3=6;使用LINGO 求解,Local optimal solution found.Objective value: 0.000000Total solver iterations: 16Variable Value Reduced Cost D3 0.000000 1.000000 X1 0.000000 0.000000 X2 0.000000 0.000000 D1_ 16.00000 0.000000 D1 0.000000 0.000000 D2_ 0.000000 0.000000 D2 0.000000 0.000000 D3_ 6.000000 0.000000Row Slack or Surplus Dual Price 1 0.000000 -1.000000 2 0.000000 0.0000003 0.000000 0.0000004 0.000000 0.000000步骤二,将步骤一的结果加入的约束条件中,的模型程序如下:min=2*d1_+d2;x1*x2+d1_-d1=16;(x1-3)^2+x2^2+d2_-d2=9;x1+x2+d3_-d3=6;d3=0;使用LINGO求解,得结果如下:Local optimal solution found.Objective value: 14.00000Total solver iterations: 4Variable Value Reduced CostD1_ 7.000000 0.000000D2 0.000000 1.000000X1 3.000000 0.000000X2 3.000000 0.000000D1 0.000000 2.000000D2_ 0.000000 0.000000D3_ 0.000000 6.000000D3 0.000000 0.000000Row Slack or Surplus Dual Price1 14.00000 -1.0000002 0.000000 -2.0000003 0.000000 0.0000004 0.000000 6.0000005 0.000000 6.000000。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 目标规划的序贯解法 设 x j ( j 1,2,, n )是目标规划的决策变量,共有 m 个约束是刚性约束,可能是等
式约束,也可能是不等式约束。设有 l 个柔性目标约束,其目标规划约束的偏差为 d i , d i 的权重,分别记为 wki , wki (i 1,2, , l ) 。因此目标规划模型的一般数学表达式为
( i 1,2,, l ) 。设有 q 个优先级别,分别为 P 1, P 2 , , P q 。在同一个优先级 Pk 中,有不同
min
z Pk k 1
q
w d
i 1
l
ki i
wki di ,
s.t.
n atj x j (, )bt , t 1, , m, j 1 n c x d d d 0 , i 1,2, , l , ij j i i i j 1 x j 0, j 1,2, , n, di , di 0, i 1,2, , l.
3
应用实例
3.1 目标规划模型 为了具体介绍目标规划序贯解法的 Lingo 模型,下面先给出一个目标规划的例子。 某家设备公司生产三种型号的设备 A, B, C 。这三种设备需要在复杂的装配线上生产, 生产1台 A, B, C 型号的设备分别需要5, 8, 12 (h) 。 公司装配线正常的生产时间是每月1700h。 公司营业部门估计 A, B, C 三种设备的利润分别是每台1000,2400,3000(元) ,而公司预 测这个月生产的设备能够全部售出。公司经理考虑以下目标 第一目标:充分利用正常的生产能力,避免开工不足; 第二目标:优先满足老客户的需求, A, B, C 三种型号的设备分别为50,50,80(台) , 同时根据三种设备的纯利润分配不同的权因子; 第三目标:限制装配线加班时间,最好不要超过200h; 第四目标:满足各种型号设备的销售目标, A, B, C 型号分别为100,120,100(台) , 再根据三种设备的纯利润分配不同的权因子; 第五目标:装配线的加班时间尽可能少。 为了建立目标规划模型,首先建立目标约束。 (1)装配线正常生产 设生产 A, B, C 型号的设备为 x1 , x2 , x3(台) ,d1 为装配线正常生产时间未利用数,d1 为装配线加班时间,希望装配线正常生产,避免开工不足,因此装配线目标约束为
4 结语
本文基于 Lingo10 以上版本软件,设计了目标规划问题序贯解法的 Lingo 模型。利用 Lingo10 软件新增加的子函数功能,一次性求出目标规划的满意解,且给出所有的求解细节。 省去了通常的多次运行 Lingo 程序,且要实时输入前面几次运行结果数据的繁琐。本文所设
计的 Lingo 模型可以作为工具箱,供实际工程应用和数学建模使用。另外本文的方法也可以 应用于数据包络分析中,一次性求出所有数学规划的解。 参考文献 [1] 谢金星,薛毅. 优化建模与 Lindo/Lingo 软件[M]. 北京:清华大学出版社,2005,25. [2] 司守奎,孙玺菁. 数学建模算法与应用[M]. 北京:国防工业出版社,2011,125-135.
x1 d 2 d2 50,
x2 d3 d3 50,
x3 d 4 d4 80,
x1 d5 d5 100, x2 d 6 d 6 120, x3 d 7 d 7 100,
5x1 8x2 12 x3 d8 d8 1900, x1, x2 , di , di 0, i 1,2,,8.
我们设计的 Lingo 模型如下 model: sets: level/1..5/:z,goal; !z为中间变量; variable/1..3/:d,x; s_con_num/1..8/:g,dplus,dminus; s_con(s_con_num,variable):c; obj(level,s_con_num)/1 1,2 2,2 3,2 4,3 8,4 5,4 6,4 7,5 1/:wplus,wminus; endsets data: g=1700 50 50 80 100 120 100 1900; c=5 8 12 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 5 8 12; d=1000 2400 3000; wplus=0 0 0 0 1 0 0 0 1; wminus=1 200 300 250 0 200 300 250 0; enddata submodel subgoal: !定义数学规划的子函数; min=myobj; !目标函数; myobj=z(flag); @for(level(i):z(i)=@sum(obj(i,j):wplus(i,j)*dplus(j)+wminus(i,j)*dminus(j))); @for(s_con_num(i):@sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i)=g(i)); !定义目标约束; @for(level(i)|i #lt#flag:@bnd(0,z(i),goal(i))); @for(variable:@gin(x)); !定义整数变量约束; T=@sum(variable:d*x); !求满意解对应的利润; endsubmodel calc: @for(level(k): flag=k; @solve(subgoal); goal(k)=myobj); !调用子函数; endcalc end 把上述 Lingo 模型运行一次,就求出所有计算结界如下: 第一级目标的满意解为: x1 0 , x2 213 , x3 0 ,最优偏差值为 0; 前两级目标的满意解为: x1 50 , x2 50 , x3 142 ,最优偏差值为 0; 前三级目标的满意解为: x1 50 , x2 62 , x3 80 ,最优偏差值为 0; 前四级目标的满意解为: x1 100 , x2 55 , x3 80 ,第四级最优偏差值为 24500; 所有五级目标的满意解为: x1 100 , x2 55 , x3 80 ,第五级最优偏差值为 200; 目标规划问题的满意解 x1 100 , x2 55 , x3 80 ,说明装配线生产时间为 1900h, 满足装配线加班不超过 200h 的要求。能够满足老客户的需求,但未能满足一般销售目标。 销售总利润为 1000 100 2400 55 3000 80 472000 (元).
3.2 Lingo 软件的求解 求解上述目标规划,现有的方法需要构建 5 个 Lingo 模型,或者是构建一个 Lingo 模型, 但要运行 5 次,每次运行需要把前面几次运行结果的最优值实时输入 Lingo 模型,特别不方 便。Lingo10 引入了子函数功能,利用 Lingo10 的子函数功能,设计一个 Lingo 模型,在 Lingo 运行过程中不需要实时输入数据,就可以一次性得到满意解的所有细节结果。 Lingo10 新引入的子函数必须放在模块 calc:和 endcalc 之间,该模块中不能含有决策变 量,只能含有已知量的迭代运算和子函数。
l
(1) (2) (3) (4) (5) (6)
* q 所对应的解
* *
s.t.
a x
j 1
n
tj
j
(, )bt , t 1, , m ,
c
j 1
l i 1
ij
x j d i d i d i0 , i 1,2,, l ,
si i * , s 1,2, , k 1 , wsi di ) zs
基于 Lingo 软件的目标规划序贯解法
司守奎 (海军航空工程学院,基础部数学教研室,264001,烟台) [摘要]在工程应用问题中经常涉及目标规划问题,为了求得解的一些细节,可以使用序贯 解法,即求解一系列相互关联的数学规划问题。Lingo 软件是一款功能强大的优化软件,但 用通常的 Lingo 模型求解一系列相互关联的数学规划很不方便,需要设计多个程序文件,或 者需要在程序运行过程中实时输入前几步的运行结果。基于 Lingo10 以上版本子函数功能, 本文设计的 Lingo 模型可以一次性求出目标规划的满意解。 [关键字]目标规划,序贯解法,Lingo
综上所述,建立如下的目标规划模型
min z P 1d1 P 2 (200d 2 300d 3 250d 4 ) P 3 d8 P4 (200d5 300d6 250d7 ) P5d1 ,
s.t.
5x1 8x2 12 x3 d1 d1 1700 ,
1 引言
Lingo 软件[1]是由 Lindo System Inc.出品的专门用于求解数学规划问题的优化计算软件 包。Lingo 软件的特点是程序执行速度快,易于方便地输入、修改、求解和分析一个数学规 划问题,因此 Lingo 软件在教学、科研和工业界得到广泛应用。但 Lingo 软件求解数学规划 问题只能有一个目标函数,目标规划问题中含有多个目标函数。目标规划的求解方法很多, 我们可以使用加权法求解, 即把多个目标函数通过适当的权重合成一个目标函数, 利用数学 规划求解,但这样忽略了解的很多细节。 序贯解法是求解目标规划问题的一种常用方法,但利用低版本 Lingo 软件求解时很不方 便,需要设计多个程序文件,或者虽然可以设计一个程序文件,但在程序运行过程中要实时 输入前几步的运行结果。本文借助 Lingo10 以上版本新增加的子函数功能,设计的 Lingo 模 型可以一次性求出目标规划的满意解,方便了工程应用和数学建模的使用。
序贯算法是求解目标规划的一种早期算法[2],其优点是可以得到解的很多细节。序贯 解法的核心是根据优先级的先后次序, 将目标规划问题分解成一系列的单目标规划问题, 然 后再依次求解。 下面介绍求解目标规划的序贯算法。对于 k 1,2, , q ,求解单目标规划