代码:

function [z,x_ij]=xiongyalifa(a)
%输出z为最小值,x_ij为最优解;
b=a;
%确定矩阵维数
s=length(a);%第一步:使指派问题的系数矩阵经变换,在各行各列中都出现0元素。
%减去每行的最小值
ml=min(a');
for i=1:sa(i,:)=a(i,:)-ml(i);
end
%减去每列的最小值
mr=min(a);
for j=1:sa(:,j)=a(:,j)-mr(j);
end
% 第二步:进行试指派,以寻求最优解。
num=0;
while(num~=s) %终止条件是独立0元素的个数与s相等
%index为独立0元素:若a(i,j)=0,则index(i,j)=1,否则index(i,j)=0
%flag为线:flag=0无线,flag=1有线过,flag=2交点
%x_ij用以记录a中独立0元素的位置index=ones(s);index=a&index;index=~index;%循环后重新初始化flag,x_ijflag = zeros(s);x_ij = zeros(s);%一次循环划线全过程,终止条件是所a=有的零元素均被直线覆盖while(sum(sum(index)))%找出只有一个0元素的行,对其所在列划线for i=1:st=0;l=0;for j=1:sif(flag(i,j)==0&&index(i,j)==1)l=l+1;t=j;endendif(l==1)flag(:,t)=flag(:,t)+1;index(:,t)=0;x_ij(i,t)=1;endend%找出只有一个0元素的列,对其所在行划线for j=1:st=0;r=0;for i=1:sif(flag(i,j)==0&&index(i,j)==1)r=r+1;t=i;endendif(r==1)flag(t,:)=flag(t,:)+1;index(t,:)=0;x_ij(t,j)=1;endendend %处理过程%x_ij中1的个数,即独立0元素的个数,用num表示num=sum(sum(x_ij));if(s==num)break;end%第三步:增加0元素。 %确定未被划线的最小元素,用m表示m=max(max(a));for i=1:sfor j=1:sif(flag(i,j)==0)if(a(i,j)<m)m=a(i,j);endendendend%未被划线,即flag=0处减去m;线交点,即flag=2处加上mfor i=1:sfor j=1:sif(flag(i,j)==0)a(i,j)=a(i,j)-m;endif(flag(i,j)==2)a(i,j)=a(i,j)+m;endendend
end %对while(num~=s)
%计算最优值
zm=x_ij.*b;
z=0;
z=sum(sum(zm));

测试:

系数矩阵a=

[2 15 13 5

10 4 14 15

9 14 16 13

7 8 11 9]

匈牙利法的Matlab代码及测试相关推荐

  1. 动态多目标优化算法:动态多目标狮群优化算法DMOLSO求解cec2015(提供完整MATLAB代码及所有测试问题的真实POF,含GD、IGD、HV和SP评价指标)

    一.CEC2015简介 现实世界中,许多优化问题不仅具有多属性,而且与时间相关,即随着时间的变化,优化问题本身也发生改变,这类问题称为动态多目标优化问题(dynamic multi-objective ...

  2. 让书写的Matlab代码运行更快 Recipes for Faster Matlab Code

    Matlab 在 Research 中用得非常多,确实也是非常方便实用,只是有一个问题就是写 Matlab 代码的时候经常需要用一些比较奇怪独特的方式来思考和处理问题,否则写出来的代码虽然同样能工作, ...

  3. PSO-LSSVM算法及其MATLAB代码

    挺完整的一篇博客,这里转载记录一下. 原文链接:PSO-LSSVM算法及其MATLAB代码 一.PSO 1.概念 粒子群优化算法(PSO:Particle swarm optimization)是一种 ...

  4. matlab做pca人脸识别,[转载]一个修改后的PCA进行人脸识别的Matlab代码,识

    一个修改后的PCA进行人脸识别的Matlab代码,识别率达到88% % calc xmean,sigma and its eigen decomposition allsamples=[];%所有训练 ...

  5. 拟牛顿法-DFP算法举例与matlab代码实现(转载+整理)

    算法来自于[1],如下: 值得一提的是,[1]中的python代码实现了对Rosenbrock函数的求极值测试. 例子来自于[2]: --------------------------------- ...

  6. 惩罚函数外点matlab,禁忌搜索算法求解带时间窗的车辆路径问题(惩罚函数版 附MATLAB代码)...

    本周应小伙伴要求继续学习TS求VRPTW,不过这次通过使用惩罚约束的形式允许解违反时间窗约束和容量约束,不过要给违反约束的解加以惩罚. 这次我们的目标函数就不单单只有车辆总行驶距离了,还要包括当前解中 ...

  7. elm预测matlab,机器学习——极限学习(ELM)matlab代码分析

    Hello,大家好,我是小鹏同学.今天在一个网站(https://www.ntu.edu.sg/home/egbhuang/elm_random_hidden_nodes.html)上下载了基本的EL ...

  8. K-L变换原理、图像压缩与人脸识别实战(附matlab代码)

    目录 摘要 K-L变换的基本原理 K-L变换在图像压缩中的应用 研究背景及意义 数字图像压缩与发展现状 K-L变换与图像压缩 K-L变换在人脸识别中的应用 人脸识别 K-L变换实现人脸识别 总结 参考 ...

  9. 机器学习入门:线性回归及梯度下降(附matlab代码)

     本文会讲到: (1)线性回归的定义 (2)单变量线性回归 (3)cost function:评价线性回归是否拟合训练集的方法 (4)梯度下降:解决线性回归的方法之一 (5)feature sca ...

最新文章

  1. 计算机考研学长学什么,研究生学长浅谈考研心得
  2. geek软件_社团秀@UNC新媒体协会@管理会计研学社@Geek社团
  3. VS VC 读取 INI文件
  4. linux最小安装桌面,Linux工作环境:CentOS7最小安装+Xfce桌面环境
  5. Hive分析函数--row_number 的用法
  6. (转)淘淘商城系列——首页轮播图展示
  7. 爬虫_抓取京东手机图片
  8. Jquery Highcharts 选项配置 说明文档
  9. Mate7微信指纹支付来了 比Touch ID整合微信早一点
  10. FoxMail7.2信纸设置(适用于7.0及以上版本)
  11. BP神经网络算法改进
  12. 三坐标检测之报告查看T值
  13. Bootstrap3基础 btn-xs/sm... 按钮的四种大小
  14. Java调用 新浪微博API 接口发微博(包含js微博组件、springMVC新浪登录)详解
  15. NetFPGA-SUME10G以太网接口仿真问题
  16. python爬取微博评论并做词频分析_爬取李子柒微博评论并分析
  17. Tomcatnbsp;Servletnbsp;JSPamp;nbs…
  18. 《番茄工作法图解》书摘
  19. 如何使用分布是缓存Hazelcast
  20. 云计算机平台的特性,云平台对比传统平台特点分析

热门文章

  1. 中国31省 5G网速 排名!
  2. vue与C#实现自定义表单审批流程构建-后端
  3. 日语零基础学习 【汇总】日语学习网站
  4. Java杂谈——求所有的4位吸血鬼数字
  5. ap导入 ebs oracle_Oracle EBS Interface/API(1)--AP Invoice费用报表类型导入
  6. JS点击复制按钮复制相关内容
  7. apikey、apisecret在api请求中的使用
  8. 2015北京科技大学869计算机组成原理考试大纲,2014年北京科技大学869计算机组成原理考研真题...
  9. 世界杯开赛在即,告诉你5个用区块链玩转球赛的秘密 | 内附独家资源
  10. linux gif录制工具,Linux下的GIF录制