两全其美:结合高分辨率与低分辨率计算地形视域
Best of Two Worlds: Combining High and Low Resolution to Compute Viewsheds on terrains
- Bowdoin College(博多因学院)
机构由 AI 辅助整理,请以论文原文为准。
AI总结:
提出一种多分辨率算法,通过低分辨率网格过滤不可见块,再在高分辨率下精确计算可见点,实现无近似的视域计算,时间复杂度优于现有最优方法,实验加速超一个数量级。
AI中文摘要:
网格地形 $T$ 上点 $v$ 的视域,记为 viewshed$_T(v)$,定义为 $T$ 中从 $v$ 可见的网格点集合。我们描述了一种使用多分辨率方法计算 viewshed$_T(v)$ 的新算法:给定一个表示块大小的参数 $k > 1$,我们创建一个网格 $T'$,它是 $T$ 的低分辨率版本,使得 $T'$ 中的每个点对应于 $T$ 中 $\lceil \sqrt k \rceil \times \lceil \sqrt k \rceil$ 个点的块。我们方法的关键在于使用 $T'$ 来加速 viewshed$_T(v)$ 的计算,同时不引入近似。我们分两步计算 viewshed$_T(v)$:首先,我们计算 $v$ 在 $T'$ 上的视域,同时保持不变量:$T'$ 中标记为不可见的任何块可能不包含任何可见点。因此,第一步的作用是使用 $T'$ 过滤掉 $T$ 中保证不可见的块。第二步考虑 $T'$ 中标记为可见的块,并使用 $T$ 中的数据以完全精度计算这些块中点的可见性。总体而言,该算法运行时间为 $O(n + \frac nk \lg \frac nk + k \lg k + l \cdot \lg n)$,其中 $l$ 是 $T'$ 中可见块的总大小。当 $k = \Omega(1)$ 且 $l = o(n)$ 时,我们算法的运行时间优于之前的最佳界限 $O(n \lg n)$。我们的实验结果表明了新算法在实践中的性能,并且与之前的算法相比,加速超过一个数量级。
英文摘要:
The viewshed of a point $v$ on a grid terrain $T$, viewshed$_T(v)$, is defined as the set of grid points in $T$ that are visible from $v$. We describe a novel algorithm for computing viewshed$_T(v)$ using a multi-resolution approach: Given a parameter $k >1$ that represents the block size, we create a grid $T'$ which is a lower-resolution version of $T$, such that each point in $T'$ corresponds to a block of $\lceil \sqrt k \rceil $-by-$\lceil \sqrt k \rceil$ points in $T$. The key of our approach is using $T'$ to speed up the computation of viewshed$_T(v)$ while not introducing approximation. We compute viewshed$_T(v)$ in two steps: First we compute the viewshed of $v$ on $T'$, while maintaining the invariant that any block in $T'$ that is labeled as invisible may not contain any visible points. Thus, the first step's role is to use $T'$ to filter out blocks in $T$ that are guaranteed to be invisible. The second step considers the blocks that were labeled as visible in $T'$ and computes the visibility of their points with full accuracy using the data in $T$. Overall the algorithm runs in $O(n + \frac nk \lg \frac nk + k \lg k + l \cdot \lg n)$, where $l$ is the total size of visible blocks in $T'$. When $k = Ω(1)$ and $l = o(n) $, the running time of our algorithm improves on the previous best bound of $O(n \lg n)$. Our experimental results show the performance of the new algorithm in practice and a speedup of more than an order of magnitude compared to previous algorithms.