1.实验6-1 原油采购与加工——解法1(非线性规划NLP,用LINGO求解)

合集下载

原油采购与加工的优化问题

原油采购与加工的优化问题

原油采购与加工的优化问题原油采购与加工的优化问题摘要:汽油公司的原油采购和加工问题是一个优化问题,它的存在关键是解决了大多数汽油公司所面临的原油采购和加工问题,如何在准确的原油比例的搭配和原油数量的采购问题是实现一个汽油公司利润最大化。

解决问题我们可以采用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使用教程解析
• LINDO 中包含了建模语言和许多常用的数学函数(包 括大量概论函数),可供使用者建立规划问题时调用。
• 一般用LINDO(Linear Interactive and Discrete Optimizer)解决线性规划
• 最大规模的模型的非零系数可以达到1,000,000个,
• 最大变量个数可以达到100,000个,最大目标函数和约束 条件个数可以达到32000个,
给模型加注标题和行号
TITLE "This is a maximum profit problem"
MAX
4 X1 + X2 - X3 + 2 X4
ST
RESOURCE) X1 - X2 + X3 - X4 < 30
SALE) 3 X1 + X2 - X3 + 2 X4 < 36
STORAGE) X1 + 2 X2 + X3 - 2 X4 < 20
练习:混合泳接力队员选择问题
cij
i=1
i=2
i=3
i=4
i=5
j=1
66.8
57.2
78
70
67.4
j=2
75.6
66
67.8
74.2
71
j=3
87
66.4
84.6
69.6
83.8
j=4
58.6
53
59.4
57.2
62.4
若选择队员i参加泳姿j 的比赛,记xij=1, 否则记xij=0
目标 函数
• 不等号用"<"表示"≤",用">"表示"≥"。要注意的是 当模型(用 LOOK 命令)输出(到屏幕或打印机)时,不 等号分别写成"<="和">="。

用LINGO解决非线性规划问题

用LINGO解决非线性规划问题

8
二、用LINGO解决基本的线性规划问题
我们编辑程序并求解后,得到LINGO Model窗口、 Solution report窗口和Solver status窗口划问题
通过此例我们对LINGO有了一个基本的认识,下 面我们来总结一下LINGO语法规定: 1. 求目标函数的最大值或最小值分别用MAX=…… 或MIN=……来表示; 2. 每个语句必须以分号“;”结束,每行可以有多 个语句,语句可以跨行; 3. 变量名称必须以字母(A-Z)开头,由字母、数 字(0-9)和下划线所组成,长度不超过32个字符,不 区分大小写;
11
二、用LINGO解决基本的线性规划问题
8. 变量界定函数: @BND(L,x,U),即L<=x<=U; 注意:没有想象中的的@SLB函数与@SUB函数; @BIN(x),限制x仅取整数0或1; 注意:不是@INT(x)函数; @FREE(x),取消对x的符号限制;
@GIN(x),限制x仅取非负整数。
16
三、用LINGO解决非线性规划问题
17
三、用LINGO解决非线性规划问题
18
三、用LINGO解决非线性规划问题
例4 求解二次规划问题:
直接使用LINGO最大化过程:
max=98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2; x1 + x2 <= 100; x1 <= 2*x2; @gin(x1);@gin(x2);
12
三、用LINGO解决非线性规划问题
例2 求解二次规划问题:
MODEL: MIN=x^2+y^2-2*x-4*y; !目标函数; x+y<=1; !x,y为决策变量; y<=0.5; !第二、三行均为约束条件; end

实验1 利用Lingo求解线性规划

实验1 利用Lingo求解线性规划

实验一:利用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解决非线性规划问题
3
一、LINGO介绍
LP QP ILP IQP PILP
PIQP
NLP INLP PINLP
LINGOV12.0版可用于求以下各类最优化数学模型: Linear Program 线性规划 Quadratic Program 二次规划 Integer Linear Program 整数线性规划 Integer Quadratic Program 整数二次规划
X1+ 3*X2<=18;
!X1,X2为决策变量;
2*X1+ X2<=16;
4*X2<=20; !第二到四行均为约束条件
8
二、用LINGO解决基本的线性规划问题 我们编辑程序并求解后,得到LINGO Model窗口、Solution report窗口和Solver status窗口如下:
9
二、用LINGO解决基本的线性规划问题 通过此例我们对LINGO有了一个基本的认识,下面我们来总结一下LINGO语法规定: 1. 求目标函数的最大值或最小值分别用MAX=……或MIN=……来表示; 2. 每个语句必须以分号“;”结束,每行可以有多个语句,语句可以跨行; 3. 变量名称必须以字母(A-Z)开头,由字母、数字(0-9)和下划线所组成,长度不超过32个字符,不
三、用LINGO解决非线性规划问题
例4 求解二次规划问题:
直接使用LINGO最大化过程: max=98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2; x1 + x2 <= 100; x1 <= 2*x2; @gin(x1);@gin(x2); 19
三、用LINGO解决非线性规划问题 20
6
二、用LINGO解决基本的线性规划问题

LINGO是用来求解线性和非线性优化问题的简易工具

LINGO是用来求解线性和非线性优化问题的简易工具

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进行线性规划求解(实例)
要点一
LINGO
支持多种线性规划算法,包括单纯形法、网络算法等。
要点二
Gurobi
主要采用高级优化算法,如分支定界法、动态规划等。
LINGO与Gurobi的比较
LINGO
支持各种类型的约束条件,包括整数约束、非线性约束 等。
Gurobi
特别擅长处理大规模、非线性问题,但对线性问题的处 理能力稍弱。
LINGO
界面简洁,建模语言直观,易于学习和掌握。
Excel
需要结合多个函数和工具进行建模,对于复杂问题操作相对繁琐。
LINGO与Excel的比较
LINGO
针对优化问题进行了优化,求解速度 较快,精度较高。
Excel
求解速度较慢,对于大规模问题可能 无法得到满意的结果。
LINGO与Gurobi的比较
LINGO软件特点
高效求解
LINGO采用先进的求解算法,能够快速求解大规 模线性规划问题。
灵活建模
LINGO支持多种建模语言,用户可以根据需要选 择合适的语言进行建模。
图形界面
LINGO提供直观的图形界面,方便用户进行模型 设计和结果查看。
LINGO软件应用领域
生产计划
LINGO可用于制定生产计划,优化资源配置, 提高生产效率。
金融投资
LINGO可以用于金融投资组合优化,帮助投 资者实现风险和收益的平衡。
物流优化
LINGO可以帮助企业优化物流配送路线,降 低运输成本。
资源分配
LINGO可用于资源分配问题,如人员、设备、 资金的分配,以达到最优效果。
2023
PART 02
线性规划基本概念
REPORTING
线性规划定义
线性规划是数学优化技术的一种,它通过将问 题抽象为数学模型,利用数学方法来寻找最优 解。

用Lingo软件编程求解规划问题解决方案

用Lingo软件编程求解规划问题解决方案
Lingo软件特点
Lingo软件具有直观易用的界面,提供丰富的函数库和求解算法, 能够高效地求解大规模复杂规划问题。
Lingo软件应用
Lingo软件被广泛应用于各个领域的规划问题求解,如金融、物流、 制造等。
解决方案目标与意义
解决方案目标
通过Lingo软件编程求解规划问题, 旨在获得满足约束条件的最优解,使 得目标函数达到最优。
要点三
推动软件升级和普及
Lingo软件作为一款优秀的数学规划 求解工具,未来可以进一步推动其升 级和普及工作。例如,可以增加更多 实用的功能、提高软件的易用性和稳 定性等,以吸引更多的用户使用该软 件解决规划问题。
THANKS
感谢观看
Lingo编程环境介绍
Lingo是一款专门用于求解线性、非线性和整数规划问题的软件,它提供了一个直观易用的编程环境。
Lingo支持多种类型的数学模型,如线性规划、目标规划、整数规划等,并内置了大量的函数和算法, 方便用户快速构建和求解模型。
Lingo还提供了丰富的数据输入/输出功能,支持Excel、数据库等多种数据格式,方便用户进行数据处理 和分析。
结果分析
根据求解结果,分析每种产品的生产量是否符合预期,并评估总成本是否达到最小化。 同时,可以对不同方案进行比较,选择最优方案。
敏感性分析
通过改变某些参数或约束条件,观察求解结果的变化,以评估方案的稳定性和可行性。
06
总结与展望
研究成果总结
成功构建了规划问题的数学模型
通过深入研究规划问题的本质,我们成功构建了能够准确 描述问题的数学模型,为后续的求解工作奠定了坚实的基 础。
学习和使用。
02
Lingo语言基本语法
学习Lingo语言的基本语法和规则,如变量定义、函数定义、约束条件

1.实验6-1 原油采购与加工——解法1(非线性规划NLP,用LINGO求解)

1.实验6-1 原油采购与加工——解法1(非线性规划NLP,用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 + 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解非线性规划

课堂练习: 求解下列模型
max z x1 x2 ;
2 x1 x2 6 ;
4 x1 5x2 20 ;
x1
,
x
2
0, 且为整数
优化建模
min st
f (x1, x2) (x1 3)2 (x2 2)2 x12 x22 5 0 x1 2x2 4 0 x1, x2 0
min st
f (x1,x2)(x11)2 (x2 1)2 x12 x22 20
x2 10
优化建模
二、集合的基本用法和LINGO模型的基本要素 理解LINGO建模语言最重要的是理解集合(Set)及其 属性(Attribute)的概念。
例 SAILCO公司需要决定下四个季度的帆船生优 化产建量模。下 四个季度的帆船需求量分别是40条,60条,75条,25条, 这些需求必须按时满足。每个季度正常的生产能力是40 条帆船,每条船的生产费用为400美元。如果加班生产, 每条船的生产费用为450美元。每个季度末,每条船的 库存费用为20美元。假定生产提前期为0,初始库存为 10条船。如何安排生产可使总费用最小?
@gin(x1);@gin(x2);
•限定变量取整数值的语句为“@GIN(X1)”和 “@GIN(X2)”
•LINGO中函数一律需要以“@”开头。
@BIN(x)—限定变量x为0/1变量函数
@FREE(x)—设定变量x的取值范围为实数。
注意:如果0/1变量的个数很多,还可以采用循环语句设 定。
优化建模
如果有一个接近最优解的初值,对LINGO求解模型是 有帮助的。定义初值的格式为:
“attribute(属性) = value_list(常数列表);”
这与数据段中的用法是类似的。

用lingo求解线性规划问题

用lingo求解线性规划问题

用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求解线性规划问题

用LINGO求解线性规划问题

用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求解.。

LINGO求解非线性规划

LINGO求解非线性规划
2 ij
2
( yi 0 y j 0 vt(sini sin j ))
按题意,约束条件为:
2 dij (t )
2
64 1 i, j 6 , i j | i | / 6 , i 1,2,6
题目给出的目标是“要求飞机飞行方向角调整的 幅度尽量小”,,对调整的幅度,可以用向量i 的范数来表示,故目标函数有两者表示方式:
三、问题的分析 当前各架飞机的位置及飞行方向
160
5
140
3 1
120
100
80
2
60
4
40 20
0 0 20 40 60 80 100 120 140 160 180
画飞机位置图的MATLAB程序: x=[150,85,150,145,130,0]; y=[140,85,155,50,150,0]; scatter(x,y,30,'r','filled'); axis([-10,195,-10,170]); grid on; hold on; plot([0,160,160,0,0],[0,0,160,160,0],'b'); zt=[243,236,220.5,159,230,52]; zt1=zt*pi/180; b=40; x1=x+b*cos(zt1); y1=y+b*sin(zt1); for n=1:6 plot([x(n),x1(n)],[y(n),y1(n)],'k'); end 以文件名feiji.m存盘
if k~=j tx=x1(j)-x1(k); ty=y1(j)-y1(k); dl=sqrt(tx*tx+ty*ty); if dl<=8 fprintf('\ni=%d j=%d n=%d',j,k,n); end end end end x=x1;y=y1; pause(0.1); end 经过计算可知,如果不调整飞行方向,飞机6和5 先发生碰撞,然后6和3发生碰撞。

数学建模实验答案__数学规划模型二.

数学建模实验答案__数学规划模型二.

实验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解决线性规划问题的程序(经典)

2024/1/27
求解整数规划问题
Lingo支持整数变量的定义和求 解,能够处理复杂的整数规划 问题。
求解非线性规划问题
Lingo具备强大的非线性求解能 力,能够处理包含非线性目标 函数和约束条件的问题。
数据分析和可视化
Lingo提供丰富的数据分析和可 视化工具,帮助用户更好地理 解问题和分析结果。
03
目标函数
04
以总运费为目标函数,求解最优 运输方案。
Lingo程序实现
使用Lingo语言描述问题,调用 Lingo求解器求解。
2024/1/27
22
资源分配问题
问题描述
有若干项任务需要完成,每项任务需要一定数量 的资源,且每项任务完成后有一定的收益。问题 是如何分配有限的资源给各项任务,使得总收益 最大。
将数学模型中的目标函数 输入到Lingo程序中,注意 正确设置优化方向(最大 化或最小化)。
将数学模型中的约束条件 逐一输入到Lingo程序中, 确保语法和逻辑正确。
保存编写好的Lingo程序, 并点击运行按钮开始求解 线性规划问题。
2024/1/27
18
程序运行与结果分析
查看运行结果
分析结果合理性
Lingo软件会自动求解线性规划问题,并显 示运行结果,包括目标函数值、决策变量 取值等。
根据问题的实际情况,分析运行结果的合 理性,确保解符合问题的实际要求。
调整模型或参数
输出结果报告
如果运行结果不合理或不符合预期,可以 调整数学模型或参数设置,并重新运行程 序进行求解。
2024/1/27
将运行结果整理成报告形式,包括问题背景 、数学模型、运行结果、结果分析等部分, 以便后续参考和使用。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河北大学《数学模型》实验 实验报告
一、实验目的
学会利用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。

相关文档
最新文档