一、算法简介
PSgL是一个分布式子图匹配算法,适用于简单的无属性图(图的节点和边没有属性)。
它的基本思想是自顶向上扩展如下图所示的树,这棵树在论文中被称为 G p s i G_{psi} Gpsi树。树中的每一个叶子节点都是一个匹配实例。接收到一个非叶子节点,worker会扩展出它的所有子节点,并将这些子节点分发给其他对应的worker进行后续处理。这个过程直到所有的worker接收到的新节点都是叶子节点时结束。
二、算法描述
下面我们简单介绍算法的思路,也就是生成完整的 G p s i G_{psi} Gpsi树的过程。首先我们介绍一下 G p s i G_{psi} Gpsi树的每个节点包含哪些信息。
1. 节点信息
首先 G p s i G_{psi} Gpsi树的每个节点都可以映射成一个图 G p p G_{pp} Gpp,如图所示。
G p p G_{pp} Gpp中的节点和边与查询图相同,但是每个节点带有两个属性信息,分别是
- 该节点匹配的结果(未匹配的节点用 ? ? ?表示匹配结果)
- 该节点的状态。节点的状态有三种:已确认、匹配但未确认以及未匹配,分别用黑色、灰色和白色表示。
例如上图中的黑色节点,表示查询图中的节点1匹配了数据图中的节点3,且已被确认。
因此 G p s i G_{psi} Gps