求解指派问题的一次性分配算法_周莉
- 格式:pdf
- 大小:1.61 MB
- 文档页数:5
指派问题的四个计算步骤
指派问题是一种优化问题,旨在找到最佳的分配方式。
解决指派问题通常有四个计算步骤:
1. 创建代价矩阵:将问题抽象为一个二维矩阵,其中每个元素表示将某个任务分配给某个工人的成本或者效益。
代价矩阵的大小为n行m列,其中n表示任务的数量,m表示工人的数量。
2. 匹配行和列:通过在代价矩阵中查找每一行和列的最小元素,将其标记为零。
如果需要,通过减去每一行和列的最小元素,可以使矩阵中至少有n个零。
3. 寻找最佳分配方案:通过选择代价矩阵中的一个零,并将其标记为星号,然后将与该零所在行或列相交的所有其他零标记为井号。
如果井号的数量等于n,则找到了一个最佳分配方案。
如果不是,请执行第4步。
4. 修改代价矩阵:通过选择未被标记的最小元素,并从该元素中减去所有未被标记的行和列的最小值,可以修改代价矩阵。
然后,返回第2步继续迭代,直到找到一个最佳分配方案。
这些计算步骤被称为匈牙利算法或者KM算法。
通过依次执
行这些步骤,可以找到指派问题的最优解。
第一章绪论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 再进行叠代.定理: 匈牙利算法能找到一个最大权匹配和一个最小费用覆盖.证明: 算法由一个覆盖开始,算法的每个叠代产生一个覆盖,仅在相等子图有一个完全的匹配为止。
基于GSAA的停机位指派优化问题的研究鞠姝妹1,许俐(南京航空航天大学民航学院, 南京 210016)摘 要:停机位的合理指派是机场地面作业中的一项核心任务,对减少枢纽机场航班中转时间起着重要作用,但是停机位指派问题是NP难问题,模型和算法都比较复杂。
本文建立了以旅客满意度为优化目标的数学模型,并设计了一种贪婪模拟退火算法(GSAA),以求解枢纽机场的停机位指派问题。
该算法首先根据贪婪算法FCFS 准则使“丢失”的航班数最少得到模拟退火算法的初始解,然后运用经典模拟退火算法求解出最优指派结果。
数值仿真证明了模型和算法的有效性。
关键词:枢纽机场;停机位指派;旅客满意度;贪婪模拟退火算法Airport Gate Assignment Problem based on GSAAJU Shumei, XU Li(School of Civil Aviation,Nanjing University of Aeronautics and Astronautics, Nanjing 210016, China)Abstract: Airport gate assignment is a key task among the airport ground work which is important to reduce transfer time in hub airports. However, the gate assignment problem (GAP) is an NP-hard problem, its models and algorithms are complex. This paper proposed a model and a new greedy simulated annealing algorithm (GSAA) to resolve the GAP. The initial solution of the proposed algorithm is obtained through FCFS criterion of greedy method to minimize the “dropping” flights, and then the optimal solution is got by the traditional simulated annealing algorithm. Simulation result shows the validity of the model and the algorithm.Key words: hub airport; gate assignment problem; the degree of passenger satisfaction; greedy simulated annealing algorithm1 引言停机位分配是指,在考虑机型大小、停机位大小、航班时刻等因素的情况下,在一定时限范围内,由机场生产指挥中心为到港和离港航班指定适宜的登机口,保证航班正常不延误,为旅客上下航班提供登机门[1]。
指派问题的算法分析与实现摘要在企业、公司的运营与管理中,管理者总是希望把人员最佳分派以发挥其最大工作效率,从而降低成本、提高效益。
然而,如果没有科学的方法是很难实现优化管理的,由此我们引入了指派问题。
指派问题多是求项目的工时最少,而很多情况下人们并不关心项目总工时的多少,而只关心项目能否在最短的时间内完成,即历时最少的指派问题。
这类问题研究的是n个人执行n项任务,执行每项任务的人数以及总的指派人项数均有限制,要求最优指派。
在运筹学中求解整数规划的指派问题通常是通过匈牙利算法来求解,但指派问题也可以归结为一个0-1整数规划问题,本文先对指派问题进行陈述,引出对实际问题的求解。
在指派问题的背景、描述中充分理解该问题,先运用匈牙利算法实现指派问题,然后再建立一个0-1整数规划模型,并运用matlab和lingo编译程序对问题进行编译,运用软件解决模型问题,最终实现指派问题在实际问题中的运用。
通过运用匈牙利算法和0-1整数规划同时对指派问题求解,我们发现用0-1整数规划的方法来求解可以更简单,也更方便程序的阅读和理解。
与此同时,我们还对0-1整数规划问题由整数数据深入研究到小数数据。
最后通过实例来说明运用matlab,lingo编译程序来解决整数规划问题的简便和有效性。
关键词:指派问题;匈牙利算法;0-1整数规划;matlab模型;lingo模型1. 问题陈述指派问题又称分配问题,其用途非常广泛,比如某公司指派n个人去做n 件事,各人做不同的事,如何安排人员使得总费用最少?若考虑每个职工对工作效率(如熟练程度等),怎样安排会使总销量达到最大?这些都是一个企业经营管理者必须考虑的问题,所以该问题有重要的应用价值。
假设有n 件工作分派给n 个人来做,每项工作只能由一人来做,每个人只能做一项工作。
若给出各人对各项工作所具有的工作效率。
问应该如何安排人选,及发挥个人特长又能使总的效率最大。
为此用0-1整数规划来实现指派问题即如何安排人选。
4.5 指派问题有n项任务要分给n个人去完成,每人完成一项.由于任务的性质以及个人的专长不同,因此,各人完成不同任务的效率就有差别,如何分配这些工作任务,使总的效率最高?这类问题称为指派问题.在现实生活中,诸如若干项合同要选择若干个投标者来承包,若干班级要安排在各教室上课等等均属于这类指派问题.如果我们记x ij= 1,当指派第i人做第j项工作;0,不指派第i人做第j项工作.那么指派问题的数学模型可以表示为在x ij=0或1,以及x ij=1(j=1,2,…n), ∑x ij=1(i=1,2,…n)的约束条件下求目标函数z=∑∑c ij x ij的最大(或最小)值,其中c ij表示第i个人完成第j项任务的效率(或成本、时间、费用等).可以看出,指派问题是特殊的整数规划问题,又是特殊的0-1规划问题和特殊的运输问题,因此,它可以用多种方法来解.[案例13]附表给出五位工人完成五种工作所能取得的效益,试求出分配该五位工人分别担任一项工作的方案,使取得的效益最大.(上海市第五届中学生数学知识应用竞赛决赛试题五)分析(1)按题目要求,应选取表中的不同行、不同列的五个数据,还要求选取的这五个数的和最大,如果逐一验算,需考5!=120种方案.实际上,这是一个典型的“指派问题”。
(2)要求目标函数最大.为此,可将表中最大的一个数减去表中每一个数,由此可将最大化问题化归为最小化问题.表1表2解 (l) 将表中最大数80减去表中每一个数得表1.(2) 每列减去本列的最小数,并在有0的位置上考虑安排工作,得表2.(3) 第3、4行未满足,减去本行中最小数,得表3.(4) 由于第四列己满足,故将第1、3行减1,第四列加1.此时(3,1)格为0,但(5,1)格已安排工作,注意到(5,5)为0,故可作简单调整得表4.表3表4(5)现在只有第4行未满足,减去本行最小数得表5.表5至此,我们已得到问题的解: x14=1, x22=1, x31=1, x43=1, x55=1,即分配工人A做第4、B做第2、C做第1、D 做第3、E做第5件工作,可以取得最大效益为17+50十18十28+80=193.[案例14]某商业公司计划开办五家新商店,为了尽早建成营业,商业公司决定由5家建筑公司分别承建已知建筑公司A i(i=1,2,…5)对新商店B j(j=1,2,…,5)的建造费用的报价(万元)为c ij(i,j=1,2.…,5),见下表.试问商业公司应当对这5家建筑公司怎样分配建造任务,才能使总的建造费用最少?解这是最小化指派问题,可直接利用表上作业法进行操作,见表1-3.最优方案为:让A1承建B3,A2承建B2,A3承建B1,A4承建B4,A5承建B5,此时能使总的建造费用最少,为7+9+6+6+6=34万元表1表2说明将表1第2、3行减去本行最小数后,(2,2)格为0,与(4,2)格冲突,但(4,4)格为0,于是调整为(2,2)、(4,4)安排任务,(4,2)不做安排,这就得到了表2.表2到表3也使用了这种微调的技巧.表3。
指派问题的解法总结问题引入:在工作的时候,常常需要对一些人进行工作安排,由于某些条件的限制,每个人只能进行一种工作,怎么安排才能使得总工作时间最小。
我们把这一类问题称为指派问题。
在这里,我只对人和工作刚好一对一的指派问题的解法进行总结,而对于不是一对一的,则可以通过文献1中的一些方法进行变换。
目前问题解法的总结。
1:最广泛应用的解法:匈牙利算法。
算法简介:库恩(fW.W.Kuhn)于1955年提出了指派问题的解法.他引用了匈牙利数学家康尼格一个关于矩阵中0元素的定理:系数矩阵中独立0元素的最多个数等于覆盖所有0元素的最少直线数。
这个解法称为匈牙利解法。
匈牙利算法虽是运用最广泛的算法,但其操作过程却过于复杂。
在划0的时候也不方便记忆,对于初学者来说掌握不便。
于是国内很多学者对指派问题给出了几个较简单,方便易记的算法。
2:指派问题新解法——目标值子矩阵法。
算法描述:任取变量矩阵X某一行中的最小元素,为该行元素目标值的最优解(但不一定是系统目标函数的最优解),应该是系统目标函数满意解中的一个元素,记作a11 划去a11 所在的行和列,取剩下的子矩阵中某一行的最小元素,记作a22。
依次类推,直到最后一个元素a nn.这些元素相加得系统目标函数的一个满意解,此为一次运算.第二次运算取变量矩阵X中含a 以外的任一行,做与上面相同运算,又可以得到系统的第二个满意解.相同地,对于n行做n次运算,共得到系统的n个满意解,系统的最优解即应该是这 n个满意解当中的最小值.若第i的最小元素在前面以被取用过,则在进行第i的运算时,不选取该元素,取该行中未被选用过的元素中最小的一个进行运算。
算法分析:相对于匈牙利算法,此算法简单,方便操作。
但不能给出所有最优解,得出的最优解唯一,若要给出全部最优解,则算法的次数将大大增加。
当矩阵维数较大的时候,可以对矩阵进行划分,以更快计算。
算法举例:对于变量矩阵x;3:递归思想在指派问题中的运用算法描述:对目标函数的解,等于min{a1+A1,a2+A2,a3+A3,…..a n+An};其中a i为第一行中的第i个元素,A i为除去第i个元素所在行和列的子矩阵。
指派问题求解方法
指派问题的求解方法主要包括以下步骤:
1. 建立效率矩阵:对于n个任务和n个执行任务的人,建立一个nn的效率矩阵,矩阵中的元素表示第i个人完成第j项任务时的效率或所需时间、成本等。
2. 对效率矩阵进行归一化处理:通过行归约和列归约,使效率矩阵中每行每列都出现0元素。
行归约是指找出每行的最小元素,分别从每行中减去这个最小元素;列归约是指找出每列的最小元素,分别从每列中减去这个最小元素。
3. 指派任务:从归一化后的效率矩阵中找出独立的零元素,即每行每列各有一个元素为0。
将任务指派给这些独立零元素所在的行或列中对应的人。
若某行(列)中只有一个零元素,对该零元素标1,表示这个任务就指派给某人做。
每标一个1,同时将该零元素同列的其他零元素标为2,表示此任务已不能由其他人来做。
如此反复进行,直到系数矩阵中所有的零元素都已经被标为1或者2为止。
4. 确定最优解:将0(1)所在位置记为1,其余位置记为0,则获得了该问题的最优解。
以上信息仅供参考,如果您还有疑问,建议咨询专业人士。
指派问题的算法分析与实现摘要在企业、公司的运营与管理中,管理者总是希望把人员最佳分派以发挥其最大工作效率,从而降低成本、提高效益。
然而,如果没有科学的方法是很难实现优化管理的,由此我们引入了指派问题。
指派问题多是求项目的工时最少,而很多情况下人们并不关心项目总工时的多少,而只关心项目能否在最短的时间内完成,即历时最少的指派问题。
这类问题研究的是n个人执行n项任务,执行每项任务的人数以及总的指派人项数均有限制,要求最优指派。
在运筹学中求解整数规划的指派问题通常是通过匈牙利算法来求解,但指派问题也可以归结为一个0-1整数规划问题,本文先对指派问题进行陈述,引出对实际问题的求解。
在指派问题的背景、描述中充分理解该问题,先运用匈牙利算法实现指派问题,然后再建立一个0-1整数规划模型,并运用matlab和lingo编译程序对问题进行编译,运用软件解决模型问题,最终实现指派问题在实际问题中的运用。
通过运用匈牙利算法和0-1整数规划同时对指派问题求解,我们发现用0-1整数规划的方法来求解可以更简单,也更方便程序的阅读和理解。
与此同时,我们还对0-1整数规划问题由整数数据深入研究到小数数据。
最后通过实例来说明运用matlab,lingo编译程序来解决整数规划问题的简便和有效性。
关键词:指派问题;匈牙利算法;0-1整数规划;matlab模型;lingo模型1. 问题陈述指派问题又称分配问题,其用途非常广泛,比如某公司指派n个人去做n 件事,各人做不同的事,如何安排人员使得总费用最少?若考虑每个职工对工作效率(如熟练程度等),怎样安排会使总销量达到最大?这些都是一个企业经营管理者必须考虑的问题,所以该问题有重要的应用价值。
假设有n 件工作分派给n 个人来做,每项工作只能由一人来做,每个人只能做一项工作。
若给出各人对各项工作所具有的工作效率。
问应该如何安排人选,及发挥个人特长又能使总的效率最大。
为此用0-1整数规划来实现指派问题即如何安排人选。
指派问题在高校班级管理中的运用
高校班级管理中,指派问题是一个非常重要的环节。
指派问题是指将实际工作任务分配给相应的人员,以确保工作的高效进行。
在高校班级管理中,指派问题主要包括以下几个方面的运用。
指派问题在学生工作中的运用。
学生工作是高校班级管理的重要组成部分,通过指派适当的学生工作任务,可以让学生充分发挥自己的才能,培养其各方面的能力。
可以将班级的文艺活动指派给有艺术特长的学生,将班级的体育活动指派给有体育特长的学生,将班级的组织工作指派给有组织能力的学生,以此提高班级的整体素质。
指派问题在学习任务中的运用。
学习任务是高校班级管理的核心内容,通过合理的指派可以提高学生的学习成效。
可以将学习任务指派给不同的学生,让他们充分发挥自己的优势,相互学习和合作,提高学习的效果。
还可以根据学生的学习特点和能力水平,将学习任务分为不同的层次和难度,以促进学生的个性化发展。
指派问题在高校班级管理中具有重要的运用价值。
通过合理的指派可以充分发挥学生和教师的专业能力,提高班级管理和学习效果,促进学生的全面发展。
高校班级管理中应注重指派问题的运用,并结合实际情况合理安排各项工作任务,以达到最佳管理效果。