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 に新しい座標で着いた順が、類ごとの最短経路の短い順になる。
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 本そろったか)。
• サンプルデータ カタログ(DL URL / ライセンス) — 2-D は skimage.data(BSD/public)+ 合成、3-D は実データ源(Stanford/PDS 等)の DL URL。
• 演算子の来歴・参考文献 — この op 族の元になった研究/手法の出典。
• アルゴリズムの正典(著者・年)と用途は上記ファミリ使い方ガイドに記載。
• 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 operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.