xylzhipai.m

所需积分/C币:9 2020-06-19 18:01:02 2KB M
10
收藏 收藏
举报

通过MATLAB进行运筹学的匈牙利算法的实现。匈牙利算法运用于指派问题是很常见的一种算法1. 变换系数矩阵使各行各列出现0元素:每行减去该行最小值;每列减去该列最小值后为矩阵为A(i,j); 2. 标记:用location矩阵来标记A中的0元素的位置,A(i,j)=0,则location(i,j)=1,否则为0; 3. 试指派:判断找出的0元素个数n是否等于矩阵A的维数s,若等于找到最优解,否则,转4; 4. 划线:用line矩阵来表示划线的位置,定义line矩阵为s维0矩阵,定义zyj为s为0矩阵,用来标记分配位置,line(i,j)=0表示矩阵A的元素未被划线,line(i,j)=2表示矩阵A的元素是两条直线的交点。先按行找0元素在对含有0元素的这一列划线,此时line矩阵对应行加1,zyj矩阵对应行列为1 ,再按列找0元素对含有0 元素的这一列划线,此时line矩阵对应列加1,zyj矩阵对应行列为1; 5. 判断此时zyj矩阵中的1出现的次数等不等于A的维数s,等于则循环结束,否则,转6; 6. 增加0元素的个数:找出A中未被标记的元素的最小值m,A中未被划线的元素减m,A中交点位置的元素加m,转3.

...展开详情
立即下载 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • 分享学徒

关注 私信
上传资源赚钱or赚积分
最新推荐
xylzhipai.m 9积分/C币 立即下载
1/0