38、图和几何搜索的认证数据结构

图和几何搜索的认证数据结构

在当今的数据处理和搜索领域,数据的真实性和完整性至关重要。本文将介绍用于图和几何搜索的认证数据结构,涵盖认证技术、路径属性、图搜索和几何搜索等方面的内容。

1. 认证技术概述

认证技术基于一种通用方案。源端和目录存储表示数据集 $S$ 的相同数据结构副本,并在 $S$ 上维护相同的哈希方案。源端定期对 $S$ 的摘要和时间戳进行签名,并将签名后的时间戳摘要发送到目录。当 $S$ 发生更新时,更新内容会与新的签名时间戳摘要一起发送到目录。

用户查询时,目录会返回以下信息:
1. $S$ 的签名时间戳摘要。
2. 查询的答案。
3. 由哈希方案中的少量标签组成的证明,用于重新计算摘要。

用户通过重新计算摘要、检查其是否与签名摘要相等以及验证摘要的签名来验证答案,这个过程所花费的总时间称为答案验证时间。

2. 路径属性和路径哈希累加器

为了处理序列 $S$ 上的各种查询,引入了路径的抽象概念。路径是由一个或多个节点组成的有序序列,每个节点通过有向边与其后继节点相连。

路径通过节点属性和节点属性集合(节点属性)存储数据集。节点属性 $N(v)$ 可以取任意值,占用 $O(1)$ 存储空间;节点属性 $N(v)$ 是节点属性的序列。类似地,路径属性和路径属性是节点属性和节点属性概念的扩展。

路径属性 $P$ 满足拼接准则,即如果 $p = p’|p’‘$ 是路径 $p’$ 和 $p’‘$ 的拼接,则 $P(p) = F(P(p’), P(p’‘))$,其中 $F$ 是可以在 $O(1)$ 时间内计算的拼接函数。

考虑以下需要认证的操作:
- property(subpath ¯p(v, u)) :报告路径 $p$ 的子路径 $¯p(v, u)$ 的路径属性 $P$ 的值。
- property(node v) :报告节点 $v$ 的节点属性 $N$ 的值。
- locate(path p, path selection function σ, argument q) :找到由路径选择函数 $\sigma$ 表示的节点选择查询返回的路径 $p$ 中的节点 $v$。
- subpath(path p, path advance function α, argument q) :找到由路径推进函数 $\alpha$ 表示的路径选择查询返回的路径 $p$ 的子路径。

使用平衡二叉树 $T(p)$ 表示路径 $p$,叶子节点表示路径 $p$ 的节点,内部节点表示与子树中的叶子节点相关联的子路径。每个叶子节点存储相应的节点属性,每个非叶子节点存储相应的路径属性。

路径哈希累加器是一种对路径 $p$ 的节点和路径属性进行哈希的方案。通过有向无环图 $G$ 和抗碰撞哈希函数 $h$ 计算每个节点的标签 $L$:
- 如果 $u$ 是 $G$ 的源顶点(即 $T(p)$ 的叶子节点),则 $L(u) = h(N(pred(u)), N(u), N(succ(u)))$。
- 如果 $w$ 是非源顶点,且 $(z_1, w)$ 和 $(z_2, w)$ 是 $G$ 的边,则 $L(w) = h(P(w), L(z_1), L(z_2))$。

路径 $p$ 的路径哈希累加是 $G$ 的汇点 $r$(即 $T(p)$ 的根节点)的标签 $L(r)$。

以下是相关操作的性能总结:
| 操作 | 时间复杂度 |
| ---- | ---- |
| 查询操作(property、locate、subpath) | $O(\log n)$ |
| 更新认证信息大小 | $O(1)$ |
| 答案认证信息大小和答案验证时间 | $O(\log n)$ |

3. 认证图搜索

为了支持森林中的路径属性查询,开发了一种高效且完全动态的认证数据结构。使用路径哈希累加器认证方案对路径集合 $\Pi$ 进行操作,这些路径通过路径拆分和拼接的更新操作进行维护。

路径集合 $\Pi$ 通过有向路径树 $T$ 进行组织,每个节点对应一条路径 $p \in \Pi$。相邻路径通常相互连接并共享信息,这通过定义合适的节点属性和属性来实现。

动态树 $T$ 的边分为实线边和虚线边,内部节点最多有一个通过实线边连接的子节点。这种边分类将树的节点划分为通过虚线边连接的实线路径。

对于森林 $F$ 中的每棵树,每个树节点存储一个节点属性。使用前面介绍的框架,$F$ 中的任何路径都与某个路径属性 $P$ 相关联,假设 $P$ 满足拼接准则。

数据结构的实现步骤如下:
1. 将森林 $F$ 中的每棵树 $T_i$ 的所有实线和虚线路径集合 $\Pi(T_i)$ 与有向路径树 $T(i)$ 关联。
- 每个路径 $p$ 对应 $T(i)$ 的一个顶点 $\mu_p$。
- 如果 $p$ 是实线路径,对于 $p$ 中只有一个子节点 $u$ 且 $u$ 属于另一条路径 $p’$ 的节点 $v$,添加有向边 $(\mu_{p’}, \mu_p)$。
- 如果 $p’ = d(v)$ 是虚线路径,添加相应的有向边。
2. 添加一个新的根顶点 $\omega$ 连接所有 $T(i)$ 的根节点,得到新的树 $F$。
3. 每个路径(根路径、实线路径或虚线路径)通过路径哈希累加器认证方案实现,累加器由偏置二叉树实现。
4. 定义路径属性 $P$,并将路径属性包含在节点属性中。

以下是相关操作的性能总结:
| 操作 | 时间复杂度 |
| ---- | ---- |
| destroyTree newTree | $O(1)$ |
| link cut | $O(\log n)$ |
| property | $O(\log n)$ |
| 答案认证信息大小( property 操作) | $O(\log n)$ |
| 答案验证时间( property 操作) | $O(\log n)$ |

通过上述数据结构,可以回答动态森林中的各种查询,如路径查询、连通性查询和类型查询等。

4. 认证几何搜索

主要成果是对分数级联技术进行认证,该技术用于解决迭代搜索问题。

假设有一个有序的全域 $U$ 和 $k$ 个目录的集合 $C = {C_1, C_2, …, C_k}$,每个目录 $C_i$ 是从 $U$ 中选择的 $n_i$ 个元素的有序集合。对于元素 $x \in U$,在 $C_i$ 中的后继是 $C_i$ 中大于或等于 $x$ 的最小元素。

分数级联技术通过将目录视为连通图中的节点,并对其进行预处理,使得相邻目录对相关联。可以在某个目录中进行二分搜索来定位 $x$,然后通过底层图在其他目录中定位 $x$,每个节点转换花费 $O(1)$ 时间。

将集合 $C$ 与图关联:
- 设 $G$ 是一个单源有向无环图,每个节点的入度和出度都有界。每个节点 $v$ 与目录 $C_v$ 关联,$G$ 称为目录图。
- 考虑 $G$ 的子图 $Q$,包含源节点 $s$ 且不包含其他入度为零的节点。迭代搜索问题可以表述为:给定元素 $x \in U$ 和子图 $Q$,在 $Q$ 的每个顶点 $v$ 的目录 $C_v$ 中定位 $x$。

分数级联数据结构的工作方式如下:
1. 每个目录 $C_v$ 通过存储额外元素扩展为目录 $A_v$,$A_v$ 中 $C_v$ 的元素称为固有元素,额外元素称为非固有元素。
2. 相邻节点的扩展目录通过桥连接,每个非固有元素属于恰好一个桥。
3. 相邻桥对定义一个块 $B$,块的大小 $|B|$ 满足 $\alpha d \leq |B| \leq \beta d$,其中 $\alpha$ 和 $\beta$ 是常数。
4. 每个元素 $z \in A_v$ 与其在原始目录 $C_v$ 中的后继相关联。

哈希方案采用两级哈希结构:
1. 块内哈希 :对于 $G$ 的每条边 $(u, v)$ 和定义块 $B$ 的相邻桥 $(y’, z’)$ 和 $(y, z)$,定义 $P$ 为 $B$ 中存在于 $A_v$ 的元素序列加上相应桥中位于 $A_v$ 的非固有元素。使用路径哈希累加器方案计算 $P$ 的摘要 $D(P)$。
2. 块间哈希 :通过在块上定义的有向无环图 $H$ 实现。$H$ 的节点是数据结构中的块,根据块之间的元素共享关系添加有向边。

查询时,用户可以根据答案认证信息验证答案的正确性。答案认证信息包括:
1. 对于 $Q$ 的每个节点 $v$,$A_v$ 的目标元素 $z_v$ 和从 $z_v$ 到 $B_v$ 哈希侧的路径哈希累加的验证序列。
2. 对于 $T$ 中不是叶子的每个目标块 $B_v$,从 $T$ 中 $B_v$ 的每个子节点到路径哈希累加 $L(B_v)$ 的验证序列。

以下是相关性能总结:
| 操作 | 时间复杂度 |
| ---- | ---- |
| 构建认证分数级联数据结构 $D$ | $O(n)$ |
| 定位元素 $x$ | $O(\log n + k)$ |
| 答案认证信息大小 | $O(\log n + k)$ |
| 答案验证时间 | $O(\log n + k)$ |

通过上述认证数据结构,可以设计用于各种二维几何搜索问题的认证数据结构,如线相交查询、射线投射和点定位查询、正交范围搜索等。

综上所述,这些认证数据结构为图和几何搜索提供了高效、安全的解决方案,确保了数据的真实性和完整性,同时在查询性能和验证时间方面具有良好的表现。

图和几何搜索的认证数据结构(续)

4. 认证几何搜索(续)

在前面介绍了认证几何搜索中分数级联技术的基本原理、数据结构以及哈希方案等内容,下面进一步深入探讨其在解决具体问题时的细节和优势。

4.1 分数级联技术的查询流程

当进行迭代搜索时,给定元素 $x \in U$ 和查询图 $Q$,具体的查询流程如下:
1. 初始定位 :在时间 $O(\log n)$ 内,使用二分搜索在扩充后的根目录 $A_s$ 中定位元素 $x$。因为查询图 $Q$ 总是包含源节点 $s$,所以从这里开始搜索。
2. 遍历查询图 :按照查询图 $Q$ 中节点的拓扑顺序遍历,每个节点只访问一次。从一个节点 $u$ 到其相邻节点 $v$ 的步骤如下:
- 设 $x_u$ 是 $x$ 在 $A_u$ 中的后继。从 $x_u$ 开始,在 $A_u$ 中向较大元素方向遍历,直到找到连接到 $A_v$ 的桥 $(y, z)$。
- 沿着桥 $(y, z)$ 进入 $A_v$,然后在 $A_v$ 中向较小元素方向遍历,直到在 $A_v$ 中定位到 $x$。

整个迭代搜索问题可以在 $O(\log n + k)$ 时间内解决,其中 $k$ 是查询图 $Q$ 的顶点数,$n$ 是所有目录中固有元素的总数。

4.2 答案验证过程

用户在接收到答案后,需要验证答案的正确性。验证过程基于答案认证信息,具体步骤如下:
1. 检查一致性 :对于查询图 $Q$ 中的每个节点 $v$,根据答案认证信息,用户知道目标元素 $z_v$ 和相应元素 $y_v$($y_v < z_v$ 且 $y_v$ 和 $z_v$ 是 $A_v$ 中的连续元素)。检查答案中声称的 $x$ 在 $C_v$ 中的后继 $a_v$ 与 $z_v$ 是否满足以下两个可能的证明条件:
- 若 $y \leq x < z$,$y$ 和 $z$ 是 $A_v$ 中的连续元素,且 $y = x$ 且 $y’ = proper(y)$ 在 $A_v$ 中,则证明 $x$ 在 $C_v$ 中的后继是 $y’$。
- 若 $y \leq x < z$,$y$ 和 $z$ 是 $A_v$ 中的连续元素,且 $y < x$ 且 $z’ = proper(z)$ 在 $A_v$ 中,则证明 $x$ 在 $C_v$ 中的后继是 $z’$。
如果存在至少一个不一致的情况,用户拒绝该答案。
2. 验证签名摘要 :如果一致性检查通过,用户需要验证数据结构的签名摘要 $D(D)$。基于哈希函数的抗碰撞性,若摘要验证通过,则用户可以证明答案是正确的。

以下是答案验证过程的流程图:

graph TD;
    A[接收答案和认证信息] --> B[检查一致性];
    B -->|不一致| C[拒绝答案];
    B -->|一致| D[验证签名摘要];
    D -->|验证失败| C;
    D -->|验证成功| E[接受答案];
4.3 应用于二维几何搜索问题

分数级联技术为设计各种二维几何搜索问题的认证数据结构提供了基础。以下是一些具体的二维几何搜索问题及其对应的性能:
| 问题类型 | 构造时间 $C(n)$ | 存储使用 $S(n)$ | 查询时间 $Q(n, k)$ | 答案认证信息大小和验证时间 $A(n, k)$ |
| ---- | ---- | ---- | ---- | ---- |
| 线相交查询 | $O(n \log n)$ | $O(n)$ | $O((k + 1) \log \frac{n}{k + 1})$ | $O((k + 1) \log \frac{n}{k + 1})$ |
| 射线投射和点定位查询 | $O(n \log n)$ | $O(n)$ | $O(\log n)$ | $O(\log n)$ |
| 正交范围搜索、正交点包围和正交相交查询 | $O(n \log n)$ | $O(n)$ | $O(\log n + k)$ | $O(\log n + k)$ |

这里,$n$ 是问题的输入大小,$k$ 是查询的输出大小。这些认证数据结构在不同的二维几何搜索问题中都能提供高效的查询和验证性能。

5. 总结与展望

本文介绍的认证数据结构在图和几何搜索领域具有重要的意义。通过路径哈希累加器和分数级联技术等方法,实现了对数据的有效认证,确保了查询结果的真实性和完整性。

在图搜索方面,针对森林中的路径属性查询,设计了完全动态的认证数据结构,支持多种操作,如 destroyTree newTree link cut property 等,并且在操作时间和认证信息大小方面都有良好的表现。

在几何搜索方面,对分数级联技术进行认证,解决了迭代搜索问题,并为多种二维几何搜索问题提供了高效的认证数据结构。

未来,随着数据量的不断增加和搜索需求的日益复杂,这些认证数据结构可以进一步优化和扩展。例如,可以探索更高效的哈希函数和数据组织方式,以提高查询性能和验证效率。同时,也可以将这些技术应用到更多的领域,如三维几何搜索、动态图搜索等,为更广泛的搜索问题提供解决方案。

总之,这些认证数据结构为图和几何搜索提供了坚实的基础,有望在未来的研究和应用中发挥更大的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值