原理介绍
图分为无向图和有向图。
- 无向图中的极大连通子图也叫连通分量。无向图可以分成两种类型:连通的无向图、不连通的无向图。连通的无向图只有一个极大连通子图,即它本身,因为不存在另一个连通的子图包含的点和边比它本身还要多,所以叫作极大连通子图。不连通的无向图可以拆分为若干个连通的无向图,如果我们在拆分时注意把能连通的点边都放在一个连通子图中,使这个连通子图足够大,以至于再多包含一个点或边它就变成不连通的了,我们称这个连通子图为极大连通子图,也叫连通分量。
- 有向图可以分为强连通图、弱连通图、单向连通图、不连通图。极大连通子图一般只在强连通图中讨论,即强连通分量。
代码实现
# -*- coding:utf-8 -*-
#====#====#====#====
# __author__ = "liubc"
#FileName: *.py
#Version:1.0.0
#CreateTime:xxxx-xx-xx
#====#====#====#====
from collections import deque
import sys
import matplotlib.pyplot as plt
import networkx as nx
import time
import openpyxl
'''求解极大连通子图'''
# 定义graph
G = nx.Graph()
class ConnectedSubgraph:
'''
function: