そこでANY、その後、圧縮されたファイルを検索することができ、ファイルを圧縮することができます圧縮タイプなしでファイルを解凍しますか?
そこでANY、その後、圧縮されたファイルを検索することができ、ファイルを圧縮することができます圧縮タイプなしでファイルを解凍しますか?
回答:
FMインデックスなどの圧縮された自己インデックスにより、エントロピー圧縮された空間内で任意の部分文字列を検索できます。これらは基本的に圧縮されたサフィックス配列またはサフィックスツリーであり、多くの文献があります。
基本的な部分文字列検索は、選択されたデータ構造(ランク/選択データ構造の異なるタイプ)に応じて、長さkの時間でo(k)またはo(k log n)になります。単純なブール包含述語が必要か、各オカレンスのオフセットが必要か、またはより複雑なサフィックスツリー操作が必要かによって、さまざまな問題が発生します。前者は後者よりも少ないスペースと時間で実行できます。
文字列の検索と選択的解凍に関する本全体も含まれています。RossanoVenturiniによる「文字列の圧縮データ構造:文字列の検索と抽出」、2014 Springer Science&Business Media発行。
KWillets はFMインデックスに言及しました。FMインデックスがバロウズウィーラー変換に基づいていることは注目に値します、効率的な「ランク」クエリをサポートするインデックスとともに(およびbzipのベース)に。
BWTベースのインデックスは、インデックスもソース文字列の圧縮表現であり、元のファイルに解凍できるという意味で、自己インデックスです。ランクインデックスと共に選択インデックスを追加することで、解凍をより迅速に実行できます。ランク/選択インデックスは興味深いトピックであり、確認する価値があります。実用的な実装のための優れたリソースがいくつかあります。
ただし、ここで取り上げたい主なポイントは、圧縮されたデータ構造のより一般的な概念の特別なケースです。圧縮されたデータ構造は、効率的な操作を実行するために圧縮解除する必要がない(または必要な圧縮解除の量に制限がある)データ構造です。
圧縮されたデータ構造は、理論上の制限と比較したオーバーヘッドに関してさらに分析できます。たとえば、簡潔なデータ構造には相対的なオーバーヘッドがあり、データ構造が大きくなるにつれて減少します。これは現在非常に活発な研究分野です。
BWT手法は、文字列以外のデータ構造にも適用できます。たとえば、同じアイデアがラベル付きツリーに拡張され、圧縮された検索可能な表現になります。
したがって、圧縮してデータを検索する必要があるデータがある場合は、必ずしもファイルについて考える必要はありません。データには、利用できるより高いレベルの構造がある場合があります。