zoukankan      html  css  js  c++  java
  • 【算法•日更•第四十六期】二分图(基础)

    ▎前言

      小编昨天写了关于静态二叉排序树的建立,但是小编今天果断的不写静态二叉排序树的使用了,因为写了就感觉在专门水博客。

      前段时间老师问我会不会二分图,小编才知道有这个东西,那么本篇博客就来讲一讲二分图的基础知识吧。

      话说隔壁hza的二分图博客真的是接地气啊,呈上链接:二分图博客

    ▎什么是二分图?

    『引入』

      二分图二分图,一定是分成了两份的图是这个样子喽。

      实际上还真的是分成了两份。

      二分图将图(按点)分成了两个集合,处理的就是两个集合的点之间连边的问题。

    『定义』

      二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。

      简而言之,就是顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属于这两个互不相交的子集,两个子集内的顶点不相邻。(copy自百度)

      说白了就是分成了两个互不相交的子集,连线的问题而已,形象一点长这样:

      

      上图是小编随手一画的结果,小编也不确定是不是二分图,原因见二分图的判定。

      个人认为二分图更像一种匹配用的东西,因为子集中的点不能互相连边。

      另外,小编发现百度上的科普中国弄的视频感觉还不错,推荐大家看看:链接

    『用途』

      相信大家也有和我一样的问题,究竟这个东西能用来干什么?

      这个东西主要是处理这样的问题:

      给定一个二分图G,在G的一个子图M中,M的边集中的任意两条边都不依附于同一个顶点,则称M是一个匹配.

    选择这样的边数最大的子集称为图的最大匹配问题(maximal matching problem)
    如果一个匹配中,图中的每个顶点都和图中某条边相关联,则称此匹配为完全匹配,也称作完备匹配。

      百度上说的过于真实,小编还是接地气的讲一遍这段话的意思吧。

      就是说(在保证是二分图的情况下)任意两条边不能存在公共的顶点,形象一点说就是1 VS 1,这才公平,例如下图的红边间的关系:

      

      只要是这样的红线,我们都称之为这个二分图的匹配。

      我们问题中的最大匹配就是希望这样的红线尽可能的多。

    ▎二分图的判定

      这个很好判定,众所周知,图是有环的,但是环的边数分为奇数和偶数,二分图是不含奇数条边的环的图。

  • 相关阅读:
    Yii2 在模块modules间跳转时,url自动加模块名
    PHP 变量的间接引用(将某一字符串转化为变量)
    windows鼠标悬停任务栏 延迟时间 修改
    dede 常用标签和调用方法汇总
    dedecms ---m站功能基础详解
    apache 2.2 和2.4 目录权限访问设置的区别
    apache httpd.conf 配置局域网访问
    ajax php 点击加载更多
    dede调用当前栏目名 、dede sql
    dede 添加 栏目缩略图
  • 原文地址:https://www.cnblogs.com/TFLS-gzr/p/11372523.html
Copyright © 2011-2022 走看看