推荐书:1.数学建模与数学实验(第三版)--汪晓银。2.数学建模算法与应用(第三版)--司守奎
第一层次(入门):EXCEL的规划求解/SPSSpro平台https://www.spsspro.com
第二层次(专业):LINGO软件
第三层次(精通):MATLAB/Python软件。
学习视频
【在线spss数据分析】SPSSPR0规划求解使用示例教程 哩哩 bilibili(不会弄链接)
内容说明
1 什么是数学规划 2 连续性线性规划 3 敏感性分析 4 整数线性规划 5 0-1规划
lingo:变量名不区分大小写,每个语句以分号结尾,目标函数不一定写在约束条件前。
一个模型写在一个窗口里,不能再同一个里面
5.1什么是数学规划
约束条件和目标函数无关
俗称最优化,指在一系列客观或主观限制条件下,寻求合理分配有限资源使所关注的某个或多个指标达到最大(或最小)的数学理论和方法。
约束条件不涉及“最。。。”,“最”就是目标函数了。约束条件就是找规则
约束条件(2)所确定的x的范围称为可行域feasible region,满足(2)的解x称为可行解feasible solution,同时满足(1)(2)的解x称为最优解Optimal solution,整个可行域上的最优解称为全局最优解global optimal solution,可行域中某个领域上的最优解称为局部最优解local optimal solution。最优解所对应的目标函数值称为最优值optimum。
分类
(一)按有无约束条件可分为:
1.无约束优化unconstrained optimization 。
2.约束优化constrained optimization。大部分实际问题都是约束优化问题。
(二)按决策变量取值是否连续可分为:
1.数学规划或连续优化。
可继续划分为线性规划(LP)Linear programming和非线性规划(NLP)Nonlinear programming。在非线性规划中有一种规划叫做二次规划(QP)Quadratic programming,目标为二次函数,约束为线性函数。
2.离散优化或组合优化。
包含:整数规划(IP)Integerprogramming,整数规划中又包含很重要的一类规划:0-1(整数)规划Zero-one programming,这类规划问题的决策变量只取0或者1。
(三)按目标的多少可分为:
1.单目标规划。
2.多目标规划。
(四)按模型中参数和变量是否具有不确定性可分为
1.确定性规划。
2.不确定性规划
(五)按问题求解的特性可分为:
1.目标规划 。
2.动态规划。
3.多层规划。
4.网络优化。
5.2连续性线性规划
一般线性规划问题都可以通过引入非负的松弛变量slack variable与非负的剩余变量surplus variable的方法化为标准形式(约束全是等约束)。
线性规划问题的可行域feasible region是一个凸集convex set(任意两点的连线上的点都在区域内部可以看作是没有凹坑的凸多面体),所以最优解Optimal solution/point在凸多面体的某个顶点上达
求解方法:单纯形算法simplex method。
连续线性规划问题的性质
1.比例性:每个决策变量对目标函数以及右端项的贡献与该决策变量的取值成正比。2.可加性:每个决策变量对目标函数以及右端项的贡献与其他决策变量的取值无关。3.连续性:每个决策变量的取值都是连续的。
要解决的问题的目标可以用数值指标反映;对于要实现的目标有多种方案可选择;有影响决策的若干约束条件
例一:运输问题
有两个粮库,向三个粮站B1,B2,B3调运大米,两个粮库现存大米分别为4吨,8吨,三个粮站至少需要大米分别为2,4,5吨,两个粮库到三个粮站的距离(单位:公里)如下,问如何调运使运费最低。
目标:实际运输的距离和最小
!为注释
英文实心点.
A:粮库的存粮量
B:粮站需求量
定义两个变量和一个变量的定义形式不同
DATE:数据段(输入知道的常量)
不区分行和列,只有一维二维的区别
【OBJ】为目标函数的最优值
SUM求和,对i求和,又套一个对j求和
FOR:对每一个
例二:阶段生产问题
目标:生产成本和存储费最少。让我们决定生产数量,设为X(什么不知道就设)
LINGO
解 假定1月初无库存,4月底买完,当月生产的不库存,库存量无限制。
模型I:设Xi为第i月产量,di为销售量,ei为存储费,ci为单位成本,
SPSSPRO
c\x\e\d是
data:数据部分,模型可以不懂,改变数据就行
#逻辑运算符:就相当于小于号(<号是关系运算符)
小技巧:没有数据的不能空着,填什么取决于问题问什么。比如求最小值就不能填0,填一个比现在表格上所有值都大的数。求最大值则相反。
一半矩阵:可以填一半的数据也可以像上面的“小技巧”一样写
5.3敏感性分析(灵敏度分析)
某一个数据发生改变时对整个模型的影响。只适用于连续性线性规划
利润指标参数发生变化时目标的变化
占比分类表:我要生产一个产品1,要一台设备,四个原材料A
灵敏度分析只适用于1.线性规划(连续变化)范畴内,且2.其他参数都不变只有一个参数变化。
例四:加工奶制品的生产计划
第一行目标函数的值,他不写所以从数字2开始。DUAL PRICES是每增加一个变量,目标函数的变化值。增加一个牛奶,可以增加48元,多增加一个劳动时间多获利2元。
我们想多买点奶,就想知道这个48会不会变,就要知道48不变的范围在哪,在下图的ALLOWABLE INCREASE。最多在获利48的时候买10个,还要不要买要看之后48会变成多少。
5.4整数规划
不能做敏感性分析
例五:下料问题
思考设什么(选择什么)
合理的切割模式一共7种(如下表):在这7种中选择(决策变量的选择是七种方法)
这两个有什么区别:他只要50根4米的,我要切出来第51根4米的算不算余料。对于第一种来说不算余料(余料要比4、6、8小)多切几根无所谓。对第二种来说算余料。
如果题目中没有提等号的事情,所有的符号写成不等号。(等号就只有那条边界线了)
5.5 0-1规划
从选择几个到选不选择(选择1,不选择0),但是它给了选择只有选和不选,所以不能说投资投一半,会减少解决问题的办法。
弊端(前提):所有的备选项都已经设定好了,所以可能会有遗漏。所以要让备选项囊括所有可能
约束条件不应该有顺序的安排
约束条件就是找规则:对面试者:我一定是按照初试、复试、面试的顺序;对公司:秘书、主管、经理那里只有一个人在。
第二个约束条件不是,这个等式默认了同学的顺序是 1,2,3,4但是不用按照此顺序。
第二个约束条件的意思(看不懂可以把Yik=0和Yik=1代入式中在思考):M是足够大的正常数。<=M没有起到任何限制的作用(废话模型) 。Yik=0就等价于.第k个人开始第j面试的时间比第i个人结束第j面试的时间靠后。
不相容条件的建立方法就是第二个的不等式组(上图中)