如何确定一个图是两个连接?

4视图(30天)
以法莲Bryski
以法莲Bryski 2021年1月11日
评论道: 克里斯汀Tobler 2021年1月12日
嗨。我有一个图在MATLAB和我想确定两个连接。我还想有图可以分为输出。是否有一个有效的方法在MATLAB,要么使用内置功能,还是写代码?谢谢!

答案(1)

克里斯汀Tobler
克里斯汀Tobler 2021年1月11日
biconncomp 函数将一个图形的边缘分割成双连通分量。如果biconncomp的输出是一个向量的,两个连接图。
否则,这里有一些代码将提取每个双连通组件作为一个个体图如下:
s = [1 1 2 4 2 3 4 5 6 6 7 7 8];
t = [2 3 3 7 4 4 5 6 7 8 9 10 9];
图G = (s, t);
p =情节(G);
垃圾箱= biconncomp (G);
binNr = 1:马克斯(箱)
圣= G.Edges.EndNodes;
Gbin =子图(G,独特(st(箱= = binNr:)));
图;
情节(Gbin)
结束
记住:在MATLAB图形没有节点名、节点编号通过1、2,…(节点数)。这意味着子图命令可以分配一个新节点索引(例如,如果G有三个节点,子图(G, 1[3])将返回一个图,前面的节点3现在节点2),可以避免通过使用节点名。
3评论
克里斯汀Tobler
克里斯汀Tobler 2021年1月12日
如果图3 -或4 -连接,这意味着它也是两个连接(双连通)。biconncomp函数只有回答这个问题的图是否两个连接或它如何可以分为双连通组件。
MATLAB计算没有功能k-connectivity除了k = 1 (conncomp)和k = 2 (biconncomp)。对于3-connected的情况我认为你在找什么,快速的维基百科搜索建议你可能需要看看的概念 SPQR树 。一个算法描述页面,详情参照论文。

登录置评。

类别

找到更多的在图和网络算法帮助中心文件交换

s manbetx 845


释放

R2020b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!