我正在寻找一种匹配类似图表中节点的算法。节点数不相等,但每个图表确实代表相同的系统。
所以,我正在寻找类似或模糊的图形匹配或模式识别。
我从哪里开始?
无向 顶点标记 复印印刷 加权 疏 节点:2,172 边缘:3,000
节点具有许多独立属性。边有一个属性,类似于长度。对于两个图之间的对应节点和边缘,节点和边缘属性不相同。
这个问题在技术论文中被描述为部分同构,图形对齐和最大公共子图
答案 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>