{"title":"平面上欧氏最短路径的一种新算法","authors":"Haitao Wang","doi":"https://dl.acm.org/doi/10.1145/3580475","DOIUrl":null,"url":null,"abstract":"<p>Given a set of pairwise disjoint polygonal obstacles in the plane, finding an obstacle-avoiding Euclidean shortest path between two points is a classical problem in computational geometry and has been studied extensively. Previously, Hershberger and Suri (in <i>SIAM Journal on Computing</i>, 1999) gave an algorithm of <i>O(n</i> log <i>n</i>) time and <i>O(n</i> log <i>n</i>) space, where <i>n</i> is the total number of vertices of all obstacles. Recently, by modifying Hershberger and Suri’s algorithm, Wang (in SODA’21) reduced the space to <i>O(n)</i> while the runtime of the algorithm is still <i>O(n</i> log <i>n</i>). In this article, we present a new algorithm of <i>O(n+h</i> log <i>h</i>) time and <i>O(n)</i> space, provided that a triangulation of the free space is given, where <i>h</i> is the number of obstacles. The algorithm is better than the previous work when <i>h</i> is relatively small. Our algorithm builds a shortest path map for a source point <i>s</i> so that given any query point <i>t</i>, the shortest path length from <i>s</i> to <i>t</i> can be computed in <i>O</i>(log <i>n</i>) time and a shortest <i>s</i>-<i>t</i> path can be produced in additional time linear in the number of edges of the path.</p>","PeriodicalId":50022,"journal":{"name":"Journal of the ACM","volume":"2 2","pages":""},"PeriodicalIF":2.3000,"publicationDate":"2023-03-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"A New Algorithm for Euclidean Shortest Paths in the Plane\",\"authors\":\"Haitao Wang\",\"doi\":\"https://dl.acm.org/doi/10.1145/3580475\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<p>Given a set of pairwise disjoint polygonal obstacles in the plane, finding an obstacle-avoiding Euclidean shortest path between two points is a classical problem in computational geometry and has been studied extensively. Previously, Hershberger and Suri (in <i>SIAM Journal on Computing</i>, 1999) gave an algorithm of <i>O(n</i> log <i>n</i>) time and <i>O(n</i> log <i>n</i>) space, where <i>n</i> is the total number of vertices of all obstacles. Recently, by modifying Hershberger and Suri’s algorithm, Wang (in SODA’21) reduced the space to <i>O(n)</i> while the runtime of the algorithm is still <i>O(n</i> log <i>n</i>). In this article, we present a new algorithm of <i>O(n+h</i> log <i>h</i>) time and <i>O(n)</i> space, provided that a triangulation of the free space is given, where <i>h</i> is the number of obstacles. The algorithm is better than the previous work when <i>h</i> is relatively small. Our algorithm builds a shortest path map for a source point <i>s</i> so that given any query point <i>t</i>, the shortest path length from <i>s</i> to <i>t</i> can be computed in <i>O</i>(log <i>n</i>) time and a shortest <i>s</i>-<i>t</i> path can be produced in additional time linear in the number of edges of the path.</p>\",\"PeriodicalId\":50022,\"journal\":{\"name\":\"Journal of the ACM\",\"volume\":\"2 2\",\"pages\":\"\"},\"PeriodicalIF\":2.3000,\"publicationDate\":\"2023-03-21\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Journal of the ACM\",\"FirstCategoryId\":\"94\",\"ListUrlMain\":\"https://doi.org/https://dl.acm.org/doi/10.1145/3580475\",\"RegionNum\":2,\"RegionCategory\":\"计算机科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q2\",\"JCRName\":\"COMPUTER SCIENCE, HARDWARE & ARCHITECTURE\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of the ACM","FirstCategoryId":"94","ListUrlMain":"https://doi.org/https://dl.acm.org/doi/10.1145/3580475","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q2","JCRName":"COMPUTER SCIENCE, HARDWARE & ARCHITECTURE","Score":null,"Total":0}
A New Algorithm for Euclidean Shortest Paths in the Plane
Given a set of pairwise disjoint polygonal obstacles in the plane, finding an obstacle-avoiding Euclidean shortest path between two points is a classical problem in computational geometry and has been studied extensively. Previously, Hershberger and Suri (in SIAM Journal on Computing, 1999) gave an algorithm of O(n log n) time and O(n log n) space, where n is the total number of vertices of all obstacles. Recently, by modifying Hershberger and Suri’s algorithm, Wang (in SODA’21) reduced the space to O(n) while the runtime of the algorithm is still O(n log n). In this article, we present a new algorithm of O(n+h log h) time and O(n) space, provided that a triangulation of the free space is given, where h is the number of obstacles. The algorithm is better than the previous work when h is relatively small. Our algorithm builds a shortest path map for a source point s so that given any query point t, the shortest path length from s to t can be computed in O(log n) time and a shortest s-t path can be produced in additional time linear in the number of edges of the path.
期刊介绍:
The best indicator of the scope of the journal is provided by the areas covered by its Editorial Board. These areas change from time to time, as the field evolves. The following areas are currently covered by a member of the Editorial Board: Algorithms and Combinatorial Optimization; Algorithms and Data Structures; Algorithms, Combinatorial Optimization, and Games; Artificial Intelligence; Complexity Theory; Computational Biology; Computational Geometry; Computer Graphics and Computer Vision; Computer-Aided Verification; Cryptography and Security; Cyber-Physical, Embedded, and Real-Time Systems; Database Systems and Theory; Distributed Computing; Economics and Computation; Information Theory; Logic and Computation; Logic, Algorithms, and Complexity; Machine Learning and Computational Learning Theory; Networking; Parallel Computing and Architecture; Programming Languages; Quantum Computing; Randomized Algorithms and Probabilistic Analysis of Algorithms; Scientific Computing and High Performance Computing; Software Engineering; Web Algorithms and Data Mining