页数:23页文件大小:95.6 KB来源: 运筹学ppt课件
本课件由集装箱装运实例说明最优解不能直接化整,引出整数规划;随后系统讲授分枝定界法的分枝与定界步骤、0-1型整数规划的建模技巧与逻辑变量用法,最后介绍指派问题的数学模型与匈牙利法求解步骤及完整算例。
本章共分四节:
在求解线性规划问题时,得到的最优解可能是分数或小数,但许多实际问题要求得到的解为整数才行。这种要求线性规划有整数解的问题,称为整数规划(Integer Programming,简称 IP)。
例1:某厂拟用火车装运甲、乙两种货物集装箱,每箱的体积、重量、可获利润以及装运所受限制如下,问两种货物各装运多少箱,可使获得利润最大?
| 货物集装箱 | 体积(m³) | 重量(百斤) | 利润(百元) |
|---|---|---|---|
| 甲 | 5 | 2 | 20 |
| 乙 | 4 | 5 | 10 |
| 托运限制 | 24 | 13 | — |
设甲、乙两种货物装运箱数分别为 x1 和 x2。显然,x1、x2 都要求为整数,于是可建立整数规划模型如下:
max z = 20x1 + 10x2,满足 5x1 + 4x2 ≤ 24、2x1 + 5x2 ≤ 13、x1, x2 ≥ 0、x1, x2 为整数。
因此有必要专门研究整数规划的解法。
分枝定界法是 20 世纪 60 年代由 Land-Doig 和 Dakin 等人提出的。这种方法既可用于纯整数规划问题,也可用于混合整数规划问题,而且便于用计算机求解,所以很快成为解整数规划的最主要的方法。
设有最大化的整数规划问题 R,与它相应的线性规划问题为 R0,分枝定界法据此展开分枝与定界。
分枝定界法的做法:
例:求解 max z = 40x1 + 90x2,约束 9x1 + 7x2 ≤ 56、7x1 + 20x2 ≤ 70、x1, x2 ≥ 0 且为整数。
由定界过程,最优整数解为 x1 = 4、x2 = 2,最优值 z = 340。
源文件该页为分枝树排版,各枝的约束(含 x2 ≤ 2、x2 ≥ 3 等)与数值被分散排布,此处按原文给出的数值汇总,建议对照原图核对。
本页源文件仅提取到模型残片「max z = 2x1 + x2」,缺少完整的约束条件与求解过程,疑为分枝定界法的补充练习题(仅有公式图形,文字未提取成功)。建议对照原课件图片补充本页内容。
0-1型整数规划是整数规划的一种特殊形式,它的变量 xj 仅取值 0 或 1。这种只能取 0 或 1 的变量称为 0-1 变量或二进制变量。
例1:某公司拟在市东、西、南三区建立门市部。拟议中有 7 个位置 Ai(i = 1,2,…,7)可供选择。规定:
如选用 Ai 点,设备投资估计为 bi 元,每年可获利润估计为 ci 元,但投资总额不超过 B 元。问应选择哪几个点可使年利润最大。
引入 0-1 变量 xi(i = 1,2,…,7),令 xi = 1 表示 Ai 点被选用,xi = 0 表示 Ai 点没被选用。于是建立下列模型:
max z = c1x1 + c2x2 + … + c7x7,满足 b1x1 + b2x2 + … + b7x7 ≤ B、x1 + x2 + x3 ≤ 2、x4 + x5 ≥ 1、x6 + x7 ≥ 1、xi = 0 或 1(i = 1,2,…,7)。
例2:某油田开发公司打算在 10 个有油气构造处选若干个钻井采油,应满足的条件如下,试写出约束条件:
例3 表示选择性约束:
例4:设目标函数 F(x) = k + cx(当 x > 0)、F(x) = 0(当 x = 0),试用线性形式表示。
引入逻辑变量 y = 1(x > 0)、y = 0(x = 0),则该目标函数可写为:
F(x) = ky + cx,满足 x ≤ yM、x ≥ 0、y = 0 或 1(也写作 x ≤ My)。
求解 0-1 型整数规划可使用分枝定界法。下面用实例说明,先变成标准型,要求如下:
待求解问题:max z = 8x1 + 2x2 - 4x3 - 7x4 - 5x5,约束 3x1 + 3x2 + x3 + 2x4 + 3x5 ≤ 4、5x1 + 3x2 - 2x3 - x4 + x5 ≤ 4,xj = 0 或 1(j = 1,2,…,5)。
源文件该页约束右端项写作 45 与 4,两处疑为连排导致的串字,此处按原文保留,建议对照原图核对。
令 x3′ = 1 - x3,x4′ = 1 - x4,x5′ = 1 - x5,得 max z = 2x2 + 4x3′ + 5x5′ + 7x4′ + 8x1 - 16,约束 -3x2 - x3′ - 3x5′ - 2x4′ + 3x1 ≤ -2、3x2 + 2x3′ - x5′ + x4′ + 5x1 ≤ 6,x2, x3′, x5′, x4′, x1 = 0 或 1。
用分枝定界法求解(分枝树中标注各枝的目标值与可行性,如 z = 8 不可行、z = 4 可行等),可得最优解为 x2 = 0、x3′ = 0、x4′ = 1、x5′ = 1、x1 = 1。
于是,原问题的最优解为 z* = 4,x1* = 1,x2* = 0,x3* = 1 - 0 = 1,x4* = 1 - 1 = 0,x5* = 1 - 1 = 0。
源文件该页分枝树的标注被打散,各枝的 z 值与可行性按原文碎片整理,建议对照原图核对。
例:有一份说明书,需译成英、日、德、俄四种文字。现有甲、乙、丙、丁四个人,他们将说明书译成不同文字所需的时间如下表。问应指派哪个人完成哪项工作,使所需的总时间最少?
| 人员 | 英文 E | 日文 J | 德文 G | 俄文 R |
|---|---|---|---|---|
| 甲 | 2 | 15 | 13 | 4 |
| 乙 | 10 | 4 | 14 | 15 |
| 丙 | 9 | 14 | 16 | 13 |
| 丁 | 7 | 8 | 11 | 9 |
一般地,有 n 项任务、n 个完成人,第 i 人完成第 j 项任务的代价为 cij(i, j = 1,2,…,n)。为求得总代价最小的指派方案,引入 0-1 型变量 xij,并令 xij = 1 表示指派第 i 人去完成第 j 项任务,xij = 0 表示不指派。
源文件该页表格各行为倒序连排,此处按「人员 × 英日德俄」结构还原,建议对照原图核对。
指派问题的求解,最简便易行的方法是匈牙利法。匈牙利法基于下面的效率矩阵 (cij) = (c11 c12 … c1n;c21 c22 … c2n;…;cn1 cn2 … cnn)。
可见指派问题是 0-1 型整数规划的特例。不难发现,指派问题也是运输问题的特例,其产地和销地数都为 n,各产地的产量和各销地的销量都为 1。数学模型为:
min z = Σni=1 Σnj=1 cijxij,满足 Σnj=1 xij = 1(i = 1,2,…,n)、Σni=1 xij = 1(j = 1,2,…,n)、xij = 0 或 1。
匈牙利法基于这样一个明显的事实:如果系数矩阵的所有元素满足 cij ≥ 0,而其中有 n 个位于不同行不同列的一组 0 元素,则只要令对应于这些 0 元素位置的 xij = 1,其余的 xij = 0,就得到最优解。
例如系数矩阵 (cij) 中若有这样一组 0 元素,即可直接读出最优指派方案。
源文件该页示例矩阵为连排数字(如 12408702、05133062 等),排列被打散,建议对照原图核对。
第一步:变换系数矩阵,使每行每列都出现 0 元素。
第二步:试求最优解。
第三步:用最少的直线覆盖所有 0 元素。
第四步:变换系数矩阵,增加 0 元素。在未被画线覆盖的其它元素中找出最小元素,各打「√」行减去最小元素,各打「√」列加上最小元素,转第二步。
例:求下列指派问题的最小解。
| 人员 | A | B | C | D | E |
|---|---|---|---|---|---|
| 甲 | 12 | 7 | 9 | 7 | 9 |
| 乙 | 8 | 9 | 6 | 6 | 6 |
| 丙 | 7 | 17 | 12 | 14 | 9 |
| 丁 | 15 | 14 | 6 | 6 | 10 |
| 戊 | 4 | 10 | 7 | 10 | 9 |
解:依次作行列变换、试指派、最少直线覆盖与矩阵变换,得到最终的指派结果。
于是,此问题的最优解为:甲—B;乙—C;丙—E;丁—D;戊—A,所需的总费用为 min z = 7 + 6 + 9 + 6 + 4 = 32。
源文件该页效率矩阵各行为倒序连排,此处按「人员 × A、B、C、D、E」结构还原,中间变换过程的矩阵建议对照原图核对。
本页演示上例(或同类算例)系数矩阵的逐次变换过程:先各行减去最小元素,再各列减去最小元素,随后反复作最少直线覆盖与增减最小元素的变换,直到矩阵中出现 n 个位于不同行不同列的 0 元素,即得到最优指派。
源文件该页全部为连排数字与矩阵碎片(如 21097、154148、131416、415139 等),已无法安全切分为行列,故不作表格还原,建议对照原图核对。
下载地址:{{downurl}}
{{{a}}}
{{#b}}{{{b}}}
{{/b}} {{/title}} {{#nolog}}登陆注册
{{/nolog}} {{#djsx}}点我刷新
{{/djsx}} {{#gocz}} {{/gocz}} {{#ffqr}} {{/ffqr}}