matlab匈牙利算法_第1页
matlab匈牙利算法_第2页
matlab匈牙利算法_第3页
全文预览已结束

下载本文档

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

文档简介

1、程序文件fenpei.m函数z,ans=fenpei(marix)%/%输入效率矩阵矩阵矩阵是方阵;%如果效率矩阵中有m,请用足够大的数字替换它;%输出z是最优解,ans是最优分配矩阵;%/a=marixb=a。%确定矩阵维度s=长度(a);%确定矩阵行的最小值并减去行ml=最小值(a);i=1:sa(i,)=a(i,)-ml(I);目标%确定矩阵列的最小值并减去列Mr=min(a);对于j=1:sa(:j)=a(:j)-Mr(j);目标%开始工作num=0;而(num=s)%的终止条件是“(0)”的个数与矩阵的维数相同%index用于标记矩阵中的零元素。如果a(i,j)=0,索引(I,j)=

2、1,否则索引(I,j)=0索引=1(s);index=aindex。指数=指数;%flag用于标记划线位,flag=0表示尚未划线。%flag=1表示交叉线,flag=2表示两条直线相交%ans用于记录中“(0)”的位置%周期后重新初始化标志标志=零(s);ans=零(s);%一个周期描述了整个过程。终止条件是所有零元素都被直线覆盖。%为标志0位,索引=0而(总和(指数)%按行查找“(0)”的位置,并在“(0)”的列下下划线。%是设置标志,同时修改索引,结果将填入ansi=1:st=0;l=0;对于j=1:sif(标志(I,j)=0index(i,j)=1)l=l 1;t=j。目标目标if(l

3、=1)标志(:t)=标志(:t)1;指数(:t)=0;ans(i,t)=1;目标目标%按列查找“(0)”的位置,并在“(0)”的行下面加下划线。%是设置标志,同时修改索引,结果将填入ans对于j=1:st=0;r=0;i=1:sif(标志(I,j)=0index(i,j)=1)r=R1;t=i。目标目标if(r=1)flag(t,)=flag(t,)1;指数(t,)=0;ans(t,j)=1;目标目标结束%对同时(总和(指数)%正在处理%计数器:以ans为单位计算1的数量,用num表示num=sum(总和(ans);%判断是否可以终止,如果可以,则跳出循环。if(s=num)休息;目标%否则,继续下一步%确定没有下划线的最小元素,用m表示m=最大(最大(a);i=1:s对于j=1:sif(标志(I,j)=0)如果(a(i,j) a=37.7 32.9 38.8 37 35.443.4 33.1 42.2 34.7 41.833.3 28.5 38.9 30.4 33.629.2 26.4 29.6 28.5 31.10 0 0 0;z,ans=fenpei(a)z=

温馨提示

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

最新文档

评论

0/150

提交评论