实验目的:1.熟悉匈牙利法;2.练习用Matlab编程。

实验内容:利用匈牙利法求解下列任务分配问题。

任务1

任务2

任务3

任务4

6

7

11

2

4

5

9

8

3

1

10

4

5

9

8

2

实验原理:

匈牙利法,系数矩阵中独立0元素的最多个数等于能覆盖所有0元素的最少直线数。

实验步骤:

  1. 使指派问题的系数矩阵经变换出现0元素。
  2. 进行试指派,寻求最优解。
  3. 做最少的直线覆盖所有0元素,以确定系数矩阵中能找到最多的独立元素。
  4. 增加0元素后进行试指派,直到找到最优解。

程序代码:

1.   主程序
function res=xiongyalifa(N)[a,~]=size(N);for ii = 1:aN(ii,:)= N(ii,:)-min( N(ii,:));
endfor ii = 1:aN(:,ii)=  N(:,ii)-min( N(:,ii));
end
num=0;
while num~=a[num,N_min,del_hang,del_lie]=xiongyali1(N);if num ~=afor ii=1:aif del_hang(ii)~=iiN(ii,:) =  N(ii,:)-N_min;endif del_lie(ii)==iiN(:,ii) =  N(:,ii)+N_min;endendelseres=N;end
end2.   子程序1
function [num,M_min,del_hang,del_lie]=xiongyali1(M)
[a,~]=size(M);
num=0;
h=0;
del_hang=zeros(a,1);
del_lie=zeros(a,1);
for ii=1:adel=ii-h;[~,b]=size(find(M(del,:)==0));if   b>= 2M(del,:)=[];h=h+1;del_hang(ii)=ii;    %得到被覆盖的行数num=num+1;end
end
l=0;
for ii=1:adel=ii-l;[b,~]=size(find(M(:,del)==0));if  b >=1M(:,del)=[];l=l+1;del_lie(ii)=ii;    %得到被覆盖的列数num=num+1;end
end
M_min=min(min(M));3.   子程序2
function [place,res]=xiongyali2(M,N)
%N是n维矩阵,N是经过xiongyalifa处理的
%M是未处理前的
[a,~]=size(N);
x=0;
place=zeros(1,a);
res=zeros(1,a);
judge=zeros(1,a);
while find(N==0)for ii=1:ajudge(ii)=length(find(N(ii,:)==0));endjudge(find(judge==0))=[];if min(judge)==1for ii=1:aif length(find(N(ii,:)==0))==1     %先选出行中只有1个0x=x+1;place(x)=ii+(find(N(ii,:)==0)-1)*a; %得到矩阵中的位置h=find(N(ii,:)==0);N(ii,:)=1./zeros(1,a);N(:,h)=1./zeros(a,1);endendendfor ii=1:ajudge(ii)=length(find(N(ii,:)==0));endjudge(find(judge==0))=[];if min(judge)==2x=x+1;q=find(N==0);place(x)=q(1);N(mod(q(1),a),:)=1./zeros(1,a);N(:,fix(q(1)/a)+1)=1./zeros(a,1);  end
end
[place,~]=sort(place);
for ii=1:length(place)res(ii)=M(place(ii));
end

利用匈牙利法求解指派问题相关推荐

  1. 【运筹学】指派问题、匈牙利法总结 ( 指派问题 | 克尼格定理 | 匈牙利法 | 行列出现 0 元素 | 试指派 | 打 √ | 直线覆盖 ) ★★★

    文章目录 一.克尼格定理 二.匈牙利法引入 三.指派问题求解步骤 四.匈牙利法示例 1 1.第一步 : 使行列出现 000 元素示例 2.第二步 : 试指派操作示例 ( 方法一 :克尼格定理 ) 3. ...

  2. python 物理学中的应用_利用python求解物理学中的双弹簧质能系统详解

    前言 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的模型如下: 在这个系统里有两个物体,它们的质 ...

  3. 利用树求解算术表达式的值

    利用树求解算术表达式的值 #include <stdio.h> #include <string.h> #include <malloc.h> //#include ...

  4. python代码物理_利用python求解物理学中的双弹簧质能系统详解

    前言 本文主要给大家介绍了关于利用python求解物理学中双弹簧质能系统的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 物理的模型如下: 在这个系统里有两个物体,它们的质 ...

  5. wps 模拟分析 规划求解_【网友来稿】利用Excel求解线性规划问题

    点击上方"运筹学小将",和小将一起学习运筹学把 提问 Qustions 解答 Answers 01 网友分享历年真题到公众号后台有现金收入吗? 没有. 02 分享历年真题到公众号后 ...

  6. pythonchar中的拟合方法_在python中利用numpy求解多项式以及多项式拟合的方法

    构建一个二阶多项式:x^2 - 4x + 3 多项式求解 >>> p = np.poly1d([1,-4,3]) #二阶多项式系数 >>> p(0) #自变量为0时 ...

  7. 利用python求解节点介数和边介数

    利用python求解节点介数和边介数 利用networkx里面的函数betweenness_centrality(G)来求解节点介数和函数edge_betweenness_centrality(G)来 ...

  8. 运筹学matlab实验报告,运筹学上机实验报告 利用Matlab求解整数线性规划

    四川师范大学数学与软件科学学院运筹学上机实验报告. 学期:__2011_至__2012__ 第___一__ 学期 2011年11月9日 课程名称:__ 运 筹 学 ________ 专业:_信息与计算 ...

  9. matlab求递归问题,matlab利用递归求解差分方程

    导航:网站首页 > matlab利用递归求解差分方程 时间:2018-5-23 matlab利用递归求解差分方程 function y = recur(a,b,n,x,x0,y0); % % y ...

  10. 四阶龙格库塔法的基本思想_利用龙格库塔法求解郎之万方程.doc

    利用龙格库塔法求解郎之万方程.doc 利用龙格-库塔法求解朗之万方程1. 待解问题布朗颗粒是非常微小的宏观颗粒,其直径的典型大小为10-710-6m.颗粒不断受到液体介质分子的碰撞,在任一瞬间,一个颗 ...

最新文章

  1. 浅析Avicii的MV Hey Brother
  2. CreateEvent的用法
  3. oracle 10g 企业管理器无法打开解决方法
  4. 面试官问:如果MySQL引起CPU消耗过大,你会怎么优化
  5. python将数据写入excel_【Python】将数据库中的数据查询出来自动写入excel文档
  6. 在微型计算机系统中 下列叙述正确的是,全国2011年10月高等教育自学考试计算机应用基础试题及答案...
  7. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
  8. apk 反编译_安卓apk反编译、重新打包、签名全过程
  9. 自定义线程池-c#的简单实现
  10. python处理excel数据
  11. html调用如何使用jeecms库,JEECMS标签使用实例教程-序
  12. QT虚拟键盘中英文切换
  13. 项目js文件修改后浏览器不能及时更新的解决办法
  14. C语言实现音乐播放器 visual studio 2019
  15. 2019徐州网络赛 G Colorful String 马拉车+后缀
  16. wordpress仿站笔记
  17. 学大教育仙林亚东城校区——南京市栖霞区仙隐北路12号亚东商业广场1楼B12
  18. 活动星投票东方风云榜网络评选微信的投票方式线上免费投票
  19. 备忘-华为认证HCIP路由交换V2.5考试大纲(HCIP-Routing Switching V2.5认证考试)
  20. nand flash 烧写

热门文章

  1. 数字孪生智慧城市建设解决方案
  2. 使用Python face_recognition 人脸识别 - 12 人脸图片1-N比对
  3. c#利用API读取微信数据
  4. Eclipse 专用等宽字体,Yahei_Consola字体
  5. 案例 | 基于JMP的机器学习,解决半导体良率问题
  6. 微信公众号消息推送教程
  7. 91卫图助手下载器永久免费啦
  8. WinMTR 0.9.2 绿色免费版
  9. Ubuntu安装OpenCV4记录
  10. 基于Matlab/GUI界面设计的参数在线整定与优化(一)