整数线性规划
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
混合整数规划(一部分变量限制为整数)
0-1规划(所有变量的取值都限制为0或1)
2、整数规划问题的模型
(1)、模型阐述 所谓整数规划是指具有下列模型的线性规划问题
( IP )
max z CX AX b s.t. X 0 X是整数
其中A矩阵、b、c向量中所有的元素数都是整数 或有理数.
分 枝
给定整数规划问题IP max z C T X
若x 的某个分量 xi 不是整数,
0
0
则将 IP分解为两个子问题
max z C X AX b X 0 X为整数向量 xi [ xi0 ]
T max z C X AX b X 0 X为整数向量 xi [ xi0 ] 1
割平面法在1958年由高莫瑞(R.E.Gomory)首先 提出,故又称Gomory割平面法。 在割平面法中.每次增加的用于“切割”的线 性约束称为割平面约束或Gomory约束。
构造割平面约束的方法很多,介绍最常用的一 种,它可以从相应线性规划的最终单纯形表中 直接产生。
实际解题时,经验表明若从最优单纯形表中选 择具有最大小(分)数部分的非整分量所在行构 造割平面约束,往往可以提高“切割”效果, 减少“切割”次数。
AX b X 0 X为整数向量
去掉“X为整数向量”的约 束,得到相应的线性规划问 题P0 max z C T X
T
AX b X 0
设x 0 是P0的最优解, 则z0 C T X是IP的一个上界。
T max z C X
分 枝 X
其实,如果不考虑(IP)问题中“X是整数” 的条件,则整数规划问题仍可看成一个一般的 线性规划(LP)问题:
max z CX AX b X 0
称为该整数规划问题的松弛问题(slack Problem).
(2)、整数规划的例子
例 投资问题 设某公司在m个时段里有n项投资计划,由于资金 限制不能全部进行。已知 1、第 i 个时段里该公司可动用的资金是bi, 2、第 j 项投资计划所需要的资金是aij ,能够得到 的利润是cij。 问该公司如何选择投资计划,使m个时段内的总 利润最大.
将P2又分解为问题 P3和P4;
如果 X 1是整数,则 z1 C T X 1 将是 IP的一个下界,这个子 域就查清了,不要再分 枝;
(2)相应子问题Pi无可行解. 此时称点Pi为分枝数的树叶.
定界:
假设分枝过程进行到某 个点 Pk,其最优值为 z k, 而此时所得到的满足整 数要求的最大目标值 z m z k, 则说明 Pk的子域上所有可行解 X的目标函数值均成立 C T X zk zm 无须再由 Pk 分枝,将 Pk 剪枝,并称 Pk 为死点,其余的 点称为活点,从活点可 以继续分枝。
当m>n时,由于虚拟工作无须人员去做,对于 极小化问题,可设其的效率为 0;对于极大化 问题,可设其效率是一个充分大的正数M。
当m<n 时,也可类似处理。
三、分枝定界法
1、分枝定界法概述 直接通过枚举法求整数最优解毫无实用应用价值.
分枝定界法是一种隐枚举法或部分枚举法,它不是 一种有效算法,是枚举法基础上的改进。它是一种 “巧妙”地枚举整数规划问题的可行解的思想来设 计算法的,其关键步骤是分枝和定界。
3、关于整数规划的解
整数线性规划及其松弛问题,从解的特点上来说, 二者之间既有密切的联系,又有本质的区别.
线性规划(LP)的任一整数可行解都是整数规划 (IP)的一个可行解,显然(IP)的所有解(包括 可行解)对应于(LP)的整数可行解。 进一步地,如果(LP)的最优解是一个整数解, 那么,这个解也一定是(IP)问题的最优解。 一般情况下,(LP)的最优解不会恰好是一个整 数解,自然就不是(IP)的最优解, ( IP)的最 优值不会优于(LP)的最优值. 当(LP)的最优解不是一个整数解时,一般情况下 不可以通过对非整数解进行“四舍五入”、 “凑整 法”得出(IP)问题的最优解。
4、几点说明 (1)、如果要求目标的最大值
max z cij xij
令
bij M cij
i
j
其中
M max{ cij }
效率矩阵可变为B,将分配问题转换为一个极 小化问题
min z
'
b x
ij i j
ij
(2)、如果分配问题中,人员数 m 不等于工作数 n 时,可以类似于不平衡运输问题建立模型的 方法,增加虚拟人员或虚拟工作。
记 z0 z
x1 4, x1 5
将问题B0分解为两个子问题B1和B2(分枝), 分别解B1,B2得 B1: x1=4, x2=2.10, z1=349 B2: x1=5, x2=1.57, z2=341
max z 40 x1 90 x2 max z 40 x1 90 x2 9 x1 7 x2 56 7 x 20 x 70 1 2 x1 4 B1 x1 , x2 0 9 x1 7 x2 56 7 x 20 x 70 1 2 x1 5 B2 x1 , x2 0
0 z 356
*
B1: x1=4, x2=2.10, z1=349 B2: x1=5, x2=1.57, z2=341 定界:由于z1 >z2,故令 z 349,所以 0 z* 349. 由于z1 >z2,故先对B1进行分解。对B1增加条件 得:B3:增加条件 x2 2; B4:增加条件 x2 3. 解B3,B4得: B3: x1=4, x2=2, z3=340 B4: x1=1.41, x2=3, z4=327 max z 40 x1 90 x2 9 x1 7 x2 56 定界: 340 z* 341
注:一般是选择不符合整数要求的最小的变量进行分枝.
2、算例
max z 40 x1 90 x2 9 x1 7 x2 56 7 x 20 x 70 1 2 x1 , x2 0 x1 , x2 integer
解:首先不考虑整数条件,解相应的线性规 划问题B0,得到最优解为: B0: 1 4.81, x2 1.82, z0 356 x
分枝定界法可用于解纯整数或混合的整数规划问题. 本世纪六十年代初由Land Doig 和Dakin等人提出. 由于这种方法灵活且便于用计算机求解,所以现在 它是解整数规划的主要方法。
其基本思想是:设有最大化的整数规划问题IP,与它 相关的线性规划问题为LP。从解问题LP开始,若其 最优解不符合IP的整数条件,则LP的最优目标函数必 定是IP的最优目标函数z*的上界,记作 z,而IP的任意 可行解必定是z*的下界,记作 z 下面将LP的可行域分成子区域(称为分枝),逐步 减小 z ,增大 z ,最终达到解决z*。
整数规划(Integer Programming)
王广民 中国地质大学 经济管理学院 wgm97@163.com
一、整数规划问题及其数学模型
1、概述
整数规划(Integer Programming,简记IP)主要是 指整数线性规划,是近二、三十年来发展起来的数 学规划当中的一个重要分支,讨论整数规划对研 究管理问题有重要意义, 比如项目投资问题、人 员分配问题等都可以化为一个整数规划问题(因 为如人员分配等的一些问题显然不可能出现小数 或者分数的情况),可分为: 纯整数规划(所有变量都限制为整数)
分枝定界法的理论基础:
1 2 k , i j (1) max cx max (max cx, max cx, , max cx)
x x1 x 2 x k
(2) 若 i j ,则 max cx max cx
xi xi x
解:设xij表示在第i个时段内对第j个投资计划的决策 变量 1 execute
xij 0 not execute
即当xij =1时,表示第i 个时段内选中并执行第j个投 资计划,当xij =0时,表示第i 时段内未选中第j个投 资计划.因此,可以建立该投资问题的数学模型为:
max z cij xij
例如 :求下列整数规划的最优解
maxz 3x1 2 x2 2 x1 3x2 14 x 0.5 x 4.5 1 2 x1 , x2 0 x1 , x2是整数
解:在先不考虑“x1,x2是 整数”的条件下,对相应 的线性规划问题易由图解 法得出最优解是: X=(3.25,2.5) 通过凑整法,可以得出4种 组合(4,3),(4,2),(3,3),(3,2)。 (4,3),(4,2),(3,3)都不是可行解,(3,2)虽是可行解,但不 是最优解 满足问题的整数最优解是(4,1) ,最优值是14。而最优解 (4,1)并不是相应线性规划的可行域的顶点。 结论:直接利用图解法(或者甚至利用单纯形法)无 法直接找出整数规划的最优解。
AX b 0 X为整数向量
若 X 2 不满足整数要求,设 2 分量 x k 不是整数,则按照
2 2 xk [ xk ]或xk [ xk ] 1
xi [ xi0 ]
T max z C X
AX b 如此继续下去。 X 0 X为整数向量 直到问题Pi的解是下面两 xi [ xi0 ] 1 种情况之一而结束. 相应的线性规划问题记 为P,P2。 1 (1)相应子问题Pi的最优 1 2 分别求出 P与P2的最优解 X 与X , 解是整数解; 1
二、Gomory割平面法
1、求解思路 割平面法是求解整数规划的最早提出的一个方法。
基本思想是:首先利用单纯形法(或者其它方法)求解整数 规划的松弛线性规划;经过判断,如果达不到变量的整数条 件,则针对某一个非整变量增加特定割平面,把LP问题中对 该变量的非整数部分给去除掉,保留了全部有整数解的部分, 同时经过切割后的可行域其凸性质不改变。 逐次反复上面的过程,只要整数规划问题有最优整数解,则 必定可以在经过若干次的切割后的凸可行域的顶点中找到最 优解。
1 xij 0
即xij =1表示分配Ai干工作Bj, xij= 0表示不分配Ai干 工作Bj。按问题要求,建立该问题的数学模型为:
max z cij xij
i 1 j 1
m
n
n xij 1 j 1 m xij 1 i 1 xij 0,1
max z 40 x1 90 x2 9 x1 7 x2 56 7 x1 20 x2 70 x , x 0 1 2
显然这个解不满足整数条件,这时的最优解356 就成为IP问题的上界。
而 x1 0, x2 0 显然是IP问题的一个整数可行解, 此时 z 0 z 即 0 z* 356 因 x1=4.81,对问题B0增加两个约束条件
i 1 j 1
m
n
n aij xij bi s.t. j i x 0,1 ij
i 1, 2, , m
例 工作分配问题 设某单位现有n个人员A1,A2……An来完成n项工作B1, B2, …Bn。按工作要求,每个人员需干一项工作,每 项工作也需一人去完成。已知人员Ai做工作Bj的效 率是cij。问应如何分配,才使总效率最好. 解:令xij表示对人员Ai完成工作Bj的决策变量
j
(3)如果存在 x 使得 max cx cx, 那么 max cx
x
一定不在i中
对百度文库求最大的整数规划,上界是通过松 弛方法得到,作用是判断最优,下界找 可行解得到,作用是剪枝。上界定不好 难以得到最优解,下界定不好难以剪枝, 仅仅是多计算几步。 对于不满足整数约束的变量就行分枝; 如何分枝和定界 上下界的作用
0-1规划(所有变量的取值都限制为0或1)
2、整数规划问题的模型
(1)、模型阐述 所谓整数规划是指具有下列模型的线性规划问题
( IP )
max z CX AX b s.t. X 0 X是整数
其中A矩阵、b、c向量中所有的元素数都是整数 或有理数.
分 枝
给定整数规划问题IP max z C T X
若x 的某个分量 xi 不是整数,
0
0
则将 IP分解为两个子问题
max z C X AX b X 0 X为整数向量 xi [ xi0 ]
T max z C X AX b X 0 X为整数向量 xi [ xi0 ] 1
割平面法在1958年由高莫瑞(R.E.Gomory)首先 提出,故又称Gomory割平面法。 在割平面法中.每次增加的用于“切割”的线 性约束称为割平面约束或Gomory约束。
构造割平面约束的方法很多,介绍最常用的一 种,它可以从相应线性规划的最终单纯形表中 直接产生。
实际解题时,经验表明若从最优单纯形表中选 择具有最大小(分)数部分的非整分量所在行构 造割平面约束,往往可以提高“切割”效果, 减少“切割”次数。
AX b X 0 X为整数向量
去掉“X为整数向量”的约 束,得到相应的线性规划问 题P0 max z C T X
T
AX b X 0
设x 0 是P0的最优解, 则z0 C T X是IP的一个上界。
T max z C X
分 枝 X
其实,如果不考虑(IP)问题中“X是整数” 的条件,则整数规划问题仍可看成一个一般的 线性规划(LP)问题:
max z CX AX b X 0
称为该整数规划问题的松弛问题(slack Problem).
(2)、整数规划的例子
例 投资问题 设某公司在m个时段里有n项投资计划,由于资金 限制不能全部进行。已知 1、第 i 个时段里该公司可动用的资金是bi, 2、第 j 项投资计划所需要的资金是aij ,能够得到 的利润是cij。 问该公司如何选择投资计划,使m个时段内的总 利润最大.
将P2又分解为问题 P3和P4;
如果 X 1是整数,则 z1 C T X 1 将是 IP的一个下界,这个子 域就查清了,不要再分 枝;
(2)相应子问题Pi无可行解. 此时称点Pi为分枝数的树叶.
定界:
假设分枝过程进行到某 个点 Pk,其最优值为 z k, 而此时所得到的满足整 数要求的最大目标值 z m z k, 则说明 Pk的子域上所有可行解 X的目标函数值均成立 C T X zk zm 无须再由 Pk 分枝,将 Pk 剪枝,并称 Pk 为死点,其余的 点称为活点,从活点可 以继续分枝。
当m>n时,由于虚拟工作无须人员去做,对于 极小化问题,可设其的效率为 0;对于极大化 问题,可设其效率是一个充分大的正数M。
当m<n 时,也可类似处理。
三、分枝定界法
1、分枝定界法概述 直接通过枚举法求整数最优解毫无实用应用价值.
分枝定界法是一种隐枚举法或部分枚举法,它不是 一种有效算法,是枚举法基础上的改进。它是一种 “巧妙”地枚举整数规划问题的可行解的思想来设 计算法的,其关键步骤是分枝和定界。
3、关于整数规划的解
整数线性规划及其松弛问题,从解的特点上来说, 二者之间既有密切的联系,又有本质的区别.
线性规划(LP)的任一整数可行解都是整数规划 (IP)的一个可行解,显然(IP)的所有解(包括 可行解)对应于(LP)的整数可行解。 进一步地,如果(LP)的最优解是一个整数解, 那么,这个解也一定是(IP)问题的最优解。 一般情况下,(LP)的最优解不会恰好是一个整 数解,自然就不是(IP)的最优解, ( IP)的最 优值不会优于(LP)的最优值. 当(LP)的最优解不是一个整数解时,一般情况下 不可以通过对非整数解进行“四舍五入”、 “凑整 法”得出(IP)问题的最优解。
4、几点说明 (1)、如果要求目标的最大值
max z cij xij
令
bij M cij
i
j
其中
M max{ cij }
效率矩阵可变为B,将分配问题转换为一个极 小化问题
min z
'
b x
ij i j
ij
(2)、如果分配问题中,人员数 m 不等于工作数 n 时,可以类似于不平衡运输问题建立模型的 方法,增加虚拟人员或虚拟工作。
记 z0 z
x1 4, x1 5
将问题B0分解为两个子问题B1和B2(分枝), 分别解B1,B2得 B1: x1=4, x2=2.10, z1=349 B2: x1=5, x2=1.57, z2=341
max z 40 x1 90 x2 max z 40 x1 90 x2 9 x1 7 x2 56 7 x 20 x 70 1 2 x1 4 B1 x1 , x2 0 9 x1 7 x2 56 7 x 20 x 70 1 2 x1 5 B2 x1 , x2 0
0 z 356
*
B1: x1=4, x2=2.10, z1=349 B2: x1=5, x2=1.57, z2=341 定界:由于z1 >z2,故令 z 349,所以 0 z* 349. 由于z1 >z2,故先对B1进行分解。对B1增加条件 得:B3:增加条件 x2 2; B4:增加条件 x2 3. 解B3,B4得: B3: x1=4, x2=2, z3=340 B4: x1=1.41, x2=3, z4=327 max z 40 x1 90 x2 9 x1 7 x2 56 定界: 340 z* 341
注:一般是选择不符合整数要求的最小的变量进行分枝.
2、算例
max z 40 x1 90 x2 9 x1 7 x2 56 7 x 20 x 70 1 2 x1 , x2 0 x1 , x2 integer
解:首先不考虑整数条件,解相应的线性规 划问题B0,得到最优解为: B0: 1 4.81, x2 1.82, z0 356 x
分枝定界法可用于解纯整数或混合的整数规划问题. 本世纪六十年代初由Land Doig 和Dakin等人提出. 由于这种方法灵活且便于用计算机求解,所以现在 它是解整数规划的主要方法。
其基本思想是:设有最大化的整数规划问题IP,与它 相关的线性规划问题为LP。从解问题LP开始,若其 最优解不符合IP的整数条件,则LP的最优目标函数必 定是IP的最优目标函数z*的上界,记作 z,而IP的任意 可行解必定是z*的下界,记作 z 下面将LP的可行域分成子区域(称为分枝),逐步 减小 z ,增大 z ,最终达到解决z*。
整数规划(Integer Programming)
王广民 中国地质大学 经济管理学院 wgm97@163.com
一、整数规划问题及其数学模型
1、概述
整数规划(Integer Programming,简记IP)主要是 指整数线性规划,是近二、三十年来发展起来的数 学规划当中的一个重要分支,讨论整数规划对研 究管理问题有重要意义, 比如项目投资问题、人 员分配问题等都可以化为一个整数规划问题(因 为如人员分配等的一些问题显然不可能出现小数 或者分数的情况),可分为: 纯整数规划(所有变量都限制为整数)
分枝定界法的理论基础:
1 2 k , i j (1) max cx max (max cx, max cx, , max cx)
x x1 x 2 x k
(2) 若 i j ,则 max cx max cx
xi xi x
解:设xij表示在第i个时段内对第j个投资计划的决策 变量 1 execute
xij 0 not execute
即当xij =1时,表示第i 个时段内选中并执行第j个投 资计划,当xij =0时,表示第i 时段内未选中第j个投 资计划.因此,可以建立该投资问题的数学模型为:
max z cij xij
例如 :求下列整数规划的最优解
maxz 3x1 2 x2 2 x1 3x2 14 x 0.5 x 4.5 1 2 x1 , x2 0 x1 , x2是整数
解:在先不考虑“x1,x2是 整数”的条件下,对相应 的线性规划问题易由图解 法得出最优解是: X=(3.25,2.5) 通过凑整法,可以得出4种 组合(4,3),(4,2),(3,3),(3,2)。 (4,3),(4,2),(3,3)都不是可行解,(3,2)虽是可行解,但不 是最优解 满足问题的整数最优解是(4,1) ,最优值是14。而最优解 (4,1)并不是相应线性规划的可行域的顶点。 结论:直接利用图解法(或者甚至利用单纯形法)无 法直接找出整数规划的最优解。
AX b 0 X为整数向量
若 X 2 不满足整数要求,设 2 分量 x k 不是整数,则按照
2 2 xk [ xk ]或xk [ xk ] 1
xi [ xi0 ]
T max z C X
AX b 如此继续下去。 X 0 X为整数向量 直到问题Pi的解是下面两 xi [ xi0 ] 1 种情况之一而结束. 相应的线性规划问题记 为P,P2。 1 (1)相应子问题Pi的最优 1 2 分别求出 P与P2的最优解 X 与X , 解是整数解; 1
二、Gomory割平面法
1、求解思路 割平面法是求解整数规划的最早提出的一个方法。
基本思想是:首先利用单纯形法(或者其它方法)求解整数 规划的松弛线性规划;经过判断,如果达不到变量的整数条 件,则针对某一个非整变量增加特定割平面,把LP问题中对 该变量的非整数部分给去除掉,保留了全部有整数解的部分, 同时经过切割后的可行域其凸性质不改变。 逐次反复上面的过程,只要整数规划问题有最优整数解,则 必定可以在经过若干次的切割后的凸可行域的顶点中找到最 优解。
1 xij 0
即xij =1表示分配Ai干工作Bj, xij= 0表示不分配Ai干 工作Bj。按问题要求,建立该问题的数学模型为:
max z cij xij
i 1 j 1
m
n
n xij 1 j 1 m xij 1 i 1 xij 0,1
max z 40 x1 90 x2 9 x1 7 x2 56 7 x1 20 x2 70 x , x 0 1 2
显然这个解不满足整数条件,这时的最优解356 就成为IP问题的上界。
而 x1 0, x2 0 显然是IP问题的一个整数可行解, 此时 z 0 z 即 0 z* 356 因 x1=4.81,对问题B0增加两个约束条件
i 1 j 1
m
n
n aij xij bi s.t. j i x 0,1 ij
i 1, 2, , m
例 工作分配问题 设某单位现有n个人员A1,A2……An来完成n项工作B1, B2, …Bn。按工作要求,每个人员需干一项工作,每 项工作也需一人去完成。已知人员Ai做工作Bj的效 率是cij。问应如何分配,才使总效率最好. 解:令xij表示对人员Ai完成工作Bj的决策变量
j
(3)如果存在 x 使得 max cx cx, 那么 max cx
x
一定不在i中
对百度文库求最大的整数规划,上界是通过松 弛方法得到,作用是判断最优,下界找 可行解得到,作用是剪枝。上界定不好 难以得到最优解,下界定不好难以剪枝, 仅仅是多计算几步。 对于不满足整数约束的变量就行分枝; 如何分枝和定界 上下界的作用