不确定数据上的Top-k典型性查询
在处理不确定数据时,典型性查询是一个重要的研究领域。本文将详细介绍几种不同类型的典型性查询,包括简单典型性查询、判别典型性查询和代表性典型性查询,并探讨相应的算法和复杂度。
1. 简单典型性查询
1.1 中心与半径计算
在处理简单典型性查询时,首先需要计算节点的中心和半径。对于每个节点 $N$ 中的实例集合 $R$,计算每个实例 $x$ 的中心得分,即 $x$ 到 $R$ 中其他点的最大距离。选择中心得分最小的实例作为中心。这个中心近似过程在计算几何中很常用。计算每个节点的中心需要 $O(|O_N|)$ 时间,对于 LT 树中的所有节点,需要 $O(|O|\log_t |O|)$ 时间。
确定中心 $c$ 后,半径为 $c$ 到节点 $N$ 中其他实例的最大距离。计算每个节点的半径需要 $O(|O_N|)$ 时间,对于 LT 树中的所有节点,需要 $O(|O|\log_t |O|)$ 时间。
1.2 $\sigma$-邻域计算
使用 LT 树中的范围查询来计算每个节点 $N$ 的 $O_N$ 的 $\sigma$-邻域的超集。从根节点开始,使用节点 $N$ 的近似中心和半径,迭代搜索完全位于 $N$ 的 $\sigma$-邻域内的节点。一旦节点 $N’$ 中的所有对象都在 $N$ 的 $\sigma$-邻域内,就用 $N’$ 表示它们,不再搜索 $N’$ 的子树。
1.3 查询回答
为了回答 top-k 简单典型性查询,采用自底向上的方式在 LT 树上进行锦标赛。首先,对 LT 树的每个叶节点进行锦标赛,获胜者进入其父节点的锦标赛。根