matlab多种分配方案_分配问题匈牙利算法的Matlab实现
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)<fMininumVlaue
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实现相关推荐
- matlab多种分配方案_基于MATLAB的水资源优化分配问题动态规划解法
基于 MATLAB 的水资源优化分配问题动态规划解法 摘要:介绍了动态规划的基本原理,针对水资源分配问题进行了 动态规划方法分析.针对具体问题采用逆序解法的表格法进行了计 算,然后用 matlab 编 ...
- matlab多种分配方案_基于Matlab解决m个人n项任务的最优分派
龙源期刊网 http://www.qikan.com.cn 基于 Matlab 解决 m 个人 \n 项任务的最优分 派 作者:史 历 来源:<商场现代化> 2010 年第 03 期 [ ...
- burg算法的matlab代码实现_导向滤波算法及其matlab代码实现
导向滤波同样是一种平滑滤波算法,其与最小二乘滤波和双边滤波相比,同样是一种具有边缘保持的功能的图形滤波算法,可以用于处理图形噪点较多的图像,而且此种滤波算法与最小二乘滤波和双边滤波相比,有其独特的特点 ...
- 匈牙利算法的MATLAB实现
匈牙利算法的MATLAB实现 首先是CSDN上这篇文章很清晰的讲解了匈牙利算法的思路.顺着思路本弱鸡也尝试动手写了一下. 分派问题(匈牙利算法)与MATLAB实现 匈牙利算法的matlab实现 主程序 ...
- 【图像去噪】基于matlab多种自适应均值滤波图像去噪【含Matlab 1843期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab多种自适应均值滤波图像去噪[含Matlab 1843期] (https://download.csdn.net ...
- java蛮力法解决任务分配问题_【算法题】任务分配问题---匈牙利算法
一.问题描述 问题描述:N个人分配N项任务,一个人只能分配一项任务,一项任务只能分配给一个人,将一项任务分配给一个人是需要支付报酬,如何分配任务,保证支付的报酬总数最小. 问题数学描述: 二.实例分析 ...
- 判别两棵树是否相等 设计算法_从匈牙利算法到KM算法
网上搜了好多KM算法的文章,都写得云里雾里.看了半天之后,我终于看懂了.其实KM算法非常简单,只要会匈牙利算法了,一下就能看懂KM算法. 如果大家对自己的匈牙利算法不够自信的话,可以先复习一下,放上我 ...
- edmonds算法matlab,匈牙利算法的matlab实现
匈牙利算法 算法简介 算法原理 算法实现(附代码) 测试 算法简介 下面摘用百度百科中的解释. 匈牙利算法(Hungarian method)是由匈牙利数学家Edmonds于1965年提出,因而得名. ...
- matlab整定串级pid,PID算法在Matlab串级控制中的应用
PID算法在Matlab串级控制中的应用 自114 1112002039 陈艳 前言:这个专题是由王娟老师给我们授课,我感觉收获挺大的,尤其是matlab仿真软件的使用,为我以后的实验课打下良好的基础 ...
最新文章
- python根据文件名或后缀名遍历文件夹下所有文件或图片的路径,并计算文件行数
- @Repository、@Service、@Controller 和 @Component
- 通俗易懂的Word Embeddings
- java中解析xml解读,java解析xml(JDOM)
- vi/vim 三种模式及命令 (简单粗暴,轻松搞懂)
- python与shell的3种交互方式介绍
- log4net 小记
- java 对象 转换 工具类_Java中excel与对象的互相转换的通用工具类编写与使用(基于apache-poi-ooxml)...
- 1061. Dating (20)-PAT甲级真题
- A Python example for HiveServer2
- [转载] python indices_Python numpy.indices() 使用实例
- 使用 Kubernetes 和 Kubeflow 扩展对象检测
- 终极算法【2】——终极算法
- 手机麦克风声音太大_让手机麦克风声音变大的软件
- GO语言+区块链视频教程,GO语言+区块链学习线路图(含大纲+视频+资料)
- CC2530+74HC164矩阵键盘的设计
- Java计算点的质心_java-矩阵的质心
- PADS(7)——在PADS Layout一次性添加泪滴
- RFID读卡器增量更新思路与代码实现
- UE4 使用CustomMesh动态创建网格体
热门文章
- 图书管理系统之读者信息管理实现
- ITE平台开发 chapter 3-database使用
- 电邮地址_电子邮件| 电子邮件| 第三部分
- Windows CE的VC开发工具包
- php连接mysql指定表名_php mysql获取指定数据库所有表名_PHP教程
- 杨天宇20190912-2 命令行
- Codeforces Round #628 (Div. 2) C. Ehab and Path-etic MEXs
- 细数最暖心的地铁营销事件,你最喜欢哪一个?
- 赋能新零售,Stratifyd亮相Smart Retail智慧零售年度峰会
- Word 自带公式转为mathtype格式