A predecessor (successor) search finds the largest element $x^-$ smaller than the input string $x$ (the smallest element $x^+$ larger than or equal to $x$, respectively) out of a given set $S$; in this paper, we consider the static case (i.e., $S$ is fixed and does not change over time) and assume that the $n$ elements of $S$ are available for inspection. We present a number of algorithms that, with a small additional index (usually of O(n log w) bits, where $w$ is the string length), can answer predecessor/successor queries quickly and with time bounds that depend on different kinds of distance, improving significantly several results that appeared in the recent literature. Intuitively, our first result has a running time that depends on the distance between $x$ and $x^\pm$: it is especially efficient when the input $x$ is either very close to or very far from $x^-$ or $x^+$; our second result depends on some global notion of distance in the set $S$, and is fast when the elements of $S$ are more or less equally spaced in the universe; finally, for our third result we rely on a finger (i.e., an element of $S$) to improve upon the first one; its running time depends on the distance between the input and the finger.
Sensitive Distance and Reachability Oracles for Large Batch Updates
在敏感距离预言问题中,有三个阶段。我们首先预处理一个给定的有向图$G$与$n$节点和整数权重从$[-W,W]$。其次,给定一批$f$边插入和删除,我们更新数据结构。第三,给定查询节点对$(u,v)$,返回从$u$到$v$的距离。在称为敏感可达性预言机问题的更简单问题中,我们只询问是否存在从$u$到$v$的有向路径。我们的第一个结果是一个敏感的距离预言与$\tilde{O}(Wn^{ω+(3-ω)μ})$预处理时间,$\tilde{O}(Wn^{2-μ}f^{2}+Wnf^ω)$更新时间,和$\tilde{O}(Wn^{2-μ}f+Wnf^{2})$查询时间,其中参数$μ\in[0,1]$可以选择。数据结构需要$O(Wn^{2+μ} \log n)$位的内存。这是第一个可以处理$f\ge\log n$更新的算法。之前的结果(例如[Demetrescu et al. SICOMP'08; Bernstein and Karger SODA'08 and FOCS'09; Duan and Pettie SODA'09; Grandoni and Williams FOCS'12])最多可以处理2次更新。当$3\le f\le\log n$,唯一的非平凡算法是由[Weimann和Yuster FOCS'10]。当$W=\tilde{O}(1)$,我们的算法同时提高了他们的预处理时间,更新…
Locality Sensitive Hashing for Set-Queries, Motivated by Group Recommendations
局部敏感哈希(LSH)是一种有效的方法来索引一组点,这样我们就可以有效地找到查询点的最近邻居。我们将这种方法扩展到我们的新的集查询LSH(SLSH),这样它就可以找到一组点的最近邻居,作为查询。令$ s(x,y) $为两个点$ x $和$ y $之间的相似度。我们通过聚合所有$ p\in Q $的相似性$ s(p,x) $来定义集合$ Q$和点$ x $之间的相似性。例如,我们可以将$ s(p,x) $作为$ p $和$ x $之间的角度相似性(即,$1-{\angle (x,p)}/π$),并通过算术或几何平均或取最低相似性进行聚集。我们开发了本地敏感的哈希家庭和数据结构的一大套这样的算术和几何平均相似性,并分析其碰撞概率。我们还建立了一个类似的框架和散列距离函数的家庭。具体来说,我们给出了一个结构的欧氏距离聚合的平均值或采取最大值。我们利用SLSH来解决近似近邻问题的几何扩展。在这个版本中,我们考虑了一个度量,其中单位球是一个椭球体,其方向是由查询指定的。激励我们工作的一个重要应用是组推荐系统。这样的系统将电影和用户嵌入在相同的特征空间中,并且推荐一部电影供一组人一起观看的任务使用适当的相似性转换为集合查询$ Q $。
我们调查的数据结构的基本思想之一的限制:分数级联。这是一种重要的数据结构技术,可以加快在多个列表中重复搜索同一个键的速度,它有许多应用。具体地说,输入是一个“目录”图,$G$,具有恒定的度数以及分配给$G$的每个顶点的值的列表。目标是预处理输入,使得给定$G$的连通子图$H$和单个查询值$q$,可以在属于$\scat$的每个列表中找到$q$的前身。Chazelle和Guibas的经典结果表明,在指针机器中,这可以在$Ø(\log n + |\scat|)$的最佳时间内完成,其中$n$是值的总数。但是,如果允许插入和删除值,则查询时间将减慢到$Ø(\log n + |\scat| \log\log n)$。如果只允许插入(或删除),那么同样可以获得最佳查询时间,但需要在更新时使用摊销。我们证明了一个下界的$Ω( \log n \sqrt{\log\log n})$的最坏情况下的查询时间的动态分数级联,当查询的路径长度$O(\log n)$。下限适用于完全动态的数据结构与分期付款的多对数更新时间和增量数据结构与多对数最坏情况的更新时间。另一方面,这也证明了摊销对于获得最佳增量数据结构至关重要。这是打破$Ω(\log n)$障碍的动态数据结构的第一个非平凡指针机器下限。为了获得这个结果,我们开发了一些新的想法和技术,希望可以是有用的,以获得额外的动态下界的指针机器模型。