While there are software systems that simplify trajectory streams on the fly, few curve simplification algorithms with quality guarantees fit the streaming requirements. We present streaming algorithms for two such problems under the Fr\'{e}chet distance $d_F$ in $\mathbb{R}^d$ for some constant $d \geq 2$. Consider a polygonal curve $\tau$ in $\mathbb{R}^d$ in a stream. We present a streaming algorithm that, for any $\varepsilon\in (0,1)$ and $\delta > 0$, produces a curve $\sigma$ such that $d_F(\sigma,\tau[v_1,v_i])\le (1+\varepsilon)\delta$ and $|\sigma|\le 2\,\mathrm{opt}-2$, where $\tau[v_1,v_i]$ is the prefix in the stream so far, and $\mathrm{opt} = \min\{|\sigma'|: d_F(\sigma',\tau[v_1,v_i])\le \delta\}$. Let $\alpha = 2(d-1){\lfloor d/2 \rfloor}^2 + d$. The working storage is $O(\varepsilon^{-\alpha})$. Each vertex is processed in $O(\varepsilon^{-\alpha}\log\frac{1}{\varepsilon})$ time for $d \in \{2,3\}$ and $O(\varepsilon^{-\alpha})$ time for $d \geq 4$ . Thus, the whole $\tau$ can be simplified in $O(\varepsilon^{-\alpha}|\tau|\log\frac{1}{\varepsilon})$ time. Ignoring polynomial factors in $1/\varepsilon$, this running time is a factor $|\tau|$ faster than the best static algorithm that offers the same guarantees. We present another streaming algorithm that, for any integer $k \geq 2$ and any $\varepsilon \in (0,\frac{1}{17})$, maintains a curve $\sigma$ such that $|\sigma| \leq 2k-2$ and $d_F(\sigma,\tau[v_1,v_i])\le (1+\varepsilon) \cdot \min\{d_F(\sigma',\tau[v_1,v_i]): |\sigma'| \leq k\}$, where $\tau[v_1,v_i]$ is the prefix in the stream so far. The working storage is $O((k\varepsilon^{-1}+\varepsilon^{-(\alpha+1)})\log \frac{1}{\varepsilon})$. Each vertex is processed in $O(k\varepsilon^{-(\alpha+1)}\log^2\frac{1}{\varepsilon})$ time for $d \in \{2,3\}$ and $O(k\varepsilon^{-(\alpha+1)}\log\frac{1}{\varepsilon})$ time for $d \geq 4$.
翻译:尽管存在能够实时简化轨迹流的软件系统,但具有质量保证且满足流处理要求的曲线简化算法却寥寥无几。本文针对$\mathbb{R}^d$空间(其中$d \geq 2$为常数)中基于Fr\'{e}chet距离$d_F$的两类问题提出了流式算法。考虑$\mathbb{R}^d$空间中以流形式输入的折线曲线$\tau$。我们提出一种流式算法,对于任意$\varepsilon\in (0,1)$和$\delta > 0$,该算法能生成满足$d_F(\sigma,\tau[v_1,v_i])\le (1+\varepsilon)\delta$且$|\sigma|\le 2\,\mathrm{opt}-2$的曲线$\sigma$,其中$\tau[v_1,v_i]$表示当前已处理的流前缀,而$\mathrm{opt} = \min\{|\sigma'|: d_F(\sigma',\tau[v_1,v_i])\le \delta\}$。令$\alpha = 2(d-1){\lfloor d/2 \rfloor}^2 + d$,算法的工作存储空间为$O(\varepsilon^{-\alpha})$。每个顶点的处理时间在$d \in \{2,3\}$时为$O(\varepsilon^{-\alpha}\log\frac{1}{\varepsilon})$,在$d \geq 4$时为$O(\varepsilon^{-\alpha})$。因此,整个$\tau$的简化可在$O(\varepsilon^{-\alpha}|\tau|\log\frac{1}{\varepsilon})$时间内完成。忽略$1/\varepsilon$的多项式因子,该运行时间比具有相同保证的最佳静态算法快$|\tau|$倍。我们还提出另一种流式算法,对于任意整数$k \geq 2$和$\varepsilon \in (0,\frac{1}{17})$,该算法能维护满足$|\sigma| \leq 2k-2$且$d_F(\sigma,\tau[v_1,v_i])\le (1+\varepsilon) \cdot \min\{d_F(\sigma',\tau[v_1,v_i]): |\sigma'| \leq k\}$的曲线$\sigma$,其中$\tau[v_1,v_i]$表示当前流前缀。其工作存储空间为$O((k\varepsilon^{-1}+\varepsilon^{-(\alpha+1)})\log \frac{1}{\varepsilon})$。每个顶点的处理时间在$d \in \{2,3\}$时为$O(k\varepsilon^{-(\alpha+1)}\log^2\frac{1}{\varepsilon})$,在$d \geq 4$时为$O(k\varepsilon^{-(\alpha+1)}\log\frac{1}{\varepsilon})$。