《数学建模算法与应用》司守奎著 阅读笔记。
一、线性规划
线性规划:在一组线性约束条件的限制下,求一线性目标函数的最大或最小值
一般标准型:
Matlab标准型:
Matlab求解线性规划的命令为:
[x,fval] = linprog(f,A,b,Aeq,beq,lb,ub)
可转化为线性规划的问题:
取,
二、整数规划
整数规划分为两大类:1)变量全限制为整数,纯整数规划;2)变量部分限制为整数,混合整数规划。
注:整数规划的最优解不能按照实数最优解简单取整而获得。
2.1 0-1型整数规划
0-1型整数规划是将某些变量
1)相互排斥的约束条件规划问题:
如果有
由于
引入一个充分大的常数
由(7)式知,当
2)固定费用问题和指派问题
见书P13,P14 ,不太好统一形式,不过多赘述了。。
2.2 蒙特卡洛法(随机取样法)
蒙特卡洛法是基于大量事件的统计结果来实现一些确定性问题的计算方法。
下面举一个实际编程案例:
例:
解:随机实验的思想为,在
clc,clear
x = unifrnd(0,12,[1,10000000])
y = unifrnd(0,9,[1,10000000])
pinshu = sum(y<x.^2 & x<=3) + sum(y<12-x & x>=3);
area_appr = 12 * 9 * pinshu/10^7
非线性整数规划问题:
非线性规划问题尚未具备一种通用成熟且准确的求解方法,但由于加入了整数限制,则非线性规划问题的解的个数也变为了有限个,有了蒙特卡洛法后,我们则可以用枚举法求出满意解。
具体编程案例见书P15。
2.3 整数线性规划的计算机求解
Matlab下混合整数线性规划的标准型为:
其中
Matlab求解整数线性规划的命令:
[x,fval] = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)
三、非线性规划
非线性规划:目标函数或约束条件包含非线性函数的规划问题。
非线性规划的数学模型一般形式:
其中:
注:若线性规划问题的最优解存在,则此最优解只能在可行域的边界上达到;而非线性规划的最优解可能在可行域的任意一点达到。
Matlab下非线性规划的标准形式:
其中
Matlab求解此标准型非线性规划问题的命令为:
[x,fval] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
其中,fun为用M文件定义的目标函数
3.1 无约束极值问题
无约束极值问题:即没有约束条件,仅求解目标函数极值的优化问题。
其数学模型可简单的表示为:
在Matlab中有两个专用函数求解该极小值问题,fminunc 和 fminsearch。
Matlab中 fminunc的基本命令:
[x,fval] = fminunc(fun,x0,options)
其中:fun是用M文件定义的函数。当fun只有一个返回值时,是函数值