子图
简单地说,图G的任意一部分(包括G自身和空图)都称为图G的一个子图。
G的生成子图是指满足V(H)=V(G)的子图H。
在上图中,H1与H2均为G的子图,其中H2为G的生成子图,而H1不是。
具有m条边的简单标号图的生成子图的个数为2m
设V’是V 的一个非空子集。以V’为顶点集,以两端点均在V’中的边的全体为边集所组成的子图,称为G 的由V’导出的子图,记为G[V’];简称为G 的导出子图。
G−V′表示从G 中删除V’ 中的顶点以及与这些顶点相关联的边所得到的子图。若V’ ={v},则把G−{v}简记为G−v。
** G -V′ = G[V \V′]。**
假设E’是E的非空子集。以E’为边集,以E’中边的端点全体为顶点集所组成的子图称为G 的由E’ 导出的子图,记为G[E’ ],简称为G 的边导出子图。
G–E’表示从图G中删去E’中的边之后的子图。若E’ ={e},则用G–e来代替G–{e}。
边集相同,顶点数不同,左式中没有关联的边的点会被删去。
图的运算
设G1,G2是G的子图,有下列术语与概念:
- G1和G2不相交,指它们无公共顶点。
- G1和G2边不重,指它们无公共边。
- 并图G1∪G2:是指顶点集为V(G1)∪V(G2),边集为E(G1)∪E(G2)的G的一个子图;如果G1和G2不相交,则记其并图为G1+G2。
- 交图G1∩G2 :类似地定义,但二者至少要有一个公共顶点。
- 差图G1-G2:在G1中去掉G2的边组成的图。
- 对称差G1△G2 :G1△G2 = (G1∪G2) -(G1∩G2) = (G1-G2)∪(G2-G1)。边只属于G1或只属于G2
定义:在不相交的G1和G2的并图G1+G2中,把G1的每个顶点和G2的每个顶点连接起来所得到的图称为G1和G2的联图,记为G1∨G2。
不难看出:K1∨K4 = K5,K2∨K3 = K5,K1∨K5 = K6, K2∨K4 = K6, K3∨K3 = K6。
定义 设G1= (V1, E1),G2 = (V2, E2),对点集V = V1×V2中的任意两个点u = (u1, u2) 和 v = (v1, v2),当(u1 = v1和 u2 adj v2) 或 (u2 = v2 和 u1 adj v1) 时就把 u 和 v 连接起来所得到的图G称为G1和G2的积图,记为G = G1×G2。其中 ui adj vi 表示 ui 和 vi邻接。
- 把第二个图在第一个图的每个顶点处复制一次。
- 同一层的顶点u,按照第一层构造边。
- 把第二个图在第一个图每个顶点处复制一次。
- 每个点作完全图。
若G1的点数和边数为n1, m1,G2的点数和边数为n2, m2,经过联、积、合成三种运算,图的点数和边数为
图的积运算是网络构造的常用方法。并行计算机中的网络拓扑常采用所谓的“超立方体”结构。采用该结构可使网络具有较好的可靠性、较小的通信延迟和很好的可扩展性以及便于并行编程等优点。
超立方体Qn,简称n方体,可以采用积图来递归构造:
- 1方体:Q1=K2。
- n方体定义为:Qn=Q1×Qn-1。
超立方体Qn具有2n个顶点,n2n-1条边的n正则二部图。
超立方体可以采用下面简单的方法来构造。
n立方体Qn的顶点数目正好等于2n,因此可以用长度为n的二进制码来表示Qn的顶点。
构造方法:
- 将每个长度为n的二进制码表示成一个顶点;
- 在另个顶点之间连线当且仅当这两个顶点的二进制码只有一位对应数字不同
把G1的任意一个顶点和G2的任意一个顶点等同起来得到的新图称为G1和G2的联合,记为G1.G2。