整数规划有很多解法,下面将一一列出:
(1)分枝定界法——可求纯或混合整数线性规划(隐枚举法)
\quad (A)分枝。将可行解的空间反复地分割为越来越小的子集
\quad (B)定界。对每个子集内的解集计算一个目标下界
\quad (C)剪枝。若界限超出已知可行解集目标值的子集,不再分枝
(2)割平面法——可求纯或混合整数线性规划
(3)隐枚举法——求解“0-1”规划特殊情形
\quad (A)过滤隐枚举法(只检查变量取值的组合的一部分,就能求到问题的最优解。)
\quad (B)分枝隐枚举法
求解思路:
- 先试探性求一个可行解,易看出满足条件的一个可行解z0
- 因为是求极大值问题,故求最优解时,凡是目标值z<z0的解不必检验是否满足约束条件即可删除,因它肯定不是最优解,于是应增加一个约束条件(目标的下界)
- 改进过滤条件
- 由于对每个组合首先计算目标值以验证过滤条件,故应优先计算目标值z大的组合,这样可提前太高门槛,以减少计算量。
(4)匈牙利算法——解决指派问题(“0-1”规划特殊情形)
(5)蒙特卡罗法——求解各种类型规划
栗子:
已知非线性整数规划为:
M a x z = x ( 1 ) 2 + x ( 2 ) 2 + 3 x ( 3 ) 2 + 4 x ( 4 ) 2 + 2 x ( 5 ) 2 − 8 x ( 1 ) − 2 x ( 2 ) − 3 x ( 3 ) − x ( 4 ) − 2 x ( 5 ) Maxz=x(1)^2+x(2)^2+3x(3)^2+4x(4)^2+2x(5)^2-8x(1)-2x(2)-3x(3)-x(4)-2x(5) Maxz=x(1)