空间填充曲线的聚簇性分析
一、 概述
先说结论,作者将曲线分为连续型(Hillbert、Peano等)、近连续型、非连续型(Z序、Morton等)分开讨论。
1.1 关于矩形查询的通用结论
(1)对于固定尺寸的“矩形查询 r r r ”,存在一个平均簇值的最优解(下限)。
(2)上述最优解(下限)受限于 r r r 的体积(用r中的单元数做量化)和形状(用 r r r 中各维度上的边数来量化)。
(3)通常连续性曲线较非连续型曲线更接近最优解(下限)。
(4)对于固定尺寸的“矩形查询 r r r “ ,仅考虑部分旋转集时,总是构造一种连续型曲线,使其平均簇值达到最优值(下限)。
(5)对于固定尺寸的“矩形查询 r r r ”,考虑其全旋转集时,所有连续型曲线的平均簇值都是最优解。
1.2 关于连续型曲线的结论
(1)对于连续型填充曲线,通过将某个查询 g g g 在各维度上做所有可能的平移后,得出统计结论:
该情况下,查询 g g g 的平均簇值仅和 g g g 的体积(用 g g g 内的单元数做量化)、形状(用 g g g 在各维度上边的数量来量化),以及填充曲线中各维度的边占比有关(用填充曲线中各维度上的边数占曲线总边数的比率来量化)。
(2)对于连续型填充曲线,考虑查询 g g g 的部分旋转集(查询g在若干维度上做旋转和所有可能的平移后得到的查询集合,被称为部分旋转集),得出结论:
该情况下,查询 g g g 的平均簇值仅和 g g g 的体积(用 g g g 内的单元数做量化)、g g g 的若干种旋转形(用 g g g 做若干旋转后,各维度上边的平均值做量化)、填充曲线中各维度的边占边有关(用填充曲线中各维度的边数占曲线总边数的比率量化)。
(3)对于连续性填充曲线,考虑查询g的全旋转集(查询 g g g 在所可能的旋转和平移后得到的查询集合),得出统计结论:
该情况下,查询 g g g 的平均簇值仅和 g g g 的表面积(用 g g g 的壳中单元的数量做量化)、空间的维度 d d d 有关,和曲线形式无关。
(4)对于对称型曲线(一种特殊的连续型曲线,曲线上各维度的边占比均为1/d),
g g g 的平均簇值和旋转集的内容无关,仅和 g g g 的表面积以及空间的维度有关。
1.3 关于近连续型填充曲线的结论
(1)对于近连续型曲线,在考虑部分旋转集时,得出结论:
其平均簇值也是可以计算的, 查询g的平均簇值仅和g的体积(用g内的单元数做量化)、g的若干种旋转形(用g做若干旋转后,各维度上边的平均值做量化)、填充曲线中各维度的边占边(用填充曲线中各维度的边数占曲线总边数的比率量化)有关。
1.4 关于Z序填充曲线的结论
非连续型填充曲线过于复杂,仅针对Z序的立方体型查询得出结论,其他问题尚无解。
(1)对于立方体型的查询(各种旋转的结果等于自身),其平均簇值是立方体边长和空间维度的函数。
二、基本定义
2.1 与空间、曲线相关的若干定义
定义2.1空间 U U U 邻边集合 E ( U ) E(U) E ( U ) 定义
(1)假设 v 1 , v 2 v_1,v_2 v 1 , v 2 是空间 U U U 中的两个点,当两者的曼哈顿距离为1时,定义其为一条邻边 e = ( v 1 , v 2 ) e = (v_1,v_2) e = ( v 1 , v 2 ) ;
(2)U U U 中所有邻边的集合,被称为空间 U U U 的邻边集合 E ( U ) E(U) E ( U ) ;
(3)如果 E ( U ) E(U) E ( U ) 中的某条邻边e = ( v 1 , v 2 ) e=(v_1,v_2) e = ( v 1 , v 2 ) ,仅在第 i i i 维上坐标不同,其他维上坐标均相等,则称 e e e 为沿维度 i i i 的邻边;
(4)E ( U ) E(U) E ( U ) 中所有沿维度 i i i 的邻边构成的集合,定义为第 i i i 维上的邻边集合 E i ( U ) E_i(U) E i ( U ) ;
(5)邻边和邻边集合仅与空间U有关,和填充曲线及查询无关。
定义2.2空间填充曲线 π π π 的定义
面向 d d d 维空间 U U U 的填充曲线 π : U − > 0 , 1 , . . . , n − 1 \pi : U->{0,1,...,n-1} π : U − > 0 , 1 , ... , n − 1
该定义代表一个双射系统,即多维空间中的c e l l cell ce ll 和填充曲线中的值之间是一一对应的。
定义2.3连续型填充曲线和近连续型填充曲线的定义
(1)连续型填充曲线的定义
当 π − 1 ( i ) \pi^{-1}(i) π − 1 ( i ) 和 π − 1 ( i + 1 ) \pi^{-1}(i+1) π − 1 ( i + 1 ) 在空间U中的曼哈顿距离总是等于1时,填充曲线 π π π 被称为连续型填充曲线 。
即对于 π π π 中任意任意一点i ( 0 ≤ i ≤ n − 2 ) i(0\le i \le n-2) i ( 0 ≤ i ≤ n − 2 ) , 和其下一个点 i + 1 i+1 i + 1 在空间U上所映射的两个单元 α , β \alpha,\beta α , β 之间的曼哈顿距离总是为1。
根据定义:
因为填充曲线是双射的,所以$ \pi (\beta) = \pi (\alpha)+1$ ;
边( α , β ) ∈ E i ( U ) (\alpha,\beta)\in E_i(U) ( α , β ) ∈ E i ( U ) ,其中E i ( U ) E_i(U) E i ( U ) 为空间 U U U 中,第 i i i 维上相邻两个单元构成的边的集合;
希尔伯特曲线、行优先曲线、peano曲线都是连续型曲线,因为其所有i 和 i + 1 i和i+1 i 和 i + 1 在 U U U 中的曼哈顿距离均为1
Z Z Z 序曲线不是连续型曲线,因为其在部分 i i i 和 i + 1 i+1 i + 1 之间的曼哈顿距离大于1
(2)近连续型填充曲线的定义
类似连续型填充曲线的定义,当( α , β ) (\alpha,\beta) ( α , β ) 的在各维度上坐标差的最大值等于1时,被称为近连续型曲线 。
根据定义可知,近连续型曲线较连续型填充曲线增加了对角的情况。
**定义2.4 填充曲线的边占比、边占比向量 μ ( π ) \mu(\pi) μ ( π ) **
(1)沿着填充曲线,在某维度上存在的相邻边的集合定义为 N i ( π ) N^i(π) N i ( π ) ,其数量为 ∣ N i ( π ) ∣ |N^i(π)| ∣ N i ( π ) ∣ ,根据定义可知, ∑ i = 1 d ∣ N i ( π ) ≤ n − 1 \sum\limits_{i=1}^d{|N_i(\pi)} \le n-1 i = 1 ∑ d ∣ N i ( π ) ≤ n − 1 ,例如:希尔伯特曲线其和等于n-1,而Z序曲线的和小于n-1。
(2)某维度上相邻边数在总边数中的比率,被定义为边占比 μ i ( π ) = lim n → ∞ N i ( π ) n − 1 \mu_i(π) = \lim\limits_{n\rightarrow\infty}\dfrac{N^i(π)}{n-1} μ i ( π ) = n → ∞ lim n − 1 N i ( π )
(3)各维度的边占比构成的向量,被称为边占比向量 μ ( π ) \mu(\pi) μ ( π )
μ ( π ) = < μ 1 ( π ) , μ 2 ( π ) , . . . , μ d ( π ) > \mu(π) = <\mu_1(π),\mu_2(π),...,\mu_d(π)> μ ( π ) =< μ 1 ( π ) , μ 2 ( π ) , ... , μ d ( π ) > 。
以二维空间为例:
(1)希尔伯特曲线:μ 1 ( π ) = μ 2 ( π ) = 1 2 \mu_1(π) = \mu_2(π)=\dfrac{1}{2} μ 1 ( π ) = μ 2 ( π ) = 2 1 ,μ ( π ) = < 1 2 , 1 2 > \mu(\pi) = <\dfrac{1}{2},\dfrac{1}{2}> μ ( π ) =< 2 1 , 2 1 > ,由于各占比之和为1,所以该曲线是连续型曲线;
(2)行优先曲线:μ 1 ( π ) = 1 , μ 2 ( π ) = 0 \mu_1(π)= 1,\mu_2(π) = 0 μ 1 ( π ) = 1 , μ 2 ( π ) = 0 ,μ ( π ) = < 1 , 0 > \mu(\pi) = <1,0> μ ( π ) =< 1 , 0 > ,由于其和等于1,所以也是连续型曲线;
(3)Z Z Z 序曲线: μ 1 ( π ) = 0 , μ 2 ( π ) = 1 / 2 \mu1(π)= 0,\mu2(π) =1/2 μ 1 ( π ) = 0 , μ 2 ( π ) = 1/2 ,μ ( π ) = < 0 , 1 2 > \mu(\pi) = <0,\dfrac{1}{2}> μ ( π ) =< 0 , 2 1 > ,由于其和小于1,所以可以判断其中某些边的曼哈顿距离大于1,所以是非连续型曲线;
(3)peano曲线:μ 1 ( π ) = 2 / 9 , μ 2 ( π ) = 7 / 9 \mu_1(π)=2/9,\mu2(π) = 7/9 μ 1 ( π ) = 2/9 , μ 2 ( π ) = 7/9 ,μ ( π ) = < 2 9 , 7 9 > \mu(\pi) = <\dfrac{2}{9},\dfrac{7}{9}> μ ( π ) =< 9 2 , 9 7 > ,其和等于1,所以也是连续型曲线。
2.2 和查询、簇有关的若干定义
定义2.5查询 g g g 邻边集合 E ( g ) E(g) E ( g ) 的定义
类似于空间 U U U 的邻边集合定义,查询 g \subeq U ,
(1)假设 v 1 , v 2 v_1,v_2 v 1 , v 2 是查询g g g 中的两个点,当两者的曼哈顿距离为1时,定义其为一条邻边 e = ( v 1 , v 2 ) e = (v_1,v_2) e = ( v 1 , v 2 ) ;
(2)g g g 中所有邻边的集合,被称为空间 g g g 的邻边集合 E ( g ) E(g) E ( g ) ;
(3)如果 E ( g ) E(g) E ( g ) 中的某条邻边e = ( v 1 , v 2 ) e=(v_1,v_2) e = ( v 1 , v 2 ) ,仅在第 i i i 维上坐标不同,其他维上坐标均相等,则称 e e e 为沿维度 i i i 的邻边;
(4)E ( g ) E(g) E ( g ) 中所有沿维度 i i i 的邻边构成的集合,定义为第 i i i 维上的邻边集合 E i ( g ) E_i(g) E i ( g ) ,由此可见, E i ( g ) = E ( g ) ∩ E i ( U ) E_i(g) = E(g) \cap E_i(U) E i ( g ) = E ( g ) ∩ E i ( U ) 。
定义2.6查询 g g g 邻边向量 v ( g ) v(g) v ( g ) 的定义
给定查询 g g g , 定义其邻边向量为长度等于 d d d 的向量 v ( g ) v(g) v ( g ) ,其值为:
v ( g ) = < v 1 ( g ) , v 2 ( g ) , . . . , v d ( g ) > , w h e r e 1 ≤ i ≤ d , v i ( g ) = ∣ E i ( g ) ∣ v(g)=<v_1(g),v_2(g),...,v_d(g)>, where 1 \le i \le d, v_i(g)=|E_i(g)| v ( g ) =< v 1 ( g ) , v 2 ( g ) , ... , v d ( g ) > , w h ere 1 ≤ i ≤ d , v i ( g ) = ∣ E i ( g ) ∣
(1) E i ( g ) E_i(g) E i ( g ) 为 g g g 在第 i i i 个维度上邻边的集合, ∣ E i ( g ) ∣ |E_i(g)| ∣ E i ( g ) ∣ 为其邻边的个数。
(2)v i ( g ) v_i(g) v i ( g ) 为标量,v ( g ) v(g) v ( g ) 为向量;
(3)g g g 的邻边向量本质上是对 g g g 的形状特性描述。
定义2.7 簇的定义:
当某个 c e l l cell ce ll 集合C C C (C C C 为U U U 的子集),如果其在填充曲线 π π π 中对应的数值是连续的,则被称之为一个簇。需要说明的是,空间上邻接的 c e l l cell ce ll 集合,有可能形成多个簇,不同类型的填充曲线,其形成这种簇的特性不同,但基本都无法做到在所有平移或旋转情况下只对应一个簇。
(1)查询 q q q 是 U U U 的子集,q q q 的体积 ∣ q ∣ |q| ∣ q ∣ 是其中 c e l l cell ce ll 的数量;
(2)矩形查询是在各维度上均为有限连续区间的 c e l l cell ce ll 集合;
(3)对于非矩形查询,可以定义其外包矩形为B ( q ) B(q) B ( q ) ,当$q $是矩形查询时,两者等价;
(4)当 ∣ B ( q ) ∣ |B(q)| ∣ B ( q ) ∣ 独立于 n n n 时,我们成 g g g 是固定值尺寸的。
定义2.8 q q q 形查询簇值 c ( q , π ) c(q,π) c ( q , π ) 的定义
某个 q q q 形查询,其在填充曲线 π π π 中的簇数量 c ( q , π ) c(q,π) c ( q , π ) ,被定义为 q q q 形所能切分的最小簇数量。
例如,下图中对于3 × 2 3 \times 2 3 × 2 的矩形查询:
(1)在希尔伯特曲线中,不同位置的查询,簇数量可能为1,也可能不为1,其簇值就取最小值1;
(2)在Z序曲线中,不同位置的查询,簇数量肯定大于等于2,其簇值就取最小值2。
定义2.9查询集合 Q Q Q 的平均簇值C ( Q , π ) C(Q,\pi) C ( Q , π ) 的定义
如果 Q Q Q 为若干查询 q q q 的集合,则对于非空查询集合 Q Q Q ,将其在 π π π 上的平均簇值c ( Q , π ) c(Q,π) c ( Q , π ) 定义为:
c ( Q , π ) = ∑ q ∈ Q c ( q , π ) ∣ Q ∣ c(Q,\pi) =\dfrac{\sum\limits_{q \in Q}{c(q,\pi)}}{|Q|}
c ( Q , π ) = ∣ Q ∣ q ∈ Q ∑ c ( q , π )
即若干查询的平均簇值是各查询簇值的平均。
定义2.10查询 g g g 的旋转、部分旋转集 Λ \Lambda Λ 和全旋转集 Λ ∗ \Lambda^* Λ ∗ 的定义
(1)旋转 λ \lambda λ 指 g g g 在某两个坐标轴上做了置换,形成90度旋转。
例如:二维空间中,x和y的置换形成一个旋转。
(2)m m m 个不重复的旋转构成的集合,被称为部分旋转集 Λ = { λ 1 , λ 2 , . . , λ m } \Lambda=\{\lambda_1,\lambda_2,..,\lambda_m\} Λ = { λ 1 , λ 2 , .. , λ m }
(3)当 Λ \Lambda Λ 包含了 d d d 维空间所有可能的坐标轴置换(旋转)时,被称为全旋转集将 Λ ∗ \Lambda^* Λ ∗ 。
(4)对于任一旋转 λ ∈ Λ ∗ \lambda \in \Lambda^* λ ∈ Λ ∗ ,定义 λ ( i ) \lambda(i) λ ( i ) 为 i i i 在 λ \lambda λ 下的镜像 ( 1 ≤ i ≤ d ) (1 \le i \le d) ( 1 ≤ i ≤ d ) 。
定义2.11查询 g g g 的旋转形 P \mathcal{P} P 、平移形 T \mathcal{T} T 和全查询集合 Q \mathcal{Q} Q 的定义
(1)查询 g g g 中的某个 c e l l cell ce ll 经 λ \lambda λ 旋转后的值被称为单元旋转值 ):
对于任一 λ ∈ Λ ∗ \lambda \in \Lambda^* λ ∈ Λ ∗ ,某个 c e l l x ( x ∈ U ) cell x(\,x \in U) ce ll x ( x ∈ U ) 在旋转 λ \lambda λ 下的值定义为
P ( x , λ ) = ( x λ ( 1 ) , x λ ( 2 ) , . . . , x λ ( d ) ) \mathcal{P}(x,\lambda)=(x_{\lambda(1)},x_{\lambda(2)},...,x_{\lambda(d)})
P ( x , λ ) = ( x λ ( 1 ) , x λ ( 2 ) , ... , x λ ( d ) )
(2)查询 g g g 经 λ \lambda λ 旋转后,形成的新查询,被称为 g g g 的旋转形查询 P ( g , λ ) \mathcal{P}(g,\lambda) P ( g , λ ) :
查询 g(g\subeq U) 在经过 λ \lambda λ 旋转后的值,被定义为 P ( g , λ ) = { P ( v , λ ) ∣ v ∈ g } \mathcal{P}(g,\lambda) = \{ \mathcal{P}(v,\lambda)\,|\,v \in g\} P ( g , λ ) = { P ( v , λ ) ∣ v ∈ g } 。即 g g g 在旋转后的值,是其内所有 c e l l cell ce ll 旋转后值的集合。
(3)查询 g g g 的 m m m 个旋转形查询构成的集合被称为 g g g 的部分旋转集合 P ( g , Λ ) = { P ( g , λ 1 ) , P ( g , λ 2 ) , . . . , P ( g , λ m ) ∣ λ i ∈ Λ } \mathcal{P}(g,\Lambda)=\{\mathcal{P}(g,\lambda_1),\mathcal{P}(g,\lambda_2),... ,\mathcal{P}(g,\lambda_m) \,|\, \lambda_i \in \Lambda\} P ( g , Λ ) = { P ( g , λ 1 ) , P ( g , λ 2 ) , ... , P ( g , λ m ) ∣ λ i ∈ Λ } 。
(4)查询 g g g 的平移形T ( g , δ ) \mathcal{T}(g,\delta) T ( g , δ ) 和平移集合 $\mathcal{T}(g) $:
查询 g(g \subeq U) ,在经过向量 δ \delta δ (δ = < δ 1 , δ 2 , . . . δ d > ) \delta =<\delta_1,\delta_2,...\delta_d>) δ =< δ 1 , δ 2 , ... δ d > ) 的平移后,产生的新查询被称为其平移形。
T ( g , δ ) = { v + δ ∣ v ∈ g } \mathcal{T}(g,\delta)=\{ v+\delta \,|\, v \in g\} T ( g , δ ) = { v + δ ∣ v ∈ g } ,
在空间 U U U 中所有可能的 T ( g , δ ) \mathcal{T}(g,\delta) T ( g , δ ) 构成的集合,被称为 g g g 的平移集合 T ( g ) \mathcal{T}(g) T ( g ) 。
(5)g g g 在旋转 λ 1 \lambda_1 λ 1 和旋转 λ 2 \lambda_2 λ 2 下的平移集合分别为T ( P ( g , λ 1 ) ) \mathcal{T}(\mathcal{P}(g,\lambda_1)) T ( P ( g , λ 1 )) 和 T ( P ( g , λ 2 ) ) \mathcal{T}(\mathcal{P}(g,\lambda_2)) T ( P ( g , λ 2 )) ,一般的,当 λ 1 ≠ λ 2 \lambda_1 \ne \lambda_2 λ 1 = λ 2 时,两者是有区别的;不过也有可能出现两者相同的特殊情况,如 g g g 中只有一个单元,而该单元在各维度上的坐标均相同,此时任何两个旋转下的平移集合均相同;立方体形状的查询比较特殊,其所有的旋转均相等。
(6)T ( P ( g , Λ ) ) \mathcal{T}(\mathcal{P}(g,\Lambda)) T ( P ( g , Λ )) 被称为 g g g 在旋转 Λ \Lambda Λ 全查询集合集合 Q ( g ) \mathcal{Q}(g) Q ( g ) 或 Q ( g , Λ ∗ ) \mathcal{Q}(g,\Lambda^*) Q ( g , Λ ∗ ) ,T ( P ( g , Λ ∗ ) ) \mathcal{T}(\mathcal{P}(g,\Lambda^*)) T ( P ( g , Λ ∗ )) 被称为 g g g 的全查询集合集合 Q ( g ) \mathcal{Q}(g) Q ( g ) 或 Q ( g , Λ ∗ ) \mathcal{Q}(g,\Lambda^*) Q ( g , Λ ∗ ) 。
通过上述定义可知:
(1)作者的目的并非研究单一的查询个体,而是在尺寸固定的情况下,对查询的各种可能性进行遍历,在此基础上形成统计结论。
(2)通过平移集合 T ( g ) \mathcal{T}(g) T ( g ) ,对 g g g 进行聚簇性统计分析,可以得出其某种固定方向的统计结论;
(3)通过全查询集合 Q ( g ) \mathcal{Q}(g) Q ( g ) ,对查询 g g g 进行聚簇性统计分析,可以得出更为一般性的结论。
举例:
d = 2 d=2 d = 2 ,形状为 2 × 3 2 \times 3 2 × 3 的查询 g g g ,其旋转集合 Λ ∗ \Lambda^* Λ ∗ 为{(1,2),(2,1)},其对应的旋转形为 P \mathcal{P} P 为 (2,3) 和 (3,2),其查询集合 Q ( g , Λ ∗ ) \mathcal{Q}(g,\Lambda^*) Q ( g , Λ ∗ ) 为U中所有可能的 2 × 3 2 \times 3 2 × 3 矩形和所有可能的 3 × 2 3 \times 2 3 × 2 矩形,并且全查询集合中的查询数量为: ∣ Q ( g , Λ ∗ ) ∣ = 2 ( n − 1 ) ( n − 2 ) |\mathcal{Q}(g,\Lambda^*)|=2(\sqrt{n}-1)(\sqrt{n}-2) ∣ Q ( g , Λ ∗ ) ∣ = 2 ( n − 1 ) ( n − 2 ) 。
定义2.12查询 g g g 的旋转形邻边向量、旋转形集合的邻边向量的定义
(1) 旋转形邻边向量
给定查询 g g g 和旋转集合 λ ∈ Λ ∗ \lambda \in \Lambda^* λ ∈ Λ ∗ , 其旋转构成后的查询的邻边向量,被称为g的旋转形邻边向量 v ( g , λ ) v(g,\lambda) v ( g , λ ) 。
(2)给定查询 g g g 和非空旋转集合 \Lambda \subeq \Lambda^* ,定义其旋转形集合 P ( g , Λ ) \mathcal{P}(g,\Lambda) P ( g , Λ ) 对应的邻边向量v ( g , Λ ) v(g,\Lambda) v ( g , Λ ) 为各邻旋转形邻边向量的平均值向量,即:
v ( g , Λ ) = ( v 1 ( g , Λ ) , v 2 ( g , Λ ) , . . . , v d ( g , Λ ) ) w h e r e 1 ≤ i ≤ d , a n d v i ( g , Λ ) = ∑ λ ∈ Λ v i ( P ( g , λ ) ) ∣ Λ ∣ v(g,\Lambda) =(v_1(g,\Lambda),v_2(g,\Lambda),...,v_d(g,\Lambda))\\where \quad 1 \le i \le d,\\and\quad v_i(g,\Lambda)=\dfrac{\sum_{\lambda\,\in\, \Lambda}v_i(\mathcal{P}(g,\lambda))}{|\Lambda|}\\
v ( g , Λ ) = ( v 1 ( g , Λ ) , v 2 ( g , Λ ) , ... , v d ( g , Λ )) w h ere 1 ≤ i ≤ d , an d v i ( g , Λ ) = ∣Λ∣ ∑ λ ∈ Λ v i ( P ( g , λ ))
定义2.13命中函数 I ( q , α , β ) I(q,\alpha,\beta) I ( q , α , β ) 的定义
对于 U U U 中两个单元 α , β \alpha,\beta α , β , 以及查询 q\,(q \subeq U) , 当 α , β \alpha,\beta α , β 都被 q q q 包含时,称为被 q q q 命中:
I ( q , α , β ) = { 1 i f α ∈ q a n d β ∈ q 0 o t h e r w i s e I(q,\alpha,\beta) =
\left \{
\begin{align*}
&1\qquad if \quad \alpha \in q\quad and\quad \beta \in q\\
&0\qquad otherwise
\end{align*}
\right .
I ( q , α , β ) = { 1 i f α ∈ q an d β ∈ q 0 o t h er w i se
命中函数主要用于辅助区分查询g内两个单元的邻接关系。
(1)空间填充曲线可以被视为一系列从一个单元(cell)走向另一个单元(cell)的有向边构成的集合,其中每个cell仅被访问一次。
(2)边可以由U中两个单元 ( α , β ) (\alpha,\beta) ( α , β ) 定义,其中 \left |\begin{align*} &\alpha = \pi^{-1}(i),\\&\beta=\pi^{-1}(i+1)\\\end{align*}\right. , $,0\le i \le n-2 $ 。
(3)填充曲线 π \pi π 中所有边的集合,N(\pi) = \{ (\alpha_i,\beta_i)\} where \,\left |\begin{align*} &\alpha_i = \pi^{-1}(i),\\&\beta_i=\pi^{-1}(i+1)\\\end{align*}\right. ,and \quad0\le i \le n-2
(4)N ( π ) N(\pi) N ( π ) 中在第i i i 个维度上相邻的边的集合,表示为N i ( π ) N^i(\pi) N i ( π ) (见定义1.4)。根据定义可知,不同类型的填充曲线,其 N i ( π ) ⊂ N ( π ) N^i(\pi)\sub N(\pi) N i ( π ) ⊂ N ( π ) ,但∑ i = 1 d N i ( π ) \sum\limits_{i=1}^dN^i(\pi) i = 1 ∑ d N i ( π ) 不一定等于N ( π ) \N(\pi) N ( π ) 。
(5)I I I 指示了查询 q q q 中两个单元,是否为填充曲线上的相邻点,为量化q的簇值提供了一种计量手段。
(6)根据定义,假设查询 q q q 共有 ∣ q ∣ |q| ∣ q ∣ 个单元,初始状态下簇值为 ∣ q ∣ |q| ∣ q ∣ ,即每个单元都独立成簇,后面的工作就是从这些独立的簇中,根据 I I I 进行簇的合并。具体方法是按照填充曲线的方向对 N ( π ) N(\pi) N ( π ) 中的边进行顺序遍历(也可求出 q q q 的 π m i n , π m a x \pi_{min},\pi_{max} π min , π ma x 后,在其区间内进行遍历)时,如果边 N ( α , β ) N(\alpha,\beta) N ( α , β ) 中的两个顶点 α 和 β \alpha和 \beta α 和 β 都被查询 q q q 包含,则两点在一个簇中,簇值 ∣ q ∣ − 1 |q| -1 ∣ q ∣ − 1 ,遍历结束后,∣ q ∣ |q| ∣ q ∣ 的剩余值即为簇值(见引理2.3)。
三、重要的引理和计算公式
引理3.1 查询集合大小 ∣ Q ( r , Λ ) ∣ |\mathcal{Q}(r,\Lambda)| ∣ Q ( r , Λ ) ∣ 的计算公式
若 r r r 为 d d d 维矩形,r i r_i r i 表示 r r r 在维度 i i i 上的长度,令 \Lambda \subeq \Lambda^* ,n n n 为填充曲线的总长度,则有:
∣ Q ( r , Λ ) ∣ = ∣ Λ ∣ ∏ i = 1 d ( n d − r i + 1 ) |\mathcal{Q}(r,\Lambda)| = |\Lambda|\prod_{i=1}^{d}(\sqrt[d]{n}-r_i+1)
∣ Q ( r , Λ ) ∣ = ∣Λ∣ i = 1 ∏ d ( d n − r i + 1 )
引理3.2更一般的,对于非矩形查询g,可根据其外包矩形计算全查询集合大小 ∣ Q ( r , Λ ) ∣ |\mathcal{Q}(r,\Lambda)| ∣ Q ( r , Λ ) ∣
若 g g g 为非矩形查询,b i b_i b i 表示 g g g 的外包矩形B ( g ) B(g) B ( g ) 在维度 i i i 上的长度,令 Λ ⊆ Λ ∗ \Lambda \sube \Lambda^* Λ ⊆ Λ ∗ ,则有:
∣ Q ( g , Λ ) ∣ = ∣ Λ ∣ ∏ i = 1 d ( n d − b i + 1 ) |\mathcal{Q}(g,\Lambda)| = |\Lambda|\prod_{i=1}^{d}(\sqrt[d]{n}-b_i+1)
∣ Q ( g , Λ ) ∣ = ∣Λ∣ i = 1 ∏ d ( d n − b i + 1 )
(1)全查询集合的大小和填充曲线的形式无关,只和填充曲线的长度有关;
(2)这种无关性有助于对不同类型的填充曲线进行对比分析;
(3)非矩形查询利用外包矩形的全查询集合来代替;
(4)总体上,全查询集合的大小和所要分析的旋转个数、填充曲线的长度成正相关。
引理3.3查询 q q q 簇值的计算公式
对于任意查询 q q q 和任意填充曲线 π \pi π ,
c ( q , π ) = ∣ q ∣ − ∑ ( α , β ) ∈ N ( π ) I ( q , α , β ) c(q,\pi)=|q| -\sum\limits_{(\alpha,\beta) \in N(\pi)}I(q,\alpha,\beta)
c ( q , π ) = ∣ q ∣ − ( α , β ) ∈ N ( π ) ∑ I ( q , α , β )
即对于指定的查询 q q q :
(1)其簇值不大于 q q q 中单元的数量 ∣ q ∣ |q| ∣ q ∣ ;
(2)q q q 中任意两个单元 α , β \alpha,\beta α , β ,如果α \alpha α 到β \beta β 正好构成 π \pi π 中的一条边,则簇值在 ∣ q ∣ |q| ∣ q ∣ 基础上减1 。
例如:
对于下图所示的2维 4 × 4 4 \times 4 4 × 4 网格空间,每个单元按照填充曲线被顺序赋予一个数值,当查询 q q q 为阴影所示的区域时(此处∣ q ∣ = 3 |q|=3 ∣ q ∣ = 3 ),只有一个I ( q , α , β ) I(q,\alpha,\beta) I ( q , α , β ) 为非0,即1号单元到2号单元,其他( α , β ) (\alpha,\beta) ( α , β ) 的组合均为0。因此根据上述计算公式,此处 c ( q , π ) = ∣ q ∣ − 1 = 2 c(q,\pi)=|q|-1= 2 c ( q , π ) = ∣ q ∣ − 1 = 2 。
引理3.4 查询集合平均簇值的计算公式
c ( Q , π ) = ∣ q ∣ − ∑ i = 0 n − 2 ∣ P Q ( π − 1 ( i ) , π − 1 ( i + 1 ) ) ∣ ∣ Q ∣ c(Q,\pi) = |q|-\dfrac{\sum_{i=0}^{n-2}|P_Q(\pi^{-1}(i),\pi^{-1}(i+1))|}{|Q|}
c ( Q , π ) = ∣ q ∣ − ∣ Q ∣ ∑ i = 0 n − 2 ∣ P Q ( π − 1 ( i ) , π − 1 ( i + 1 )) ∣
类似于引理3.3,只是对于空间填充曲线中的每一条边,对查询集合 Q Q Q 中的所有查询做包含分析,并相应的削减簇值,曲线遍历完成后,做簇值的平均。
(1)对于空间填充曲线上的某条边对应的两个单元 α , β ∈ U \alpha,\beta \in U α , β ∈ U ,定义 P Q ( α , β ) = { r ∈ Q ∣ I ( r , α , β ) = 1 } P_Q(\alpha,\beta)=\{r \in Q|I(r,\alpha,\beta)=1\} P Q ( α , β ) = { r ∈ Q ∣ I ( r , α , β ) = 1 } 用于表示其在所有查询中的被命中集合,自然的, ∣ P Q ( α , β ) ∣ |P_Q(\alpha,\beta)| ∣ P Q ( α , β ) ∣ 为命中次数,被命中一次,簇值减去1。
引理3.5查询 q q q 表面积的计算公式
查询g的表面积定义为其壳中单元的数量,表面积 $ S_g=2d|g|-2|E(g)|$ ,即表面积是查询g的体积和在各维度上边数量总和的函数。
四、定理及相关推论
4.1 关于连续型空间填充曲线的结论
定理4.1任意连续型填充曲线、任意固定尺寸的查询 g g g ,仅考虑平移时的平均簇值
对于任意连续型填充曲线 π \pi π ,任意固定尺寸的查询 g g g , 其平移集合 T ( g ) \mathcal{T}(g) T ( g ) 的平均簇值可以有如下公式计算:
lim n → ∞ c ( T ( g ) , π ) = ∣ g ∣ − μ ( π ) ⋅ v ( g ) w h e r e “ ⋅ ” 指向量的点乘 \lim\limits_{n\rightarrow \infty}c(\mathcal{T}(g),\pi)=|g| - \mu(\pi) \cdot v(g)\\
where \,“\cdot”\,指向量的点乘
n → ∞ lim c ( T ( g ) , π ) = ∣ g ∣ − μ ( π ) ⋅ v ( g ) w h ere “ ⋅ ” 指向量的点乘
(1)根据定义2.4和2.6, μ ( π ) \mu(\pi) μ ( π ) 为填充曲线 π \pi π 各维度的边占比向量, v ( g ) v(g) v ( g ) 为查询 g g g 各维度的边数量向量;
(2)该定理表明,在仅考虑平移的情况下,任意固定尺寸的查询,其平均簇值仅和查询g的体积(单元数量)、g的形状(用各维度上边的数量量化)和填充曲线的形式(用曲线各维度上边的比率量化)有关;
(3)当n趋近于无穷大时,任意固定尺寸查询的平均簇值趋近于固定的值;
(4)证明过程见参考文献。
定理4.2 任意连续型填充曲线、任意固定尺寸的查询 g g g ,同时考虑平移和部分旋转时的平均簇值
对于任意连续型填充曲线 π \pi π ,任意固定尺寸的查询 g g g , 和旋转集合 Λ ⊆ Λ ∗ \Lambda \sube \Lambda^* Λ ⊆ Λ ∗ ,其平均簇值可以有如下公式计算:
lim n → ∞ c ( Q ( g , Λ ) , π ) = ∣ g ∣ − μ ( π ) ⋅ v ( g , Λ ) w h e r e “ ⋅ ” 指向量的点乘 \lim\limits_{n\rightarrow \infty}c(\mathcal{Q}(g,\Lambda),\pi)=|g| - \mu(\pi) \cdot v(g,\Lambda)\\where \,“\cdot”\,指向量的点乘
n → ∞ lim c ( Q ( g , Λ ) , π ) = ∣ g ∣ − μ ( π ) ⋅ v ( g , Λ ) w h ere “ ⋅ ” 指向量的点乘
(1)根据定义2.4和2.12, μ ( π ) \mu(\pi) μ ( π ) 为填充曲线 π \pi π 各维度的边占比向量, v ( g , Λ ) v(g,\Lambda) v ( g , Λ ) 为查询 g g g 在旋转集Λ \Lambda Λ 下,各维度的边数量平均值的向量;
(2)该定理表明,在同时考虑旋转和平移的情况下,任意固定的查询,其平均簇值仅和查询g的体积(单元数量)、g的形状(用各维度上各种旋转形成的边数量的平均值来量化)和填充曲线的形式(用曲线各维度上边的比率量化)有关;
(3)当n趋近于无穷大时,任意固定尺寸查询的平均簇值趋近于固定的值。
算法4.3查询和旋转集合确定情况下,构造连续型空间曲线的算法
定理4.4 任意连续型曲线、任意固定尺寸的查询,同时考虑平移和所有可能的旋转时的平均簇值
对于任意连续型填充曲线 π \pi π ,任意固定尺寸的查询 g g g , 和全旋转集合 Λ ∗ \Lambda^* Λ ∗ ,其平均簇值可以有如下公式计算
lim n → ∞ c ( ( Q ) ( g , Λ ∗ ) , π ) = S g 2 d \lim\limits_{n\rightarrow\infty}c(\mathcal(Q)(g,\Lambda^*),\pi)=\dfrac{S_g}{2d}
n → ∞ lim c (( Q ) ( g , Λ ∗ ) , π ) = 2 d S g
(1)S g S_g S g 为查询g的表面积, $ S_g=2d|g|-2|E(g)|$ ,表面积定义为g的壳中单元的数量;
(2)此处忽略了与边界邻接的情况;
(3)该定理表明,如果查询特点是全部旋转都会出现且处于均匀分布时,则所有连续型曲线的平均簇值都相同,没有优略之分,且仅与查询的表面积有关(实际应用中,d一般为常数)。
4.2 任意填充曲线的矩形查询平均簇值的下限分析
对于矩形查询 r r r 和旋转集 Λ \Lambda Λ 的全查询集合 Q ( r , Λ ) \mathcal{Q}(r,\Lambda) Q ( r , Λ ) ,令 v m a x = v m a x ( r , Λ ) = m a x 1 ≤ i ≤ d v i ( r , Λ ) v^{max}=v^{max}(r,\Lambda)=max_{1\le i\le d}v_i(r,\Lambda) v ma x = v ma x ( r , Λ ) = ma x 1 ≤ i ≤ d v i ( r , Λ ) ,则有如下定理:
定理4.5矩形查询平均簇值的计算公式
对于固定尺寸的矩形查询 r r r 和非空旋转集合Λ ⊆ Λ ∗ \Lambda \sube \Lambda^* Λ ⊆ Λ ∗ ,对于任意填充曲线 π \pi π (连续的或非连续的),如果其全查询集合Q ( r , Λ ) \mathcal{Q}(r,\Lambda) Q ( r , Λ ) 的平均簇值存在下限,则:
lim n ← ∞ c ( Q ( r , Λ ) , π ) ≥ ∣ r ∣ − v m a x \lim\limits_{n\leftarrow\infty} c(\mathcal{Q}(r,\Lambda),\pi) \ge |r| -v^{max}
n ← ∞ lim c ( Q ( r , Λ ) , π ) ≥ ∣ r ∣ − v ma x
定理4.6 任意固定尺寸的矩形查询,总能构造出一条连续型填充曲线,使其平均簇值达对最优解。
对固定尺寸的矩形查询 r r r 和非空旋转集合Λ ⊆ Λ ∗ \Lambda \sube \Lambda^* Λ ⊆ Λ ∗ ,总是存在一条连续型填充曲线 π \pi π ,其平均簇值能达到最优解。即:
lim n ← ∞ c ( Q ( r , Λ ) , π ) = ∣ r ∣ − v m a x \lim\limits_{n\leftarrow\infty} c(\mathcal{Q}(r,\Lambda),\pi) = |r| -v^{max}
n ← ∞ lim c ( Q ( r , Λ ) , π ) = ∣ r ∣ − v ma x
推论4.7对于任意固定尺寸的矩形查询,如果考虑其所有可能的旋转时,任意一条连续型填充曲线的平均簇值都是最优的。
4.3 Z序曲线的空间聚簇性分析
定义4.8: 空间U的重新定义
空间U U U 由维度d d d 和各维度的尺寸2 k 2^k 2 k 定义,特别的,此处各维度尺寸相等。假设该空间与Z序之间为双射关系,则有各维度尺寸2^k\,=\,^{d}\sqrt{n},\,n为空间填充曲线长度 ,例如:以二维平面U可被d=2,k=10的参数唯一确定,其各维度尺寸均为 1024 = 2 10 1024=2^{10} 1024 = 2 10 ,且 n = 102 4 2 n = 1024^2 n = 102 4 2 。
定义4.9:Z值得定义
U U U 上的某个点 x = ( x 1 , x 2 , … x d ) w h e r e 0 ≤ x i ≤ 2 k , a n d 0 < i < d x=(x_1,x_2,\ldots x_d)where\, 0\le x_i \le 2^k,and \,0<i<d x = ( x 1 , x 2 , … x d ) w h ere 0 ≤ x i ≤ 2 k , an d 0 < i < d (其中,x i x_i x i 可以用 k k k 位二进制数字表示),x i j x_i^j x i j 为其在第i维上的第j个二进制数字,j = 1 , 2 , … k j=1,2,\ldots k j = 1 , 2 , … k ,则该点的Z值被定义为:
Z ( x ) = x 1 1 , x 2 1 , … , x d 1 , x 1 2 , x 2 2 , … x d 2 … x 1 k , x 2 k , … x d k Z(x) = x_1^1,x_2^1,\ldots,x_d^1,x_1^2,x_2^2,\ldots x_d^2 \ldots x_1^k,x_2^k,\ldots x_d^k
Z ( x ) = x 1 1 , x 2 1 , … , x d 1 , x 1 2 , x 2 2 , … x d 2 … x 1 k , x 2 k , … x d k
例如:当d = 3 , k = 4 d=3,k=4 d = 3 , k = 4 时,U U U 中某点 ( 0011 , 1011 , 1010 ) (0011,1011,1010) ( 0011 , 1011 , 1010 ) 的Z值为:Z ( 0011 , 1011 , 1010 ) = 011 , 000 , 111 , 110 Z(0011,1011,1010) = 011,000,111,110 Z ( 0011 , 1011 , 1010 ) = 011 , 000 , 111 , 110
下图为d=2,k=3时的Z序示意图。
定义4.10:查询 q q q 及其平移集合T ( q ) \mathcal{T}(q) T ( q ) 的定义
此处将查询 q q q 确定为立方体形式,即S i z e o f q = m × m × . . . × m Size\,of\,q=m\times m\times ...\times m S i ze o f q = m × m × ... × m ,其平移集合 T ( q ) \mathcal{T}(q) T ( q ) 被定义为 q q q 在 U U U 中所有可能的平移产生的集合。
定理4.11:Z序曲线中立方体查询的平均簇值计算表达式
如果 Z Z Z 为d d d 维空间的Z Z Z 序曲线,q q q 是大小为 m d m^d m d 的立方体查询,则有关于 q q q 的平均簇值为:
lim n − > ∞ c ( T ( q ) , Z ) = ( 2 + o ( 1 2 d ) ) m d − 1 + o ( m d − 1 ) \lim\limits_{n->\infty}{c(T(q),Z)} =(2+o(\dfrac{1}{2^d}))m^{d-1}+o(m^{d-1})
n − > ∞ lim c ( T ( q ) , Z ) = ( 2 + o ( 2 d 1 )) m d − 1 + o ( m d − 1 )
该平均簇值的下限为m d − 1 m^{d-1} m d − 1 ,(即,q q q 形在U U U 中的平移,平均会产生不少于 m d − 1 m^{d-1} m d − 1 个簇)。因此,可以断定,Z序曲线的性能是其下限的2倍。
引理4.12:定义 N ( Z ) N(Z) N ( Z ) 为Z Z Z 中所有边的集合,如果我们将其分解为 k d kd k d 个不连接的部分,组 G h ( 0 ≤ h ≤ k d − 1 ) G_h(0 \le h \le {kd-1}) G h ( 0 ≤ h ≤ k d − 1 ) ,
4.4、近连续型空间曲线的聚簇性分析
五、总结
个人觉得作者的最大贡献在于:
(1)**提出了一种量化分析空间填充曲线性能的通用方法。**作者提出了一种“以边为中心”的量化分析方法,上述所有结论,都是通过对查询 g g g 以及填充曲线 π \pi π 的边特性量化而得出。
(2)对于矩形查询,给出了平均簇值可能的最优解计算式 。同时指出,如果应用中矩形查询的各种旋转形均存在且分布比较均匀,则选择任何一条连续型填充曲线都能够使平均簇值为最优值。
(3)对于矩形查询,如果仅考虑部分旋转集,则可以构造出一条能够达到最优解的填充曲线,并给出了构造填充曲线的算法 ,这为某些特定形式的查询优化提供了理论支撑。
(4)在更广泛的查询条件下,为连续型曲线的各种平均簇值计算提供了基本算式,该算式由查询 g g g 和填充曲线 π \pi π 的体积和形状特性决定 。
(5)针对Z序曲线的立方体查询这一具体问题做了分析,给出了该情况下Z序曲线平均簇值的分析表达式 。
六、其他相关文献
6.1 本文文献索引
(1)Xu P, Tirthapura S. Optimality of clustering properties of space-filling curves [J]. ACM Transactions on Database Systems (TODS), 2014, 39(2): 1-27.
(2)Pan Xu and Srikanta Tirthapura. 2014. Optimality of Clustering Properties of Space-Filling Curves. ACM Trans. Database Syst. 39, 2, Article 10 (May 2014), 27 pages. DOI:https://doi.org/10.1145/2556686
6.2 一篇用试验数据证明Z序编码、Grey编码、Hilbert编码聚簇性能的文献
(3)Kumar A. (1994) A study of spatial clustering techniques . In: Karagiannis D. (eds) Database and Expert Systems Applications. DEXA 1994. Lecture Notes in Computer Science, vol 856. Springer, Berlin, Heidelberg. DOI:https://doi.org/10.1007/3-540-58435-8_171