> levenshtein | recursivo | ideal <

// Codificação Levenshtein - código universal recursivo com optimalidade assintótica

0 caracteres
0 caracteres

>> recursos

[RECURSIVE]

Estrutura recursiva

Codifica recursivamente o comprimento do comprimento até chegar a 0.

[OPTIMAL]

Otimizado de forma assintótica

Aproxima-se do mínimo teórico para inteiros grandes.

[UNIVERSAL]

Código universal

Funciona para qualquer inteiro não negativo sem parâmetros extras.

>> informações técnicas

Como funciona a codificação Levenshtein

A codificação Levenshtein (também chamada de código Levenstein ou L*) codifica recursivamente o comprimento em bits de um número. Para um inteiro n com comprimento binário N: codifica-se recursivamente C(N-1), adiciona-se '1' e em seguida os bits de n sem o primeiro bit 1. A recursão termina em 0. Isso produz códigos assintoticamente ideais.

Processo de codificação

0 → 0
1 → 10 (C(0) + 1 + '')
2 → 110 (C(1) + 1 + '0')
3 → 111 (C(1) + 1 + '1')
4 → 11000 (C(2) + 1 + '00')
5 → 11001 (C(2) + 1 + '01')

Estrutura recursiva:
C(0) = '0'
C(1) = C(0) + 1 = '01' → '1'
C(2) = C(1) + 1 + '0' = '110'
C(3) = C(1) + 1 + '1' = '111'

Por que usar a codificação Levenshtein

  • Optimalidade assintótica
  • Nenhuma suposição sobre a distribuição
  • Importância teórica na teoria da informação
  • Código universal para inteiros
  • Lida muito bem com inteiros muito grandes

>> perguntas frequentes

O que é a codificação Levenshtein?

A codificação Levenshtein (não confundir com a distância de Levenshtein) é um código universal que codifica recursivamente o comprimento dos inteiros. Desenvolvido por Vladimir Levenshtein, é assintoticamente ideal para inteiros grandes.

Como funciona a recursão aqui?

O código codifica recursivamente o comprimento em bits menos um. Para codificar n com N bits, primeiro codificamos (N-1), depois adicionamos '1' e, em seguida, os últimos (N-1) bits de n. A recursão termina em 0, que é codificado como '0'.

Levenshtein vs códigos de Elias?

A codificação Levenshtein é assintoticamente ideal como Elias Omega, mas usa uma estrutura recursiva diferente. É mais complexa que Elias Gamma/Delta, mas alcança melhor compressão para inteiros muito grandes.

Onde é utilizada?

A codificação Levenshtein é principalmente de interesse teórico em teoria da informação e complexidade de Kolmogorov. Raramente é usada na prática, mas demonstra princípios importantes de codificação universal ótima.