我如何判断一条路径是否与另一条路径相似?

How can I tell If a path is like another one?

我写了一些代码来生成从一个点向外具有给定长度的所有路径:

def pathFinder(depth, vertex, path, area, results):
    if depth == 0:
        results.append(path)
        return

    for u in [vertex + off for off in offsets if vertex + off not in [x for x in path] and (vertex + off).within(*area)]:
        path.append(u)
        pathFinder(depth-1, u, list(path), area, results)
        path.pop()

这会产生一堆路径,其中很多是相似的。例如,这两条路径(长度为 4)具有相同的形状但走向不同的方向:

我想查看两个给定路径并确定它们是否 "the same"。 现在这些路径可以偏移、旋转、镜像或向后。如前所述,我怎么知道一条路径与另一条路径相似?我对图论的了解有限,但我敢打赌有一些漂亮的图论技巧可以解决这个问题。

如果满足以下条件,则图中的两条路径相同:

  • 相同节点
  • 顺序相同