背景
运筹优化相关工作,需要计算公式集准确率,有标准答案,意图使用图编辑距离(GED)作为评测手段。
已通过NetworkX建立简单的图编辑距离评测手段,但对于大图计算速度特别慢,几乎不能用,所以深入研究背后原理,期待找到优化方案。
问题定位
图编辑距离的计算通常是一个 NP-hard 问题,意味着没有已知的多项式时间算法可以解决这个问题,因此对于大型图或者具有复杂结构的图,计算可能会非常耗时。
关于NP-hard问题相关参考资料:经典「 P问题、NP问题、NPC问题、NP-hard问题详解」
NP问题,即"非确定性多项式时间问题"(Nondeterministic Polynomial time
problem),是计算复杂性理论中的一个概念。在这个问题分类中,"NP"代表两个方面:
非确定性:指的是存在一种计算模型,即非确定性图灵机(Non-deterministic Turing Machine),可以在多项式时间内解决这个问题。这种计算模型可以同时探索多个可能的解决方案,而不是像确定性图灵机那样按顺序尝试每一个解决方案。
多项式时间:指的是问题可以在多项式时间内解决,这里的"多项式时间"意味着解决问题所需的时间可以用输入大小的多项式函数来表示。例如,如果一个问题的解决时间可以用
( O(n^k) ) 表示,其中 ( n ) 是输入大小,( k )
是某个常数,那么这个问题就被认为是在多项式时间内可以解决的。NP问题的特点是可以快速验证一个解的正确性,即使找到这个解可能需要非常长的时间。换句话说,对于NP问题,如果给你一个解和它的证明,你可以在多项式时间内验证这个证明的正确性。但是,找到一个解可能需要的时间远远超过多项式时间,特别是当问题的规模变得很大时。
NP问题的一个典型例子是旅行商问题(Traveling Salesman Problem, TSP),即寻找一条最短的路径,使得旅行者访问一系列城市并最终返回起点。这个问题的解决方案可以快速验证,但找到最优解却非常困难。
NP问题与P问题(多项式时间问题)的关系是计算复杂性理论中的一个核心问题。P问题是那些可以在确定性图灵机上在多项式时间内解决的问题。所有P问题也都是NP问题,但是否所有NP问题都是P问题,即P是否等于NP,是计算机科学中一个著名的未解决问题。如果能够证明P=NP,那将是对计算理论的重大突破,因为它意味着所有那些看似难以解决的问题实际上都可以在多项式时间内解决。
通过加粗段例子,可以对比得知,图编辑距离的确符合NP-hard问题,即计算结果非常简单,但找到最优解很难。
计算分析
关于图编辑距离计算的参考资料:量子计算论文精讲 | 图编辑距离近似解探究
对于NetworkX中对应的库Similarity Measures,官方文档给出如下解释:
The default algorithm/implementation is sub-optimal for some graphs. The problem of finding the exact Graph Edit Distance (GED) is NP-hard so it is often slow. If the simple interface graph_edit_distance takes too long for your graph, try optimize_graph_edit_distance and/or optimize_edit_paths.
At the same time, I encourage capable people to investigate alternative GED algorithms, in order to improve the choices available.
意思是 graph_edit_distance ,optimize_graph_edit_distance and/or optimize_edit_paths这三个已经是库里(哪儿有库里)能选用的GED算法的全部了,其中graph_edit_distance是最简单的算法,optimize_graph_edit_distance是Returns consecutive approximations of GED (graph edit distance) between graphs G1 and G2,optimize_edit_paths则是GED (graph edit distance) calculation: advanced interface
下一步实验:实验近似算法的速度与准确率。