function [x,fVal]=Hungary(C)

% 输出参数:

% x--Decision Varables, n*n矩阵

% fval--Objective function Value

% 输入参数:

% C--效益矩阵

c=C; %将效益矩阵暂存入c,以下的操作将针对c进行

[iMatrixRow,iMatrixCol]=size(c);

%求约化矩阵:将效益矩阵的每行每列各减去其最小值

c=c-repmat(min(c,[],2),1,iMatrixCol);

c=c-repmat(min(c,[],1),iMatrixRow,1);

%进行试分配,求出初始分配方案

while 1

%对所有零元素均已画⊙(inf)或画×(-inf)

c=CircleOrCross(c);

%划线,决定覆盖所有零元素的最少直线数

iIndepentZeroNum=find(c==inf);

if length(iIndepentZeroNum)==iMatrixRow

break;

else

[Row,Col]=line(c);

end

%查找没有被直线段覆盖的元素中的最小元素,并存入fMininumVlaue中

fMininumVlaue=inf;

for i=1:iMatrixRow

for j=1:iMatrixCol

if Row(i)~=1 && Col(j)~=1 && c(i,j)&ltfMininumVlaue

fMininumVlaue=c(i,j);

end

end

end

%修改约化矩阵中的相关数据

for i=1:iMatrixRow

for j=1:iMatrixCol

if c(i,j)==inf||c(i,j)==-inf

c(i,j)=0;

end

if Row(i)~=1 && Col(j)~=1

c(i,j)=c(i,j)-fMininumVlaue;

end

if Row(i)==1 && Col(j)==1

c(i,j)=c(i,j)+fMininumVlaue;

end

end

end

end

%返回分配方案及目标函数值

fVal=0;

for i=1:iMatrixRow

for j=1:iMatrixCol

if c(i,j)==inf

x(i,j)=1;

fVal=fVal+C(i,j);

else

x(i,j)=0;

end

end

end

matlab多种分配方案_分配问题匈牙利算法的Matlab实现相关推荐

  1. matlab多种分配方案_基于MATLAB的水资源优化分配问题动态规划解法

    基于 MATLAB 的水资源优化分配问题动态规划解法 摘要:介绍了动态规划的基本原理,针对水资源分配问题进行了 动态规划方法分析.针对具体问题采用逆序解法的表格法进行了计 算,然后用 matlab 编 ...

  2. matlab多种分配方案_基于Matlab解决m个人n项任务的最优分派

    龙源期刊网 http://www.qikan.com.cn 基于 Matlab 解决 m 个人 \n 项任务的最优分 派 作者:史 历 来源:<商场现代化> 2010 年第 03 期 [ ...

  3. burg算法的matlab代码实现_导向滤波算法及其matlab代码实现

    导向滤波同样是一种平滑滤波算法,其与最小二乘滤波和双边滤波相比,同样是一种具有边缘保持的功能的图形滤波算法,可以用于处理图形噪点较多的图像,而且此种滤波算法与最小二乘滤波和双边滤波相比,有其独特的特点 ...

  4. 匈牙利算法的MATLAB实现

    匈牙利算法的MATLAB实现 首先是CSDN上这篇文章很清晰的讲解了匈牙利算法的思路.顺着思路本弱鸡也尝试动手写了一下. 分派问题(匈牙利算法)与MATLAB实现 匈牙利算法的matlab实现 主程序 ...

  5. 【图像去噪】基于matlab多种自适应均值滤波图像去噪【含Matlab 1843期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab多种自适应均值滤波图像去噪[含Matlab 1843期] (https://download.csdn.net ...

  6. java蛮力法解决任务分配问题_【算法题】任务分配问题---匈牙利算法

    一.问题描述 问题描述:N个人分配N项任务,一个人只能分配一项任务,一项任务只能分配给一个人,将一项任务分配给一个人是需要支付报酬,如何分配任务,保证支付的报酬总数最小. 问题数学描述: 二.实例分析 ...

  7. 判别两棵树是否相等 设计算法_从匈牙利算法到KM算法

    网上搜了好多KM算法的文章,都写得云里雾里.看了半天之后,我终于看懂了.其实KM算法非常简单,只要会匈牙利算法了,一下就能看懂KM算法. 如果大家对自己的匈牙利算法不够自信的话,可以先复习一下,放上我 ...

  8. edmonds算法matlab,匈牙利算法的matlab实现

    匈牙利算法 算法简介 算法原理 算法实现(附代码) 测试 算法简介 下面摘用百度百科中的解释. 匈牙利算法(Hungarian method)是由匈牙利数学家Edmonds于1965年提出,因而得名. ...

  9. matlab整定串级pid,PID算法在Matlab串级控制中的应用

    PID算法在Matlab串级控制中的应用 自114 1112002039 陈艳 前言:这个专题是由王娟老师给我们授课,我感觉收获挺大的,尤其是matlab仿真软件的使用,为我以后的实验课打下良好的基础 ...

最新文章

  1. python根据文件名或后缀名遍历文件夹下所有文件或图片的路径,并计算文件行数
  2. @Repository、@Service、@Controller 和 @Component
  3. 通俗易懂的Word Embeddings
  4. java中解析xml解读,java解析xml(JDOM)
  5. vi/vim 三种模式及命令 (简单粗暴,轻松搞懂)
  6. python与shell的3种交互方式介绍
  7. log4net 小记
  8. java 对象 转换 工具类_Java中excel与对象的互相转换的通用工具类编写与使用(基于apache-poi-ooxml)...
  9. 1061. Dating (20)-PAT甲级真题
  10. A Python example for HiveServer2
  11. [转载] python indices_Python numpy.indices() 使用实例
  12. 使用 Kubernetes 和 Kubeflow 扩展对象检测
  13. 终极算法【2】——终极算法
  14. 手机麦克风声音太大_让手机麦克风声音变大的软件
  15. GO语言+区块链视频教程,GO语言+区块链学习线路图(含大纲+视频+资料)
  16. CC2530+74HC164矩阵键盘的设计
  17. Java计算点的质心_java-矩阵的质心
  18. PADS(7)——在PADS Layout一次性添加泪滴
  19. RFID读卡器增量更新思路与代码实现
  20. UE4 使用CustomMesh动态创建网格体

热门文章

  1. 图书管理系统之读者信息管理实现
  2. ITE平台开发 chapter 3-database使用
  3. 电邮地址_电子邮件| 电子邮件| 第三部分
  4. Windows CE的VC开发工具包
  5. php连接mysql指定表名_php mysql获取指定数据库所有表名_PHP教程
  6. 杨天宇20190912-2 命令行
  7. Codeforces Round #628 (Div. 2) C. Ehab and Path-etic MEXs
  8. 细数最暖心的地铁营销事件,你最喜欢哪一个?
  9. 赋能新零售,Stratifyd亮相Smart Retail智慧零售年度峰会
  10. Word 自带公式转为mathtype格式