Let $K$ be a compact, centrally-symmetric, strictly-convex region in ${\mathbb R}^3$, which is a semi-algebraic set of constant complexity, i.e. the unit ball of a corresponding metric, denoted as $\|\cdot\|_K$. Let ${\mathcal{K}}$ be a set of $n$ homothetic copies of $K$. This paper contains two main sets of results: (i) For a storage parameter $s\in[n,n^3]$, ${\mathcal{K}}$ can be preprocessed in $O^*(s)$ expected time into a data structure of size $O^*(s)$, so that for a query homothet $K_0$ of $K$, an intersection-detection query (determine whether $K_0$ intersects any member of ${\mathcal{K}}$, and if so, report such a member) or a nearest-neighbor query (return the member of ${\mathcal{K}}$ whose $\|\cdot\|_K$-distance from $K_0$ is smallest) can be answered in $O^*(n/s^{1/3})$ time; all $k$ homothets of ${\mathcal{K}}$ intersecting $K_0$ can be reported in additional $O(k)$ time. In addition, the data structure supports insertions/deletions in $O^*(s/n)$ amortized expected time per operation. Here the $O^*(\cdot)$ notation hides factors of the form $n^\varepsilon$, where $\varepsilon>0$ is an arbitrarily small constant, and the constant of proportionality depends on $\varepsilon$. (ii) Let $\mathcal{G}(\mathcal{K})$ denote the intersection graph of ${\mathcal{K}}$. Using the above data structure, breadth-first or depth-first search on $\mathcal{G}(\mathcal{K})$ can be performed in $O^*(n^{3/2})$ expected time. Combining this result with the so-called shrink-and-bifurcate technique, the reverse-shortest-path problem in a suitably defined proximity graph of ${\mathcal{K}}$ can be solved in $O^*(n^{62/39})$ expected time. Dijkstra's shortest-path algorithm, as well as Prim's MST algorithm, on a $\|\cdot\|_K$-proximity graph on $n$ points in ${\mathbb R}^3$, with edges weighted by $\|\cdot\|_K$, can also be performed in $O^*(n^{3/2})$ time.
翻译:令 $K$ 为 ${\mathbb R}^3$ 中的一个紧致、中心对称、严格凸的区域,它是一个具有恒定复杂度的半代数集,即对应度量的单位球,记为 $\|\cdot\|_K$。令 ${\mathcal{K}}$ 为 $K$ 的 $n$ 个位似复制构成的集合。本文包含两组主要结果:(i) 对于存储参数 $s\in[n,n^3]$,可以在期望时间 $O^*(s)$ 内对 ${\mathcal{K}}$ 进行预处理,构建一个大小为 $O^*(s)$ 的数据结构,使得对于 $K$ 的一个查询位似体 $K_0$,可以在 $O^*(n/s^{1/3})$ 时间内回答相交检测查询(确定 $K_0$ 是否与 ${\mathcal{K}}$ 中任何元素相交,若是则报告该元素)或最近邻查询(返回 ${\mathcal{K}}$ 中与 $K_0$ 的 $\|\cdot\|_K$ 距离最小的成员);所有与 $K_0$ 相交的 ${\mathcal{K}}$ 中的 $k$ 个位似体可以在额外的 $O(k)$ 时间内报告。此外,该数据结构支持每个操作的摊还期望时间 $O^*(s/n)$ 的插入/删除操作。这里 $O^*(\cdot)$ 记号隐藏了形如 $n^\varepsilon$ 的因子,其中 $\varepsilon>0$ 是任意小的常数,比例常数依赖于 $\varepsilon$。(ii) 令 $\mathcal{G}(\mathcal{K})$ 表示 ${\mathcal{K}}$ 的交图。利用上述数据结构,可以在期望时间 $O^*(n^{3/2})$ 内对 $\mathcal{G}(\mathcal{K})$ 执行广度优先或深度优先搜索。将此结果与所谓的收缩分叉技术相结合,可在期望时间 $O^*(n^{62/39})$ 内解决 ${\mathcal{K}}$ 的适当定义的邻近图中的反向最短路径问题。在 ${\mathbb R}^3$ 中 $n$ 个点上的 $\|\cdot\|_K$ 邻近图上(边由 $\|\cdot\|_K$ 加权),还可以在 $O^*(n^{3/2})$ 时间内执行 Dijkstra 最短路径算法以及 Prim 最小生成树算法。