Tipo de compactação que pode ser pesquisado


7

Existe QUALQUER tipo de compactação que possa compactar um arquivo e esse arquivo compactado pode ser pesquisado sem descompactar o arquivo?


3
Você pode descompactar rapidamente para pesquisar. Fora isso, a menos que você tenha uma formatação bastante incomum dos dados e do material que está sendo pesquisado, duvido muito disso. O que exatamente você está tentando fazer?
— vonbrand

4
Convido você a editar a pergunta para elaborar seus requisitos específicos. Você está interessado apenas em esquemas de compactação padrão ou deseja considerar esquemas de compactação incomuns projetados para oferecer suporte à pesquisa? Você deseja considerar um esquema de compactação que também armazena um índice no lado que pode ser usado para ajudar a acelerar a pesquisa? Além disso, esclareça com que tipo de pesquisa você está bem. A descompactação imediata da pesquisa conta como uma solução válida? Se não, por que não? Existem objetivos de tempo de execução específicos que você está tentando atingir?
— DW

11
Essa edição não adicionou muita clareza. Parece que você decidiu que pesquisar um arquivo compactado é uma solução para outro problema que você está tendo. Qual é esse problema que você está tentando resolver pesquisando um arquivo compactado?
— Schwern

11
@ Schwern Não há nenhum problema em mãos, apenas curioso para saber se as técnicas já existiam, literalmente para qualquer coisa. Eu não conseguia pensar em nada da minha cabeça. :) Até coloque "any" em negrito haha. Eu quis dizer isso no sentido literal.
— Albert Renshaw

3
Não vejo razão para fechar esta pergunta que parece estar atraindo respostas razoáveis . Aparentemente, o pôster está tentando obter pontos de entrada, e ele está conseguindo. As imagens são dados compactados de fato (é sempre uma aproximação), mas existem técnicas de busca para encontrar padrões nas imagens, mesmo quando a resolução não é a mesma.
— babou

Respostas:


12

Os auto-índices compactados, como o Índice FM, permitem pesquisas arbitrárias de substring no espaço próximo comprimido por entropia. São essencialmente matrizes de sufixos compactados ou árvores de sufixos, que têm muita literatura.

A pesquisa básica de substring pode ser o (k) ou o (k log n) com o tempo para o comprimento k, dependendo de quais estruturas de dados são escolhidas (diferentes tipos de classificação / seleção de estruturas de dados). Há uma série de problemas que surgem, dependendo se se deseja predicados simples de contenção booleana, o deslocamento de cada ocorrência ou operações mais complicadas da árvore de sufixos; o primeiro pode ser feito em menos espaço e tempo que o segundo.

Há também um todo livro sobre pesquisa e descompressão seletiva de strings : "Estruturas de dados compactadas para strings: na pesquisa e extração de strings", de Rossano Venturini, publicado em 2014 pela Springer Science & Business Media.


11
Por favor, forneça referências de maneira robusta contra a podridão do link; para livros, autor (es), título, editor e ano são o mínimo aceito.
— Raphael

3

A KWillets mencionou o índice de FM. Vale ressaltar que o índice FM é baseado na transformação Burrows-Wheeler (também a base do bzip), juntamente com um índice que suporta consultas eficientes de "classificação".

Os índices baseados no BWT são auto-indexáveis, no sentido de que o índice também é uma representação compactada da cadeia de origem e pode ser descompactado no arquivo original. A descompressão pode ser realizada mais rapidamente adicionando um índice de seleção junto com o índice de classificação. Os índices de classificação / seleção são um tópico interessante e vale a pena conferir. Existem excelentes recursos para implementações práticas .

No entanto, o ponto principal que quero abordar é que este é um caso especial da idéia mais geral de estruturas de dados compactados. Uma estrutura de dados compactada é aquela que não precisa ser descompactada (ou a quantidade de descompactação necessária é limitada) para executar operações eficientes nela.

As estruturas de dados compactados podem ser analisadas em termos de sobrecarga em relação a um limite teórico. Por exemplo, estruturas de dados sucintas têm uma sobrecarga relativa que diminui à medida que a estrutura de dados cresce. Esta é uma área de pesquisa muito ativa no momento.

A técnica BWT pode ser aplicada a estruturas de dados que não sejam strings. Por exemplo, a mesma idéia foi estendida às árvores rotuladas , resultando em uma representação pesquisável compactada.

Portanto, se você possui dados que precisam compactar e encontrar informações, não pense necessariamente em termos de arquivos. Seus dados podem ter uma estrutura de nível superior que você pode explorar.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.