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 좌표). 장애물 점을 움직이지 않는 가닥으로 보고, 한 수마다 교차 문자를 더해 좌표를 갱신한다(좌표는 류의 완전 불변량이므로, 같은 (칸, 좌표) 는 한 번만 연다). 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 개가 갖춰졌는지).

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL 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 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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