我如何判断一条路径是否与另一条路径相似?
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"。
现在这些路径可以偏移、旋转、镜像或向后。如前所述,我怎么知道一条路径与另一条路径相似?我对图论的了解有限,但我敢打赌有一些漂亮的图论技巧可以解决这个问题。
如果满足以下条件,则图中的两条路径相同:
- 相同节点
- 顺序相同
我写了一些代码来生成从一个点向外具有给定长度的所有路径:
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"。 现在这些路径可以偏移、旋转、镜像或向后。如前所述,我怎么知道一条路径与另一条路径相似?我对图论的了解有限,但我敢打赌有一些漂亮的图论技巧可以解决这个问题。
如果满足以下条件,则图中的两条路径相同:
- 相同节点
- 顺序相同