1. 线性规划问题(LP)
线性规划问题是要最小化或最大化一个受限于一组有限的线性约束的线性函数。
- Matlab 中规定线性规划的标准形式为
第一个式子为目标函数,s.t. 式是约束条件。其中 c 和 x 为 n 维列向量,A、Aeq 为适当维数矩阵,b、beq 为适当维数列向量
- 在 matlab 中,线性规划的函数为 linprog() ,有两种常用形式:
- X = linprog(f,A,b,Aeq,beq,LB,UB,X0)
- [X,FVAL]=linprog(f,A,b,Aeq,beq,LB,UB,X0)
返回的值 X 是向量 x 的值,FVAL 是目标函数的值,LB 和 UB 分别是变量 x 的下界和上界, 是 x 的初始值。
1.2 应用例子
- 求下列线性规划问题:
依据 Matlab 的标准,默认求解是求最小值,而本例是求的最大值,把 z 的系数变为相反数,即 -1 就好了,同理下面的大于等于号也做同样处理,然后没有上界 UB,下界 LB 为三个变量都为 0,也就是一个全零的矩阵 zeros(3, 1)
- 编写一个 .m 文件:
1.3 相关问题
- 运输问题(产销平衡)
- 指派问题(匈牙利算法)
- 对偶理论与灵敏度分析
- 投资的收益和风险
2. 非线性规划问题(NLP)
如果目标函数或者约束条件中至少有一个是非线性函数时的最优化问题就叫做非线性规划问题。
2.2 非线性规划的基本解法
- 罚函数法
- 近似规划法
近似规划法的基本思想;是将问题(3)中的目标函数f(x)和约束条件g(x);h(x)近似为线性函数,并对变量的取值范围加以限制。从而得到一个近似线性规划问题。再用单纯形法求解。把其符合原始条件的最优解作为(3)解的近似。
每得到一个近似解后,都从这点出发,重复以上操作。
2.3 相应问题
- 无约束问题(一维搜索方法、二次插值法、无约束极值问题的解法)
- 约束极值问题(二次规划、罚函数法)
- 飞行管理问题
3. 整数规划问题(IP)
数学规划中的变量(全部或部分)限制为整数时,称为整数规划,例如,所求的解是机器的台数,人数,车辆船只数等等。
- 整数规划的分类:
- 纯整数规划:全部决策变量只能取整数的线性规划
- 混合整数规划:决策变量中有一部分必须取整数,另一部分可以不取整数的线性规划
- 0-1整数规划:决策变量只能取0,1的线性变化
3.1 混合整数规划问题(MIP)
-
混合整数线性规划是整数线性规划模型的一种。
-
整数线性规划模型分类:
- 若I={0,1},J={1,…,n},即全部的决策变量仅取0或1,称之为0-1规划;
- 若J是{1,2…n}的非空真子集,即仅有部分决策变量要求取整数,称为混合整数线性规划;
- 若J={1,2,…n},即全部的决策变量都取整数,称为纯整数线性规划;
-
常用的整数规划问题解法有:
- 分枝定界法:可求纯或混合整数线性规划
- 割平面法:可求纯或混合整数线性规划
- 隐枚举法:用于求解0-1整数规划,有过滤法和分枝法。
- 匈牙利法:解决指派问题(0-1规划特殊情形)
- 蒙特卡罗法:求解各种类型规划
3.2 常用方法讲解
4. 二次规划问题(Quadratic Programming)
5. 混合整数二次规划问题(MIQP)
通过上面的定义我们不难看出混合整数二次规划问题本质就是一种混合整数规划问题的一种特例,其中他的目标函数为二次型,其约束条件满足混合整数规划问题。