• 大小: 19KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-01-11
  • 语言: Matlab
  • 标签:

资源简介

数学建模中能用到的超经典匈牙利算法,用matlab编程,给大家分享分享

资源截图

代码片段和文件信息

//匈牙利算法实现 
int Bipartite(bool vc [][MAX]int nv1int nv2) { 
    //vc[][]为二分图,nv1nv2分别为左边的点数 
    int i j x n; 
    //n为最大匹配数 
    int q[MAX] prev[MAX] qs qe; 
    //q是BFS用的队列,prev是用来记录交错链的,同时也用来记录右边的点是否被找过
    int vm1[MAX] vm2[MAX]; 
    //vm1vm2分别表示两边的点与另一边的哪个点相匹配 
    n = 0; 
    for( i = 0; i < nv1; i++ ) vm1[i] = -1; 
    for( i = 0; i < nv2; i++ ) vm2[i] = -1; //初始化所有点为未被匹配的状态
    for( i = 0; i < nv1; i++ ) { 
        if(vm1[i] != -1)continue;
        //对于左边每一个未被匹配的点进行一次BFS找交错链 
        
        for( j = 0; j < nv2; j++ ) prev[j] = -2; 
        //每次BFS时初始化右边的点
         
        qs = qe = 0; //初始化BFS的队列 
        //下面这部分代码从初始的那个点开始,先把它能找的的右边的点放入队列
        //★稍微改一下可以适用于用邻接表实现的二分图 
        for( j = 0; j < nv2; j++ ) if( vc[i][j] ) { 
            prev[j] = 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1992  2007-07-25 17:46  erfenpipei\bipartite.cpp

     文件     174592  2007-08-28 21:56  erfenpipei\二分匹配.ppt

     目录          0  2007-08-28 21:56  erfenpipei

     文件        218  2007-06-04 14:14  www.pudn.com.txt

----------- ---------  ---------- -----  ----

               176802                    4


评论

共有 条评论