1.实验6-1 原油采购与加工——解法1(非线性规划NLP,用LINGO求解)
- 格式:doc
- 大小:204.50 KB
- 文档页数:9
原油采购与加工的优化问题原油采购与加工的优化问题摘要:汽油公司的原油采购和加工问题是一个优化问题,它的存在关键是解决了大多数汽油公司所面临的原油采购和加工问题,如何在准确的原油比例的搭配和原油数量的采购问题是实现一个汽油公司利润最大化。
解决问题我们可以采用LINGO软件,这是一款通过交互式的线性和通用优化求解器,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等,功能十分强大,是求解优化模型的最佳选择。
通过这款软件解决了原油比例和采购的问题,得出一套利润最大化的方案。
问题重述:某公司用两种原油(A和B)混合加工成两种汽油(甲和乙)。
甲、乙两种汽油含原油A的最低比例分别为50%和60%,每吨售价分别为4800元和5600元。
该公司现有原油A和B的库存量分别为500吨和1000吨,还可以从市场上买到不超过1500吨的原油A。
原油A的市场价为:购买量不超过500吨时的单价为10000元/吨;购买量超过500吨但不超过1000吨时,超过500吨的部分8000元/吨;购买量超过1000吨时,超过1000吨的部分6000元/吨。
该公司应如何安排原油的采购和加工。
问题分析:问题中关系到公司原油A和B的混合加工问题,如何进行原油采购和加工,目标是实现公司利润最大化,两种汽油的售价分别按照原油A的最低比比例进行定价,这里关系到了原油A和B的分配量和价格的问题。
问题的重点要分析原油A的采购价和购买量的关系是服从分段函数的关系,可以通过线性规划处理问题。
问题假设:由于问题只考虑到原油价的价格及购买量的问题,所以我们可以对原油B不给予考虑,而对于原油A的假设有以下几种情况:(1) 混合加工的原油A在汽油甲乙里所占有的比例都大于50%、60%,甚至可以达到100%;(2) 排除一切加工运输原油A之中造成的原油损耗问题;(3) 1000吨的原油B在假设中无成本;(4) 原油A的市场价格应保持;(5) 购买原油A的超过量包括购买原油A的等于量;定义与符号说明:x 原油A的购买量C(x) 采购的支出x11 原油A用于生产甲的数量x12 原油A用于生产乙的数量x21 原油B用于生产甲的数量x22 原油B用于生产乙的数量Max z 目标函数(利润) 模型的建立:设原油A的购买量为x(吨),根据题意,采购价c(x)可列为如下的分段线性函数(单位:千元/吨)10x (0,x,500),,c(x),1000,8x (500,x,1000),,3000,6x (1000,x,1500),。
实验一:利用Lingo 软件求解线性规划问题实验一 利用Lingo 软件求解线性规划问题1、 实验目的和任务1.1. 进一步掌握Lingo 编程操作;1.2通过实验进一步掌握运筹学线性规划问题的建模以及求解过程,提高学生分析问题和解决问题能力。
2、 实验仪器、设备及材料计算机、Lingo3、 实验内容料场选址问题P10某公司有6个建筑工地要开工,每个工地的位置(用平面坐标a,b 表示,距离单位:km )及水泥日用量d(单位:t)由下表给出,目前有两个临时料场位于P (5,1),Q (2,7),日储量各有20t.请回答以下问题: 假设从料场到工地之间有直线道路相连,试制定每天的供应计划,即从P,Q 两料场分别向各工地运送多少吨水泥,使总的吨公量数最小。
工地的位置(a,b )及水泥日用量d建模 设工地的位置为(,)i i a b ,水泥日用量为i d ,i=1,2,…,6;料场位置为(,)j j x y ,日储量为j e ,j=1,2; 从料场j 向工地i 的运送量为ij c 。
决策变量:在问题(1)中,决策变量就是料场j 向工地i 的运送量为ij c ;在问题(2)中,决策变量除了料场j 向工地i 的运送量为ij c 外,新建料场位置(,)j j x y 也是决策变量。
目标函数:这个优化问题的目标函数f 是总砘公量数(运量乘以运输距离),所以优化目标可表为2611min j i f c ===∑∑约束条件:各工地的日用量必须满足,所以21,1,2, (6)ij ijc d i ===∑各料场的运送量不能超过日储量,所以61,1,2. ij jic e j =≤=∑求解过程编写模型程序:(介绍集合的定义及应用)model:sets:!确定变量a(1),a(2),a(3),a(4),a(5),a(6);demand/1..6/:a,b,d;supply/1..2/:x,y,e;link(demand,supply):c;endsetsdata:!分割数据的空格与逗号或回车的作用是等价的;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;!a=enddatainit:!lingo对数据是按列赋值的,而不是按行;x,y=5,1,2,7;endinit[OBJ] min=@sum(link(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2));@for(demand(i):[demand_con] @sum(supply(j):c(i,j))=d(i););@for(supply(i):[supply_con] @sum(demand(j):c(j,i))<=e(i););@for(supply(i):@bnd(0.5,x(i),8.75);@bnd(0.75,y(i),7.75););End计算结果:(如果你使用的是试用版软件,则可能不能用全局求解器求解本例,因为问题规模太大了,激活全局最优求解程序的方法,是用“lingo|Options”菜单命令打开选项对话框,在“Global Solver”选项卡上选择“Use Global Solver”)Local optimal solution found.Objective value: 85.26604Total solver iterations: 61Variable Value Reduced CostA( 1) 1.250000 0.000000A( 2) 8.750000 0.000000A( 3) 0.5000000 0.000000A( 4) 5.750000 0.000000A( 5) 3.000000 0.000000A( 6) 7.250000 0.000000B( 1) 1.250000 0.000000B( 2) 0.7500000 0.000000B( 3) 4.750000 0.000000B( 4) 5.000000 0.000000B( 5) 6.500000 0.000000B( 6) 7.750000 0.000000D( 1) 3.000000 0.000000D( 2) 5.000000 0.000000D( 3) 4.000000 0.000000D( 4) 7.000000 0.000000D( 5) 6.000000 0.000000D( 6) 11.00000 0.000000X( 1) 3.254883 0.000000X( 2) 7.250000 0.6335133E-06 Y( 1) 5.652332 0.000000Y( 2) 7.750000 0.5438639E-06 E( 1) 20.00000 0.000000E( 2) 20.00000 0.000000C( 1, 1) 3.000000 0.000000C( 1, 2) 0.000000 4.008540C( 2, 1) 0.000000 0.2051358C( 2, 2) 5.000000 0.000000C( 3, 1) 4.000000 0.000000C( 3, 2) 0.000000 4.487750C( 4, 1) 7.000000 0.000000C( 4, 2) 0.000000 0.5535090C( 5, 1) 6.000000 0.000000C( 5, 2) 0.000000 3.544853C( 6, 1) 0.000000 4.512336C( 6, 2) 11.00000 0.000000Row Slack or Surplus Dual PriceOBJ 85.26604 -1.000000DEMAND_CON( 1) 0.000000 -4.837363DEMAND_CON( 2) 0.000000 -7.158911DEMAND_CON( 3) 0.000000 -2.898893DEMAND_CON( 4) 0.000000 -2.578982DEMAND_CON( 5) 0.000000 -0.8851584DEMAND_CON( 6) 0.000000 0.000000SUPPLY_CON( 1) 0.000000 0.000000SUPPLY_CON( 2) 4.000000 0.000000如果把料厂P,Q的位置看成是已知并且固定的,这时是LP模型,只需把上面的程序中初始段的语句移到数据段就可以了。
LINGO 是用来求解线性和非线性优化问题的简易工具。
LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。
§1 LINGO 快速入门当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都都要在该窗口内编码实现。
下面举两个例子。
例1.1 如何在LINGO 中求解如下的LP 问题:,6002100350..32min 212112121≥≤+≥≥++x x x x x x x t s x x在模型窗口中输入如下代码: min =2*x1+3*x2; x1+x2>=350; x1>=100;2*x1+x2<=600;然后点击工具条上的按钮 即可。
model:!6发点8收点运输问题;sets:warehouses/wh1..wh6/: capacity;vendors/v1..v8/: demand;links(warehouses,vendors): cost, volume;endsets!目标函数;min=@sum(links: cost*volume);!需求约束;@for(vendors(J):@sum(warehouses(I): volume(I,J))=demand(J));!产量约束;@for(warehouses(I):@sum(vendors(J): volume(I,J))<=capacity(I));!这里是数据;data:capacity=60 55 51 43 41 52;demand=35 37 22 32 41 32 43 38;cost=6 2 6 7 4 2 9 54 95 3 8 5 8 25 2 1 9 7 4 3 37 6 7 3 9 2 7 12 3 9 5 7 2 6 55 5 2 2 8 1 4 3;enddataend然后点击工具条上的按钮即可。
原油问题数学建模
对于原油问题,建立一个数学模型首先需要了解具体的问题背景和目标。
不过,我可以提供一个基础的数学模型框架,然后根据具体问题再进行调整。
假设我们考虑一个简单的原油供应链问题,包括原油的开采、运输、加工和销售等环节。
以下是一个简单的数学模型:
1. 需求预测:
使用时间序列分析或回归分析方法预测未来一段时间内的原油需求。
2. 原油开采:
根据预测的需求和当前库存决定开采量。
考虑开采成本、环境影响等因素。
3. 运输:
确定运输方式(例如,管道、油轮等)和运输成本。
考虑运输过程中的损耗和不确定性。
4. **加工和存储**:
考虑加工成本和能加工的原油种类。
存储成本和容量限制。
5. 销售:
确定销售价格和销售策略。
考虑市场需求和竞争情况。
6. 利润计算:
基于收入和成本的差值计算利润。
7. 优化与决策:
基于利润或其他目标函数,优化各环节的决策。
考虑长期和短期决策的平衡。
8.模型参数:
根据历史数据和市场信息估计或验证模型参数。
9. 模型验证与改进:
使用实际数据验证模型的预测能力。
根据验证结果调整和改进模型。
10. 不确定性分析:
考虑各种不确定性因素(如价格波动、政策变化等)对决策的影响。
使用蒙特卡洛模拟等方法进行不确定性分析。
河北大学《数学模型》实验 实验报告一、实验目的学会利用LINGO 进行实验,熟练掌握用LINGO 求解简单的非线性规划问题以及整数规划问题。
二、实验要求1.原油采购与加工——解法1(非线性规划NLP ,用LINGO 求解)1. 输入非线性规划模型(参考教材 p103)。
2.另存,文件扩展名为.lg4,用 LINGO 语法。
3. 运行,结果与 p103-104 的结果比较。
2.原油采购与加工——解法2(整数规划IP ,用LINGO 求解)1. 输入整数规划模型(参考教材 p104)并运行。
2. 结果与 p106 的结果比较。
3.原油采购与加工——解法3(整数规划IP ,用LINDO 求解)1. 输入整数规划模型并运行。
2. 结果与 p105 的结果比较。
三、实验内容1.原油采购与加工——解法1(非线性规划NLP ,用LINGO 求解)(参考教材 p104-106)模型:⎧ 10x (0 ≤ x ≤ 500) c (x ) = ⎪ (500 ≤ x ≤1000) 已知 ⎨1000 + 8x ⎪3000 + 6x (1000 ≤ x ≤1500)⎩Max z = 4.8(x 11 + x 21) + 5.6 (x 12 + x 22 ) - c (x )x 11 + x 12 ≤ 500 + xx 21 + x 22 ≤1000x ≤1500x 11 ≥ 0.5x + x 21 11x 12 ≥ 0.6x + x2212x11, x12, x21, x22, x ≥0变换为以下的非线性规划模型:Max z =4.8(x11+ x21)+5.6 (x12+ x22)-(10x1+8x2+6x3)x11+ x12≤500+ xx21+ x22≤1000x11≥ 0.5x + x2111x12≥ 0.6x + x2212x = x1+ x2+ x3(x1- 500)x2= 0 (x2- 500)x3= 00 ≤x1 , x2 , x3≤ 500x11, x12, x21, x22, x ≥0在模型窗口中输入以下模型:1.Model:2.Max= 4.8*x11 + 4.8*x21 + 5.6*x12 + 5.6*x22 - 10*x1 - 8*x2 - 6*x3;3.x11+x12 < x + 500;4.x21+x22 < 1000;5.x11 - x21 > 0;6.2*x12 - 3*x22 > 0;7.x=x1+x2+x3;8.(x1 - 500) * x2=0;9.(x2 - 500) * x3=0;10.x1 < 500;11.x2 < 500;12.x3 < 500;13.end2.原油采购与加工——解法2(整数规划IP,用LINGO求解)(参考教材p106-107)模型同实验 04-06。
用lingo求解线性规划问题中国石油大学胜利学院程兵兵摘要食物营养搭配问题是现代社会中常见的问题,其最终的目的是节省总费用.本文通过对营养问题的具体剖析.构建了一般的线性规划模型。
并通过实例应用Lingo数学软件求解该问题.并给出了价值系数灵敏度分析,得出蔬菜价格的变动对模型的影响.关键词线性规划,lingo,灵敏度分析。
一、问题重述与分析营养师要为某些特殊病人拟订一周的菜单,可供选择的蔬菜及其费用和所含营养成分的数量以及这类病人每周所需各种营养成分的最低数量如下表1所示。
有以下规定:一周内所用卷心菜不多于2份,其他蔬菜不多于4份。
问题一:若病人每周需要14份蔬菜,问选用每种蔬菜各多少份,可使生活费用最小.问题二:当市场蔬菜价格发生怎样波动时,所建模型的适用性。
表 1 所需营养和费用营养搭配是一个线性规划问题,在给定蔬菜的情况下,要求菜单所需的营养成分必须达到要求,并在此条件下求出什么样的搭配所花费的费用最少.第一个要求是满足各类营养的充足,根据表中数据列出不等式。
第二要求为问题一中,蔬菜的份数必须为14,第三要求为在一周内,卷心菜不多于2份,其他不多于4份,根据以上条件列出各类蔬菜份数的限定条件,并可表示出费用的表达式.对于第二问,就是价值系数的变化对总费用的影响,模型的适用范围。
三、模型假设第一,假设各蔬菜营养成分保持稳定,满足题干要求。
第二,假设各蔬菜价格在一定时间内保持相对稳定。
第三,假设各类蔬菜供应全部到位,满足所需要求量. 第四,假设所求出最优解时不要求一定为整数。
四、符号约定(1)Z 代表目标函数,此题即为费用。
(2)i c 为价值系数,此题即为每份蔬菜的价格。
下标i 代表蔬菜的种类。
(3)i x 为决策变量,表示各种蔬菜的数量。
(4)i b 为最低限定条件,表示蔬菜最低营养需要。
五、模型建立根据以上各种假设和符号约定,建立模型如下。
所求的值就是min,也就是最优化结果.s 。
用LINGO求解线性规划问题实验1 用LINGO求解线性规划问题LINGO使用简介LINGO软件是美国的LINDO系统公司(Lindo System Inc)开发的一套用于求解最优化问题的软件包.LINGO除了能用于求解线性规划和二次规划外,还可以用于非线性规划求解以及一些线性和非线性方程(组)的求解.LINGO软件的最大特色在于它允许优化模型中的决策变量为整数,而且执行速度快.LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果,这里简单介绍LINGO的使用方法.LINGO可以求解线性规划、二次规划、非线性规划、整数规划、图论及网络优化和排队论模型中的最优化问题等.一个LINGO程序一般会包含集合段、数据输入段、优化目标和约束段、初始段和数据预处理段等部分,每一部分有其独特的作用和语法规则,读者可以通过查阅相关的参考书或者LINGO的HELP文件详细了解,这里就不展开介绍了.LINGO的主要功能特色为:既能求解线性规划问题,也有较强的求解非线性规划问题的能力;输入模型简练直观;运算速度快、计算能力强;内置建模语言,提供几十个内部函数,从而能以较少语句,较直观的方式描述大规模的优化模型;将集合的概念引入编程语言,很容易将实际问题转换为LINGO模型;并且能方便地与Excel、数据库等其他软件交换数据.LINGO的语法规定:(1)求目标函数的最大值或最小值分别用MAX=…或MIN=…来表示;(2)每个语句必须以分号“;”结束,每行可以有许多语句,语句可以跨行;(3)变量名称必须以字母(A~Z)开头,由字母、数字(0~9)和下划线所组成,长度不超过32个字符,不区分大小写;(4)可以给语句加上标号,例如[OBJ] MAX=200*X1+300*X2;(5)以惊叹号“!”开头,以分号“;”结束的语句是注释语句;(6)如果对变量的取值范围没有作特殊说明,则默认所有决策变量都非负;(7)LINGO模型以语句“MODEL:”开头,以“END”结束,对于比较简单的模型,这两个语句可以省略.实验目的1.对于给定的实际应用问题,正确的建立线性规划问题数学模型,并用LINGO求解;2.掌握灵敏度分析以及资源的影子价格的相关分析方法.实验数据与内容问题1.1 某工厂在计划期内要安排生产A、B两种产品,已知生产单位产品所需设备台时及对甲、乙两种原材料的消耗,有关数据如表1.1.问:应如何安排生产计划,使工厂获利最大?表1.1 资源配置问题的数据产品资源AB可利用资源设备128台时甲416公斤乙412公斤单位利润2元3元建立线性规划问题的数学模型,用LINGO求出最优解并做相应的分析.问题1.2 某公司饲养实验用的动物以供出售,已知这些动物的生长对饲料中3种营养成分(蛋白质、矿物质和维生素)特别敏感,每个动物每周至少需要蛋白质60g,矿物质3g,维生素8mg,该公司能买到5种不同的饲料,每种饲料1kg所含各种营养成分和成本如表1.2所示,如果每个小动物每周食用饲料不超过52kg,求既能满足动物生长需要,又使总成本最低的饲料配方.表1.2 配料(食谱)问题的数据饲料营养1A2A4A5A营养最低要求蛋白质(g) 0.3210.61.860矿物质(g) 0.10.050.20.053维生素(mg) 0.050.10.020.20.088成本(元/ kg)0.20.70.40.5实验指导问题1.1设计划生产两种产品分别为,则建立线性规划问题数学模型 BA,21,xx.......≥≤≤≤++=0,12416482.32max21212121xxxxxxtsxxS在LINGO的MODEL窗口内输入如下模型:model:max=2*x1+3*x2;x1+2*x2<=8;4*x1<=16;4*x2<=12;end选菜单Lingo|Solve(或按Ctrl+S),或用鼠标点击“求解”按纽,如果模型有语法错误,则弹出一个标题为“LINGO Error Message”(错误信息)的窗口,指出在哪一行有怎样的错误,每一种错误都有一个编号(具体含义可查阅相关文献或LINGO的Help).改正错误以后再求解,如果语法通过,LINGO用内部所带的求解程序求出模型的解,然后弹出一个标题为“LINGO Solver Status”(求解状态)的窗口,其内容为变量个数、约束条件个数、优化状态、耗费内存、所花时间等信息,点击Close关闭窗口,屏幕上出现标题为“Solution Report”(解的报告)的信息窗口,显示优化计算(线性规划中换基迭代)的步数、优化后的目标函数值、列出各变量的计算结果.求解结果:Global optimal solution found at iteration: 5Objective value: 14.00000Variable Value Reduced CostX1 4.000000 0.000000X2 2.000000 0.000000Row Slack or Surplus Dual Price1 14.00000 1.0000002 0.000000 1.5000003 0.000000 0.12500004 4.000000 0.000000该报告说明:运行5步找到全局最优解,目标函数值为14,变量值分别为.“Reduced Cost”的含义是需缩减成本系数或需增加利润系数(最优解中取值非零的决策变量的Reduced Cost值等于零).“Row”是输入模型中的行号,目标函数是第一行;“Slack orSurplus”的意思是松弛或剩余,即约束条件左边与右边的差值,对于“124,2==xx≤”的不等式,右边减左边的差值为Slack(松弛),对于“”的不等式,左边减右边的差值为Surplus(剩余),当约束条件两边相等时,松弛或剩余的值等于零.“Dual Price”的意思是对偶价格(或称为影子价格),上述报告中Row2的松弛值为0,表明生产甲产品4单位、乙产品2单位,所需设备8台时已经饱和,对偶价格1.5的含义是:如果设备增加1台时,能使目标函数值增加1.5.报告中Row4的松弛值为4,表明生产甲产品4单位、乙产品2单位,所需原材料乙8公斤还剩余4公斤,因此增加原材料乙不会使目标函数值增加,所以对偶价格为0.≥问题1.2设需要饲料分别为 kg,则建立线性规划数学模型:54321,,,,AAAAA54321,,,,xxxxx123451234512345123451234512345min0.20.70.40.30.50.32 0.61.8600.10.050.020.20.0530.050.10.020.20.088.52,,,,0Sxxxxxxxx xxxxxxxxxxxxstxxxxxxxxxx=++++++++≥..++++..++++..++++≤.≥..在LINGO的MODEL窗口内输入如下模型:Min=0.2*x1+0.7*x2+0.4*x3+0.3*x4+0.5*x5;0.3*x1+2*x2+x3+0.6*x4+1.8*x5>60;0.1*x1+0.05*x2+0.02*x3+0.2*x4+0.05*x5>3;0.05*x1+0.1*x2+0.02*x3+0.2*x4+0.08*x5>8; x1+x2+x3+x4+x5<52;求解输出结果如下:Global optimal solution found at iteration: 4 Objective value: 22.40000Variable Value Reduced CostX1 0.000000 0.7000000X2 12.00000 0.000000X3 0.000000 0.6166667X4 30.00000 0.000000X5 10.00000 0.000000Row Slack or Surplus Dual Price1 22.40000 -1.0000002 0.000000 -0.58333333 4.100000 0.0000004 0.000000 -4.1666675 0.000000 0.8833333因此,每周每个动物的配料为饲料、、分别为12、30和10kg,合计为52,可使得饲养成本达到最小,最小成本为22.4元;不选用饲料和的原因是因为这两种饲料的价格太高了,没有竞争力.“Reduced Cost”分别等于0.7和0.617,说明当这两种饲料的价格分别降低0.7元和0.62元以上时,不仅选用这两种饲料而且使得饲养成本降低.从“Slack or Surplus”可以看出,蛋白质和维生素刚达到最低标准,矿物质超过最低标准4.12A4A5Akgkgkg1A3Ag;从“Dual Price”可以得到降低标准蛋白质1单位可使饲养成本降低0.583元,降低标准维生素1单位可使饲养成本降低4.167元,但降低矿物质的标准不会降低饲养成本,如果动物的进食量减少,就必须选取精一些的饲料但要增加成本,大约进食量降低1可使得饲养成本增加0.88元.kg对于目标函数系数和约束条件右端常数项的灵敏度分析,可以通过LINGO软件求解的灵敏度分析给出.如果要看灵敏度分析结果,必须激活灵敏度计算功能才会在求解时给出灵敏度分析结果,默认情况下这项功能是关闭的.想要激活它,必须运行LINGO|Options…命令,选择Gengral Solver,在Dual Computation列表框中,选择Prices and Ranges选项并确定.对于例1.1问题进行灵敏度分析,结果如下:以下是灵敏度分析的结果Ranges in which the basis is unchanged:Objective Coefficient RangesCurrent Allowable AllowableVariable Coefficient Increase DecreaseX1 2.000000 INFINITY 0.5000000X2 3.000000 1.000000 3.000000Righthand Side RangesRow Current Allowable AllowableRHS Increase Decrease2 8.000000 2.000000 4.0000003 16.00000 16.00000 8.0000004 12.00000 INFINITY 4.000000对于例1.2问题进行灵敏度分析,结果如下:Ranges in which the basis is unchanged: Objective Coefficient RangesCurrent Allowable AllowableVariable Coefficient Increase Decrease X1 0.2000000 INFINITY 0.7000000X2 0.7000000 INFINITY 0.1358974X3 0.4000000 INFINITY 0.6166667X4 0.3000000 1.400000 1.000000X5 0.5000000 0.1247059 INFINITY Righthand Side RangesRow Current Allowable AllowableRHS Increase Decrease2 60.00000 4.800000 4.8000003 3.000000 4.100000 INFINITY4 8.000000 0.3428571 0.48000005 52.00000 1.846154 1.411765思考题某投资公司拟制定今后5年的投资计划,初步考虑下面四个投资项目:项目A:从第1年到第4年每年年初可以投资,于次年年末收回成本,并可获利润15%;项目B:第3年年初可以投资,到第5年年末可以收回成本,并获得利润25%,但为了保证足够的资金流动,规定该项目的投资金额上限为不超过总金额的40%;项目C:第2年年初可以投资,到第5年年末可以收回成本,并获得利润40%,但公司规定该项目的最大投资金额不超过总金额的30%;项目D:5年内每年年初可以购买公债,于当年年末可以归还本金,并获利息6%.该公司现有投资金额100万元,请帮助该公司制定这些项目每年的投资计划,使公司到第5年年末核算这5年投资的收益率达到最大.建立线性规划问题的数学模型,并用LINGO求解.。
实验05 数学规划模型㈡(2学时)(第4章数学规划模型)1.(求解)汽车厂生产计划(LP,整数规划IP)p101~102(1) (LP)在模型窗口中输入以下线性规划模型max z = 2x1 + 3x2 + 4x3s.t. 1.5x1 + 3x2 + 5x3≤ 600280x1 + 250x2 + 400x3≤ 60000x1, x2, x3≥ 0并求解模型。
★(1) 给出输入模型和求解结果(见[101]):(2) (IP)在模型窗口中输入以下整数规划模型max z = 2x1 + 3x2 + 4x3s.t. 1.5x1 + 3x2 + 5x3≤ 600280x1 + 250x2 + 400x3≤ 60000x1, x2, x3均为非负整数并求解模型。
LINGO函数@gin见提示。
★(2) 给出输入模型和求解结果(见[102]模型、结果):2.(求解)原油采购与加工(非线性规划NLP ,LP 且IP )p104~107模型:已知 ⎪⎩⎪⎨⎧≤≤+≤≤+≤≤=)15001000(63000)1000500(81000)5000(10)(x x x x x xx c注:当500 ≤ x ≤ 1000时,c (x ) = 10 × 500 + 8( x – 500 ) = (10 – 8 ) × 500 + 8x112112221112212211112112122211122122max 4.8() 5.6()()500100015000.50.6,,,,0z x x x x c x x x x x x x x x x x x x x x x x x =+++-+≤++≤≤≥+≥+≥2.1解法1(NLP )p104~106将模型变换为以下的非线性规划模型:1121122212311122122111121121222123122312311122122max4.8()5.6()(1086)50010000.50.6(500)0(500)00,,500,,,,0z x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x =+++-+++≤++≤≥+≥+=++-=-=≤≤≥LINGO 软件设置:局部最优解,全局最优解,见提示。
河北大学《数学模型》实验 实验报告
一、实验目的
学会利用LINGO 进行实验,熟练掌握用LINGO 求解简单的非线性规划问题以及整数规划问题。
二、实验要求
1.原油采购与加工——解法1(非线性规划NLP ,用LINGO 求解)
1. 输入非线性规划模型(参考教材 p103)。
2.另存,文件扩展名为.lg4,用 LINGO 语法。
3. 运行,结果与 p103-104 的结果比较。
2.原油采购与加工——解法2(整数规划IP ,用LINGO 求解)
1. 输入整数规划模型(参考教材 p104)并运行。
2. 结果与 p106 的结果比较。
3.原油采购与加工——解法3(整数规划IP ,用LINDO 求解)
1. 输入整数规划模型并运行。
2. 结果与 p105 的结果比较。
三、实验内容
1.原油采购与加工——解法1(非线性规划NLP ,用LINGO 求解)
(参考教材 p104-106)
模型:
⎧ 10x (0 ≤ x ≤ 500) c (x ) = ⎪ (500 ≤ x ≤1000) 已知 ⎨1000 + 8x ⎪3000 + 6x (1000 ≤ x ≤1500)
⎩
Max z = 4.8(x 11 + x 21) + 5.6 (x 12 + x 22 ) - c (x )
x 11 + x 12 ≤ 500 + x
x 21 + x 22 ≤1000
x ≤1500
x 11 ≥ 0.5
x + x 21 11
x 12 ≥ 0.6
x + x
22
12
x11, x12, x21, x22, x ≥0
变换为以下的非线性规划模型:
Max z =4.8(x11+ x21)+5.6 (x12+ x22)-(10x1+8x2+6x3)
x11+ x12≤500+ x
x21+ x22≤1000
x
11
≥ 0.5
x + x
21
11
x
12
≥ 0.6
x + x
22
12
x = x1+ x2+ x3
(x1- 500)x2= 0 (x2- 500)x3= 0
0 ≤x1 , x2 , x3≤ 500
x11, x12, x21, x22, x ≥0
在模型窗口中输入以下模型:
1.Model:
2.Max= 4.8*x11 + 4.8*x21 + 5.6*x12 + 5.6*x22 - 10*x1 - 8*x2 - 6*x3;
3.x11+x12 < x + 500;
4.x21+x22 < 1000;
5.x11 - x21 > 0;
6.2*x12 - 3*x22 > 0;
7.x=x1+x2+x3;
8.(x1 - 500) * x2=0;
9.(x2 - 500) * x3=0;
10.x1 < 500;
11.x2 < 500;
12.x3 < 500;
13.end
2.原油采购与加工——解法2(整数规划IP,用LINGO求解)
(参考教材p106-107)
模型同实验 04-06。
变换为以下的整数规划模型:
Max z =4.8(x11+ x21)+5.6 (x12+ x22)-(10x1+8x2+6x3)
x11+ x12≤500+ x x21+ x22≤1000
x
11
≥ 0.5
x + x
11
21
x
12
≥ 0.6
x + x
22
12
x = x1+ x2+ x3
500 y2≤x1≤ 500 y1 500 y3≤x2≤ 500 y2x3≤500 y3
y1, y2, y3=0或10 ≤x1 , x2 , x3≤ 500
x11, x12, x21, x22, x ≥0
在模型窗口中输入以下编程语言:
MODEL:
MAX=4.8*X11+4.8*X21+5.6*X12+5.6*X22-10*X1-8*X2-6*X3;
X11+X12<X+500;
X21+X22<1000;
0.5*X11-0.5*X21>0;
0.4*X12-0.6*X22>0;
X=X1+X2+X3;
X1<500*Y1;
X2<500*Y2;
X3<500*Y3;
X1>500*Y2;
X2>500*Y3;
@BIN(Y1);@BIN(Y2);@BIN(Y3);
END
3.原油采购与加工——解法3(整数规划IP,用LINDO求解)
(参考教材p107-108)
模型同实验 04-06。
变换为以下的整数规划模型:
Max z =4.8( x11+ x21)+5.6 ( x12+ x22)- c ( x)
x11+ x12≤500+ x x21+ x22≤1000
x
11
≥ 0.5
x + x
11 21
x
12
≥ 0.6
x + x
12 22
x11, x12, x21, x22, x ≥0
z1≤ y1, z 2≤ y1+ y 2, z 3≤ y 2+ y3, z 4≤ y3 z1+ z 2+ z 3+ z 4=1, z k≥0 ( k =1, 2, 3, 4) y1+ y 2+ y3=1, y k =0或1 ( k =1, 2, 3)
x =500 z2+1000 z3+1500z4
c ( x )=5000 z 2+9000 z 3+12000z4
在模型窗口中输入以下编程语言:
model:
max= 4.8*x11 + 4.8*x21 +5.6*x12 + 5.6*x22 - (5000*z2 + 9000*z3 +12000*z4);
x11+x12 < x + 500;
x21+x22 < 1000;
0.5*x11-0.5*x21>0;
0.4*x12-0.6*x22>0;
z1<y1;
z2<y1+y2;
z3<y2+y3;
z4<y3;
z1+z2+z3+z4=1;
y1+y2+y3=1;
x=500*z2+1000*z3+1500*z4;
@bin(y1);
@bin(y2);
@bin(y3);
end
四、实验结果及其分析
选择LINGO->OPTIONS->GLOBAL SOLVER->勾选GLOBAL SOLVER,显示全局最优解。
1.原油采购与加工——解法1(非线性规划NLP,用LINGO求解)
Global optimal solution found.提示表明线性规划问题的最优解已经被找到。
Objective value: 5000表示线性规划问题的最优解是5000。
Total solver iterations: 368表明迭代的此时是368次。
Variable:对应的是变量,分别是x11,x21,x12,x22,x1,x2,x3,x。
Value:线性规划问题取得最优值是对应的最优解。
即x11=0,x21=0,x12=1500,x22=1000,x1=500,x2=499.998,x=1000。
2.原油采购与加工——解法2(整数规划IP,用LINGO求解)
Global optimal solution found.提示表明线性规划问题的最优解已经被找到。
Objective value: 5000表示线性规划问题的最优解是5000。
Total solver iterations: 12表明迭代的此时是12次。
Variable:对应的是变量,分别是x11,x21,x12,x22,x1,x2,x3,x,y1,y2,y3。
Value:线性规划问题取得最优值是对应的最优解。
即x11=0,x21=0,x21=1500,x22=1000,x1=500,x2=500,x3=0,x=1000,y1=1000,y2=1000,y3=0。
3.原油采购与加工——解法3(整数规划IP,用LINDO求解)
Global optimal solution found.提示表明线性规划问题的最优解已经被找到。
Objective value: 5000表示线性规划问题的最优解是5000。
Total solver iterations: 16表明迭代的此时是16次。
Variable:对应的是变量,分别是x11,x21,x12,x22,x,y1,y2,y3,z1,z2,z3,z4。
Value:线性规划问题取得最优值是对应的最优解。
即x11=0,x21=0,x21=1500,x22=1000,x=1000,y1=0,y2=1,y3=0,z1=0,z2=0,z3=1,z4=0。