第4章 整数规划

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课堂练习: 某商业公司设计开办五家新闻商店 B1, B2 , B3 , B4 , B5 。为了尽早 建成营业,商业公司通知了 A1 , A2 , A3 , A4 , A5 五个建筑公司,以 便让每家新商店由一个建筑公司承建。 Ai 建筑公司对新商 店 B j 的建造费用的投标为 cij 均见表7-9。商业公司应当对 五家建筑公司怎样分配建造任务,才能使总建造费用最少?
(二)指派问题的基本特征
性质:特殊的运输问题、特殊0-1规划问题。
特征:(1)决策变量为0-1变量; (2) 发点数m = 收点数 n; (3)ai=bj=1 i,j=1,2,…,n ;
(三)指派问题的基本模型
min f ( x ) aij xij
i 1 j 1 m m
m xij 1 i 1,2, , m j m1 x 1 j 1,2, , m ij i 1 xij 0,1
引例:有四个熟练工人,他们都是多面手,有四项任务要他们完成。若 规定每人必须完成且只完成一项任务,而每人完成每项任务的工时 耗费如下表,问如何分配任务使完成四项任务的总工时耗费最少?
任务 工时 A 人员 甲 10 乙 5 丙 5 丁 2 任务 1
B 9 8 4 3 1
C 7 7 6 4 1
D 8 7 5 5 1
1 0*
逐 行 3 检 查 (0)
2 0 0 2 (0) 0 * 3 2 1 3 2 1 1 (0) 2 0 * 0 2 0 1 2 2 0* 1 2 2
逐 列 3 检 查 (0)
(3)重复1、2后,可能出现三种情况:
(0) 1 2 1
2 (0) 0 * 4 0 * 最 1 0* (0) 2 0 * 优 0 标 2 0 * 2 (0) 记 解 0 * (0) 1 1 1
逐 行 逐 列
答:最优分配方案为 x13= x21= x34 = x42 =1,其余为0, 即甲C,乙A,丙D,丁B,OBJ=20


结果仅出现 3 个标记 ( ),但却划出 4 条线, 说明什么?!
第三步:进一步变换(继续构造0元素)
在未划线的元素中找最小者,设为 对未被直线覆盖的各元素减去 所有未画横线的行都减去这 对两条直线交叉点覆盖的元素加上 个最小元素 所有画竖线的列都加上这个 只有一条直线覆盖的元素保持不变 最小元素 以上步骤实际上仍是利用 定理 1
一、 概念
整数规划: 要求决策变量取整数值的规划问题。
(线性整数规划、非线性整数规划等)
纯整数规划:在整数规划中,如果所有的变量都为非负整 数,则称为纯整数规划问题; 混合整数规划:如果有一部分变量为非负整数,则称之为 混合整数规划问题。 0-1变量:在整数规划中,如果变量的取值只限于0和1,这 样的变量我们称之为0-1变量。 0-1规划:在整数规划问题中,如果所有的变量都为0-1变 量,则称之为0-1规划。
定理 1(构造等效矩阵) 如果从效率矩阵{aij}mm中每行元素分别减去一个
i ( j ) 1
x
m
ij
常数 ui,从每列元素分别减去一个常数 x j ,所得新的效率矩阵{bij}mm的 v 1 Z' Z K
j 1 任务分配问题的最优解等价于原问题的最优解。证明: ij

m
最优解不变 定理 2 若方阵中一部分元素为零,一部分元素非零,则覆盖方阵内所有零元
1 当 第i个 工 人 分 配 去 做 第 任 务 j项 xij 0 当 第i个 工 人 未 分 配 去 做 第 任 务 j项 i, j 1,2,, m
任务分配问题模型特征:
• 运输问题是任务分配问题的松弛问题 • 任务分配问题不但是整数规划,而且是01规划 • 任务分配问题有2m个约束条件,但有且只有m个非零解 ,是自然高度退化的
运筹学
OPERATIONS RESEARCH
2013-8-14
1
第四章 整数规划与分配问题 (Integer Programming, IP)

整数规划的有关概念及特点


指派问题及匈牙利解法
整数规划的求解方法:分枝定界法、割平面法

整数规划的应用
2013-8-14
2
§1 整数规划的有关概念及特点
• 任务分配是匹配问题,有著名的匈牙利算法
二、匈牙利法
1、基本思想:
(1)匈牙利法基于任务分配问题的标准型,应满足三个条件:

目标函数要求min; 效率矩阵{aij}为方阵; 效率阵中所有元素aij≥0且为常数
(2)匈牙利定理
Z ' aij xij K
i 1 j 1
m
m
基本步骤:
33 (( ) 00) 11 00 * *
22 (00) () 33 22 (00) 22 () 11
00 * 44 * 4 1 0 11 0 11 0 00 * * 22 2 00 22 22 0
被标记,或出现 情况 a,或 情况 c 。
(5)出现c情况的处理方法(划线过程)行表示人,列表示任务 对没有标记 ( ) 的行打(没有安排任务) 对打 行上所有其它零元素0*对应的列打 (任务被安排) 再对打 列上有 ( ) 标记的零元素对应的行打 重复上面2、3步骤,直至无法继续 对没有打 的行划横线(已经安排任务),对所有打 的列
配卸车任务,可以使卸车所花费的总车辆小时最小?
i j
甲 乙 丙 丁
P1 4 2 4 3
P2 3 3 3 2
P3 4 6 5 6
P4 1 5 4 6
引例2:一份中文说明书需要译成英、日、德、俄四种文字( E,J,G,R),现有甲、乙、丙、丁四人可以完成上述任务 ,他们将说明书翻译成不同语种的文字所需时间如下表,且 一项任务只能由一人去完成,每人只能完成一项任务。问: 指派何人完成何工作,可使总花费时间最少?
22 2 22 2 00 0 00 0
00 0 11 1 22 2 11 1
列 4 列 00 列 4 0 标 4 标 记 标 记 0 00 记 0 0 0 2 2 00 2 0 0 0 0 11 1
(1) 列 3 2 变 2 换 0 3 1 0 1 3 0 1
0 2 2 2
0 1 0 2
第二步(最优解检验)检查覆盖所有零元素的直线是否为m条
划线规则
(1)逐行检查,若该行只有一个未标记的零,对其加( )标记,将 ( )标记 元素同列上其它的零打上*标记。若该行没有或有二个以上未标记的零, 暂不标记,转下一行检查,直到所有行检查完; (2)逐列检查,若该列只有一个未标记的零,对其加( )标记,将 ( )标记 元素同行上其它的零打上*标记。若该列没有或有二个以上未标记的零, 暂不标记,转下一列检查,直到所有列检查完;
i
j
甲 乙 丙 丁
E 2 10 9 7
J 15 4 14 8
G 13 14 16 11
R 4 15 13 9
(一)指派问题
(1)n项工作怎样分配给n个工作人员去完成, 可以使总花费时间最省; (2)n项加工任务怎样分配给n台机床去完成, 可以使总费用最低; (3)n条航线,怎样指定n艘班轮去完成航行任 务,可以使总运输费用最低; 。。。。。。 ——该类问题是运输问题的特殊形式,称为 指派问题。
2013-8-14
4
ห้องสมุดไป่ตู้
x2
x1 0.5x2 4.5
分析: 若当作一般线性规划求 解,图解法的结果如下。
1、非整数规划最优解 (3.25, 2.5) 显然不是整数规划的可行解。 2、四舍五入后的结果 (3, 3) 也不是整数规划的可行解。
(3.25, 2.5)
3、可行解是阴影区 域交叉点,可比较这 些点对应的函数值, 找出最优。4, 1) (
Ai
cij B j
A1 A2
A3
B1
4
7 6 6 6
B2
8
9 9 7 9
B3
7
17 12 14 12
B4
15
14 8 6 10



(2) 少于m条直线,到第三步;
打破僵局时选择不当的结果:
(0 ) (0) 1 1 0* 0* 0* 0*

打 打 破 破 僵 僵 局 局
0* 22 0* 2 0 3 (0) 3 3 4 0) 0 4 ((0) 2 0* 2 0*

00 ** 0 00 0 0* 555 5 666 6
2013-8-14 3
二、 整数规划的求解特点
求整数解的线性规划问题,不是用四舍五入法或去尾法对
性规划的非整数解加以处理就能解决的,用枚举法又往往 会计算量太大,所以要用整数规划的特定方法加以解决。
例: 求解下列整数规划:
max z 3x1 2 x2 2 x1 3x2 14 s.t x1 0.5 x2 4.5 x , x 0, 并取整数 1 2
素的最少直线数等于位于不同行、不同列的零元素的最多个数。 证明:略
(3)基本思路:

根据定理 1 变换效率矩阵,使矩阵中有足够多的零。若矩阵中存在 m 个 不同行不同列的零,就找到了最优解

若覆盖变换后的效率矩阵零元素的直线少于m 条,就尚未找到最优解, 设法进一步变换矩阵,增加新的零
2、计算步骤
划垂线(任务已经被安排)
划线后会出现两种情况: (1) 标记( )的零少于m个,但划有 m条 直线,说明矩阵中已存在 m 个不同行 不同列的零,但打破僵局时选择不合 理,没能找到。回到 b 重新标记;
2 ( 0) 0 * 3 2 1 ( 0) 3 1 ( 0) 2 0 * 0* 1 2 2
2 ((0) 0 * 2 (0) 0 * 2 0) 0 * 2 1 2 1 0 0 2 1 0 0 2 0 2 0 0 0 2 0 0 1 0 1 1 1 0 1 1
2 0*
打 破 4 僵 局 (0)
2 2 0 0
2 ( 0) 0 * 3 4 2 1 1 0 ( 0) 3 1 ( 0) 2 0 * 2 0* 1 0 2 2
2 2 0 0
0 1 2 1
0 0 0 1
第四步:抹除所有标记,回到第二步,重新标记;
2 x1 3x2 14
z 3x1 2 x2
2013-8-14
x1
5
§2 指派问题及匈牙利解法
一、指派问题及其模型特征
引例1:今有4辆装载不同货物的待卸车,派班员要分派给4个 装卸班组,每个班组卸1辆。由于各个班组的技术特长不同, 各个班组卸不同车辆所需时间如下表。问:派班员应如何分
人员 1 1 1 1
第一步 建立等效矩阵(行变换和列变换)
使等效矩阵每一行和每一列都至少有1个0
10 (5) 5 ( 2)
9 8 ( 4) 3
(7) 7 6 4
8 行 3 2 变 7 换 0 3 1 0 5 5 0 1
0 2 2 2
a、每行都有一个 (0),显然已找到最优解,令对应(0)位 置的 xij=1; b、仍有零元素未标记,此时,一定存在某些行和列同 时有多个零,称为僵局状态(m较大时可能出现),
因为无法采用 1、 2 中的方法继续标记。
c、所有零都已标记,但标有( )的零的个数少于m; (4)打破僵局。令未标记零对应的同行同列上其它未标记 零的个数为该零的指数,选指数最小的先标记 ( ),划去同 行同列其他0元素(标注*);采用这种方法直至所有零都
相关文档
最新文档