运筹学指派问题的匈牙利法实验报告_第1页
运筹学指派问题的匈牙利法实验报告_第2页
运筹学指派问题的匈牙利法实验报告_第3页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

运 筹 学课程设计报告精品资料专业: 班级: 学号: 姓名:2012年 6 月 20 日目录一、题目。二、算法思想。 三、算法步骤。 四、算法源程序。五、算例和结果。六、结论与总结。一、 题目:匈牙利法求解指派问题。二、 算法思想。匈牙利解法的指派问题最优解的以下性质:设指派问题的系数矩阵为c=cij,若将 c 的一行(或列)各元素分别n n减去一个常数 k(如该行或列的最小元素) ,则得到一个新的矩阵c=cijn n 。那么,以 c位系数矩阵的指派问题和以c 位系数矩阵的原指派问题有相同最优解。由于系数矩阵的这种变化不影响约束方程组,只是使目标函数值减少了常 数 k,所以,最优解并不改变。必须指出,虽然不比要求指派问题系数矩阵中无负元素,但在匈牙利法求解指派问题时,为了从以变换后的系数矩阵中判别能否得到最优指派方案, 要求此时的系数矩阵中无负元素。因为只有这样, 才能从总费用为零这一特征判定此时的指派方案为最优指派方案。三、 算法步骤。(1) )变换系数矩阵,使各行和各列皆出现零元素。各行及各列分别减去本行及本列最小元素,这样可保证每行及每列中都有零元素,同时,也避免了出现负元素。(2) )做能覆盖所有零元素的最少数目的直线集合。因此,若直线数等于n,则以可得出最优解。否则,转第(3)步。对于系数矩阵非负的指派问题来说,总费用为零的指派方案一定是最优指派方案。在第( 1)步的基础上,若能找到n 个不同行、不同列的零元素,则对应的指派方案总费用为零, 从而是最优的。当同一行(或列)上有几个零元素时, 如选择其一,则其与的零元素就不能再被选择,从而成为多余的。因此,重要的是零元素能恰当地分布在不同行和不同列上,而并在与它们的多少。但第(1) 步并不能保证这一要求。 若覆盖所有零元素的最少数目的直线集合中的直线数目是 n,则表明能做到这一点。此时,可以从零元素的最少的行或列开始圈“ 0”,每圈一个“0”, 同时把位于同行合同列的其他零元素划去(标记为),如此逐步进行,最终可得n 个位于不同行、不同列的零元素, 他们就对应了最优解; 若覆盖所有零元素的最少数目的直线集合中的元素个数少于n,则表明无法实现这一点。需要对零元素的分布做 适当调整,这就是第( 3)步。(3) ) 变换系数矩阵,是未被直线覆盖的元素中出现零元素。回到第(2)步。在未被直线覆盖的元素中总有一个最小元素。对未被直线覆盖的元素所在的行(或列)中各元素都减去这一最小元素,这样,在未被直线覆盖的元素中势必会出现零元素, 但同时却又是以被直线覆盖的元素中出现负元素。为了消除负元素,只要对它们所在的列(或行)中个元素都加上这一最小元素(可以看作减去 这一最小元素的相反数)即可。四、 算法源程序。#include #include #define m 5int input(int mmm)int i,j;for(i=0;im;i+)cout 请输入系数矩阵第 i+1 行元素: endl; for(j=0;jmij;cout 系数矩阵为: endl;for(i=0;im;i+)for(j=0;jm;j+)c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论