zoukankan      html  css  js  c++  java
  • 二分(部)图的初步分析

    二分图的初步分析:
    1.首先到是要了解,能构成二部图的话,对无向图是不存在奇圈,有向图是不能存在奇环的。一般的题目都会给出的是无环,无圈。

    2.一般而言二部图的无向图的中没有最小路径覆盖的概念(有些题可拆点的解),而有向图中没有最小点覆盖的概念。

    3.无向图的二分图可以求解:
    (1).最大匹配数。
    (2).最小点覆盖。           //最小的顶点数 覆盖所有的边
    (3).最大点独立集。
    (4).最小路径覆盖数。       == G的顶点数 - 最大匹配数/2

    4.有向图的二分图可以求解:
    (1).最大匹配数
    (2).最小路径覆盖数。        //最小的路径数 覆盖所有的点。
    (3).最小路径覆盖中的边数 

    5.二分图的初步分析
    最小路径覆盖数=原图G的顶点数-最小路径覆盖中的边数

    最小路径覆盖数=原图G的顶点数-二分图的最大匹配数(无向图拆点后要除2)

    二分图的最大匹配数 == 最小路径覆盖中的边数

    最小点覆盖 = 二分图的最大匹配数

    最大点独立集 = 原图G的顶点数-二分图的最大匹配数

    6.求解二分图问题:
    (1).设G=(V,{R})是一个无向图。如顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属两个不同的子集。则称图G为二分图。
    对求解无向图的二分图(前提是不存在圈的无向图),建立图。然后求解。
    如果题意能直接构成2分图,则直接连边即可求解。
    如果题意没能给出左右边的点建立二分图,则需把1个点拆分成2个点,然后建图,即对a-b有边,则可以建立顶点a->b,b->a都有边,然后求解的最大匹配数/2=原图的最大匹配数。
    (2).设G=(V,{R})是一个不含圈的有向图G。求任意一个不含圈的有向图G的最小路径覆盖数。
    对求解有向图的最小路径覆盖数(前提是不存在环的无向图),直接建图,然后即可求解。
    建图方法同无向图,要拆分的情况下的最大匹配数无需除2。


    7.二分图转换为最大流问题求解最大匹配建模问题:
    建立一个超级源点与汇点,然后所有的边值(包括从源点出发的边以及到汇点的边)都赋值为1,则最大流=最大匹配数。

    8.km算法是主要是解决(带权值的边)的最大或最小权值完全匹配问题。

  • 相关阅读:
    iOS故事板下使用代码跳转页面
    眼见不一定为实
    UITableView
    iOS 备忘录
    统计代码行数
    iOS - 图片合成
    UI 素材
    xcode中xib使用小技巧
    svn不能提交静态库解决方案
    在webSocket中获取shiro报错
  • 原文地址:https://www.cnblogs.com/cnjy/p/1582227.html
Copyright © 2011-2022 走看看