您的位置:首页 > 其它

圈复杂度计算

2015-09-16 15:36 253 查看
一、公式: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)(图中没有画出,请脑补。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: