有时解决问题只需要图的一部分。
比如我们现在只关心大型计算机网络中涉及济南,广州,深圳的计算机中心,所以我们可以忽略其他的计算机中心,把济南,广州,深圳的计算机中心从全局 “剥离” 出来~
子图定义:当从图中删除了边和顶点,不删除所保留边的端点时,就得到一个更小的图,这样的图称为原图的子图。
真子图定义:图 G=(V,E) 的子图是图 H = (W, F),其中W⊆V 且 F⊆E 。若 H≠G,则称图G的子图H是G的真子图。
(子图和真子图 类似于 子集和真子集)
→ 因此,如果已知一个图的顶点集合,我们可以由图中的顶点和连接这些顶点的边得到这个图的子图。
导出的子图:令图 G =(V , E) 是一个简单图,图 H = (W , F)是由顶点集V的子集W 导出的子图,其中边集F 包含E中的一条边 iff 这条边的两个端点都在W中
(简单图:没有自回路、没有多重边的图 / 不是伪图的图)
例题:
图一中右图所示的是K5的一个子图,如果我们在右图中增加一条连接e和c的边,就得到一个由 W = { a, b, c, e } 导出的子图
删除边
已知图G = (V,E),边e∈E,我们可以通过删除边e得到图G的一个子图。所得到的子图,记作 G - e,和图G具有相同的顶点集V。它的边集是E - e。
所以,G - e = ( V, E - { e } )
类似地,若 E’ 是 E 的子集,我们可以通过从图中删除 E’ 中的边得到图G的子图。所得到的子图和图G具有相同的顶点集V。它的边集是E - E’ 。
增加边
我们可以通过在图中增加一条连接图G中已有的两个顶点的边e得到一个新的更大的图。我们把在图G中增加一条新边,该边连接原图中两个原本不相关联的顶点,所得到的新图记作G + e。
所以G + e = ( V, E U { e } )
通俗来说就是将边两端的顶点 “合成” 为一个点
当我们从图中删除一条边后,我们不希望将该边的端点作为独立的顶点保留在所得到的子图中。在这种情况下,我们进行边的收缩。
当我们从图G = (V,E) 删除一个顶点v以及所有与它相关联的边时,就得到图G的一个子图,记作G - v。注意,G - v = (V - v,E’)。
其中 E’ 是G中不与v相关联的边的集合。
类似地,若V’是V的子集,则图 G - V 是子图 (V - V’,E’),其中E’是G中不与V’中的顶点相关联的边的集合。
例题:
a) G - { b,c },在图G中删除边{b,c}构造的图。
b) G + { e,d },在图G中增加边{e,d}构造的图。
c) G的收缩图,在图G中,用新顶点 f 替换边{b,c},使用新边{a,f}、{f,d}和{f,e}替换边{c,d}、{a,b}、 {b,e}和{c,e}构造的图。
d) G - c,在图G中删除顶点c 以及边{b,c}、{c,d}和{c,e}构造的图。
解:
d)