Eu estava lendo sobre algoritmos de compactação de dados e o limite teórico para compactação de dados. Recentemente, encontrei um método de compressão chamado "Combinatorial Entropy Encoding", a idéia principal desse método é codificar o arquivo como os caracteres apresentados no arquivo, suas frequências e o índice de permutação de caracteres representado pelo arquivo.
Estes documentos podem ajudar a explicar este método:
https://arxiv.org/pdf/1703.08127
http://www-video.eecs.berkeley.edu/papers/vdai/dcc2003.pdf
https://www.thinkmind.org/download.php?articleid=ctrq_2014_2_10_70019
No entanto, no primeiro documento, eu li que, usando esse método, eles podiam compactar algum texto para menos do que o limite de Shannon (eles não consideravam o espaço necessário para salvar a frequência dos caracteres e o espaço necessário para salvar a meta dados do arquivo). Pensei nisso e descobri que esse método não seria muito eficiente para arquivos muito pequenos, mas, por outro lado, pode funcionar bem com arquivos grandes. Na verdade, eu não entendo muito bem esse algoritmo ou o limite de Shannon, apenas sei que é a soma da probabilidade de cada caractere multiplicada pelo do inverso da probabilidade.
Então, eu tenho algumas perguntas:
Esse método de compactação realmente comprime os arquivos para menores que o limite de Shannon?
Existe algum algoritmo de compactação que compacta arquivos para menos do que o limite de Shannon (a resposta a esta pergunta, até onde eu sei, não é)?
Um método de compactação que comprime arquivos para um tamanho menor que o limite de Shannon já existe?
Se a codificação combinatória realmente comprime arquivos além do limite de Shannon, não é possível comprimir o arquivo repetidamente até atingirmos o tamanho desejado?