二分图

 

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

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

无向图G为二分图的充分必要条件是,G至少有两个顶点,且其所有回路的长度均为偶数。

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

选择这样的边数最大的子集称为图的最大匹配问题。

如果一个匹配中,图中的每个顶点都和图中某条边相关联,则称此匹配为完全匹配,也称作完备匹配。

首先二分图是无向图,所以连接其置换点之间关系必须是无方向的,例如继承和抽象这样的两个相反方向共同形成的关系就不是无方向的,所以我们选择结构对象的耦合相关性关系(此为广泛的关系,只要存在调用、引用、继承等都说明其具有这样的关系)作为二分图研究的对象是恰当的。另外耦合相关性关系所形成的图中,如果不能形成二分图,其实这种耦合关系图在实际运行中可能存在循环依赖关系而存在问题。

此时,可能我们需要通过对二分图寻找其最大匹配,最好能够找到其完备匹配,这样我们就可以将达到一种最好的耦合关系,同时其满足了所有对象的必然耦合关系,同时可以通过调整,断开那些不是匹配的耦合关系,由此优化系统到最佳耦合情况,然后再通过最大匹配后的情况再重构当前的设计。如图2-13中,我们针对这样的耦合相关关系进行合理的调整。

连载25:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_划分连载25:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_二分图_02连载25:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_划分_03连载25:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_二分图_04连载25:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_解耦_05连载25:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_二分图_04连载25:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_划分_03连载25:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_划分_03连载25:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_二分图_04连载25:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_最大匹配_10连载25:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_二分图_02连载25:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_二分图_12连载25:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_二分图_04 连载25:软件体系设计新方向:数学抽象、设计模式、系统架构与方案设计(简化版)(袁晓河著)_最大匹配_14

2-13