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.