运筹学基础-整数规划(2)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、用计算机模拟穷举法
maxZ= 3x1 -2x2 +5x3 0-1规划模型为: 规划模型为: x1 +2x2-x3 ≤2 x1 +4x2+x3 ≤4 x1 + x2 ≤3 4x2+x3 ≤6 x1 , x2 , x3 =0或 1 ( (x1 , x2 , x3 )=(0,0,0) 列表进行枚举: ( (x1 , x2 , x3 )=(1,0,0) ( (x1 , x2 , x3 )=(0,1,0) (x1 , x2 , x3 )=(0,0,1) ( ( (x1 , x2 , x3 )=(1,1,0) (x1 , x2 , x3 )=(1,0,1) ( ( (x1 , x2 , x3 )=(0,1,1) (x1 , x2 , x3 )=(1,1,1) (
x j 只取 0或1, j = 1,2, L , n
(3)先看所有变量都取 0 时是否满足所有约束条件,如果满 足,则已经得到最优解。 如不满足,把问题分支成两个子问题。分支的方法是: 固定变量,其余变量称为自由变量 自由变量。 指定一个变量,称为固定变量 固定变量 自由变量 在两个子问题中,一个子问题中的固定变量取 1,另一个子问 题中的固定变量取 0 。每个自由变量都取 0。检验由此得到的 这组变量值是否满足所有约束条件: 如满足,则得到一个可行解,并得到 0-1 规划最优值的一 个上界 上界。 上界 如果某些约束条件未满足,则按照与分支定界法类似的方 法再判断是否要继续分支及如何分支。如果需要继续分支,则 固定变量,向下把子问题分成自由变量更少 再指定一个变量为固定变量 固定变量 自由变量更少 的子问题;直到不需分支时,即求得了最优解。
0 13 aij-列min 6 (0) 0 (0) 5 0 0 1 (0) 7 0 6 9 3 2 0 (0) 0 2 15 10 4 9 14 7 8 13 14 16 11 4 15 13 9
(a)从行开始,对只有一个的零元素,打上(),用直线划去所在列 (b)再从列开始,对只有一个的零元素,打上(),用直线划去所在行
任务 人员 甲 乙 丙 丁
合计
分配表
E 0 0 1 0 1 1 J 0 1 0 0 1 G 0 0 0 1 1 R 1 0 0 0
合计
1 1 1 1
即 x14=1,x22=1,x31=1,x43=1, 其余xij=0
此时得问题的最优解为: 此时得问题的最优解为:
minZ=4+4+9+11=28(小时)
∑ ∑
指派问题的解法--匈牙利法 指派问题的解法--匈牙利法 --
从时间表(效率表)出发构建效率矩阵 效率矩阵。 效率矩阵
时间表
任务 人员 甲 乙 丙 丁 E 2 10 9 7 J 15 4 14 8 G 13 14 16 11 R 4 15 13 9
2 15 10 4 9 14 7 8
13 14 16 11
4 15 13 9
本题要求,在效率表中找出位于不同行不同列的4个数字, 得到一分配方案,使得该方案的时间总和为最小。 一个比较有效的方法是“匈牙利法” “匈牙利法” 先介绍几个定理
基本原理:
定理1:如果从效率矩阵{aij}m×m中每行元素分别减去一 个常数 ui,从每列元素分别减去一个常数 vj ,所得新 的效率矩阵{bij}m×m的任务分配问题的最优解等价于原问 题的最优解。 证明:略 定理2:若方阵中一部分元素为零,一部分元素非零,则 覆盖方阵内所有零元素的最少直线数等于位于不同行、 不同列的零元素的最多个数。 证明:略
(1,0,0)
(1,1,0)
上述 P4和PHale Waihona Puke Baidu 在不考虑约束条件时的目标函数值(分别为 3 和 4) 劣于的目标函数值 2,因而 P4和P5 不需要再分支。 P8 即为最优解。 即最优解为:X=(0,0,1)MinZ*=2
求解过程可用图表示如下:
minZ= 4x1+3x2 +2x3 2x1 - 5x2+3x3 ≤4 (1) - 4x1 - x2 - 3x3 ≤-3 (2) (3) - x2 - x3 ≤ - 1 x1 , x2 , x3 =0或 1
3、利用EXCEL计算0-1型整数规划 、利用EXCEL计算0
0-1型整数规划练习
【例1】背包问题 maxZ= 12x1+12x2 +9x3 +16x4 +30x5 3x1 +4x2+3x3 +4x4 +6x5 ≤16 x1 , x2 , x3 ,x4 ,x5 =0或 1 【例2】 0-1型整数规划模型为: 型整数规划模型为: maxZ= 8x1+2x2 -4x3-7x4 -5x5 3x1 +3x2+x3 +2x4 +3x5 ≤4 5x1 +3x2-2x3 -x4 +x5 ≤3 x1 , x2 , x3 , x4 , x5 =0或 1
隐枚举法的步骤是:
(1)化问题为0-1规划隐枚举法的标准形式:
MinZ = ∑ c j x j
i =1 n
s.t.∑ aij x j ≤ bi i = 1,2, L , m
j =1
n
这里要注意: 标准形式的目标函数中各系数cj必须是非负数(不是非负数, 令变量x’j=1-xj); 所求的问题必须是求最小值的形式; 所有不等式约束都是≤形式。 (2)在标准形式下,各 0-1 变量必优先考虑取 0
【例 2 】求解 0-1 规划最优解
minZ= 4x1+3x2 +2x3 2x1 -5x2+3x3 ≤4 (1) 4x1 + x2+3x3 ≥3 (2) x2+x3 ≥1 (3) x1 , x2 , x3 =0或 1
解: 先将问题化为如下的标准问题
minZ= 4x1+3x2 +2x3 2x1 - 5x2+3x3 ≤4 (1) - 4x1 - x2 - 3x3 ≤-3 (2) (3) - x2 - x3 ≤ - 1 x1 , x2 , x3 =0或 1
【引例】背包问题 背包问题
一个旅行者的背包最多只能装 16 千克的物品。待装的有 5 件 物品,其重量和价值见下表:
物品编号 重量(千克) 重量(千克) 价值( 价值(元) 1 3 12 2 4 12 3 3 9 4 4 16 5 6 30 合计 20
他应在背包中携带哪几样物品可使携带的价值最大?试将该 问题归结为数学问题。 解:以x1, x2 , x3, x4, x5表示旅行者携带的第 1、2、…、5 件物品的件数。 各xi只能取1或者0:xi =1表示携带该件物品,xi =0 表示不携带该件物品。 问题归结为: maxZ= 12x1+12x2 +9x3 +16x4 +30x5 3x1 +4x2+3x3 +4x4 +6x5 ≤16 x1 , x2 , x3 ,x4 ,x5 =0或 1
变换过程中的三种可能情况: 变换过程中的三种可能情况:
①恰好的零:重复效率矩阵的每行都有一个打( )的零元素, 恰好的零: 恰好的零 即打上( )号=m,且位于不同行不同列,只要令对应打( ) 零元素的xij=1,就找到了问题的最优解。(如前例) ②较多的零:打( )的零元素个数小于m,但未被划去的零元 较多的零: 较多的零 素之间存在闭合回路,此时沿着闭合回路的走向,对每个间隔的 零元素打上一( ),使得打上( )号=m,然后对所有打 ( )零元素所在列画一条直线。 ③较注的零:矩阵中所有零元素元素或被划去,或打上( ) 较注的零: 较注的零 号,但打( )的零元素个数≤m;
匈牙利算法的基本思路: 匈牙利算法的基本思路: 算法的基本思路
根据定理 1 变换效率矩阵,使矩阵中有足够多的零。 若矩阵中存在 m 个不同行不同列的零,就找到了最 优解 若覆盖变换后的效率矩阵零元素的直线少于m 条, 就尚未找到最优解,设法进一步变换矩阵,增加新 的零
指派问题的解法--匈牙利法
第一步:找出效率矩阵行的最小元素,并分别从每行中减去;再找 出效率矩阵列中的最小元素,并分别从每列中减去;
P0不满足条件(2)、(3)
(0,0,0)
(1,0,0)
P2不满足条件 (3) 。进一步指定x2为固定变量,将P1分支为P3和P4, 将 P2分支为 P5和 P6,
(0,0,0)
(0,1,0)
(1,0,0)
(1,1,0)
P6为可行解,停止分支。 P3和P5 相当于P1和P2 ,不能满足所有的约束条件。 P4也不能满足 所有的约束条件。都需要再进行分支。 先将 P3 分支为P7和P8 。
(2) 15 2 10 (4) 4 (9) 14 9 (7) 8 7 13 14 16 11 4 15 13 9 min 2 a -行min 4 ij 9 7 min (0) 0 6 0 0 0 13 (0) 0 5 1 0 11 10 7 (4) 4 4 (2) 2 11 4 2 2
第二步:看覆盖该矩阵中的所有零元素,至少要多少条直线;
分配表
任务 人员 甲 乙 丙 丁
合计
E x11 x21 x31 x41 1
i
J x12 x22 x32 x42 1
G x13 x23 x33 x43 1
ij x ij
R x14 x24 x34 x44 1
合计
1 1 1 1
建立线性规划模型为: 建立线性规划模型为:
min z =
∑∑ C
j
x ij = 1, j = 1,2, L , n i 1,分配第i个人去完成第j项任务 令x ij = x ij = 1, i = 1,2, L , n 0,不分配第i个人去完成第j项任务 j x ij = 1或0
我们用图来说明解题的过程:
minZ= 4x1+3x2 +2x3 2x - 5x2+3x3 ≤4 (1) 求解过程:下面各图中 求解过程:下面各图中 下面各图中红字为固定变量。 - 4x -1 x - 3x ≤-3 (2) 。 1 2 3 (3) - x2 - x3 ≤ - 1 x1 , x2 , x3 =0或 1
二、分配问题
有一份中文说明书,需译成英、日、德、俄四种文字,分别记 作:E、J、G、R,现在有甲、乙、丙、丁四人,他们将中文说明 书翻译成不同的语种的说明书所需时间如表所示,问应指派何人去 完成何工作,使所需总时间最少 所需总时间最少? 所需总时间最少
时间表
任务 人员 甲 乙 丙 丁 E 2 10 9 7 J 15 4 14 8 G 13 14 16 11 R 4 15 13 9
*
(0,0,0) (0,0,1) (0,1,0) (0,1,1) (1,0,0) (1,0,1) (1,1,0) (1,1,1) 0 5 -2 3 3 8 1 6
(1) (2) (3) (4) 0 -1 1 1 0 2 0 1 5 1 2 6
1 1
0 1
3 8
2、隐枚举法
对一个有n个决策变量的 0-1 规划模型,其所要考虑的情 况最多有2n 种。如果变量不多,可以用隐枚举法 隐枚举法来求解。 隐枚举法 基本思想: 基本思想: 隐枚举法的本质是穷举法,但是应用隐枚举法可以更快地 得到最优解。其实质是分枝定界法。 但一般用是分枝定界法求解整数规划时,替代问题是放宽 放宽 变量的整数约束。 变量的整数约束 但用隐枚举法时,替代问题是在保持变量 保持变量0-1的约束条件 保持变量 先不考虑问题的主要约束。 下先不考虑问题的主要约束 先不考虑问题的主要约束
2 15 10 4 9 14 7 8
13 14 16 11
4 15 13 9
此题为第①种情况:位于不同行不同列的零元素有四个。 此题为第①种情况:位于不同行不同列的零元素有四个。
时间表
任务 人员 甲 乙 丙 丁 E 2 10 9 7 J 15 4 14 8 G 13 14 16 11 R 4 15 13 9
§4.2 0-1规划 - 规划
一、0-1规划的计算方法 规划的计算方法
此时决策变量只取 0 或 1 值。只取 0 或 1 值的变量称为 0-1变量,决策变量为 0-1 变量的线性规划称为 0-1 规划 规划。 0-1 规划的求解方法: 规划的求解方法: 1、穷举法 2、隐枚举法 3、利用EXCEL的“规划求解”功能
列举法列表
maxZ= 3x1 -2x2 +5x3 x1 +2x2-x3 ≤2 (1) ) x1 +4x2+x3 ≤4 (2) ) x1 + x2 ≤3 (3) ) 4x2+x3 ≤6 (4) ) x1 , x2 , x3 =0或 1
点
条件
满足条件 是(+) z值 否(-) 0 0 0 1 + + - - + + - - 0 5
求解过程
minZ= 4x1+3x2 +2x3 2x1 - 5x2+3x3 ≤4 (1) - 4x1 - x2 - 3x3 ≤-3 (2) (3) - x2 - x3 ≤ - 1 x1 , x2 , x3 =0或 1
(0,0,0)
(0,0,1)
P7为不可行解, P8为可行解。
(0,0,0)
(0,1,0)