圈复杂度计算

来源:互联网 发布:在线网络课程 编辑:程序博客网 时间:2024/04/29 19:42

一、公式:Vg=m-n+p;//   Vg=m-n+2p;

g:代表强连通有向图,

m:代表强连通有向图的弧数,

n:代表强连通有向图的节点数,

p:是g中分离部分的数目,(默认是1)



m和n都很清晰,当我们要用公式计算的时候p的值不固定,很难计算。为什么会出现p和2p的情况呢

如图所示,这是一个控制流图,入度是2,出度是28,。我们能从2→28,但是不能从282,所以这里就该减去2p也就是2.

若是画一条从28→2的虚线,那么这里就该减去1,就是正常的p就行。

总结:分离部分位p还是2p主要看,出度和入度有没有相连,相连为p,不相连位2p。这就是1和2 的差距。





二、判定节点数+1
判定节点数是指强连通图中需要判断的节点,就像图中的(3.7.11.15.19),一共5个,那么圈复杂度就是6


三、图中围成圈的个数,
这个要求必须是强连通有向图,意思是有一条从28→2的虚线。然后看看图中围成圈的个数。
像:(19.20.22.23),(15.16.24.23.20.19),(11.12.25.24.16.15),(7.8.26.25.12.11),(3.4.27.26.8.7),
和虚线组成的(2.28.27.4.3)(图中没有画出,请脑补。)

0 0
原创粉丝点击