homotopy_shortest_paths — DRIVE braidpath op

• 数据种类:image2d × any × any → table

• 调用: import fullseye as fs; fs.ledger.homotopy_shortest_paths(grid, start, goal, k=4, obstacles=None, angle=0.1, max_states=400000, max_cost=None)(要直接调用实现,import braidpath; braidpath.homotopy_shortest_paths(grid, start, goal, k=4, obstacles=None, angle=0.1, max_states=400000, max_cost=None);从台账取用则 opsdrive.get("homotopy_shortest_paths"))

• GPU:无(仅 CPU 参考实现)

用法

在网格(True = 可通行,4 邻域)上,按从短到长给出从 start 到 goal 的、同伦类各不相同的 k 条最短路径。

状态 = (单元格, 辫的 Dynnikov 坐标)。把障碍物点当作不动的股,每走 1 步就追加交叉字母并更新坐标(坐标是类的完全不变量,因此相同的 (单元格, 坐标) 只展开 1 次)。Dijkstra 将这个“按类提升”的网格按费用顺序展开,因此以新坐标到达 goal 的顺序,就是各类最短路径从短到长的顺序。

Parameters

obstacles : 孔的代表点 (M, 2)。省略时用 grid_hole_points(每个不接触外周的阻塞连通分量取 1 点)。

max_states / max_cost : 展开状态数、费用的上限(类有无穷多个 —— 可以绕孔转任意圈)。

Returns: dict paths(各类的 (L, 2) 的 (row, col) 序列,短的在前)、costs、words(含障碍物的辫字)、keys、obstacles、states(展开的状态数)、complete(是否凑齐 k 条)。

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

• 算法的正典(作者、年份)与用途见上面的族使用指南。

可运行的示例(实际调用该算子并已验证的样例)

• poc_braid_homotopy_classes — py -3.11 examples/poc_braid_homotopy_classes.py

类型可衔接的下一个算子(可接受 table 作为输入)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

同类别(braidpath)

braid_from_trajectories · braid_reduce · braid_artin_images · dynnikov_coordinates · dynnikov_act · braid_equivalent · homotopy_class_compare · pairwise_winding


*Provenance: braidpath.py — DRIVE 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.