运筹学第四章 整数规划和分配问题(新)a
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A aij mm
a11 a 21 ... am1
a12 a22 ... am 2
... a1m ... a2 m ... ... ... amm
1, 又设xij 0,
分配第i人去完成第j项任务;
(i, j 1,2,...,m) 不分配第i人去完成第j项任务。
三、0-1变量(或称逻辑变量)在模型中 的应用 整数规划模型对研究管理问题有重 要意义。很多不能归结为线性规划数学 模型的管理问题,却可以通过设置逻辑 变量建立起整数规划数学模型。
第二节 分配问题(指派问题)与匈牙利法 2-1 问题的提出及数学模型 假设有m项任务分配给m个人去完成,并 指定每个人完成其中一项,每项任务也只由 一个人完成,问应如何分配任务,才能使总 效率最高?(或总费用最少,花费的总时间 最少等等。) 设每个人完成不同任务的耗费见下面的 效率矩阵,通常要求aij≥0。
3. 对求最大值问题的处理 m 设目标函数为 可将其变换为
'
max z aij xij
i 1 j 1 m m
m
min z (aij ) xij
i 1 j 1
此时,效率矩阵的元素全成为负值,不符合要 求,根据定理1,令 M max a
ij
变换后的效率矩阵每行都加M即可。
例.用分枝定界法求下述整 数规划问题的最优解 max z 3x1 2 x2 2 x1 3x2 14 x1 0.5 x2 4.5 x , x 0, 且均取整数值 1 2
第四节 割平面法 一、割平面法的基本思想 先不考虑整数条件,用单纯形法求解其 松弛问题,若得整数解,即得整数规划最优 解。否则,增加线性约束条件(称为割平面 方程),将原问题的可行域切割掉一部分, 被切割掉的都是非整数解,再用单纯形法求 解新的线性规划问题,依次进行下去,直到 使问题的最优解恰好在可行域的某个具有整 数坐标的顶点上得到。
k
(0 f i 1) (0 f ik 1)
得 xi ( N ik f ik ) xk N i f i 即
k k
xi N ik xk N i f i f ik xk
上式中,要使等式左端为整数,则右端也必为 整数,由0<fi<1,故应有
f i f ik xk 0
作业:P125 4.1 4.2 4.3(a) 4.4
第四章 整数规划与分配问题
第一节 整数规划的特点及应用
一、整数规划的一般形式 定义:一部分或全部决策变量必须取整数 值的规划问题称为整数规划。不考虑整数 条件,由余下的目标函数和约束条件构成 的规划问题称为该整数规划的松弛问题。 若松弛问题是线性规划,则该整数规划称 为整数线性规划。
则分配问题的数学模型为
min z aij xij
i 1 j 1 m m
m xij 1(i 1,2,...,m) j 1 m xij 1( j 1,2,...,m) i 1 xij 0或1, (i, j 1,2,...,m)
2. 借助单纯形表法 对求解整数规划问题的松弛问题(LP问题)得到 最优单纯形表,设xi=bi 是最优解中取分数值(分数 部分最大)的基变量,则有
xi aik xk bi
k
将bi , aik 分解成整数部分和非负 真分数部分之和, 令 bi N i f i aik N ik f ik
第四步 为产生m个位于不同行不同列的0元素, 用定理一对效率矩阵进行调整,使之生成新的0 元素。方法: 1. 在效率矩阵未被直线覆盖的元素中找出最小 元素k; 2. 效率矩阵未被直线覆盖的行都减k; 3. 效率矩阵被直线覆盖的列都加k; 4. 转回第三步。
2-3 特殊情况的处理 1. 人数多于任务数,加虚拟任务。 设有n人,m项任务,n>m,则增加n-m项任务。 2. 人数少于任务数,加虚拟人员。 设有n人,m项任务,n<m,则增加m-n项任务。
例.用割平面法求下述整数 规划问题的最优解 max z 3x1 2 x2 2 x1 3x2 14 x1 0.5 x2 4.5 x , x 0, 且均取整数值 1 2
解: 1.将问题化为全整数规划问题;去掉变量的 整数要求,可得其松弛问题G0
max z 3x1 2 x 2 2 x1 3x 2 14 2 x1 x 2 9 x , x 0 1 2
匈牙利法的步骤: 第一步 效率矩阵每行都减去该行的最小元素; 第二步 效率矩阵每列都减去该列的最小元素; 此时,效率矩阵的每行每列都有0元素。
第三步 寻找位于不同行不同列的0元素,也就是 寻找能覆盖所有0元素的最少直线数。 方法: 1. 从只有一个0元素的行开始,对0元素打上( ) 号,然后对打( )的0元素所在列画一条直线, 依次进行到最后一行; 2. 从只有一个0元素的列开始,对0元素打上( ) 号, 然后对打( )的0元素所在行画一条直线, 依次进行到最后一列;
1 1 1 x2 x3 x4 2 2 2 2 1 1 1 即 x2 (0 ) x3 (1 ) x4 (2 ) 2 2 2 1 1 1 或 x2 x4 2 x3 x4 2 2 2 所以,割平面方程为 1 1 1 x3 x4 0 2 2 2 加松弛变量化为等式:
整数线性规划的一般形式 : n
max( 或 min)z c j x j
j 1 n ij j
a x
j 1
( 或 )bi (i 1,2,...m)
x j 0( j 1,2,...n),且部分或全部取整数
例1.求下述整数规划问题的 最优解 max z 3x1 2 x2 2 x1 3x2 14 x1 0.5 x2 4.5 x , x 0, 且均取整数值 1 2
1 1 1 x3 x4 x5 2 2 2 将上式加入松弛问题 G0的约束中,得一新的 LP问题G1,可将该式直接加入求 解G0的单纯形表 中,然后用对偶单纯形 法继续求解得到 G1的单纯 形表,见表4 5。
L1 , xi bi
L2 , xi bi 1
不考虑整数条件,用单纯形法求解两个 子问题,若得整数解或子问题的最优值小于 前面分支中已计算得到的所有整数解的目标 函数最大值,则停止分枝;否则,选取所有 子问题中目标函数值最大的问题作为L0继续 分枝,直至得到整数规划的最优解。 第三步 剪枝 在所有整数解中选取获得最大值的解为 最优解。
二、割平面法的步骤 第一步 将问题化为全整数规划问题; 第二步 加非负松弛变量,将约束条件化为等 式约束; 第三步 解相应的线性规划问题 1. 若线性规划的最优解是整数解,则得整数 规划的最优解,停止计算,否则转2; 2. 求解割平面方程作为附加约束条件,构成 新的线性规划问题,继续第三步。
三、割平面方程的求法 1.求解线性方程组法 设xi=bi 是整数规划的松弛问题(LP问题) 最优解中取分数值(分数部分最大)的基变量, 将xi=bi用非基变量表示
max z 3x1 2 x 2 14 2 x1 3x 2 x3 x4 9 2 x1 x 2 x , x , x , x 0 1 2 3 4
2. 加松弛变量,将约束化为等式约束;并用 单纯形法求解得到最优表;(表4-4)
3. 找出非整数解变量中非整数部分最大的 一个基变量(这里是x2),并写出这一行 的约束;
xi bi aik xk
k
将bi,aik分解成整数部分和非负真分数部分之 和:
xi Leabharlann Baidui aik xk
k
bi N i f i aik N ik f ik
k
(0 f i 1) (0 f ik 1)
得
xi N i f i ( N ik f ik ) xk
作业:P126 4.7(a) 4.8(a) 第三节 分枝定界法 一、分枝定界法的基本思想 先不考虑整数解的限制,用单纯形法求 解其松弛问题,如果求得的解恰好是整数解, 则得整数规划最优解,停止计算。否则,将 松弛问题分解为两个子问题(也称后继问 题),每个子问题都是在原松弛问题的基础 上增加一个变量取整数的约束条件,这样就 缩小了原来的可行域,然后用单纯形法求解, 直至得到最终结果。
不考虑整数要求时, 最优解为: X=(3.25 ,2.5)T Z=13 (见下页图解法) 考虑整数要求时,最优解为: X=(4 ,1)T Z=14 凑整 (3,2)可行,非最优,Z=13。 (4,3),(4,2),(3,3) 不可行
二、整数规划的分类 1. 全整数线性规划 决策变量全部取整数,约束系数和约束常数项 也取整数的整数线性规划。 2. 纯整数线性规划 决策变量全部取整数,约束系数和约束常数项 可取非整数的整数线性规划。 纯整数线性规划可化为全整数线性规划。 3. 混合整数线性规划 决策变量中有一部分取整数值,另一部分可取 非整数值的整数线性规划。 4. 0-1整数线性规划 决策变量只能取0或1的整数线性规划。
k
这就是所求的割平面方程(Gomory方程) 。
例 设某整数规划的松弛问题最优解中有x1 = 3.5 , x1的非基变量表达式为 x1=3.5 + 2.4 x4 – 3.6 x5 + 4 x6 =3+0.5+2 x4 +0.4 x4 - 4 x5 +0.4 x5 +4 x6 或: x1-3- 2x4+4x5-4 x6 = 0.5+0.4x4+0.4x5 由此可得割平面方程为 0.5 + 0.4 x4 + 0.4 x5≥ 1
k k
N i N ik xk f i f ik xk xi N i N ik xk f i f ik xk
k k
要使所有变量都取非负整数值,上式左 端必为整数,从而右端也必为整数,由于fi > 0 , fik ≥ 0 ,故应有
f i f ik xk 1
二、分枝定界法的步骤(最大值问题) 第一步 寻找替代问题并求解 设原整数规划问题为IP,其松弛问题为L0。 用单纯形法求L0,若L0无可行解,则IP也无可 行解,计算停止。若求得L0为整数解,则得IP 的最优解,停止。否则,转下一步; 第二步 分枝与定界 在L0的解中,任选一个不满足整数条件的 变量xi,设xi = bi ,则做两个子问题
k
这就是所求的割平面方程(Gomory方程)。
例 设某整数规划的松弛问题最优解中有x1=3.5 , x1在单纯形表中的约束条件为: x1-2.4x4 +3.6x5 -4x6=3.5
x1-3x4+0.6x4+3x5+0.6x5-4 x6=3+0.5
或: x1-3-3x4+3x5-4x6=0.5-0.6x4-0.6x5 由此可得割平面方程为 0.5 -0.6x4 -0.6x5≤0
2-2 匈牙利法 定理1.如果从分配问题效率矩阵(aij)的每一 行元素中分别减去(或加上)一个常数ui (称为该行的位势);从每一列中分别减去 (或加上)一个常数 vj (称为该列的位 势);得到一个新的效率矩阵bij,其中bij= aij - ui - vj ,则aij的最优解等价于bij的 最优解。 定理2. 若效率矩阵A的元素可分成0与非0两 部分,则覆盖所有0元素的最少直线数等于位 于不同行不同列的0元素的最大个数。
3. 重复1.、2.两个步骤,可能出现三种情况: (1)若能找到m个位于不同行不同列的0元素(即 带( )的0元素),则令(0)处的xij=1,求解结 束; (2)若有形成闭回路的0元素,则任选一个打 ( ),然后对每个间隔的0元素打( ),同时 对打( )的0元素所在行(或列)画一条直线。 (3)若位于不同行不同列的0元素[即带( )的0 元素]少于m,转第四步。