运筹学指派问题
运筹学课件ch5指派问题[全文]
运筹学课件ch5指派问题[全文] 指派问题assignment problem 运筹学课件一种特殊的线性规划问题,我们也经常遇到指派人员做某项工作的情况。
指派问题的许多应用都用来帮助管理人员解决如何为一项将要开展进行的工作指派人员的问题。
其他的一些应用如为一项任务指派机器、设备或者是工厂。
指派问题运筹学课件指派问题的形式表述:给定了一系列所要完成的任务(tasks)以及一系列完成任务的被指派者(assignees),所需要解决的问题就是要确定出哪一个人被指派进行哪一项任务。
指派问题模型运筹学课件指派问题的假设:被指派者的数量和任务的数量是相同的每一个被指派者只完成一项任务每一项任务只能由一个被指派者来完成每个被指派者和每项任务的组合有一个相关成本目标是要确定怎样进行指派才能使得总成本最小指派问题模型运筹学课件指派问题assignment problem 【例51></a>.14】人事部门欲安排四人到四个不同的岗位工作,每个岗位一个人(经考核四人在不同岗位的成绩(百分制)如表5-34所示,如何安排他们的工作使总成绩最好。
88809086丁90798382丙95788795乙90739285甲DCBA工作人员表5-34【解】设1 数学模型运筹学课件数学模型为:甲乙丙丁ABCD图5. 3指派问题assignment problem运筹学课件假设m个人恰好做m项工作,第i个人做第j项工作的效率为cij?0,效率矩阵为[cij](如表5-34),如何分配工作使效率最佳(min或max)的数学模型为指派问题assignment problem运筹学课件2 解指派问题的匈牙利算法匈牙利法的条件是:问题求最小值、人数与工作数相等及效率非负【定理5.1】如果从分配问题效率矩阵[cij]的每一行元素中分别减去(或加上)一个常数ui(被称为该行的位势),从每一列分别减去(或加上)一个常数vj(称为该列的位势),得到一个新的效率矩阵[bij],其中bij=cij,ui,vj,则[bij]的最优解等价于[cij]的最优解,这里cij、bij均非负(指派问题assignment problem【证】运筹学课件【定理5.2】若矩阵A的元素可分成“0”与非“0”两部分,则覆盖“0”元素的最少直线数等于位于不同行不同列的“0”元素(称为独立元素)的最大个数( 如果最少直线数等于m,则存在m个独立的“0”元素,令这些零元素对应的xij等于1,其余变量等于0,这时目标函数值等于零,得到最优解(两个目标函数相差一个常数 u+v,约束条件不变,因此最优解不变。
运筹学课件1.8工作指派问题
c1n c2 n cnn
关于模型的讨论
指派问题是运输问题的特殊情况 当n=m时,平衡指派问题 当 n m 时,不平衡指派问题,此时, 可设置虚工作或虚工作人员,将其化为 平衡指派问题。 对指派矩阵C,任意行(列)减去它的最 小元素后,所构成的指派问题最优解与 原指派问题相同。
45 0 40 65 45 55 55 0 0 5 0 45 0 55 60 55 45 45 0 45
0 20 40 60 95
45 0 40 65 45 55 55 0 0 5 0 45 0 55 60 55 45 45 0 45
回到第一步:圈零得新最优解
4 0 2 0 2 2 0 0 0 1 2 1 0 0 0 1 0 1 ( xij ) 0 0 0 0 0 1 1 0 0 0 0 0 1 0
最小的总工作时间:z=7+5+5+3=20。该问 题有多个最优解,请求出其它的最优解。
第八节 工作指派问题
工作指派问题及其数学模型 求解工作指派问题的匈牙利法 工作指派问题的应用举例
工作指派问题的数学模型
•例1-12
•指派问题数学模型 •指派矩阵 •对数学模型的讨论
匈牙利法
•匈牙利法的基本原理
•匈牙利法的计算步骤
•减数得零—求最优匹配
•圈零划线—查是否最大匹配
•找数调整—求新的最优匹配
ห้องสมุดไป่ตู้
指派问题一般模型
min z cij xij
j 1 i 1 n n
n xij 1, j 1,2, , n i n1 s.t. xij 1, i 1,2, , n j 1 xij 0,1
运筹学-0-1规划指派问题PPT课件
遗传算法的优点是能够处理大规模、复杂的优化问题,且具有较强的鲁 棒性和全局搜索能力。缺点是算法实现较为复杂,需要较高的计算资源 和时间,且在某些情况下可能会陷入局部最优解。
指派问题通常具有整数约束和 0-1约束,即每个工人只能被分 配一项任务,且每个任务只能 由一个工人完成。
指派问题的解通常具有最优子 结构和局部最优解的特性。
变量定义
• $x{ij}$:如果第i个工人被分配第j项任务,则$x{ij}=1$; 否则$x_{ij}=0$。
目标函数
• $min \sum{i=1}^{n} \sum{ j=1}^{n} c{ij} x{ij}$: 最小化总成本。
04
指派问题在0-1规划中的应用
指派问题的定义
• 指派问题是一种组合优化问题,旨在将一组任务分配给一组工 人,使得总成本最小化。每个工人只能完成一项任务,每项任 务只能由一个工人完成。目标是找到一种最优的分配方式,使 得总成本最低。
指派问题的特点
指派问题具有NP难解的特点, 即没有已知的多项式时间算法 来解决该问题。
04
总结词:整数规划
பைடு நூலகம்
案例三:旅行商问题
总结词:旅行商问题
总结词:图论
详细描述:旅行商问题是一个经典的组合优 化问题,涉及到寻找一条最短路径,使得一 个旅行商能够访问一系列城市并返回出发城 市,同时最小化总旅行距离。
详细描述:图论是研究图形和图形结构的数 学分支,提供了解决旅行商问题和其他优化 问题的理论基础。
在0-1规划问题中,分支定界法将问题分解为多个子问题,每个子问题对应一种指派 方案。算法通过不断排除不可能的解来缩小搜索范围,最终找到最优解。
三类指派问题
三类指派问题1. 简介三类指派问题是运筹学中的一类经典问题,它的目标是找到一种最优分配方案,将若干个任务分配给若干个执行者,使得总体成本或效益达到最小或最大。
这类问题通常可以用线性规划模型来描述和求解。
三类指派问题包括: - 任务分配问题:将若干个任务分配给若干个执行者,使得总体成本最小或效益最大。
- 作业调度问题:将若干个作业安排在若干台机器上进行处理,使得总体完成时间最短或机器利用率最高。
- 设备调度问题:将若干个任务安排在若干台设备上进行处理,使得总体完成时间最短或设备利用率最高。
2. 任务分配问题2.1 模型描述假设有n个任务和n个执行者,每个任务只能由一个执行者完成,并且每个执行者只能处理一个任务。
每个任务与每个执行者之间都有一个成本或效益值。
我们的目标是找到一种分配方案,使得总体成本最小或效益最大。
可以使用二维数组C表示各任务与各执行者之间的成本或效益值,其中C[i][j]表示第i个任务分配给第j个执行者的成本或效益值。
定义一个二进制变量X[i][j],如果第i个任务分配给第j个执行者,则X[i][j]=1,否则X[i][j]=0。
任务分配问题可以用下面的线性规划模型来描述:minimize ∑(i=1 to n)∑(j=1 to n) C[i][j] * X[i][j]subject to∑(i=1 to n) X[i][j] = 1, for j = 1,2,...,n∑(j=1 to n) X[i][j] = 1, for i = 1,2,...,nX[i][j] ∈ {0, 1}, for i,j = 1,2,...,n2.2 求解方法常用的求解任务分配问题的方法有匈牙利算法和线性规划方法。
匈牙利算法是一种经典的图论算法,它通过构建增广路径来找到最优分配方案。
该算法的时间复杂度为O(n^3),适用于小规模问题。
线性规划方法则通过将任务分配问题转化为线性规划模型,并利用线性规划求解器进行求解。
运筹学__指派问题
•下面要证明M m. 如图假定覆盖所有0元素的m条直线 有r行、c列,m=r+c.
所有r行上不在j1,…,jc列上的0元 素个数≥ r,这些0元素至少有r个位
于不同列
同理:所有c列上不在i1,…,ir行上
j1 j2
的0元素个数≥c ,且这些0元素至
少有c个位于不同
i1 i2
ir jc
若上述两部分0个数总和为S,则S≥m;其中有m 个,又它们必无重复元素,彼此独立,则SM,故 有m≤M, 故可得M=m.
覆盖所有“0”元素的最少直线数 = 独立的“0”元素 的最多个数
推论1:覆盖所有“0”元素的直线数≥ 不同行不同列的“0”元素的最多个数(m)
推论2:覆盖所有“0”元素的最少直线数≥ 不同行不同列的“0”元素的个数
定理2说明: 1. 只要表中含有不同行或不同列的“0”元素,
都可以通过直线覆盖的方式来找到它们 2. 当覆盖直线的最少条数达到m条时,
(二)算法的基本原理 匈牙利数学家狄·康尼格(D·Konig)证明的两个定理
定理1 如果从指派问题效率矩阵[cij]的每一行元素中分别 减去(或加上)一个常数ui(被称为该行的位势), 从每一列分别减去(或加上)一个常数vj(称为该列的位势) 得到一个新的效率矩阵[bij], 若其中bij=cij-ui-vj,
一、指派问题的数学模型
(一)举例
例7: 有一份中文说明书, 要分别译成英、日、德、俄四种文字, 分别记作E 、 J 、 G 、 R ,交与甲、乙、丙、丁 四个人去完成. 因个人专长不同, 他们完成翻译不同语种的说明书所需的时间(h)如表所示. 应如何指派,使四个人分别完成这四项任务总时间为最小?
任务 人员
将其代入目标函数中得到zb=0,它一定是最小值。 ❖ 这就是以(bij)为系数矩阵的指派问题的最优解。
运筹学指派问题课件
c
i 1 j 1
n
n
ij
xij
n xij 1 i 1 n st . xij 1 (i , j 1, 2, ..., n) j 1 x 1or 0 ij
运筹学教程
例1:某商业公司计划开5家新商店,商业公司决定由5家建筑 公司分别承建。已知建筑公司Ai(i=1,2…5)对新商店Bj(j=1…5) 的建筑费用报价Cij.问题:商业公司对5家建筑公司如何分配任 务,才能使总的建筑费用最少? Cij Ai Bj
运筹学教程
指派问题解法:匈牙利解法 解法思想:
若从系数矩阵C的任何一行(列)各元素中分别减去 一个常数K(K可正可负)得到新矩阵C’,则以C’为系 数矩阵的指派问题与原问题有相同的解,但最优值 比原问题最优值小K。
匈牙利法条件: MIN、i=j 、Cij≥0
运筹学教程
匈牙利法的主要步骤: 步骤1:变换系数矩阵,使在各行各列都出现零元素。 (1)从矩阵C的每行元素减去该行的最小元素;
0 11 8 7 7 3 3 2 1 C ' 5 0 4 3 4 0
第二步 圈0 寻找不同行不同列的0元素,圈之。 所在行和列其它0元素划掉
0 0 0 0 0 3 0 11 8 第三步 打 无的行打,打行上0列打 , 1 7 7 3 打列上行打,打行上0列打 ' 2 3 2 1 C 0 5 0 4 0 3 0 11 8 0 1 7 7 3 2 3 4 0 C ' 0 2 3 2 1 第四步 确定方案划线 0 0 5 0 4 没有打行上画一条横线; 0 2 3 4 0 有打列上画一条竖线;
15 120 15 12 0 14 100 14 100 8 7 0 0 8 7
《运筹学》胡运权清华版-5-05指派问题
任务 A
B
C
D
人员
甲
9
17 16
7
乙
12
7
14 16
丙
8
17 14 17
丁
7
9
11
9
解:设决策变量xij,i=1,2,3,4; j=1,2,3,4
xij 01
表示分派第i人做第j项工作 表示不分派第i人做第j项工作
任务 A
B
C
D
人员
甲
x11
x12
x13
x14
乙
x21
x22
x23
x24
丙
x31
③反复进行①、 ②两步,直到所有0元素都被圈出 或划掉为止。
注:若遇到在所有的行和列中,0元素都不止一个 时,可任选其中一个0元素加O;然后作一直线覆盖该 列元素(或该行元素)。
对于本例
用一直线覆 盖所在列
第一行只有 一个0元素
2 10 5 0
c'ij
5 0
0 9
3 9 2 9
0 2 0 2
x11
x21
...
xn1
1
...
x1n x2n ... xnn 1
若C=(cij)n×n的第一行各元素分别加上一个常数k, 得到一个新矩阵C’=(c’ij) n×n
c11 k
C'
c21
cn1
c12 k c22 ... cn2
... c1n k
17 7 17
16 14 14
7 16
-7 -7
17 -8
物流运筹学运输问题及指派问题
物流运筹学运输问题及指派问题第 3 章运输和指派问题本章知识结构本章教学目标与要求掌握产销平衡运输问题的数学模型及其特点; 掌握运输问题的表上作业法,包括初始调运方案的确定、检验数的计算、运输方案的调整方法; 掌握产销不平衡运输问题转化为产销平衡问题的处理办法;掌握运输问题在实践中的典型应用; 掌握标准指派问题的求解方法,会将各种非标准指派问题转化为标准指派问题。
导入案例运储物流的运输问题运输成本占物流总成本的35,-50,左右,占商品价格的4,-10,,运输对物流总成本的节约具有举足轻重的作用。
运储物流在物流运输管理中要着重考虑:运输方式的选择,运输路线的选择,编制运输计划等问题。
运输方式合适与否决定了运输时间的长短,决定了成本的高低,各种运输工具都有其使用的优势领域,对运输工具进行优化选择,按运输工具特点进行装卸运输作业,最大限度地发挥所用运输工具的作用;选择运输路线要与交通运输工具结合起来,尽量安排直达运输,以减少运输装卸、转运环节,缩短运输时间;编制运输计划还要从全局出发,深入调查研究,综合平衡,积极组织计划运输、合理运输、直达运输、均衡运输,按照成本最低的原则来制定合理的计划。
3.1 运输问题概述运输问题的典型提法是将某种物质从若干个产地调运到若干个销地,已知每个产地的产量和每个销地的销量,如何在许多可行调运方案中选择一个总运费最少的调运方案。
根据总产量与总销量是否相等的数量关系,运输问题通常可划分为产销平衡(相等)和产销不平衡(不相等)两大类别。
产销平衡的运输问题主要在这一节介绍,产销不平衡的运输问题将在后面节中讨论。
3.1.1 运输问题的引入在生产、交换活动中,不可避免地要进行物资调运工作。
某时期内将生产基地的煤、钢铁、粮食、矿砂、木材等各类物资,分别运送到需要这些物资的地区。
3.1 运输问题概述【例3.1】某物流公司从两个产地A1 内蒙、A2 山西将煤炭运往三个销地B1 北京、B2 山东、B3上海,各产地的产量、各销地的销量、各产地运往各销地的每单位煤炭运费数据见下表,问:应如何调运煤炭可使总运输费用最小, 销地产地 B1 B2 B3 产量 6 4 6 A1 200 x11x12 x13 6 5 5 A2 300 x21 x22 x23 销量 150 150 200 500 解: 此为产销平衡的运输问题(总产量总销设量)。
运筹学 指派问题课件 PPT
效率表
工厂1 工厂2
58 75
69 50
180 150
260 230
工厂3 工厂4
65 82
70 55
170 200
250 280
2
返回总目录
例1 某公司拟将四种新产品配置到四个工厂生产,四 个工厂的单位产品成本(元/件)如下表所示。求最 优生产配置方案使得单位产品成本总和为最小。
15
返回总目录
第三步:用最少的直线覆盖所有0:
0 0 11 22 22 25 25 0 0 0 0 0 5 5 5 27 27 0 45 45 6 17 17 0 30 0 0 0 0 0 0 0 0 45 45 32 6 17 17 0 0 0 0 0 0 0 45 45
回到第三步,用最少的直线覆盖所有0。 此时最少直线数=4,表明矩阵中存在4个不同行不 同列的零元素,于是得到最优解。 第五步:找出4个独立的0元:
( 0 ) 30 0 32 6 17 17 0 ( 0) 0 0 0 ( 0 ) (0 ) 45 45 ( 0 ) 30 0 32 6 17 17 0 0 ( 0 ) 0 ( 0) 0 (0 ) 45 45
x14 x24 x34 x44
工厂2 x21 工厂3 x31 工厂4 x41
1 1 1 1
1
1
1
1
产品1 产品2 产品3 产品4
工厂1 工厂2 工厂3 工厂4 58 75 65 82 69 50 70 55 180 150 170 200 260 230 250
5280
返回总目录
数学模型 匈牙利算法 其他变异的指派问题
运筹学-0-1规划 指派问题
最优值ymax= 8
最优解(x1,x2,x3,x4)=(0,1,0,1)。
这表明,该同学还要带诱饵和食物。
从提高隐枚举法的效率着想,当求解最 大(小)化0-1规划时,若遇到y 值大(小) 于(0)的右边,应随即让(0)的右边改取
这个y 值。求解0-1规划,不要墨守成规,应
☞
( x1, x2 , x3 , x4 ) (0, 0, 0, 0 ) ( 0, 0, 0, 1 ) ( 0, 0 ,1, 0 ) ( 0, 0, 1, 1 ) ( 0, 1, 0, 0 ) ( 0, 1, 0, 1 ) ( 0, 1, 1, 0 ) ( 0, 1, 1, 1 ) ( 1, 0, 0, 0 ) ( 1, 0, 0, 1 ) ( 1, 0, 1, 0 ) ( 1, 0, 1, 1 ) ( 1, 1, 0, 0 ) ( 1, 1, 0, 1 ) ( 1, 1, 1, 0 ) ( 1, 1, 1, 1 )
大于bj的最小整数),因而得到两枝新的线
性规划,然后计算每枝的最优解和最优值。
第三步
定界
具体做法为:进行定界(由各枝的最 优值中选最大值),找出界枝。若界枝的 最优解就是原整数规划的最优解,则计算
过程便告结束;否则,回到第二步。
返回
第四节
0-1 规 划
一、0-1 规划的概念 二、隐枚举法
一、0-1 规划的概念
最小化指派问题的求解步骤如下:
第一步:在效率矩阵[bij]中,让每行(列)元素减去该
行(列)元素的最小值,从而得到矩阵[ Cij ]。
37.3 32.9 bi j 33.8 37.0
每行每 列都有 零
运筹学_指派问题
(xij)是n×n矩阵,对应于效率矩阵(cij).
工作
x11 人 x i1 xn1
x1n xij xin xnj xnn x1 j
可行解矩阵
x
i 1
n
ij
1,
j 1, 2, , n ②
指派问题的最优解有这样性质,若从效率矩 阵(cij)的一行(列)各元素中分别减去该行(列)的 最小元素,得到新矩阵(bij),那么以(bij)为效率 矩阵求得的最优解和用原效率矩阵求得的最优解 相同 。即 定理2 设给定了以C = (cij)为效率矩阵指派问题G, 现将C的元素cij 改变为 bij cij i j , i 与 j 为常数 则以B= ( bij )为效率矩阵指派问题G’与G有相同的最 优解。
第四节 指 派 问 题
assignment problem
在生活中经常遇到这样的问题,某 单位需完成n项任务,恰好有n个人可承 担这些任务。由于每人的专长不同,各 人完成任务不同(或所费时间),效率也 不同。于是产生应指派哪个人去完成哪 项任务,使完成n项任务的总效率最高 (或所需总时间最小)。这类问题称为指 派问题或分派问题。
行列都有 零元素
7 6 3 0*
0 * 9 (b ) ij 2 0
0 0 最优解为 ( xij ) 1 0
0 1 0 0
0 0 0 1
1 0 0 0
定理3 若矩阵C可分成”0”与非”0”两部分,则覆 盖”0”元素的最少直线等于位于不同行不同列的”0” 元素的最大个数.
如
5 0* 2 0 2 2 3 0* 0 0 0* 10 5 7 2 -2 9 8 0 0* 4 0 6 3 6 5 -2 5 0* 2 0 2 2 3 0* 0 0 2 8 3 5 0 9 8 0 0* 4 2 4 1 4 3
运筹学整数规划指派问题
4 8 7 15 12 -4 7 9 17 14 7 -7
0 4 3 11 8 0 2 10 7 3
C
6
9 12
6
10
-6
0
3
6
2
1
6 7 14 8 10 -6
0 1 8 0 4
6
9
6
10
8
-6
0
3
6
4
0
-1 -3
✓
0 0
3 1
0 7
11 7
8 3
✓
C1
0
2
3
2
1
✓
0 0 5 0 4
这样安排能使总的建造费用最少,总的建造费用为 7+9+6+6+6=34(万元)。
三 非标准形式的指派问题
处理方法:化成标准形式,再按匈牙利方法求解。 ⒈ 目标函数最大化指派问题
例 有4名工人A1,A2,A3,A4分别操作4台机床B1,B2,B3,B4。每 人操作每台机床的单位产量见下表。求产值最大的指派方案。
在遇到所有行和列中,零元素都不止一个时,可任选其中 一个加圈,然后划去同行、同列其他未被标记的零元素。
例
5 0 2 0
C
2 0 0
3 0 8
0 6 0
0
7 0
步骤3: 若矩阵所有零元素都被标记的,但圈零的个数m < n , 作最少直线覆盖当前零元素。
已知5家建筑公司承建5家商店系数矩阵
⒈变换系数矩阵
0 0 0 0 1
X
*
0
0
0
1
0
0 1 0 0 0
0
0
1
0
运筹学指派问题
若某个人可做几件事,则可将该人看做相同的几个人来接受指派。这 几个人作同一件事的费用系数当然都一样。
• 某事一定不能由某人作的指派问题
若某事一定不能由某个人做,则可将相应的费用系数取做足够大的数 M。
例3:对于例2的指派问题,为了保证工程质量,经研究决定,舍 弃建筑公司A4和A5,而让技术力量较强的建设公司A1,A2,A3参加 招标承建,根据实际情况,可允许每家建设公司承建一项或二项工程。 求使总费用最少的指派方案。
步2:在变换后的系数矩阵中确定独立0元素(试指派)。若独立0元 素已有n个,则已得出最优解;若独立0元素的个数少于n个,转步3。
确定独立0元素的方法:当n较小时,可用观察法、或试探法;当n较 大时,可按下列顺序进行 • 从只有一个0元素的行(列)开始,给这个0元素加圈,记作,然后划 去所在的列(行)的其它0元素,记作。 •给只有一个0元素的列(行)的0加圈,记作,然后划去所在行的0元 素,记作。 •反复进行,直到系数矩阵中的所有0元素都被圈去或划去为止。 •如遇到行或列中0元素都不只一个(存在0元素的闭回路),可任选其中 一个0元素加圈,同时划去同行和同列中的其它0元素。被划圈的0元素即 是独立的0元素。
第二步:确定独立0元素, 即加圈 元素的个数m=4,而n=5,进 行第三步。
第三步:作最少的直线覆盖所有的0元素,目的是确定系数矩阵 的下一个变换。
第四步:对上述矩阵进行变换,目的是增加独立0元素个数。方法是在 未被直线覆盖的元素中找出一个最小元素,然后在打“”行各元素中 都减去这一元素,而在打“”列的各元素都加上这一最小元素,以保 持原来0元素不变(消除负元素)。得到新的系数矩阵。(它的最优解 和原问题相同,为什么?因为仅在目标函数系数中进行操作)
3.4指派问题(经典运筹学)
n
ci1 xi1
ci 2 xi 2
cin xin
cn1xn1 cn2 xn2 cnn xnn b
cc1211
c12 c22
c1n c2n
C
ci1 cn1
ci2 cn2
cin
-b
cnn
min Z Z b
c11 c21
x11 x21
c12 x12 c22 x22
i=1,2, …,n; j=1,2, …,n
Z表示总费用
12…j …n
1 c11 c12 c1 j c1n 2 c21 c22 c2 j c2n … i ci1 ci2 cij cin …
n cn1 cn2 cnj cnn
指派问题模型:
min Z
cij xij
c11 c21
c12 c22
c1n c2n
C
ci1 cn1
b
ci2 b cn2
cin b cnn
min Z
c11x11 c21x21
ccZ1222xx1222bcc12nnxx1n2
n
ci1xi1
ci 2
xi 2
cin
xin
cn1xn1 cn2 xn2 cnn xnn b
xi1 xi2 xij xin 1
s.tLeabharlann x1jx2j
xij
i=1,2, …,n
xnj 1
j=1,2, …,n
xij 0,1 i 1,2,, n; j 1,2,, n
cc1211
c12 c22
c1n c2n
C
ci1 cn1
ci 2 cn2
cin
-b
cnn
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7 15 12 0 A1
7
15
12
0
A1'
17 14 10 0 A2
17 14 10 0 A2'
12 8 7 0 A3
12 8 7 0 A3'
然后,用匈牙利解法求解。可得费用最省为4+7+9+8+7=35(百万元)
• 某事一定不能由某人作的指派问题
若某事一定不能由某个人做,则可将相应的费用系数取做足够大的数 M。
例3:对于例2的指派问题,为了保证工程质量,经研究决定,舍 弃建筑公司A4和A5,而让技术力量较强的建设公司A1,A2,A3参加 招标承建,根据实际情况,可允许每家建设公司承建一项或二项工程。 求使总费用最少的指派方案。
7+9+6+6+6=34(百万元)
3. 一般的指派问题
在实际应用中,常会遇到各种非标准形式的指派问题。通常的处理方 法是先将它们转化为标准形式,然后用匈牙利解法求解。
• 最大化指派问题
设最大化指派问题系数矩阵C中最大元素为m。令矩阵B=(bij)=(m-cij), 则以B为系数矩阵的最小化指派问题和以C为系数矩阵的原最大化指派问题 有相同的最优解。
12 7 9 7 9
8
96
6
6
7 17 12 14 9
15 14 6 6 10
4 10 7 10 9
解:第一步:系数矩阵的变换(目的是得到某行或列均有0元素)
12 7 9 7 9
8
96
6
6
7 17 12 14 9
15 14 6 6 10
•步3:作最少数目的直线,覆盖所有0元素(目的是确定系数矩阵的下 一个变换),可按下述方法进行 1) 对没有的行打“”号; 2) 在已打“”号的行中,对 所在列打“” 3)在已打“”号的列中,对所在的行打“”号; 4)重复2)3),直到再也找不到可以打“”号的行或列为止; 5)对没有打“”的行划一横线,对打“”的列划一纵线,这样就得 到覆盖所有0元素的最少直线数。
第二步:确定独立0元素, 即加圈
0 3 0 11 8
0
1
7
7
3
0 2 3 2 1
0
0
5
0
4
0 2 3 4 0
0 3 0 11 8
0
1
7
7
3
0 2 3 2 1
0
0
5
0
4
0 2 3 4 0
元素的个数m=4,而n=5,进 行第三步。
s.t 5 xij 1 i 1,2,,5
j1
xij
0
or
1
i, j 1,2,,5
解:第一步:系数矩阵的变换(目的是得到某行或列均有0元素)
4 8 7 15 12
7
9
17
14
10
6 9 12 8 7
6
7
14
6
10
6 9 12 10 6
0 1 2 1 0
1
0
5
0
4
1 可得指派问题的最优指派方案为:
0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1
也就是说,最优指派方案为:让A1承建B3, A2承建B2,A3承建B1, A4承建B4,A5承建B5。这样安排建造费用为最小,即
工程 公司
B1
B2
B3
B4
B5
A1 4 8 7 15 12
A2 7 9 17 14 10
A3 6 9 12 8 7
A4 6 7 14 6 10
A5 6 9 12 10 6
min Z 4x11 8x12 10x54 6x55
5 xij 1 j 1,2,,5
i 1
7 15 12 A1
7
15
12
A1'
17 14 10 A2
17 14 10 A2'
12 8 7 A3
12 8 7 A3'
上面的系数矩阵有6行5列,为了使“人”和“事”的数目相同,引入一 件虚拟的事B6,使之成为标准指派问题的系数矩阵:
B1 B2 B3 B4 B5 B6
4 8 4 8 7 9 7 9 6 9 6 9
第三步:作最少的直线覆盖所有的0元素,目的是确定系数矩阵 的下一个变换。
0 3 0 11 8
0
1
7
7
3
0 2 3 2 1
0
0
5
0
4
0 2 3 4 0
第四步:对上述矩阵进行变换,目的是增加独立0元素个数。方法是在 未被直线覆盖的元素中找出一个最小元素,然后在打“”行各元素中 都减去这一元素,而在打“”列的各元素都加上这一最小元素,以保 持原来0元素不变(消除负元素)。得到新的系数矩阵。(它的最优解 和原问题相同,为什么?因为仅在目标函数系数中进行操作)
作变换,其不变性是最优解
对于指派问题,由于系数矩阵均非负,故若能在在系数矩阵 中找到n个位于不同行和不同列的零元素(独立的0元素),则对 应的指派方案总费用为零,从而一定是最优的。
匈牙利法的步骤如下:
步1:变换系数矩阵。对系数矩阵中的每行元素分别减去该行的最 小元素;再对系数矩阵中的每列元素分别减去该列中的最小元素。若 某行或某列已有0元素,就不必再减了(不能出现负元素)。
第三步:作最少的直线覆盖所有的0元素,目的是确定系数矩阵 的下一个变换。
5 0 2 0 2
2
3
0
0
0
0 10 5 7 2
9
8
0
0
4
0 6 3 6 5
第四步:对上述矩阵进行变换,目的是增加独立0元素的个数。方法是 在未被直线覆盖的元素中找出一个最小元素,然后在打“”行各元素 中都减去这一元素,而在打“”列的各元素都加上这一最小元素,以 保持原来0元素不变(消除负元素)。得到新的系数矩阵。(它的最优 解和原问题相同,为什么?)
标准的指派问题是一类特殊的整数规划问题,又是特殊的0-1 规划问题和特殊的运输问题。1955年W. W. Kuhn利用匈牙利数学家 D. Konig关于矩阵中独立零元素的定理, 提出了解指派问题的一种 算法, 习惯上称之为匈牙利解法。
2. 匈牙利解法
匈牙利解法的关键是指派问题最优解的以下性质:若从指派 问题的系数矩阵C=(cij)的某行(或某列)各元素分别减去一个 常数k,得到一个新的矩阵C’=(c’ij),则以C和C’为系数矩阵的两 个指派问题有相同的最优解。(这种变化不影响约束方程组,而 只是使目标函数值减少了常数k,所以,最优解并不改变。)
数学模型为:
nn
min Z cij xij
i 1 j 1
n xij 1
i 1
s.t n xij 1
j 1
xij
0
or
1,
i, j 1,2,, n
其中矩阵C称为是效率矩阵或系数矩阵。
其解的形式可用0-1矩阵的形式来描述,即 (xij)nn。
0 3 0 11 8
1 0 6 6 2
1 1 2 1 0
0
0
5
0
4
0 2 3 4 0
1 3 0 11 8
0 0 6 6 2
0 1 2 1 0
1
0
5
0
4
1 2 3 4 0
1 3 0 11 8
0 0 6 6 2
第五节 指派问题(Assignment Problem)
1. 标准指派问题的提法及模型
指派问题的标准形式是:有n个人和n件事,已知第i个人做第j件 事的费用为cij(i,j=1,2,…,n),要求确定人和事之间的一一对 应的指派方案,使完成这n件事的总费用最小。
设n2个0-1变量 1 若指派第i个人做第j件事 xij 0 若不指派第i个人做第j件事 (i,j=1,2,…, n)
工程 公司
B1
B2
B3
B4
B5
A1 4 8 7 15 12
A2 7 9 17 14 10
A3 6 9 12 8 7
解:由于每家建筑公司最多可以承建两项,因此可把每家建筑公司看 成两家建筑公司,其系数矩阵为
B1 B2 B3 B4 B5
4 8 4 8 7 9 7 9 6 9 6 9
• 人数和事数不等的指派问题
若人少事多,则添上一些虚拟的“人”。这些虚拟的人作各事的费用 系数可取0,理解为这些费用实际上不会发生。若人多事少,则添上一些虚 拟的“事”。这些虚拟的事被各人做的费用系数同样也取0。
• 一个人可做几件事的指派问题
若某个人可做几件事,则可将该人看做相同的几个人来接受指派。这 几个人作同一件事的费用系数当然都一样。
步2:在变换后的系数矩阵中确定独立0元素(试指派)。若独立0元 素已有n个,则已得出最优解;若独立0元素的个数少于n个,转步3。
确定独立0元素的方法:当n较小时,可用观察法、或试探法;当n较 大时,可按下列顺序进行 • 从只有一个0元素的行(列)开始,给这个0元素加圈,记作,然后划 去所在的列(行)的其它0元素,记作。 •给只有一个0元素的列(行)的0加圈,记作,然后划去所在行的0元 素,记作。 •反复进行,直到系数矩阵中的所有0元素都被圈去或划去为止。 •如遇到行或列中0元素都不只一个(存在0元素的闭回路),可任选其中 一个0元素加圈,同时划去同行和同列中的其它0元素。被划圈的0元素即 是独立的0元素。