文章目录
- 引言
- 4.1 分枝定界方法求解整数规划问题
- 整数规划的分类
- 整数规划解法概述
- 分支定界法
- 4.2 0-1整数规划
- 0-1整数规划的数学模型
- 隐枚举法求解0-1规划问题
- 4.3 指派问题(分配问题)的匈牙利解法
- 指派问题的数学模型
- 指派问题的匈牙利解法
引言
规划中的决策变量(全部或部分)限制为整数,称为整数规划。根据变量的取值性质,又可以分为全整数规划,混合整数规划,0-1整数规划等。在整数规划中,如果所有变量都限制为整数,则称为纯整数规划;如果仅一部分变量限制为整数,则称为混合整数规划。整数规划的一种特殊情形是0-1规划,它的决策变量仅限于0或1。整数规划是数学规划中一个较弱的分支,目前只能解决中等规模的线性整数规划问题,而非线性整数规划问题,还没有好的办法。同时不同于前面的线性规划问题,整数规划和0-1规划问题至今尚未找到一般的多项式解法。
4.1 分枝定界方法求解整数规划问题
整数规划的分类
整数规划是决策变量部分或全部取整数的规划问题,有以下分类:
-
整数线性规划(ILP)
目标函数:线性
约束条件:都是线性的
决策变量:都是整数变量 -
混合整数线性规划(MILP)
目标函数:线性
约束条件:都是线性的
决策变量:包含两种类型 ①连续变量(可以取任意实数值)②整数变量(只能取整数值,通常包括二进制变量,即0或1) -
整数非线性规划(INLP)
目标函数:非线性
约束条件:可以是线性或非线性的
决策变量:都是整数变量 -
混合整数非线性规划(MINLP)
目标函数:非线性的
约束条件:可以是线性或非线性的
决策变量:包含两种类型 ①连续变量(可以取任意实数值)②整数变量(只能取整数值,通常包括二进制变量,即0或1)
整数规划解法概述
- 当人们开始接触整数规划问题时,常会有如下两种初始想法:因为可行方案数目有限,因此经过一一比较后,总能求出最好方案。仅限于决策变量很少的情况,一旦决策变量增多,无法求解
- 先放弃变量的整数性要求,解一个线性规划问题,然后用“四舍五入”法取整数解,这种方法,只有在变量的取值很大时,才有成功的可能性,而当变量的取值较小时,特别是0-1规划时,往往不能成功。
分支定界法
-
原问题的松驰问题:任何整数规划(IP),凡放弃某些约束条件(如整数要求)后,所得到的问题(P)都称为(IP)的松驰问题
最通常的松驰问题是放弃变量的整数性要求后,(P)成为线性规划问题。 -
分支定界法步骤:
求解原问题对应的松驰问题,可能会出现下面几种情况- 若所得的最优解的各分量恰好是整数,则这个解也是原整数规划的最优解,计算结束
- 若松驰问题无可行解,则原整数规划问题也无可行解,计算结束
- 若松驰问题有最优解,但其各分量不全是整数,则这个解不是原整数规划的最优解,转下一步
- 分支:从不满足整数条件的基变量中任选一个xl进行分枝,它必须满足 x 1 ≤ [ x 1 ] x_1≤[x_1] x1≤[x1]或 x 1 ≥ [ x 1 ] + 1 x_1≥[x_1]+1 x1≥[x1]+1中([ ]表示取整)的一个,把这两个约束条件加进原问题中,形成两个互不相容的子问题(两分法)
- 定界:把满足整数条件各分枝的最优目标函数值作为上(下)界,用它来判断分枝是保留还是剪枝
- 剪枝:把那些子问题的最优值与界值比较,凡不优或不能更优的分枝全剪掉,直到每个分枝都查清为止
-
例子
4.2 0-1整数规划
0-1整数规划的数学模型
隐枚举法求解0-1规划问题
4.3 指派问题(分配问题)的匈牙利解法
指派问题的数学模型
- 定义
有n项不同任务,恰好分配n个人分别完成,每个人完成各项任务的效率不同;现假设必须指派每一人去完成一项任务,需考虑怎样把n项任务指派给n个人,使得完成n项任务的总的效率最高,这就是指派问题
指派问题的匈牙利解法
数学建模(四)整数规划—匈牙利算法