Có BẤT CỨ nén kiểu đó có thể nén một tập tin, và sau đó là tập tin nén có thể tìm kiếm mà không cần giải nén các tập tin?
Có BẤT CỨ nén kiểu đó có thể nén một tập tin, và sau đó là tập tin nén có thể tìm kiếm mà không cần giải nén các tập tin?
Câu trả lời:
Các chỉ mục tự nén như Chỉ mục FM cho phép tìm kiếm chuỗi con tùy ý trong không gian nén gần entropy. Đây thực chất là các mảng hậu tố nén hoặc cây hậu tố, có rất nhiều tài liệu.
Tìm kiếm chuỗi con cơ bản có thể là o (k) hoặc o (k log n) trong thời gian dài k, tùy thuộc vào cấu trúc dữ liệu nào được chọn (các loại cấu trúc dữ liệu xếp hạng / chọn khác nhau). Có một loạt các vấn đề phát sinh tùy thuộc vào việc người ta muốn các biến vị ngữ boolean đơn giản, phần bù của mỗi lần xuất hiện hay các thao tác cây hậu tố phức tạp hơn; cái trước có thể được thực hiện trong không gian và thời gian ít hơn cái trước.
Ngoài ra còn có toàn bộ cuốn sách về tìm kiếm và giải nén chuỗi có chọn lọc : "Cấu trúc dữ liệu nén cho chuỗi: Về tìm kiếm và trích xuất chuỗi" của Rossano Venturini, xuất bản 2014 Springer Science & Business Media.
KWillets đề cập đến chỉ số FM. Điều đáng chú ý là chỉ số FM dựa trên biến đổi Burrows-Wheeler (cũng là cơ sở của bzip), cùng với một chỉ mục hỗ trợ các truy vấn "xếp hạng" hiệu quả.
Các chỉ mục dựa trên BWT là tự lập chỉ mục, theo nghĩa là chỉ mục cũng là một biểu diễn nén của chuỗi nguồn và có thể được giải nén vào tệp gốc. Việc giải nén có thể được thực hiện nhanh hơn bằng cách thêm một chỉ mục chọn cùng với chỉ mục xếp hạng. Xếp hạng / chọn chỉ mục là một chủ đề thú vị và đáng để kiểm tra. Có một số nguồn lực tuyệt vời để thực hiện thực tế .
Tuy nhiên, điểm chính mà tôi muốn đưa ra là đây là trường hợp đặc biệt về ý tưởng tổng quát hơn về cấu trúc dữ liệu nén. Cấu trúc dữ liệu nén là cấu trúc không cần giải nén (hoặc số lượng giải nén cần thiết bị giới hạn) để thực hiện các hoạt động hiệu quả trên nó.
Các cấu trúc dữ liệu nén có thể được phân tích sâu hơn về mặt chi phí của chúng so với giới hạn lý thuyết. Ví dụ, cấu trúc dữ liệu cô đọng có chi phí tương đối giảm khi cấu trúc dữ liệu phát triển. Đây là một lĩnh vực nghiên cứu rất tích cực tại thời điểm này.
Kỹ thuật BWT có thể được áp dụng cho các cấu trúc dữ liệu khác với chuỗi. Ví dụ, ý tưởng tương tự đã được mở rộng cho các cây được gắn nhãn , dẫn đến một đại diện có thể tìm kiếm được nén.
Vì vậy, nếu bạn có dữ liệu mà bạn cần nén và tìm nội dung, không nhất thiết phải suy nghĩ về các tệp. Dữ liệu của bạn có thể có cấu trúc cấp cao hơn mà bạn có thể khai thác.