In the setting of error correcting codes, Alice wants to send a message $x \in \{0,1\}^n$ to Bob via an encoding $\text{enc}(x)$ that is resilient to error. In this work, we investigate the scenario where Bob is a low space decoder. More precisely, he receives Alice's encoding $\text{enc}(x)$ bit-by-bit and desires to compute some function $f(x)$ in low space. A generic error-correcting code does not accomplish this because decoding is a very global process and requires at least linear space. Locally decodable codes partially solve this problem as they allow Bob to learn a given bit of $x$ in low space, but not compute a generic function $f$. Our main result is an encoding and decoding procedure where Bob is still able to compute any such function $f$ in low space when a constant fraction of the stream is corrupted. More precisely, we describe an encoding function $\text{enc}(x)$ of length $\text{poly}(n)$ so that for any decoder (streaming algorithm) $A$ that on input $x$ computes $f(x)$ in space $s$, there is an explicit decoder $B$ that computes $f(x)$ in space $s \cdot \text{polylog}(n)$ as long as there were not more than $\frac14 - \varepsilon$ fraction of (adversarial) errors in the input stream $\text{enc}(x)$.
翻译:在纠错码的设定中,Alice希望通过一个对错误具有鲁棒性的编码enc(x)将消息x∈{0,1}^n发送给Bob。在本工作中,我们研究Bob作为低空间解码器的场景。更精确地说,他逐比特接收Alice的编码enc(x),并期望在低空间下计算某个函数f(x)。通用的纠错码无法实现这一点,因为解码是一个全局性很强的过程,至少需要线性空间。局部可解码码部分解决了这个问题,它们允许Bob在低空间下学习x的给定比特,但无法计算通用函数f。我们的主要成果是一种编码和解码过程,即使流中有恒定比例的损坏,Bob仍能在低空间下计算任何此类函数f。更精确地说,我们描述了一个长度为poly(n)的编码函数enc(x),使得对于任何在输入x上以空间s计算f(x)的解码器(流算法)A,存在一个显式解码器B,只要输入流enc(x)中(对抗性)错误的比例不超过1/4 - ε,它就能以s·polylog(n)的空间计算f(x)。