第五章-整数规划-第5节
运筹学课件第五章整数规划

第五章整数规划、学习目的与要求1、熟悉分支定界法和割平面法的原理及其应用;2、掌握求解0―― 1规划问题的隐枚举法;3、掌握求解指派问题的匈牙利法。
二、课时9学时第一节整数规划的数学模型及解的特点整数规划IP (integer programming):在许多规划问题中,如果要求一部分或全部决策变量必须取整数。
例如,所求的解是机器的台数、人数、车辆船只数等,这样的规划问题称为整数规划,简记IP。
松弛问题(slack problem):不考虑整数条件,由余下的目标函数和约束条件构成的规划问题称为该整数规划问题的松弛问题。
若松弛问题是一个线性规化问题,则该整数规划为整数线性规划(integer linear programming)。
一、整数线性规划数学模型的一般形式nmax(或min) z 八c j x jj a"nZ a ij X j <(或=,或X)b i (i =1,2,…,m)j =1s.t.」X j X0( j =1,2,…,n)X-X2,…,x n中部分或全部取整数I整数线性规划问题可以分为以下几种类型1、纯整数线性规划(pure integer linear programming):指全部决策变量都必须取整数值的整数线性规划。
有时,也称为全整数规划。
2、混合整数线性规划(mixed integer liner programming):指决策变量中有一部分必须取整数值,另一部分可以不取整数值的整数线性规划。
3、0—1型整数线性规划(zero—one integer liner programming):指决策变量只能取值0或1的整数线性规划。
二、整数规划的例子例1某服务部门各时段(每2h为一时段)需要服务员的人数见下表。
按规定,服务员连续工作8h (即四个时段为一班)。
现在求安排服务员的工作时间,使服务部门服务员总数最少?解:设在第时段开始上班的服务员的人数为。
问题的数学模式略。
运筹学课件第五章 整数规划

第一节 整数规划的数学模型
解的特点: 整数规划
松弛问题
max c x Ax b s .t . x 0, x为整数
max c x Ax b s .t . x 0
1、整数规划可行域是松弛问题可行域的子集
2、整数规划最优值小于等于松弛问题的最优值
第一节 整数规划的数学模型
P1 P2
P4
以上描述了目前解整数规划问题的一种思路。
第二节 分支定界法
思路:切割可行域,去掉非整数点。 解题步骤: 1、不考虑整数约束,解相应松弛问题。 2、检查是否符合整数要求,是,则得最优解,完毕。 否则,转下步。 3、任取一个非整数变量xi=bi,构造两个新的约束条 件:xi ≤[bi],xi≥[bi]+1,分别加入到上一个LP问 题,形成两个新的分枝问题。 4、不考虑整数要求,解分枝问题。若整数解的Z值 大于所有分枝末梢的Z值,则得最优解。否则, 取Z值最大的非整数解,继续分解,Go to 3。
序号 1 2 3 4 5 6 7
物品
重量 系数
食品
5 20
氧气
5 15
冰镐
2 18
绳索
6 14
帐篷
12 8
相机
2 4
设备
4 10
第三节
0-1型整数规划
解:令xi=1表示登山队员携带物品i,xi=0表示登 山队员不携带物品i,则得: Max Z=20x1+15x2+18x3+14x4+8x5+4x6+10x7
第三节
(x1,x2,x3) z值
0-1型整数规划
1 2 3 4 过滤条件
(0,0,0)
运筹学第五章 整数规划ppt课件

第二步:确定A的最优目标函数值z*的上下界,其上界即为 z ,再用观察法
找到A的一个整数可行解,求其目标函数值作为z*的下界,记为z。
第三步:判断 z 是否等于z 。若相等,则整数规划最优解即为其目标函
数值等于z的A的那个整数可行解;否则进行第四步。
2020/3/2
11
•割平面法,即通过添加约束条件,逐步切割可行区域的 边角余料,让其整数解逐步的露到边界或顶点上来,只要 整数解能曝露到顶点上来,则就可以利用单纯形法求出来。
•关键是通过添加什么样的约束条件,既能让整数解往边 界露,同时又不要切去整数解,这个条件就是Gomory约束 条件。 •Gomory约束只是割去线性规划可行域的一部分,保留了 全部整数解。
2020/3/2
7
7
第二节 割平面法
2x1 2x2 11
13/4,5/2
松弛问题 x1+x2≤5 第二次切割
2020/3/2
第一次切割 4,1
8
设纯整数规划
n
m a x Z c j x j j 1
s
.t
.
n j 1
aij x j
bi
x
j
0且
为
整
数
,
j
1,L
引入约束 xi ≤ M yi ,i =1,2,3,M充分大,以保证yi=0 xi=0 这样我们可建立如下的数学模型:
Max z = 4x1 + 5x2 + 6x3 - 100y1 - 150y2 - 200y3 s.t. 2x1 + 4x2 + 8x3 ≤ 500
运筹学 第四版 第五章 整数规划

货物/箱 甲 乙
托运限制/集 装箱
体积/米3 5 4
24
重量/百斤 2 5
13
利润/百元 20 10
表 3.1
货物/箱 甲 乙
托运限制/集 装箱
体积/米3 5 4
24
重量/百斤 2 5
13
利润/百元 20 10
解 设 x1,分x2 别为甲、乙两种货物的托运箱数.则这是一个
纯整数规划问题 .其数学模型为:
(pzreorgor-aomnme iinngte)ger linear
若不考虑整数条件,由余下的目标函数和约束条件构成
的规划问题称为该整数规划问题的松弛问题(slack
problem)
n
max Z (或 min Z ) c j x j j 1
整数线性规划数学
n
st. j1 aij x j
max Z 20 x1 10 x2
5x1 4x2 24 s.t 2x1 5x2 13
x1, x2 0, 整数
(1)
若暂且不考虑 x1, x取2 整数这一条件.则(1)就变为下列 线性规划 :
max Z 20 x1 10 x2
s.t
52xx11
4x2 5x2
24 13
x1, x2 0
目前,常用的求解整数规划的方法有: 分支定界法和割平面法; 对于特别的0-1规划问题采用隐枚举法和匈牙利法。
§2 解纯整数规划的割平面法
考虑纯整数规划问题
n
max Z cjxj j 1
n
aijxj bis.tj 1xj0
xj取整数
i 1, 2....m
j 1, 2...n j 1, 2,..n
n
max Z (或 min Z ) c j x j j 1
第5章 整数规划

第五章 整数规划整数规划(integer programming )亦称整数线性规划,它实质上是在线性规划的基础上,给一些或全部决策变量附加取整约束得到的。
在许多情况下,我们都可以把规划问题的决策变量看成是连续的变量;但在某些情况下,规划问题的决策变量 却被要求一定是整数。
例如,完成某项工作所需要的人数或设备台数,进入市场销售的商品件数,以及某一机械设备维修的次数等。
为了满足整数解的要求,最容易想到的办法就是把求得的非整数解进行四舍五入处理来得到整数解,但这往往是行不通的。
舍入处理会出现两方面的问题:一是化整后的解根本不是可行解;二是化整后的解虽是可行解,但并非是最优解。
因此,有必要另行研究整数规划的求解问题。
在线性规划的基础上,要求所有变量都取整的规划问题称为纯整数规划问题(pure integer programming );如果仅仅是要求一部分变量取整,则称为混合整数规划问题(mixed integer programming )。
根据整数规划的定义,可将整数规划的数学模型表示为:0,;{min ≥==X b AX CX w 且(部分)为整数}。
显而易见,整数规划的可行域是其相应线性规划可行域的子集。
§1分枝定界法分枝定界法(branch and bound method )是求解整数规划常用的一种方法,它具有灵活且便于用计算机求解等优点。
它的一般思想是利用连续的(线性规划)模型来求解非连续的(整数规划)问题。
假定k x 是一个有取整约束的变量,而其最优连续值*k x 是非整数;那么在][*k x (表示*k x 的取整值)和1][*+k x 之间不可能包括任何可行整数解。
因此,k x 的可行整数值必然满足][*k k x x ≤或1][*+≥k k x x 之一。
把这两个条件分别加到原线性规划的解空间上,产生两个互斥的线性规划子问题。
实际上这一过程利用了整数约束条件,在“分割”时删除了不包含可行整数点的部分连续空间(1][][**+<<k k k x x x )。
运筹学 第五章 整数规划

M是足够大的整数,y 是0-1变量
14
f(x)-5 0
f(x) 0
(1)
(2)
-f(x)+5 M(1-y)
f(x) My
(3)
(4)
当y=1时,(1)(3)无差别,(4)式显然成立;
当y=0时,(2)(4)无差别,(3)式显然成立。
以上方法可以处理绝对值形式的约束
f(x) a (a>0)
31
5.1 分枝定界法 (Branch and Bound Method)
原问题的松驰问题: 任何整数规划(IP),凡放弃某些约束 条件(如整数要求)后,所得到的问题 (P) 都称为(IP)的松驰问题。 最通常的松驰问题是放弃变量的整数性 要求后,(P)为线性规划问题。
32
去掉整数约束,用单纯形法 IP LP
23
解法概述
当人们开始接触整数规划问题时,常会有 如下两种初始想法: 因为可行方案数目有限,因此经过穷举 法一一比较后,总能求出最好方案,例如, 背包问题充其量有2n种方式,实际上这种 方法是不可行。
设想计算机每秒能比较1000000个方式,那 么比较完260种方式,大约需要360世纪。
24
先放弃变量的整数性要求,解一个 线性规划问题,然后用“四舍五入” 法取整数解,这种方法,只有在变量 的取值很大时,才有成功的可能性, 而当变量的取值较小时,特别是0-1规 划时,往往不能成功。
Yes xI* = xl*
xl*
判别是否整数解
No 去掉非整数域 多个LP ……
33
分枝定界法步骤
一般求解对应的松驰问题,可能会出现 下面几种情况:
若所得的最优解的各分量恰好是整数, 则这个解也是原整数规划的最优解,计 算结束。
第五章-整数规划

在E点取得最优解。即
x2
x1=2, x2 =3, Z(211)=-17
找到整数解,问题已探明,此枝 3
停止计算。
求(LP212),如图所示。此时
F在点取得最优解。即x1=3, x2
=2.5,
1
Z(212)=-31/2≈-15.5 > Z(211)
如对LP212继续分解,其最小值
也不会低于-15.5 ,问题探明,
例5.2 现有资金总额为B。可供选择的投资项目有n个,项目j 所需投资额和预期收益分别为aj和cj(j=1,2,..,n),此外由 于种种原因,有三个附加条件:
若选择项目1,就必须同时选择项目2。反之不一定; 项目3和4中至少选择一个; 项目5,6,7中恰好选择2个。 应该怎样选择投资项目,才能使总预期收益最大。
现求整数解(最优解):如用舍
入取整法可得到4个点即(1,3),(2 x2
⑴
⑵
,3),(1,4),(2,4)。显然,它们 都不可能是整数规划的最优解。 3
(3/2,10/3)
按整数规划约束条件,其可行 解肯定在线性规划问题的可行域 内且为整数点。故整数规划问题 的可行解集是一个有限集,如右
图所示。其中(2,2),(3,1)点的目 标函数值最大,即为Z=4。
考虑纯整数规划问题:
设其中aij和bi皆为整数(若不为整数时,可乘上 一个倍数化为整数)。
割平面法(纯整数)
割平面法是R.E.Gomory于1958年提出的一种方法, 它主要用于求解纯ILP。
割平面法是用增加新的约束来切割可行域,增加的新 约束称为割平面方程或切割方程。其基本思路为:
若其松弛问题的最优解X*不满足整数约束,则从X*的 非整分量中选取一个,用以构造一个线性约束条件,将其加 入原松弛问题中,形成一个新的线性规划,然后求解之。若 新的最优解满足整数要求,则它就是整数规划的最优解;否 则重复上述步骤,直到获得整数最优解为止。
第五章整数规划【模板】

第五章整数规划§1整数规划的数学模型及特点要求一部分或全部决策变量必须取整数值得规划问题称为整数规划。
其模型为:Max(或min)z=s.t若要求决策变量只能取值0或1的整数规划称为0-1型整数线性规划。
§5 指派问题一.指派问题的标准形式及数学模型在现实生活中,有各种性质的指派问题。
例如,有若干项工作需要分配给若干人(或部门)来完成;有若干项合同需要选择若干个投标者来承包;有若干班级需要安排在各教室上课等等。
诸如此类的问题,它们的基本要求是在满足特定的指派要求条件下,使指派方案的总体效果最佳。
由于指派问题的多样性,有必要定义指派问题的标准形式。
指派问题的标准形式(以人和事为例)是:有n个人和n件事,已知第i个人作第j件事的费用为,要求确定人和事之间的一一对应的指派方案,是完成这n件事的总费用最少。
为了建立标准指派问题的数学模型,引入个0-1变量:这样,问题的数学模型可写成(5.1)s.t (5.3)其中,(5.1)表示每件事必优且只有一个人去做,(5.2)表示每个人必做且只做一件事。
注:○1指派问题是产量()、销量()相等,且==1,i,j=1,2,…n的运输问题。
○2有时也称为第i个人完成第j件工作所需的资源数,称之为效率系数(或价值系数)。
并称矩阵C= =(5.5)为效率矩阵(或价值系数矩阵)。
并称决策变量排成的n×n矩阵X== (5.6)为决策变量矩阵。
(5.6)的特征是它有n个1,其它都是0。
这n个1位于不同行、不同列。
每一种情况为指派问题的一个可行解。
共n!个解。
其总的费用 z =C⊙X这里的⊙表示两矩阵对应元素的积,然后相加。
问题是:把这n个1放到X的个位置的什么地方可使耗费的总资源最少?(解最优)例1已知效率矩阵C=则X(1)=,X(2)=都是指派问题的最优解例12/P-149:某商业公司计划开办五家新商店。
为了尽早建成营业,商业公司决定由5家建筑公司分别承建。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4 0 2 3 5 1 0 7 4 0 4 1 0 4 3 0
5 4 ◎ ◎ 1 4 Ø 2 ◎ 4 3 Ø 3 7 1
找到 3 个独立零元素 但 m =3 <n=4
先列后行
Ø 0 6 0 ◎ Ø 0
13 ◎ 0 5 1
7 6 3 ◎ 0
◎ 0
9 2 Ø 0
0 0 1 0
பைடு நூலகம்
0 1 0 0
0 0 0 1
1 0 0 0
2 15 10 4 9 14 7 8
13 14 16 11
4 15 13 9
此题情况:位于不同行不同列的零元素正好有四个。
这个问题的约束条件如下: (1)一家公司只承建一个商店:
x11 x12 x13 x14 x15 1 x x x x x 1 21 22 23 24 25 x31 x32 x33 x34 x35 1 x 41 x 42 x 43 x 44 x 45 1 x51 x52 x53 x54 x55 1
2 4 9 7
0 13 11 2 6 0 10 11 0 5 7 4 0 1 4 2 4 2
0 13 7 0 6 0 6 9 0 5 3 2 0 1 0 0
第二步:试求最优解 在新矩阵中找尽可能多的独立 0元素,若能找出 n个独立 0 元素,就以这n个独立0元素对应解矩阵(xij)中的元素为1,其余 为0,这就得到最优解。找独立0元素,常用的步骤为: 第一步:从只有一个 0 元素的行 (列 )开始,给这个 0元素加圈, 记作◎。然后划去◎所在列(行)的其它0元素,记作Ø;这表示 这列所代表的任务已指派完,不必再考虑别人了; 第二步:给只有一个 0元素的列 (行 )中的 0元素加圈,记作◎; 然后划去◎所在行的0元素,记作Ø; 第三步:反复进行 (1), (2)两步,直到尽可能多的 0元素都被 圈出和划掉为止;
j 1 n i 2 j 1 n n
c1 j x1 j k x1 j cij xij
j 1 n j 1 i 2 j 1
n
n
n
cij xij k z k
i 1 j 1
n
例 1 、有一份中文说明书,需译成英、日、德、俄四 种文字。现有甲、乙、丙、丁四人,他们将中文说明 书翻译成不同语种的说明书所需时间如表所示。问应 指派何人去完成何种工作所需总时间最少?
◎ 1 Ø 4 独立零元素的个数 2 ◎ 4 3 m 等于最少直线数 √ l,即 3 7 1 Ø l=m=3<n=4 √
第四步:变换矩阵(bij)以增加0元素
在没有被直线覆盖的所有元素中找出最小元素,然后打 √ 各行都减去这最小元素;打 √ 各列都加上这最小元素 (以保证系数矩阵中不出现负元素)。新系数矩阵的最 优解和原问题仍相同。转回第二步。
任务
人员
A
6 4 3 5
B
7 5 1 9
C
11 9 10 8
D
2 8 4 2
甲 乙 丙 丁
求解过程如下:
第一步,变换系数矩阵: 6 7 11 2 2 4 4 5 9 8 4 0 (cij ) 3 1 10 4 1 2 5 9 8 2 2 3 第二步,试指派: 4
此时得问题的最优解为:
minZ=4+4+9+11=28(小时)
变换过程中的三种可能情况:
①恰好的零:重复系数矩阵的每行都有一个加圈◎的零元素, 即加圈◎元素个数 =n,且位于不同行不同列,只要令对应加 圈◎零元素的xij=1,就找到了问题的最优解。(如前例)
变换过程中的三种可能情况:
②较多的零:加圈◎的零元素个数小于n,但未被划去的零元素之间存在闭合 回路,此时沿着闭合回路的走向,对每个间隔的零元素加圈◎ ,使得加圈◎ 元素个数=n,然后对所有加圈◎零元素所在列画一条直线。 min (0) 0 0 2 (0) 0 3 3 5 3 3 (3) a -行min 1 (0) 0 3 0 3 (2) 2 5 2 2 ij 0 4 0 5 1 5 1 6 1 (1) 0 0 2 (0) 6 4 4 6 10 4 (4) min 0 0 0 0 0 aij-列min 1 (0) 0 0 (0) 0 2 0 0 3 (0) 0 4 0 5 0 2 (0) 6
◎
5 4 Ø
3 ◎ 2 2 3 ◎ 2 2
4 3 1 Ø ◎ 4 6 0
◎
5 4 Ø
3 0 2 2
3 0 0 5 0 4 4 0 6 0 4 1
0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0
15
4 3 1 Ø ◎ 4 6 ◎
◎
5 4 Ø
得到4个独立 零元素, 所以最优解 矩阵为:
其他情况:
(1)若m项任务分配给n个人完成
m > n,加上(m-n)个行向量,这些行元素均为 0,构成一个m阶方阵,再求解;
m < n,加上(n-m)个列向量,这些列元素均为 0,构成一个n阶方阵,再求解
变换过程中的三种可能情况:
③较少的零:矩阵中所有零元素元素或被划去,或加圈◎号, 但加圈◎的零元素个数≤n; 例、有一份中文说明书,需译成英、日、德、俄四种文字, 分别记作A、B、C、D。现有甲、乙、丙、丁四人,他们将 中文说明书译成不同语种的说明书所需时间如下表所示, 问如何分派任务,可使总时间最少?
变换矩阵(bij)以增加0元素:没有被直线覆盖的所有元素中的最 小元素为1,然后打√各行都减去1;打√各列都加上1,得如下 矩阵,并转第二步进行试指派:
4 ◎ 2 3
5 4 ◎ √ 1 Ø 4 ◎ 4 3 √ Ø 7 1 √
3 ◎ 2 2
4 3 1 Ø ◎ 4 6 0
1 i=1,2,3,4,5) 简写为: xij (
j 1
5
(2)一个商店只能由一家公司承建,即
x11 x 21 x31 x 41 x51 1 x x x x x 1 12 22 32 42 52 x13 x 23 x33 x 43 x53 1 x14 x 24 x34 x 44 x54 1 x15 x 25 x35 x 45 x55 1
新商店 建筑公司 A1 A2
B1
4 7
B2
8 9
B3
7 17
B4
15 14
B5
12 10
A3
A4 A5
6
6 6
9
7 9
12
14 12
8
6 10
7
10 6
解 引入0-1变量xij (i, j=1,2,3,4,5),令:
1,当Ai 承建B j时, xij 0,当Ai 不承建B j时。
每一项工作只能分配给一个人; 每一个人只能并且必须接受一项工作
例 某商业公司计划开办五家新商店。为了尽早建成营业 ,商 业公司决定由 5 家建筑公司分别承建。已知建筑公司 Ai 对新商 店Bj的建造费用的报价(万元)为Cij,见下表。商业公司应当对 5家建筑公司怎样分配建造任务,才能使总的建造费用最少?
任务
人员
A 2
10 9 7
B 15
4 14 8
C 13
14 16 11
D 4
15 13 9
甲
乙 丙 丁
第一步:变换成本矩阵,使每行每列中至少出现一 个0元素
(1) 令(cij)的每行元素都减去该行的最小元素;
(2) 再从所得新系数矩阵的每列元素中减去该列的 最小元素。
2 10 9 7 15 4 14 8 13 14 16 11 4 15 13 9
(2)目标函数求极大
作一个新矩阵B=(bij),使bij=M-cij(通常取 M=max(cij))
练习:
费 工作
用
A
人员
B
C
D
E
甲
乙 丙
二、匈牙利法
库恩(W.W.Kuhn)于1955年提出了指派问题的解法,他引用了匈牙利数学 家康尼格(D.Konig)的关于矩阵中独立零元素的定理:系数矩阵中独立0元素 的最多个数等于能覆盖所有零元素的最小直线数,习惯上称之为匈牙利解法。
分配问题最优解的以下性质:若从成本矩阵(cij )的某行(或某列)各元素 分别减去该行(列)的最小元素,得到新矩阵(cij‘)。那么以(cij')为系数矩阵 求得的最优解和利用原系数矩阵求得的最优解相同。
成本矩阵:(cij )->设成本矩阵第一行各元素均减去同一个数k,得到的新矩阵 记为(c'ij )
j c1 j k ( j 1,2,, n); cij cij (i 2,3,, n; j 1,2,, n) c1
n n i 1 j 1 n
xij z cij (c1 j k ) x1 j cij xij
0
相反
( i , j =1.2. …n )
min z cij xij
i 1 j 1 n n
其数学模型为:
n xij 1(i 1,2, , n) j 1 n xij 1( j 1,2, , n) i 1 xij 0或1(i, j 1,2, , n)
时间表
任务 人员 甲 乙 丙 丁 E 2 10 9 7 J 15 4 14 8 G 13 14 16 11 R 4 15 13 9
分配表
任务 人员 甲 乙 丙 丁
合计
E 0 0 1 0 1