编辑两个图之间的距离

时间:2013-05-06 13:15:32

标签: algorithm language-agnostic levenshtein-distance edit-distance

我只是想知道,对于我们在两个字符串之间有Levenshtein距离(或编辑距离)的字符串,是否有类似于图形的东西?

我的意思是,一个标量度量,用于标识将图G1转换为图G2的原子操作数(节点和边插入/删除)。

4 个答案:

答案 0 :(得分:18)

我认为图表编辑距离是您正在寻找的衡量标准。

图形编辑距离测量将图形转换为另一图形的最小图形编辑操作数,允许的图形编辑操作包括:

  • 插入/删除孤立的顶点
  • 插入/删除边
  • 更改顶点/边缘的标签(如果标有图形)

然而,计算两个图之间的图编辑距离是NP难的。计算它的最有效算法是基于A *的算法,还有其他次优算法。

答案 1 :(得分:8)

您应该查看论文A survey of graph edit distance

答案 2 :(得分:4)

对于一般图表,正如其他人在答案中提到的那样,这是一个NP完全问题。但是对于树图,存在众所周知的多项式算法。可能最着名的是1989年出版的“张莎莎”算法。

答案 3 :(得分:3)

注意:

  

Levenshtein距离(或编辑距离)介于两个字符串之间

但是在Graph中,你应该在至少N之间搜索!找到每个边和顶点的标识的位置。 您可以轻松地通过唯一索引比较两个图形,但是 主要问题是为每个顶点和边缘定义身份。这个问题(在两个图中找到他们可以变换的每个顶点和边缘的身份)是非常困难的并且被称为同构问题(NP-Complete)。 您可以搜索同构图。