Impulsionado pelo Prêmio de Proximidade da comunidade Ethereum e pelo que ficou conhecido não oficialmente como “Proxember”uma série de artigos espetaculares vem cutucando o “até a capacidade” conjectura de decodificação de lista do célebre Lacunas de proximidade para códigos Reed-Salomon. A primeira salva veio de Diamond-Angus, logo seguida pelo trabalho de Crites-Stewart, todos convergindo para a mesma mensagem: algo está terrivelmente errado com a crença folclórica de que os códigos Reed-Solomon podem ser decodificados em listas até (1-\rho).

Este post não tem como objetivo provar nada de novo. Seu único objetivo é fornecer uma imagem pequena e totalmente reproduzível exemplo numérico isso faz com que a teoria existente pareça concreta. No espírito da abordagem de Crites-Stewart, pego um código Reed-Solomon de brinquedo, escolho parâmetros que ficam estritamente entre o limite de interpolação trivial e a capacidade de decodificação de lista de Elias proveniente do limite clássico de Elias e mostro que o tamanho da lista já chega a dezenas de palavras-código. Seu trabalho oferece um tratamento mais construtivo e geral da explosão do tamanho da lista acima desse limite; aqui estou apenas instanciando o mesmo fenômeno em um pequeno exemplo do tamanho de uma tela que você pode reproduzir com algumas linhas de Python.

A conjectura de decodificação de lista “até a capacidade”

Antes de mergulhar nos números, vale a pena expor a conjectura que todos estão cutucando.

Trabalhamos com um código de comprimento Reed-Solomon (RS) ndimensão ksobre um campo finito \mathbb{F}_q. O avaliar é \rho = \frac{k}{n},
e cada palavra-código é a avaliação de um grau-<k polinômio em algum conjunto de avaliação de tamanho n.

Um código C \subseteq \mathbb{F}_q^n é dito ser (\delta, L)-lista decodificável se por todo palavra recebida e \in \mathbb{F}_q^na bola de Hamming de raio \deltan em volta sim contém no máximo eu palavras-código:

\bigl| \{ c \in C : \Delta(c, y) \le \delta n \} \bigr| \le L.

Aqui \delta é o tolerado fração de erroe eu é o tamanho da lista. A decodificação única clássica corresponde ao caso (L = 1).

O Conjectura de decodificação de lista “até a capacidade” (como aparece em Lacunas de proximidade para códigos Reed-Salomon) pode ser formulado informalmente da seguinte forma:

Para cada taxa 0 <\rho < 1 e cada \eta > 0cada código de taxa Reed-Solomon \rho é (\delta, \mathrm{poli}(1/\eta))-lista decodificável para todos

\delta \le 1 – \rho – \eta.

Em palavras:

  • Um código de taxa \rho tem “espaço” para uma fração 1-\rho de erros.
  • A conjectura afirma que os códigos RS podem ser eficientemente decodificados em lista a partir de quase tantos erros (até uma pequena folga \eta), com apenas um limitado polinomialmente tamanho da lista.
  • É por isso que as pessoas resumiram isso como “Os códigos RS são decodificáveis ​​em lista até a capacidade”, tratando implicitamente “capacidade” como o 1-\rho linha.

O que torna esta conjectura tão tentadora é que ela corresponde a uma heurística muito simples: se você compactar seus dados por um fator \rhoparece “moralmente correto” que você seja capaz de sobreviver até 1-\rho barulho. A diferença de Proxember é que, uma vez que você compara essa imagem folclórica com a Capacidade de decodificação de lista Elias (a curva \rho = 1 – H_q(\delta)), você descobre que essa conjectura de “capacidade máxima” é, na verdade, pedir demais e os tamanhos das listas são forçados a explodir.

O que Crites-Stewart faz na Seção 3.1

O ponto de partida em Crites-Stewart é o clássico teorema da capacidade de decodificação de lista de Elias (conforme apresentado, por exemplo, em Guruswami–Rudra–Sudão):

Deixar q \ge 2, 0 \le \delta < 1 - 1/qe deixe \eta > 0. Para todos os comprimentos de bloco suficientemente grandes n:

  1. Se \rho \le 1 – H_q(\delta) – \etaentão existe um (\delta, O(1/\eta))-list código decodificável.
  2. Se \rho \ge 1 – H_q(\delta) + \etaentão cada (\delta, L)-list código decodificável tem

    eu \ge q^{\Omega(\eta n)}.

Em particular, a decodificação de lista capacidade é a curva \rho = 1 – H_q(\delta)onde H_q(\delta) é o qfunção de entropia -ária.

A Seção 3.1 faz três coisas principais:

  1. Quantifica a lacuna entre \delta e H_q(\delta).
    Eles provam uma desigualdade simples, mas crucial

    \delta < H_q(\delta) \le \delta + \frac{1}{\log_2 q}

    para todos 0 < \delta \le 1 - 1/qe mostre que o limite superior é essencialmente restrito. Intuitivamente, isto diz: o custo de entropia de tolerar uma fração \delta de erros é um pouco maior do que \deltacom uma sobrecarga de no máximo 1/\log_2q.

  2. Use isto para descartar a imagem de decodificação de lista “até $1-\rho$”.
    Uma heurística muito comum é que um código de taxa \rho deve ser decodificável em lista até aproximadamente

    \delta \aproximadamente 1 – \rho

    erros de fração com listas pequenas – ou seja, a capacidade é tratada informalmente como a linha \delta = 1 – \rho. Crites–Stewart aponta que isso é incompatível com o teorema da capacidade de Elias, uma vez que você lembra que H_q(\delta) > \delta:

    • O verdadeiro limite da teoria da informação para listas pequenas é

      \rho \le 1 – H_q(\delta).

    • Se você tentar insistir na decodificação da lista até \delta \le 1 – \rho – \eta para alguns fixos \eta > 0então, na interessante gama de parâmetros, você inevitavelmente acaba na região

      \rho \ge 1 – H_q(\delta) + \eta’,

      onde Elias garante listas exponencialmente grandes.

    Em outras palavras, o folclore “Reed-Solomon up-to-capacity” (interpretando “capacidade” como 1-\rho) está simplesmente solicitando parâmetros que estão acima da curva real de capacidade de decodificação de lista.

Em resumo, a Seção 3.1 não introduzir um novo teorema de capacidade; em vez disso, ele:

  • lembra o clássico limite de capacidade de decodificação de lista de Elias,
  • deixa explícito como este limite contradiz a visão “até $1-\rho$”,

O exemplo do brinquedo numérico mais adiante na postagem é apenas uma instanciação concreta desse mesmo fenômeno em parâmetros microscópicos, seguindo o espírito desta discussão da Seção 3.1 (o tratamento de Crites-Stewart é, obviamente, mais geral e mais construtivo).

O exemplo numérico: explosão trivial vs explosão de Elias

Vejamos agora o que acontece quando inserimos parâmetros concretos em um pequeno código Reed-Solomon e executamos a decodificação de lista de força bruta. O objetivo desta seção é separar duas razões diferentes para ampliação do tamanho da lista:

  1. um trivial razão baseada em dimensão (quando permitimos tantos erros que temos poucas restrições), e
  2. o Elias/capacidade razão (onde o cálculo da entropia força listas grandes mesmo que ainda tenhamos restrições “suficientes”).

Nosso experimento ficará estritamente entre estes dois limites:


Configurar

Trabalhamos com:

Para cada tentativa do experimento nós:

  1. Amostra de um grau aleatório < k polinômio sobre \mathbb{F}_{13}.
  2. Avalie-o em uma ordem multiplicativa-12 domínio para obter um comprimento12 Palavra-código RS c.
  3. Corrupto exatamente 6 coordenadas de c (escolhido uniformemente aleatoriamente e alterado para erros aleatórios diferentes de zero), obtendo a palavra recebida sim.
  4. Execute um decodificador de lista de força bruta que retorne todos Palavras-código RS c’ dentro da distância de Hamming no máximo 6 de sim.

O decodificador de lista calcula internamente o limite de acordo

s = \lceil (1 – \delta) n \rceil = \lceil 0,5 \cdot 12 \rceil = 6,

e mantém todas as palavras-código de acordo com sim em pelo menos 6 posições, ou seja, à distância \le 6.


Um desvio: o limiar de explosão trivial

Há uma razão muito simples de “contagem de dimensões” pela qual os tamanhos das listas podem explodir para os códigos Reed-Solomon. Se permitirmos tantos erros que o número de acordos (1-\delta)n é no máximo kentão temos no máximo k restrições em um diploma polinomial.

Formalmente, o regime de explosão trivial é

(1-\delta)n \le k \Longleftrightarrow\quad \delta \ge 1 – \rho \quad\Longleftrightarrow\quad t = \delta n \ge n – k.

Neste regime:

  • você pode escolher (1-\delta)n coordenadas e valores,
  • há sempre algum grau polinômio interpolando-os,
  • então você espera um grande número de palavras-código na bola de decodificação quase de graça, apenas da álgebra linear.

Para nosso pequeno código:

  • n = 12,
  • k = 5,
  • então o limiar de explosão trivial é

    t_{\text{triv}} = n – k = 12 – 5 = 7 \quad\text{erros},

    equivalentemente

    \delta_{\text{triv}} = \frac{7}{12} \aproximadamente 0,5833.

Se estivéssemos decodificando de 7 ou mais erros, qualquer explosão de lista que observamos poderia ser razoavelmente atribuída a esse mecanismo trivial.


Onde fica nosso experimento

Em nosso experimento, decodificamos de

\delta = 0,5 \quad\Longleftrightarrow\quad t = \delta n = 6.

Nós temos:

Então nós estamos estritamente abaixo o limite trivial:

  • (1-\delta)n > k,
  • equivalentemente t = 6 < t_{\text{triv}} = 7.

Isso significa:

Qualquer ampliação do tamanho de uma lista que vemos em t = 6 não pode ser explicado pelo simples “temos no máximo k restrições, então a interpolação fornece o argumento de muitas palavras-código.
Se as listas explodem aqui, deve ser por uma razão mais sutil, de teoria da informação.

Essa “razão mais sutil” é exatamente o limite da capacidade de decodificação de listas de Elias.


Acima do limite de capacidade do Elias

Para tamanho do alfabeto q = 13 e fração de erro delta = 0,5calculamos o qentropia -ária

H_{13}(0,5) \aproximadamente 0,754635,

então o capacidade de decodificação de lista nisso \delta é

1 – H_{13}(0,5) \aproximadamente 0,245365.

Nossa taxa é

\rho = \frac{5}{12} \aproximadamente 0,416667,

então nós somos bem acima capacidade:

\rho – (1 – H_q(\delta)) \aproximadamente 0,416667 – 0,245365 \aproximadamente 0,171302 > 0.

Um refinamento padrão do argumento de contagem no estilo de Elias fornece um limite inferior claro para o média tamanho da lista em todos os centros e \in \mathbb{F}_{13}^{12}:

\mathbb{E}_y\bigl(|B(y, \delta n) \cap C|\bigr) \;\ge\; \frac{q^{n(\rho + H_q(\delta) – 1)}}{\sqrt{8 n \delta (1-\delta)}}.

Para nossos parâmetros:

  • n(\rho + H_q(\delta) – 1) \aproximadamente 12 \cdot 0,171302 \aproximadamente 2,0556então

    q^{n(\rho + H_q(\delta) – 1)} = 13^{2,0556} \aproximadamente 195,

  • e

    \sqrt{8 n \delta (1-\delta)} = \sqrt{8 \cdot 12 \cdot 0,5 \cdot 0,5} = \sqrt{24} \approx 4,90.

Juntando isso,

\mathbb{E}_y\bigl(|B(y, 6) \cap C|\bigr) \;\gtrsim\; \frac{195}{4,9} \aproximadamente 40.

Então, em média, uma bola de Hamming de raio 6 em torno de uma palavra aleatória sim contém pelo menos cerca de 40 Palavras-código Reed-Solomon nesses parâmetros – e isso já é antes atingimos o limite trivial t_{\text{triv}} = 7 erros.

Em nosso experimento real, onde apenas amostramos sim da forma “palavra-código RS + 6 erros aleatórios”, observamos tamanhos de lista entre 40 e 55com uma média de cerca 48. Isso fica logo acima do limite inferior teórico de \aproximadamente 40exatamente como seria de esperar: estamos vendo uma manifestação concreta e de tamanho finito da explosão do tamanho da lista em um regime onde o simples (1-\delta)n \le k argumento não se aplica.


O que o experimento produz

Mais de 20 tentativas independentes do experimento (palavra-código aleatória, erro aleatório de 6 esparsos, decodificação de lista de força bruta com raio 6), obtemos:

Field size q = 13
n = 12, k = 5, rate rho = 0.416667
delta = 0.500000
(1 - delta)*n = 6.000  vs  k = 5
  -> (1 - delta)*n > k  (OUT of the trivial interpolation regime)

H_q(delta) ≈ 0.754635
1 - H_q(delta) ≈ 0.245365  (capacity rate at this delta)
rho - (1 - H_q(delta)) ≈ 0.171302  (above capacity)
eta = rho + H_q(delta) - 1 ≈ 0.171302

Refined Elias-style counting bound:
  E_y(|B(y, δn) ∩ C|) ≥ q^{n(ρ + H_q(δ) - 1)} / sqrt(8 n δ (1-δ))
For these parameters that is ≥ 194.91 / 4.90 ≈ 39.79

Random corrupted codewords and their list sizes:
  trial  0: s = 6, distance ≤ 6, list size = 47
  trial  1: s = 6, distance ≤ 6, list size = 48
  trial  2: s = 6, distance ≤ 6, list size = 45
  trial  3: s = 6, distance ≤ 6, list size = 49
  trial  4: s = 6, distance ≤ 6, list size = 53
  trial  5: s = 6, distance ≤ 6, list size = 46
  trial  6: s = 6, distance ≤ 6, list size = 42
  trial  7: s = 6, distance ≤ 6, list size = 47
  trial  8: s = 6, distance ≤ 6, list size = 50
  trial  9: s = 6, distance ≤ 6, list size = 53
  trial 10: s = 6, distance ≤ 6, list size = 50
  trial 11: s = 6, distance ≤ 6, list size = 47
  trial 12: s = 6, distance ≤ 6, list size = 52
  trial 13: s = 6, distance ≤ 6, list size = 43
  trial 14: s = 6, distance ≤ 6, list size = 46
  trial 15: s = 6, distance ≤ 6, list size = 49
  trial 16: s = 6, distance ≤ 6, list size = 48
  trial 17: s = 6, distance ≤ 6, list size = 49
  trial 18: s = 6, distance ≤ 6, list size = 55
  trial 19: s = 6, distance ≤ 6, list size = 48

Observed list sizes: (47, 48, 45, 49, 53, 46, 42, 47, 50, 53, 50, 47, 52, 43, 46, 49, 48, 49, 55, 48)
max list size = 55
avg list size = 48.35

Conclusão

Este pequeno exemplo de brinquedo RS é apenas uma verificação de sanidade: nos parâmetros sentados entre Além do limiar de interpolação trivial e do limite de Elias, uma única bola de Hamming já contém dezenas de palavras-código, exatamente como prevê a análise de Elias e em tensão com qualquer “até 1-\rho ”folclore.

O código que usei está aqui:

https://github.com/asanso/ca/blob/50b6cfb4c3986a7695aa91401963b0ccf60eb986/elias-bound-toy.py

Se você quiser se juntar ao exército numérico, ajuste os parâmetros, execute experimentos maiores e veja se seus pontos de dados apoiar a imagem “nenhuma explosão abaixo de Elias” ou empurrar para trás contra isso.

Agradecimentos

Estou grato a Giacomo Fenzi por muitas discussões úteis, depuração paciente de meus experimentos com brinquedos e por geralmente me pressionar a virar “espere, esta lista está realmente explodindo?” em algo reproduzível e (espero) legível, e para George Kadianakis, Alistair Stewart e Benedito Wagner pela revisão cuidadosa e sugestões úteis.

Fontesethresear

By victor

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *