指派问题

合集下载

指派问题实例研究报告

指派问题实例研究报告

指派问题实例研究报告指派问题是一种在组织或团队中分配资源或任务的决策问题。

指派问题的目标是在给定的约束条件下,找到最佳的分配策略,以最大化整体效益或满足特定的目标。

以下是一个指派问题实例的研究报告:标题:某医院护士调班指派问题研究报告一、背景介绍某医院的护士人员经常需要调整工作班次,以适应不同的工作需要和员工的个人需求。

然而,手动调整班次非常耗时且容易出错。

为解决这个问题,研究团队决定使用指派问题的方法来自动化调班过程,提高整体效率和员工满意度。

二、问题描述该医院有10个护士,每天有3个班次,分别为早班、中班和晚班。

每个班次需要不同数量的护士进行工作,早班需要4个护士,中班需要3个护士,晚班需要3个护士。

护士们的个人需求不同,包括对班次的偏好和工作时长的限制。

研究团队的目标是找到一种最佳的调班指派策略,使得整体的工作需求得到满足,同时最大限度地满足护士的个人需求。

三、问题建模研究团队将这个指派问题建模为一个二部图匹配问题,其中:- 每个护士是一个节点,表示第一部分。

- 每个班次是一个节点,表示第二部分。

- 然后建立起两部分节点之间的边。

根据班次的需求量和护士的个人需求进行边的权重赋值。

四、算法实现研究团队选择使用匈牙利算法来解决这个指派问题。

该算法能够在多项式时间内找到最大匹配,以满足所有的需求。

该算法的具体实现过程如下:1. 初始化所有边的权重。

2. 选取一条边进行匹配。

3. 如果找到了一条可行路径,将匹配进行调整。

4. 如果找不到可行路径,将权重进行调整并回到第二步。

5. 重复前面几步,直到找到最优解或无法找到新的匹配。

五、结果分析通过实际测试和模拟实验,研究团队发现,使用匈牙利算法可以高效地解决护士调班指派问题。

该算法能够在合理的时间内找到最佳的调班方案,满足医院的工作需求,并且最大程度地满足护士的个人需求,提高员工满意度和工作效率。

六、结论本研究报告基于指派问题实例,研究了某医院护士调班指派问题。

第4章整数规划——指派问题

第4章整数规划——指派问题

4 指派问题
解: 可行解{c12=0, c24 =0, c31 =0, c43 =0}是一个独立零元素组, c12=0, c24 =0, c31 =0, c43 =0分别称 为独立零元素; {c12=0, c23 =0, c31 =0, c44 =0}也 是一个独立零元素组,而{c14=0, c23 =0, c31 =0, c44 =0}就不是独立零元素 组.
4 指派问题
1)对新矩阵中所有不含“*”元素的行打√ ; 2)对打√的行中,所有打×零元素所在的列打√; 3)对所有打√列中标记“*”元素所在行打√; 4)重复上述2),3)步,直到不能进一步打√为止; 5)对未打√的每一行划一直线,对已打√的每一列划一纵线, 即得到覆盖当前0元素的最少直线数。 第四步:对矩阵未被直线覆盖过的元素中找最小元素,将打 √行的各元素减去这个最小元素,将打√列的各元素加上这个最小 元素(以避免打√行中出现负元素),这样就增加了零元素的个 数,返回第二步。 【例5】 求解例1和例2
X (2)
都是指派问题的最优解。
4 指派问题
4.3 指派问题的求解 指派问题既是一类特殊的整数规划问题,又是特殊的运输问 题,因此可以用多种相应的解法来求解,然而这些解法都没有充 分利用指派问题的特殊性质,有效地减少计算量,直到1955年库 恩(W. W. Kuhn)提出的匈牙利法才有效地解决了指派问题。 匈牙利法的理论基础 定义2 独立零元素组 在效率矩阵中,有一组在不同行不同 列的零元素,称为独立零元素组,其每个元素称为独立零元素。 5 0 2 0 2 3 0 0 C 【例4】 已知效率矩阵 0 5 6 7 4 8 0 0 求其独立零元素组。
0 , 不 指 派 Ai 承 建 商 店 B j x ij ( i , j 1, 2 ,3, 4 ,5 ) 1, 指 派 Ai 承 建 商 店 B j

三类指派问题

三类指派问题

三类指派问题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),适用于小规模问题。

线性规划方法则通过将任务分配问题转化为线性规划模型,并利用线性规划求解器进行求解。

指派问题的最优解法

指派问题的最优解法

指派问题的最优解法指派问题是一个最优化问题,在给定若干个任务和执行者(或机器)的情况下,要求将每个任务指派给一个执行者,并使得总体的执行成本或者效益最优。

指派问题可以用匈牙利算法(Hungarian algorithm)或者KM算法(Kuhn-Munkres algorithm)来求解,这两个算法是目前被广泛采用的指派问题求解方法。

匈牙利算法是一个具有全局优势的贪心算法,它通过不断优化当前的局部选择,最终得到全局最优解。

其基本思想是通过给任务和执行者之间的边标注权重,然后选取最小权重的边进行指派,如果发现某个任务或者执行者已经被指派,就将其它相关的边进行更新,并继续寻找最小权重的边进行指派,直到所有的任务都得到指派。

KM算法是匈牙利算法的一种更加高效的变体。

它首先将指派问题转化为一个最大权匹配问题,然后通过不断调整边的权重,使得每次迭代都可以找到一个指派边的增广路径,并更新相应的匹配结果。

KM算法的核心思想是通过对匹配结果进行调整,减小局部优势并增加全局优势。

无论是匈牙利算法还是KM算法,在最坏情况下的时间复杂度都是O(n^3),其中n表示任务和执行者的数量。

这两个算法的主要区别在于实现的复杂度和算法的效率,KM算法相对于匈牙利算法来说具有更好的性能。

除了匈牙利算法和KM算法之外,还有一些其他的指派问题求解方法,例如启发式搜索、遗传算法等。

这些方法一般适用于指派问题的规模比较大、复杂度比较高的情况下,但是相对于匈牙利算法和KM算法,它们的效率和准确性可能会有所降低。

总之,指派问题的最优解法可以通过匈牙利算法或者KM算法来求解,具体选择哪一种方法可以根据问题的规模和复杂度来决定。

指派问题的四个计算步骤

指派问题的四个计算步骤

指派问题的四个计算步骤
指派问题是一种优化问题,旨在找到最佳的分配方式。

解决指派问题通常有四个计算步骤:
1. 创建代价矩阵:将问题抽象为一个二维矩阵,其中每个元素表示将某个任务分配给某个工人的成本或者效益。

代价矩阵的大小为n行m列,其中n表示任务的数量,m表示工人的数量。

2. 匹配行和列:通过在代价矩阵中查找每一行和列的最小元素,将其标记为零。

如果需要,通过减去每一行和列的最小元素,可以使矩阵中至少有n个零。

3. 寻找最佳分配方案:通过选择代价矩阵中的一个零,并将其标记为星号,然后将与该零所在行或列相交的所有其他零标记为井号。

如果井号的数量等于n,则找到了一个最佳分配方案。

如果不是,请执行第4步。

4. 修改代价矩阵:通过选择未被标记的最小元素,并从该元素中减去所有未被标记的行和列的最小值,可以修改代价矩阵。

然后,返回第2步继续迭代,直到找到一个最佳分配方案。

这些计算步骤被称为匈牙利算法或者KM算法。

通过依次执
行这些步骤,可以找到指派问题的最优解。

运筹学__指派问题

运筹学__指派问题

•下面要证明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)为系数矩阵的指派问题的最优解。

指派问题详解

指派问题详解

第一章绪论1、指派问题的背景及意义指派问题又称分配问题,其用途非常广泛,比如某公司指派n个人去做n 件事,各人做不同的一件事,如何安排人员使得总费用最少?若考虑每个职工对工作的效率(如熟练程度等),怎样安排会使总效率达到最大?这些都是一个企业经营管理者必须考虑的问题,所以该问题有重要的应用价值.虽然指派问题可以用0-1规划问题来解,设X(I,J)是0-1变量, 用X(I,J)=1表示第I个人做第J件事, X(I,J)=0表示第I个人不做第J件事. 设非负矩阵C(I,J)表示第I个人做第J件事的费用,则问题可以写成LINGO程序SETS:PERSON/1..N/;WORK/1..N/;WEIGHT(PERSON, WORK): C, X ;ENDSETSDATA:W=…ENDDATAMIN=@ SUM(WEIGHT: C*X);@FOR(PERSON(I): @SUM(WORK(J):X(I,J))=1);@FOR(WORK(J): @SUM(PERSONM(I):X(I,J))=1);@FOR(WEIGHT: @BIN(X));其中2*N个约束条件是线性相关的, 可以去掉任意一个而得到线性无关条件.但是由于有N^2个0-1变量, 当N很大时,用完全枚举法解题几乎是不可能的. 而已有的0-1规划都是用隐枚举法做的,计算量较大. 对于指派问题这种特殊的0-1规划,有一个有效的方法——匈牙利算法,是1955年W. W. Kuhn利用匈牙利数学家D.König的二部图G的最大匹配的大小等于G的最小顶点覆盖的大小的定理提出的一种算法,这种算法是多项式算法,计算量为O(N3).匈牙利算法的基本原理是基于以下两个定理.定理1设C=(C ij)n×n是指派问题的效益矩阵,若将C中的任一行(或任一列)减去该行(或该列)中的最小元素,得到新的效率矩阵C’,则C’对应的新的指派问题与原指派问题有相同的最优解.证明:设X’是最优解, 即@SUM(WEIGHT: C*X’)<= @SUM(WEIGHT: C*X), 则当C中任一行或任一列减去该行或该列的最小数m时,得到的阵C’还是非负矩阵, 且@SUM(WEIGHT: C’*X’)<=@SUM(WEIGHT: C*X)-m=@SUM(WEIGHT: C’*X)定理2效率矩阵C中独立的0元素的最多个数等于覆盖所有0元素的最少直线数. 当独立零元素的个数等于矩阵的阶数时就得到最优解.3、理论基础定义:图G的一个匹配M是图G中不相交的边的集合. 属于匹配M中的边的所有端点称为被该匹配M饱和, 其他的顶点称为M-未饱和的. 如果一个匹配M 饱和了图G的所有顶点,则称该匹配M是一个完全匹配. 可见顶点数是奇数的图没有完全匹配. 一个匹配M称为是极大匹配, 如果它不能再扩张成更大的一个匹配. 一个匹配称为是最大匹配, 如果不存在比它更大的匹配.定义:对于一个匹配M, 图G的一个M-交替路是图G中的边交替地在M中及不在M中的边组成. 从M-未饱和点出发到M-为饱和点结束的M-交替路称为一条M-增广路. 把M-增广路中不是M中的边改成新的匹配M’中的边, 把M-增广路中M中的边不作为M’中的边, 在M-增广路以外的M中的边仍作为M’中的边, 则M’的大小比M大1. 故名M-增广路. 因此最大匹配M不存在M-增广路.定义:若图G和图H有相同的顶点集V, 我们称G和H的对称差,记为G∆H,是一个以V为顶点集的图, 但其边集是G和H的边集的对称差: E(G∆H)=E(G) ∆E(H)=E(G)⋂E(H)-(E(G)⋃E(H))=(E(G)-E(H)) ⋂ (E(H)-E(G))定理: (Berge, 1957) 图G的一个匹配M是最大匹配,当且仅当G中没有M-增广路.证明: 我们只要证明, G中没有M-增广路时, M是最大匹配. 用反证法, 若有一个比M大的匹配M’. 令G的一个子图F, E(F)=M∆M’, 因M和M’都是匹配, F的顶点的最大度数至多是2, 从而F由不相交的路和环组成, 它们的边交替地来自M和M’, 于是F中的环的长度是偶数. 由于M’比M大, F中存在一个连通分支,其中M’中的边数大于M中的边数. 这个分支只能是起始和终止的边都在M’中. 而这就是一条G中的M-增广路. 与假设矛盾. 证毕.定理(Hall, 1935)设G是一个二部图, X和Y是其二分集, 则存在匹配M 饱和X当且仅当对于X中的任意子集S, Y 中与S中的点相邻的点组成的集合N(S)中元素的个数大于等于集合S中元素的个数.证明:必要性是显然的. 对于充分性, 假设 |N(S)|≥|S|, ∀S⊂X, 考虑G的一个最大匹配M, 我们用反证法,若M没有饱和X, 我们来找一个集合S不满足假设即可. 设u∈X是一个M-未饱和顶点, 令S⊂X和T⊂Y分别是从u出发的M-交替路上相应的点.我们来证明M中的一些边是T到S-u上的一个匹配. 因为不存在M-增广路,T中的每个点是M-饱和的. 这意味着T中的点通过M中的边到达S中的一个顶点. 另外, S-u中的每个顶点是从T中的一个顶点通过M中的一条边到达的. 因此M 中的这些边建立了T与S-u的一个双射, 即|T|=|S-u|. 这就证明了M中的这些边是T到S-u上的一个匹配,从而意味着T⊂N(S), 实际上, 我们可证明T=N(S). 这是因为连接S和Y-T中的点y的边是不属于M的, 因为不然的话, 就有一条到达y的M-增广路, 与y∉T矛盾. 故|N(S)|=|T|=|S-u|=|S|-1<|S|, 与假设矛盾.当X与Y的集合的大小相同时的Hall定理称为婚姻问题,是由Frobenius(1917)证明的.推论: k-正则的二部图(X的每一点和Y的每一点相关联的二部图)(k>0)存在完全匹配.证明: 设二分集是X,Y. 分别计算端点在X和端点在Y的边的个数, 得k|X|=k|Y|, 即|X|=|Y|.因此只要证明Hall的条件成立即可. 使X饱和的匹配就是完全匹配. 考虑∀S⊂X, 设连接S与N(S)有m条边, 由G的正则性, m=k|S|. 因这m条边是与N(S)相关联的, m≤k|N(S)|, 即k|S|≤ k|N(S)|, 即|N(S)|≥|S|. 这就是Hall的条件.用求M-增广路的方法来得到最大匹配是很费时的. 我们来给出一个对偶最优化问题.定义:图G的一个顶点覆盖是集合S⊂V(G), 使得G的每条边至少有一个端点在S中. 我们称S中的一个顶点覆盖一些边, 若这个顶点是这些边的公共端点.因为匹配的任意两条边不能被同一个顶点覆盖, 所以顶点覆盖的大小不小于匹配的大小: |S|≥|M|. 所以当|S|=|M| 时就同时得到了最大的匹配和最小的顶点覆盖.定理(König [1931],Egerváry[1931])二部图G的最大匹配的大小等于G的最小顶点覆盖的大小.证明: 设M是G的任一个匹配, 对应的二分集是X,Y. 设U是一个最小的顶点覆盖, 则|U|≥|M|, 我们只要由顶点覆盖U来构造一个大小等于|U|的匹配即完成证明. 令R=U⋃X, T=U⋃Y, 令H, H’分别是由顶点集R⋂(Y-T)及T⋂(X-R)诱导的G的子图. 我们应用Hall的定理来证明H有一个R到Y-T中的完全匹配,H’有一个从T到X-R中的完全匹配. 再因这两个子图是不相交的, 这两个匹配合起来就是G中的一个大小为|U|的匹配.因为R⋂T是G的一个覆盖, Y-T与X-R之间没有边相联接. 假设S⊂R, 考虑在H中S的邻接顶点集N(S), N(S) ⊂Y-T. 如果|N(S)|<|S|, 因为N(S)覆盖了不被T覆盖的与S相关联所有边, 我们可以把N(S) 代替S作为U中的顶点覆盖而得到一个更小的顶点覆盖. U的最小性意味着H中Hall条件成立. 对H'作类似的讨论得到余下的匹配. 证毕.最大匹配的增广路算法输入: 一个二分集为X,Y的二部图G,一个G中的匹配M, X中的M-未饱和顶点的集合U.思路: 从U出发探求M-交替路,令S⊂X,T⊂Y为这些路到达过的顶点集. 标记S中不能再扩张的顶点. 对于每个x∈(S⋂T)-U, 记录在M-增广路上位于x前的点.初始化: S=U,T=∅.叠代: 若S中没有未标记过的顶点, 结束并报告T⋂(X-S)是最小顶点覆盖而M是最大匹配.不然, 选取S中未标记的点x, 考虑每个y∈N(x)且xy∉M, 若y是M-未饱和的, 则得到一个更大的匹配,它是把xy加入原来的匹配M得到的,将x从S中去除. 不然, y是由M中的一条边wy相连接的, w∈X, 把y加入T(也有可能y本来就在T中), 把w加入S. w未标记, 记录w前的点是y. 对所有关联到x的边进行这样的探索后, 标记x. 再次叠代.定理: 增广路算法可以得到一个相同大小的匹配和顶点覆盖.证明: 考虑这个算法终止的情况, 即标记了S中所有的点. 我们要证明R=T⋂(X-S)是大小为|M|的一个顶点覆盖.从U出发的M-交替路只能通过M中的边进入X中的顶点, 所以S-U中的每个顶点通过M与T中的顶点匹配, 并且没有M中的边连接S和Y-T. 一旦一条M-交替路到达x∈S, 可以继续沿着任何未饱和的边进入T, 由于算法是对于x的所有邻域顶点进行探索才终止的,所以从S 到Y-T 没有未饱和边. 从而S 到Y-T 没有边, 证明了R 是一个顶点覆盖.因为算法是找不到M-增广路时终止, T 的每一个顶点是饱和的. 这意味着每个顶点y ∈T 是通过M 匹配与S 中的一个顶点. 由于U ⊂S, X-S 的每个顶点是饱和的, 故M 中与X-S 相关联的边不和T 中的点相连接. 即它们与是饱和T 的边不同的, 这样我们可见M 至少有|T|+|X-S|条边. 因不存在一个比顶点覆盖更大的匹配, 所以有|M|=|T|+|X-S|=|R|.设二部图G 的二分集X 和Y 都是n 个元素的点集, 在其边j i y x 上带有非负的权ij w , 对于G 的一个匹配M, M 上各边的权和记作w(M).定义: 一个n ×n 矩阵A 的一个横截(transversal)是A 中的n 个位置, 使得在每行每列中有且只有一个位置(有的文献中把横截化为独立零元素的位置来表示).定义: 指派问题就是给定一个图G=n n K ,(完全二部图, 即每个X 中的顶点和Y 中的每个顶点有边相连接的二部图)的边的权矩阵A, 求A 的一个横截, 使得这个横截上位置的权和最大. 这是最大带权匹配问题的矩阵形式.定义: 对于图G=n n K ,,设其二分集是X ,Y ,给定G 的边j i y x 的n ×n 权矩阵W={ij w }.考虑G 的子图v u G ,, 设其二分集是U ⊂X ,V ⊂Y, 边集是E(v u G ,), 对于子图v u G ,的带权覆盖u,v 是一组非负实数{i u },{j v },使得ij j i w v u ≥+,)(,v u j i G E y x ∈∀, v u G ,的带权覆盖的费用是∑∑+j i v u 记为C(u,v), 最小带权覆盖问题就是求一个具有最小费用C(u,v)的带权覆盖u,v.引理: 若M ⊂E(v u G ,)是一个带权二部子图v u G ,的最大匹配, 且u, v 是v u G ,的带权覆盖, 则C(u,v)≥w(M). 而且, C(u,v)=w(M)当且仅当ij j i w v u =+,M y x j i ∈∀. 这时M 是v u G ,最大带权匹配, u,v 是v u G ,的最小带权覆盖, 定义这时的v u G ,为G 的相等子图(equality subgraph ).证明: 因为匹配M 中的边是不相交的, 由带权覆盖的定义就得C(u,v)≥w(M). 而且C(u,v)=w(M)当且仅当ij j i w v u =+,M y x j i ∈∀成立. 因一般地有C(u,v)≥w(M).所以当C(u,v)=w(M)时. 意味着没有一个匹配的权比C(u,v)大, 也没有一个覆盖的费用比w(M)小.Kuhn 得到一个指派问题的算法,命名为匈牙利算法, 为的是将荣耀归于匈牙利数学家König 和Egerv áry.指派问题的匈牙利算法(Kuhn[1955], Munkres[1957]):输入G=n n K ,的边的权矩阵A, 及G 的二分集X,Y.初始化: 任取一个可行的带权覆盖,例如)(max ij ji w u =,0=j v ,建立G 的相等子图v u G ,, 其二分集是X, Y ’⊂Y, 求v u G ,的一个最大匹配M. 这个匹配的权和w(M)=C(u,v), M 的带权覆盖是具有最小费用的.叠代: 如M 是G 的一个完全匹配, 停止叠代, 输出最大带权匹配M. 不然, 令U 是X 中的M-未饱和顶点. 令S ⊂X, T ⊂Y 是从U 中顶点出发的M-交替路到达的顶点的集合.令},:min{T Y y S x w v u j i ij j i -∈∈-+=ε.对于所有的S x i ∈, 将i u 减少ε, 对于所有的T y j ∈,将j v 增加ε,形成新的带权覆盖u ’,v ’及对应的新的相等子图v u G '',.如果这个新的相等子图含有M-增广路, 求它的最大匹配M ’, 不然不改变M 再进行叠代.定理: 匈牙利算法能找到一个最大权匹配和一个最小费用覆盖.证明: 算法由一个覆盖开始,算法的每个叠代产生一个覆盖,仅在相等子图有一个完全的匹配为止。

指派问题

指派问题

2 15 13
(cij)= 10 4 14
4
15 13
2
4 9 7 0 13 11 6 0 0 5 1 10 7 4 4 2 11 4 2 2
9 14 16
7
8 11
9
0 13 6 0 0 5
7 6 3
0 9 2
0
0
1
0
0
第二步:进行试分配,以寻找最优解。
从只有一个0元素的行(或列)开始, 给这个0元素加圈,记,然后划去所 在的列(或行)的其他0元素,记作Ø。 给只有一个0元素的列(或行)的0元素 加圈,记,然后划去所在的行(或列) 的其他0元素,记作Ø。
分配问题的数学模型:
Min Z= cijxij xij =1 (j=1,2……n) xij =1 (i=1,2……n) xij 0或1 (i=1,2…..m; j=1,2……n)
xij =1 (j=1,2……n)表示
第j 项任务只能由一人去完成。
xij =1 (i=1,2……n)
指派问题 (Assignment Problem)
在实际中经常会遇到这样的问题,有n 项不同的任 务,需要n 个人分别完成其中的一项,但由于任务的性 质和各人的专长不同,因此各人去完成不同的任务的 效率(或花费的时间或费用)也就不同。于是产生了 一个问题,应指派哪个人去完成哪项任务,使完成 n 项任务的总效率最高? (一)、指派问题的数学模型 设n 个人被分配去做n 件工作,规定每个人只做一 件工作,每件工作只有一个人去做。已知第I 个人去 做第j 件工作的的效率( 时间或费用)为 Cij(i=1.2…n;j=1.2…n)并假设Cij ≥0。问应如何分配才 能使总效率( 时间或费用)最高?
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 0 0 0
5.4 指派问题 assignment problem
下面就m〈n的情况进行讨论:
58 75 65 82 69 50 70 55 180 150 170 200
min 260 58 50 230 250 65 280 55
行变换
min
列变换
0 11 122 202 25 0 100 180 0 5 105 185 27 0 145 225
第二步:找出矩阵每列的最小元素,再分别从每列中减去,有
0 11 122 202 0 11 22 22 25 0 100 180 25 0 0 0 0 5 105 185 0 5 5 5 27 0 145 225 27 0 45 45 min 0 0 100 180
第四步:这里直线数等于3(等于4时停 止运算),要进行下一轮计算. 从矩阵未被直线覆盖的数字中找出一个 最小数k并且减去k,矩阵中k=5. 直线相交处的元素加上k,被直线覆盖而 没有相交的元素不变,得到下列矩阵
第四步等价于第2、3行减去5,同时第1列加上5得到的结果
5.4 指派问题 assignment problem
5.4 指派问题 assignment problem
一份说明书需翻译成英日德俄四种文字(E,J,G,R), 甲乙丙丁四人翻译四种文字所需时间如下图所示, 如何安排才能使完成工作所需时间最短?
E 甲 乙 丙 丁 2 10 9 7
J 15 4 14 8
G 13 14 16 11
R 4 15 13 9
工厂3
工厂4
65
82
70
55
170
200
250
280
【解】问题求最小值。 第一步:找出效率矩阵每行的最小元素,并分别从每行中减 去最小元素,有
5.4 指派问题 assignment problem
min 58 75 65 82 69 180 260 58 50 150 230 50 70 170 250 65 55 200 280 55
min(max) Z cij xij
i 1 j 1 m m
m xij 1 j 1 m xij 1 i 1 xij 0或1
i 1, , m j 1, , m i, j 1, m
5.4 指派问题 assignment problem
5.4 指派问题 Assignment Problem
一.内容概述 二.数学模型 三.指派问题的匈牙利算法 四.例5-15 五.经典例题分析 六.特殊问题的模型转化
5.4 指派问题 Assignment Problem
1.指派模型的特征 2.匈牙利法求解指派问题的条件 3.匈牙利法的两个基本定理 4.指派问题也是一个特殊的运输问题. 5.将指派(分配)问题的效率矩阵每行分别加上一个数后 最优解不变.
5.4 指派问题 assignment problem
【例5.15】某汽车公司拟将四种新产品配置到四个工厂生产,四 个工厂的单位产品成本(元/件)如表5-35所示.求最优生产配 置方案.
表5-35 产品1 工厂1 工厂2 58 75 产品2 69 50 产品3 180 150 产品4 260 230
θ=5
0 6 17 17 30 0 0 0 0 0 0 0 32 0 45 45
5.4 指派问题 assignment problem
数学模型
【例5.14】人事部门欲安排四人到四个不同的岗位工作,每个岗 位一个人.经考核四人在不同岗位的成绩(百分制)如表5-34所 示,如何安排他们的工作使总成绩最好。
表5-34 工作
人员
甲 乙 丙 丁
A 5 95 82 86
B 92 87 83 90
0 25 0 27
11 22 22 0 0 0 5 5 5 0 45 45
试指派
0 25 0 27

11 0 5 0
22 22 √ 0 0 5 5 √ 45 45
此时m(3)<n(4),则应转入第三步:即用最少的直线覆盖 所有的0.找最少直线的步骤:1、无 0 行右边划√,在已 经划√的行中找0所在的列,在列下面划√,在这列中找到 0 所在行,在行右边划√,重复直至不能划√为止. 2、无√行划一横线,在有√的列划一纵线,此时找到 最少的直线数记为L,当L=m<n时,转入第四步;当 L>m时,试指派.
x 21 x31 x 41 1 x 22 x32 x 42 1 x 23 x33 x 43 1 x 24 x34 x 44 1

C

D
图5. 3
5.4 指派问题 assignment problem
假设m个人恰好做m项工作,第i个人做第j项工作的效率为cij≥0, 效率矩阵为[cij](如表5-34),如何分配工作使效率最佳(min或 max)的数学模型为
5.4 指派问题 assignment problem
10 效率矩阵为 9 7
2
15 13 4 8 14 11 14 16
15 13 9
4
本题求最小值,下面用匈牙利解法求解
一、行列变换(找出每一行(每一列)的最小值, 然后让每一行(每一列)的元素都减去这个数)
5.4 指派问题 assignment problem
5.4 指派问题 assignment problem
数学模型为:
max Z 85x11 92x12 73x13 90x14 95x21 87x22 78x23 95x24 82x31 83x32 79x33 90x34 86x41 90x42 80x43 88x44
C 73 78 79 80
D 90 95 90 88
x11 x X 21 x31 x41
x12 x22 x32 x42
x13 x23 x33 x43
x14 x24 x34 x44
【解】
1 xij 0
分配第i人做j工作时 不分配第i人做j工作时
m
m
m
m
ij
ui v j ) xij
m m m m
cij xij ui xij v j xij
i 1 m j 1 j 1 i 1 m
cij xij ui v j cij xij u v
i 1 j 1 i 1 j 1 i 1 j 1

2 10 9 7
15 4 14 8
13 14 16 11
4 15 13 9

min 2 4 9 7
行变换 0 min 0
0 13 11 2 6 0 10 11 0 5 7 4
1 4
0 4
2 2
列变换

0 13 7 6 0 0 0 5 1 6 3 0
0 9 2 0
cij xij ui v j cij xij u v
i 1 j 1 i 1 j 1 i 1 j 1
m
m
5.4 指派问题 assignment problem
【证】
b x (c
i 1 j 1 ij ij i 1 j 1 m m i 1 j 1 m m

5.4 指派问题 assignment problem
得到两个最优解
1 1 1 1 ,X ( 2)= X (1)= 1 1 1 1
有两个最优方案 第一种方案:第一个工厂加工产品1,第二工厂加工产品3, 第三个工厂加工产品4,第四个工厂加工产品2; 第二种方案:第一个工厂加工产品1,第二工厂加工产品4, 第三个工厂加工产品3,第四个工厂加工产品2; 单件产品总成本 Z=58+150+250+55=513 当人数与工作数较多时,用直观的方法进行画线及找独立的零 元素比较困难,具体方法请参看教材p115。
【证】
b x (c
i 1 j 1 ij ij i 1 j 1 m m i 1 j 1 m m
m
m
m
m
ij
ui v j ) xij
m m m m
cij xij ui xij v j xij
i 1 m j 1 j 1 i 1 m
0 25 0 27
0
11 0
5 0
122 100
105 145
202 180
185 225
0 100 180

0 25 0 27
11 22 22 0 0 0 5 5 5 0 45 45
5.4 指派问题 assignment problem
5.4 指派问题 assignment problem
0 11 22 22 √ 25 0 0 0 0 5 5 5√ 27 0 45 45 √
此时L=m<n,进行第四步:划线以 外的数字之中记最小值为θ,没有被 直线覆盖的行减去θ.直线交叉处的数 字加上θ。变换后再回到步骤二。
x11 x12 x13 x14 1 x x x x 1 21 22 23 24 x31 x32 x33 x34 1 x 41 x 42 x 43 x 44 1

A

B
x11 x 12 x13 x14

5.4 指派问题 assignment problem
步骤二、试指派(找独立的0元素)
相关文档
最新文档