0. Inro \textbf{0. Inro} 0. Inro
1️⃣一些要用到的符号
- ( U , dist ) (U, \operatorname{dist}) (U,dist)为基础度量空间, S ⊆ U S \subseteq U S⊆U为包含 n ≥ 2 n \geq 2 n≥2个对象的 Input \text{Input} Input
- h = ⌈ log 2 diam ( S ) ⌉ h=\left\lceil\log _2 \operatorname{diam}(S)\right\rceil h=⌈log2diam(S)⌉
- λ \lambda λ为 ( S , dist ) (S, \operatorname{dist}) (S,dist)的倍增维数
2️⃣本节讨论的定理:存在结构可在 { 空间复杂度: 2 O ( λ ) h 时间复杂度: 2 O ( λ ) h n \small\begin{cases}空间复杂度\text{: }2^{O(\lambda)}h\\\\时间复杂度\text{: }2^{O(\lambda)}hn\end{cases} ⎩ ⎨ ⎧空间复杂度: 2O(λ)h时间复杂度: 2O(λ)hn内回答 3-ANN \text{3-ANN} 3-ANN问题
1. Sample Nets \textbf{1. Sample Nets} 1. Sample Nets
1️⃣样本网定义:对于 X ⊆ S X \subseteq S X⊆S,要求 Y Y Y是 X X X的 r r r-样本网需要满足
- Y ⊆ X Y \subseteq X Y⊆X
- ∀ y 1 , y 2 ∈ Y \forall{}y_1, y_2 \in Y ∀y1,y2∈Y有 dist ( y 1 , y 2 ) > r \operatorname{dist}\left(y_1, y_2\right) > r dist(y1,y2)>r
- X ⊆ ⋃ y ∈ Y B ( y , r ) X \subseteq \bigcup\limits_{y \in Y} B(y, r) X⊆y∈Y⋃B(y,r)即 ∀ x ∈ X , ∃ y ∈ Y \forall{}x\in{}X,\,\exists{}y\in{}Y ∀x∈X,∃y∈Y使得 dist ( x , y ) ≤ r \operatorname{dist}(x, y) \leq r dist(x,y)≤r
2️⃣样本网络实例:度量空间为 ( N 2 , dist=Euclidean ) \left(\mathbb{N}^2,\text{dist=Euclidean})\right. (N2,dist=Euclidean)
- Y ⊆ X ⇒ { Y = { 黑点 } X = { 黑点 + 白点 } Y \subseteq X\Rightarrow\small\begin{cases}Y=\{黑点\}\\\\X=\{黑点+白点\}\end{cases} Y⊆X⇒⎩ ⎨ ⎧Y={黑点}X={黑点+白点}
- dist ( y 1 , y 2 ) > r ⇒ \operatorname{dist}\left(y_1, y_2\right) > r\Rightarrow dist(y1,y2)>r⇒单个黑点不能出现在两个圆中
- X ⊆ ⋃ y ∈ Y B ( y , r ) ⇒ X \subseteq \bigcup\limits_{y \in Y} B(y, r)\Rightarrow X⊆y∈Y⋃B(y,r)⇒所有点只出现在圆的重叠平面内
2. Structure G \textbf{2. Structure G} 2. Structure G
1️⃣结构的定义
- 定义每层结点: Y i Y_i Yi层的点即为 S S S的 2 i 2^i 2i-样本网 ( i = 0 , 1 , . . . , h ) (i=0,1,...,h) (i=0,1,...,h)
- Y h Y_h Yh只有一个对象,并且 2 h ≥ diam ( S ) 2^h\geq{}\text{diam}(S) 2h≥diam(S)
- 框定 ∣ Y i ∣ ≤ n |Y_i|\leq{}n ∣Yi∣≤n后,使得 G G G的空间复杂度变为了 O ( h n ) O(hn) O(hn)
- 定义结点的连接
- 对于 y ∈ Y i y\in{}Y_{i} y∈Yi与 z ∈ Y i − 1 z\in{}Y_{i-1} z∈Yi−1如果满足 dist ( y , z ) ≤ 7 ⋅ 2 i \operatorname{dist}(y, z) \leq 7 \cdot 2^i dist(y,z)≤7⋅2i则建立有向连接 y ⟶ z y\longrightarrow{}z y⟶z
- 用 N i + ( y ) N_i^{+}(y) Ni+(y)表示 y y y 的出度 (out-neighbors) \text{(out-neighbors)} (out-neighbors)
2️⃣结构的性质: ∣ N i + ( y ) ∣ = 2 O ( λ ) \left|N_i^{+}(y)\right|=2^{O(\lambda)} Ni+(y) =2O(λ)即 ∣ N i + ( y ) ∣ \left|N_i^{+}(y)\right| Ni+(y) 随着 λ \lambda λ的增加指数级增加
3. Query \textbf{3. Query} 3. Query
1️⃣查询过程
- 先将 S S S转化为图 G G G的结构
- 对于查询对象 q ∈ U \ S q \in U \backslash S q∈U\S我们在图 G G G中沿某条路径下降(称之为 π \pi π)
- 起始:访问 G G G根节点 Y h Y_h Yh
- 下降: y ∈ Y i y\in{}Y_{i} y∈Yi与 z ∈ Y i − 1 z\in{}Y_{i-1} z∈Yi−1 且 i ≥ 1 i\geq1 i≥1时,按照 dist ( q , z ) \operatorname{dist}(q, z) dist(q,z) 最小化原则下降,平局时任选
- 查询结果即返回 π \pi π路径中离 q q q最近的一点,即 e ∗ e^{*} e∗
2️⃣查询性质
- 查询的时间复杂度: ∣ N i + ( y ) ∣ h = 2 O ( λ ) h \left|N_i^{+}(y)\right|h=2^{O(\lambda)}h Ni+(y) h=2O(λ)h
- 该查询是 q q q的 3-ANN \text{3-ANN} 3-ANN,即 ∃ e ∈ { y h y h − 1 … y 0 } \exist{}e\in{}\{y_hy_{h-1}\ldots{}y_0\} ∃e∈{yhyh−1…y0}满足 dist ( q , e ) ≤ 3 ∗ dist ( q , e ∗ ) \text{dist}(q,e)\leq{}3*\text{dist}(q,e^*) dist(q,e)≤3∗dist(q,e∗)