流式处理与单次查询空间复杂度解析
1. 预备知识
1.1 符号表示
- 用 $[n]$ 表示所有不超过 $n$ 的正整数集合,$[a, b]$ 表示所有至少为 $a$ 且至多为 $b$ 的整数集合。
- 对于任意索引集合 $I \subseteq [n]$,$x|I$ 表示 $x$ 限制在 $I$ 中索引的子序列。例如,若 $I = {i_1, i_2, \ldots, i_t}$ 且 $1 \leq i_1 < i_2 < \cdots < i_t \leq n$,则 $x|I = x_{i_1}x_{i_2} \cdots x_{i_t}$。
1.2 分支程序
一个 $R$ 路分支程序由一个出度为 $R = R(n)$ 的有向无环根图组成,每个非汇点节点由 ${1, 2, \ldots, n}$ 中的一个索引标记,每个节点的 $R$ 条出边分别标记为 $1, \ldots, R$,边也可由某个输出域的一系列值标记。分支程序的大小是其节点的数量。
计算过程如下:
1. 计算从分支程序的根节点开始。
2. 遇到每个非汇点节点 $v$ 时,计算沿着标记为 $x_i$ 值的出边进行,其中 $i$ 是标记节点 $v$ 的索引(即在 $v$ 处查询变量 $x_i$)。
3. 当到达汇点节点时,计算终止。
分支程序使用的时间是任何输入所遵循的最长计算路径的长度,使用的空间是其大小的以 2 为底的对数。
如果底层图的节点被分配了层级,使得根节点层级为 0,且层级为 $l$ 的节点的出边仅指向层级为 $l + 1$
超级会员免费看
订阅专栏 解锁全文
982

被折叠的 条评论
为什么被折叠?



