分配问题与实验.doc

分配问题与实验.doc

ID:56517907

大小:411.50 KB

页数:19页

时间:2020-06-26

分配问题与实验.doc_第1页
分配问题与实验.doc_第2页
分配问题与实验.doc_第3页
分配问题与实验.doc_第4页
分配问题与实验.doc_第5页
资源描述:

《分配问题与实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章分配问题与实验这类问题称为分配问题,又称为指派问题(AssignmentProblem)。分配问题是运输问题的特殊情况,并且其特殊的结构允许作为线性规划中更有效的原始—对偶单纯形法的应用,全部的程序能在一个简单排列上产生,并且其标号过程是简单的,此结果是匈牙利(Hungarian)算法。§4.1分配问题的数学模型标准分配问题模型设有n个人被分配去做n件事,规定每个人只做一件工作,每件工作只由一个人去做。已知第i个人去做第j件工作的效率(时间或费用)为(),并假设。问应如何分配才能使总效率(总时间或总费用最少等)最高?设决策变量(其中)。那么第i个人做第j件工作的效率为。从而

2、i=1,…,n;j=1,…,n;的综合即为总效率。每件工作都有人去做,使用数学表达式为同样,每个人都有工作做,为于是分配问题的数学模型为:;s.t.类似对运输问题特点的分析可知,分配问题约束条件系数矩阵A的秩为2n-1,故它的基可行解中共有2n-1个基变量。但实际上只需要找出n个1即可(即分配n个人去做n件不同的工作),而其余n-1个基变量取值为0,因此这是一个高度退化的线性规划问题。考察分配问题的数学模型,将目标函数的系数排成下列矩阵:称之为分配问题的效益矩阵。它有下列基本性质。定理4.1从效益矩阵的第k行(或第k列)的每一个元素中减去一个常数a,得到新效益矩阵所表示的分配问题

3、与原问题具有相同的最优解。其证明比较简单,读者可自行证明。记效益矩阵的某行(列)的每一个元素中减去一个常数得到新的效益矩阵称为缩减效益矩阵。根据定理4.1,可以将求解效益矩阵为的分配问题化成求解效益矩阵为的分配问题。这里是由的各行、各列中分别减去该行、该列的最小元素而得到的。不难看出中的每行、每列中至少有一个零元素。如果这些零元素分布在效益矩阵的不同行和不同的列上,则称这些零元素为独立的零元素。如果这些独立的零元素的个数恰好等于效益矩阵的阶数,则将独立零元素所在位置对应的取1,将其余变量取为0。这时,已找到了这个分配问题的最优解。如果没有得到独立的零元素,或者独立零元素的个数小于

4、效益矩阵的阶数,则必须寻找某种方法继续调整缩减效益矩阵,直至找到独立零元素的个数等于效益矩阵的阶数为止。称这些独立零元素对应的效益矩阵为全分配矩阵。由此,分配问题求解的关键是如何调整效益矩阵,使之成为全分配矩阵。下面介绍的关于矩阵中零元素的定理就是构造这类算法的基础。定理4.2若一方阵中的一部分元素为0,一部分元素为非0,则覆盖方阵内所有0元的最少直线数恰好等于那些位于不同行、不同列的0元的最多个数。(证明省略)。匈牙利算法基于一种必须兼备下述三个条件的称为分配模型的标准形模型:(1)目标要求为min;(2)效益矩阵为n阶方阵;(3)阵中所有元素,且为常数。§4.2分配问题和匈牙

5、利算法根据以上两个定理,可将匈牙利算法的解题步骤归纳如下:第一步:将原分配问题的效益矩阵进行变换得矩阵,使各行各列中都出现零元素。其方法是:(1)从效益矩阵得每行元素中减去该行得最小元素;(2)再从所得效益矩阵得每列元素中减去该列得最小元素。第二步:进行试分配,求此按以下步骤进行。(1)从零元素最少的行(或列)开始,给这个零元素加“横杠”,记作。然后划去该零元素所在列(或行)得其它零元素,记作。(2)给只有一个零元素的列(或行)中的零元素加“横杠”,然后划去该零元素所在行(或列)的零元素,记作。(3)反复进行(1),(2)两步,直到所有零元素都被“横杠”划出或划去为止。(4)若仍

6、有没有被“横杠”划出或划去的零元素,且同行(或列)的零元素至少有两个。这时可用不同的方案去试探。从剩有零元素最少的行(或列)开始,比较这行零元素所在列中零元素的数目,选择零元素较少的那列的这个零元素加“横杠”,然后划去同行同列的其它零元素。如此反复进行,直到所有的零元素都已划出或划去。(5)若元素的数目m等于矩阵的阶数n,那么这个分配问题的最优解已经得到,令划“横杠”处的变量,其余变量,即为所求的最优解。否则,若,则转入下一步。第三步:寻找覆盖所有零元素的最少直线,以确定该矩阵中能找到的最多的独立零元素的个数。为此按以下步骤进行。(1)对没有的行打*号;(2)对已打*号的行中所有

7、含元素的列打*号;(3)再对打有*号的列中含有元素的行打*号;(4)重复(2),(3),直到得不出新的打*号的行、列为止。(5)对没有打*号的行划横线,有打*号的列划纵线,这就得到覆盖所有零元素的最少直线数。令这直线数为l。若,说明必须再变换当前的矩阵,才能找到n个独立零元素,则转第四步;若,而,则返回第三步(4),另行试探。第四步:调整,使之增加一些零元素。为此按如下步骤进行。(1)在没有被直线段覆盖的元素中,找出最小元素;(2)在没有被直线段覆盖的元素中,减去这个最小元素;(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。