{"title":"多边形域上两点L1最短路径查询的分治算法","authors":"Haitao Wang","doi":"10.20382/JOCG.V11I1A10","DOIUrl":null,"url":null,"abstract":"Let $P$ be a polygonal domain of $h$ holes and $n$ vertices. We study the problem of constructing a data structure that can compute a shortest path between $s$ and $t$ in $P$ under the $L_1$ metric for any two query points $s$ and $t$. To do so, a standard approach is to first find a set of $n_s$ \"gateways\" for $s$ and a set of $n_t$ \"gateways\" for $t$ such that there exist a shortest $s-t$ path containing a gateway of $s$ and a gateway of $t$, and then compute a shortest $s-t$ path using these gateways. Previous algorithms all take quadratic $O(n_s n_t)$ time to solve this problem. In this paper, we propose a divide-and-conquer technique that solves the problem in $O(n_s + n_t\\log n_s)$ time. As a consequence, we construct a data structure of $O(n+(h^2 \\log^3 h / \\log\\log h))$ size in $O(n+(h^2 \\log^4 h / \\log\\log h))$ time such that each query can be answered in $O(\\log n)$ time.","PeriodicalId":54969,"journal":{"name":"International Journal of Computational Geometry & Applications","volume":"26 1","pages":"235-282"},"PeriodicalIF":0.0000,"publicationDate":"2019-03-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":"{\"title\":\"A Divide-and-Conquer Algorithm for Two-Point L1 Shortest Path Queries in Polygonal Domains\",\"authors\":\"Haitao Wang\",\"doi\":\"10.20382/JOCG.V11I1A10\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Let $P$ be a polygonal domain of $h$ holes and $n$ vertices. We study the problem of constructing a data structure that can compute a shortest path between $s$ and $t$ in $P$ under the $L_1$ metric for any two query points $s$ and $t$. To do so, a standard approach is to first find a set of $n_s$ \\\"gateways\\\" for $s$ and a set of $n_t$ \\\"gateways\\\" for $t$ such that there exist a shortest $s-t$ path containing a gateway of $s$ and a gateway of $t$, and then compute a shortest $s-t$ path using these gateways. Previous algorithms all take quadratic $O(n_s n_t)$ time to solve this problem. In this paper, we propose a divide-and-conquer technique that solves the problem in $O(n_s + n_t\\\\log n_s)$ time. As a consequence, we construct a data structure of $O(n+(h^2 \\\\log^3 h / \\\\log\\\\log h))$ size in $O(n+(h^2 \\\\log^4 h / \\\\log\\\\log h))$ time such that each query can be answered in $O(\\\\log n)$ time.\",\"PeriodicalId\":54969,\"journal\":{\"name\":\"International Journal of Computational Geometry & Applications\",\"volume\":\"26 1\",\"pages\":\"235-282\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2019-03-04\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"3\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"International Journal of Computational Geometry & Applications\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.20382/JOCG.V11I1A10\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q4\",\"JCRName\":\"Mathematics\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Journal of Computational Geometry & Applications","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.20382/JOCG.V11I1A10","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q4","JCRName":"Mathematics","Score":null,"Total":0}
引用次数: 3
摘要
设P是一个有h个洞和n个顶点的多边形定义域。对于任意两个查询点$s$和$t$,我们研究了在$L_1$度量下,在$P$中可以计算$s$和$t$之间的最短路径的数据结构问题。为此,标准方法是首先为$s$找到一组$n_s$“网关”,为$t$找到一组$n_t$“网关”,使得存在包含$s$网关和$t$网关的最短$s-t$路径,然后使用这些网关计算最短$s-t$路径。以前的算法都需要二次$O(n_s n_t)$的时间来解决这个问题。在本文中,我们提出了一种分而治之的技术,在$O(n_s + n_t\log n_s)$时间内解决了这个问题。因此,我们在$O(n+(h^2 \log^3 h / \log\log h))$ time内构造了$O(n+(h^2 \log^4 h / \log\log h))$ size的数据结构,这样每个查询都可以在$O(\log n)$ time内得到回答。
A Divide-and-Conquer Algorithm for Two-Point L1 Shortest Path Queries in Polygonal Domains
Let $P$ be a polygonal domain of $h$ holes and $n$ vertices. We study the problem of constructing a data structure that can compute a shortest path between $s$ and $t$ in $P$ under the $L_1$ metric for any two query points $s$ and $t$. To do so, a standard approach is to first find a set of $n_s$ "gateways" for $s$ and a set of $n_t$ "gateways" for $t$ such that there exist a shortest $s-t$ path containing a gateway of $s$ and a gateway of $t$, and then compute a shortest $s-t$ path using these gateways. Previous algorithms all take quadratic $O(n_s n_t)$ time to solve this problem. In this paper, we propose a divide-and-conquer technique that solves the problem in $O(n_s + n_t\log n_s)$ time. As a consequence, we construct a data structure of $O(n+(h^2 \log^3 h / \log\log h))$ size in $O(n+(h^2 \log^4 h / \log\log h))$ time such that each query can be answered in $O(\log n)$ time.
期刊介绍:
The International Journal of Computational Geometry & Applications (IJCGA) is a quarterly journal devoted to the field of computational geometry within the framework of design and analysis of algorithms.
Emphasis is placed on the computational aspects of geometric problems that arise in various fields of science and engineering including computer-aided geometry design (CAGD), computer graphics, constructive solid geometry (CSG), operations research, pattern recognition, robotics, solid modelling, VLSI routing/layout, and others. Research contributions ranging from theoretical results in algorithm design — sequential or parallel, probabilistic or randomized algorithms — to applications in the above-mentioned areas are welcome. Research findings or experiences in the implementations of geometric algorithms, such as numerical stability, and papers with a geometric flavour related to algorithms or the application areas of computational geometry are also welcome.