homotopy_shortest_paths — DRIVE braidpath op

• Data kinds: image2d × any × any → table

• Call: 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) (implementation को सीधे call करना हो तो import braidpath; braidpath.homotopy_shortest_paths(grid, start, goal, k=4, obstacles=None, angle=0.1, max_states=400000, max_cost=None), registry से लेना हो तो opsdrive.get("homotopy_shortest_paths"))

• GPU: नहीं (केवल CPU reference implementation)

उपयोग

Grid (True = चलने योग्य, 4-neighbourhood) पर start से goal तक अलग-अलग homotopy classes के k shortest paths, छोटे से बड़े क्रम में।

State = (cell, braid के Dynnikov coordinates)। Obstacle points को स्थिर strands मानकर, हर move पर crossing letter जोड़कर coordinates update किए जाते हैं (coordinates class के complete invariant हैं, इसलिए एक ही (cell, coordinates) केवल एक बार expand होता है)। Dijkstra इस “class से lift किए गए” grid को cost के क्रम में expand करता है, इसलिए नए coordinates के साथ goal तक पहुँचने का क्रम ही हर class के shortest path का छोटे से बड़े का क्रम है।

Parameters

obstacles : holes के प्रतिनिधि points (M, 2)। न दिए जाएँ तो grid_hole_points (border को न छूने वाले हर blocked component का 1 point)।

max_states / max_cost : expand किए जाने वाले states की संख्या और cost की ऊपरी सीमा (classes अनंत हैं —— hole के चारों ओर कितने भी चक्कर लगाए जा सकते हैं)।

Returns: dict paths (हर class का (L, 2) का (row, col) क्रम, छोटे पहले), costs, words (obstacles सहित braid words), keys, obstacles, states (expand किए गए states की संख्या), complete (क्या k paths पूरे मिले)।

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• poc_braid_homotopy_classes — py -3.11 examples/poc_braid_homotopy_classes.py

वे अगले ops जिनसे type जुड़ता है (table को input के रूप में लेते हैं)

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

इसी category के (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 note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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