多步决策过程(商人过河)
预测人口:
- 马尔萨斯指数增长模型
- 阻止增长模型Logistic模型
数学模型的分类:
应用领域 数学方法 表现特性 建模目的 了解程度 人口 初等数学 确定和随机 描述 白箱 交通 微分方程 静态和动态 优化 灰箱 经济 规划 离散和连续 预测 黑箱 生态 统计 线性与非线 决策 分类
司守奎:Chapter1线性规划 Chapter2整数规划 Chapter3非线性规划
姜启源:Chapter1建立数学模型 Chapter2初等模型 Chapter3简单的优化模型 Chapter4数学规划模型
优化模型:用数学建模的方法处理优化问题
步骤
- 确定优化目标
- 寻求的决策
- 决策受到的限制
- 数学工具(变量、常数、函数)的表示
优化模型的分类
静态优化模型:函数极值问题->微分
3.1/3.2优化模型的真正效果
敏感性分析,研究主要参数的微小变化对模型的影响
很多线性规划系数是易变的,故会出现:
- 当系数变化时,最优解会有什么变化
- 或系数在什么范围变化,对最优解的影响基本不变。
强健性分析
3.4 效用函数与效用最大化模型
3.5 消费者追求最大效用/生产者追求最大利润
最大利润模型与最优定价模型
经济学中将“导数”称为“边际”。
经济学定律:最大利润在边际产值等于边际成本时达到。
产值最大与费用最小的对偶关系。
Chapter4 数学规划模型
minzz=f(x),x=(x1,…,xn)T\s.t.gi(x)≤0,i=1,2,…,m
其中,x为决策变量f(x)为目标函数,g(x)≤0为约束条件。
分类:
多元函数条件极值问题:
决策变量个数n和约束条件个数m较大
最优解在可行域的边界上取得
数学规划:
线形规划:在一组线性约束的限制下,求一线性目标函数最大或最小的问题。
非线性规划NLP(non-linear Programming)
Matlab。司守奎Chapter3
整数规划
i.变量全是整数
ii.变量部分是整数
1.3 求解方法分类: (i)分枝定界法—可求纯或混合整数线性规划。 (ii)割平面法—可求纯或混合整数线性规划。 (iii)隐枚举法—求解“0-1”整数规划:
1过滤隐枚举法;
2分枝隐枚举法。 (iv)匈牙利法—解决指派问题(“0-1”规划特殊情形)。 (v)蒙特卡洛法—求解各种类型规划。
整数解一般可以采用美剧,但是不好穷举的时候,可以应用概率理论证明求得满意解。
整数规划采用模型软件LINGO
Chapter5微分方程模型
matlab中的各种类型Chapter2-Chapter4规划
线性规划的Matlab解法
Matlab中线性规划的标准型为:
minCTx
help linprog
利用matlab求解线性规划的简单例子1(ssk P4):
Todo:
maxz=2x1+3x2−5x3,
s.t. x1+x2+x3=7\2x1−5x2+x3≥10\x1+3x2+x3≤12\x1,x2,x3≥0
这里,先相应地化为标准式,寻找对应参数:
Tod0:
minz=−2x1−3x2+5x3,
1 | x是列向量,这里c也是列向量 |
线性规划Outline
- 基本matlab线性规划
- 运输问题->产销平衡:康-希表上作业法
- 指派问题->特殊的0-1规划,求解指派问题的匈牙利算法
- 对偶理论与灵敏度分析/参数线性规划
- 投资的收益和风险:
投资的收益和风险:
这是一个多目标线性规划模型:使净收益尽可能大,总体风险尽可能小。
模型
{max净收益min总体风险
模型简化
- 投资者承受风险无法无限大,给定风险界限a
- 投资者总盈利至少到达水平k之上
- 结合两者:投资者在权衡投资风险和预期收益两方面,对风险和收益赋予s和(1-S)的投资偏好系数。
模型简化后1 的线性规划求解:
minf=(−0.05,−0.27,−0.19,−0.185,−0.185)(x0,x1,x2,x3,x4)T
s.t. {x0+1.01x1+1.02x2+1.045x3+1.065x4=1\0.025x1≤a\0.015x2≤a\0.055x3≤a\0.026x4≤a\xi≥0(i=0,1,…,4)
因为这里a是任意给定的风险度,即threshold是如何的本在一开始没有一个准则, 故 *需要从a=0开始,以步长Δa=0.001 *进行循环搜索,编写matlab程序:
Step1:注意要将模型转换成matlab的linprog的形式:
X=linprog(f,A,b,Aeq,beq,LB,UB)
注意这里LB、UB是lower bound/upper bound.
故这题的标准形式。注意那个对角阵拼接的形式。
Chapter2 整数规划
LINGO软件
Chapter3非线性规划
名词与具体形式:
minf(x)s.t.hj(x)≤0,j=1,…,q\gi(x)=0,i=1,..,p
其中x=[x1,…,xn]T为模型NLP的决策变量。
f为目标函数
hj(j=1,…,q)称为约束函数,约束函数分为等式约束与不等式约束。
实际中的NLP问题
- 确定提供方案
- 提出追求目标
- 给出价值标准
- 寻求限制条件
线性规划和非线性规划的区别
如果线性规划的最优解存在,那么最优解只能在可行域的边界上达到。
而非线性规划的最优解如果存在 是在可行域的任意一点达到。
非线性规划的Matlab解法
这里,AX≤B,AeqX=Beq是线性约束
NONLCON
是用M文件定义的非线性向量函数C(x).Ceq(x)。
利用matlab求解非线性规划的简单例子1(ssk P33):
minf(x)=x21+x22+x23+8
matlab程序未复现。
无约束问题
一维搜索方法
当用迭代法求函数的极小点时,常常用到一维搜索,即沿某一已知方向求目标函数的极小点
一维极小化问题的形式如下:
mina<=t<=bf(t),即通过不断地缩短变量区间[a,b]的长度。
应该按照怎样的规则来选取探索点,使给定的单峰区间的长度能尽快的缩短?
Fibonacci法
Step1.确定单峰区间,给出搜索京都,确定搜索次数。
例子:试用fibonacci求f(t)=t2−t+2的近似极小点。
0.618法
二次插值法
对于之前所示的极小化问题,当f(t)在[a,b]上连续时,可以考虑用多项式插值来进行一维搜索。
在搜索区间中,不断用低次(不超过3次)多项式来近似目标函数,用插值多项式的极小点来逼近。
无约束极值
解析法
梯度下降Gradient Descent
按照基本迭代格式,每一轮从点xk出发沿最速下降方向-∇f(xk)作一维搜索。
例:用最速下降法求解无约束非线性规划问题
minf(x)=x21+25x22
x=(x1,x2)T,x0=(2,2)T
详见代码detaf.m和zuisu.m
原来matlab是写代码然后在命令行运行的呀!
Newton法
按照基本迭代格式,每一轮从点xk出发沿Newton方向作一维搜索。
例,用Newton法求解
min f(x)=x41+25x42+x21x22
x0=(2,2)T
优缺点
如果目标函数是非二次函数,一般地说,用Newton法通过有限轮迭代不一定能得到最优解。
Newton法的优点是收敛速度快,缺点是不好用,维数高贼难用
变尺度法
DFP法
既避免了二次导数矩阵和它的求逆,又比梯度法的收敛速度快,适合高维度问题。
直接法:目标函数不可导,导函数的解析式难以表示。
主要由基本搜索,加速搜索和调整搜索方向三部分组成。
利用matlab求解无约束问题
fminunc
和fminsearch
求解的问题形如下:
求函数的极小值
minxf(x),其中x可以是标量或向量。
fminuc
例子:求解f(x)=100(x2−x21)2+(1−x1)2的最小值
本质上是一个多元函数求极值的问题。
fminsearch
例子,就f(x)=sin(x)+3
约束极值问题:规划问题
二次规划:目标函数是x的二次函数,约束条件是线性的
罚函数法:转化为求解一系列无约束极值问题
SUMT:序列无约束最小化技术
内外罚函数。
Matlab求约束极值问题
fminbnd
/fmincon
/quadprog
/fseminf
/fminimax
fminbnd:求单变量非线性函数在区间上的极小值
minF(x),x∈[x1,x2]
Fseminf
fminimax
matlab优化工具箱
在命令行中输入ver
可以查看matlab已经安装的工具箱
优化工具箱:optimtool
神经网络工具箱:nnstart
曲线拟合工具箱cftool
Lingo/Lindo与matlab.