尝试匹配类似图表之间的节点

时间:2014-02-20 04:20:53

标签: algorithm graph-algorithm pattern-recognition subgraph isomorphism

我正在寻找一种匹配类似图表中节点的算法。节点数不相等,但每个图表确实代表相同的系统。

所以,我正在寻找类似或模糊的图形匹配或模式识别。

我从哪里开始?

无向 顶点标记 复印印刷 加权 疏 节点:2,172 边缘:3,000

节点具有许多独立属性。边有一个属性,类似于长度。对于两个图之间的对应节点和边缘,节点和边缘属性不相同。

这个问题在技术论文中被描述为部分同构,图形对齐和最大公共子图

1 个答案:

答案 0 :(得分:1)

这是两个图A和B之间部分同构的基本算法。


<强>算法

Given:
- graph A
- graph B
- threshold on A, p in [0.0,1.0)
- threshold on B, q in [0.0,1.0)

1. define: list T = { Nodes in graph B }

2. define: c = 0

3. for every Node i in graph A
   {
       for every Node j in list T
       {
           if(i and j are equivlant)
           {
               c = c + 1

               remove j from list T
           }
       }
   }

4. calculate: x = number of nodes in graph A / c

5. calculate: y = number of nodes in graph B / c

6. return (x > p AND y > q)

示例

规则:如果节点i和节点j具有相同的度数,则它们是等效的。

常数: A上的阈值,p = 0.95~95%。

常数: B上的阈值,q = 0.75~75%。

输出:对于任何具有75%或更多节点的节点集合的任何图形B,该算法将返回TRUE,该节点相当于图表A的95%或更多的节点集合< / p>