Усиление степени сжатия текста: различия между версиями
Irina (обсуждение | вклад) |
Irina (обсуждение | вклад) |
||
Строка 106: | Строка 106: | ||
== Открытые вопросы == | == Открытые вопросы == | ||
Парадигму усиления можно обобщить следующим образом. Пусть дан алгоритм компрессии A; необходимо найти перестановку P для символов строки s и стратегию разбиения, такие, чтобы примененный к ним подход к усилению минимизировал размер выходных данных. Выше были приведены убедительные свидетельства того, что преобразование Барроуза-Уилера является элегантной и эффективной перестановкой P. Как ни удивительно, другие классические задачи сжатия данных также вписываются в эту структуру: поиск кратчайшей общей надстроки (эта задача является MAX-SNP-сложной), кодирование с переменной длиной строки для множества строк (полиномиально разрешимая задача), LZ77 и нахождение минимального количества фраз (также MAX-SNP-сложная). Таким образом, подход к усилению является достаточно общим, чтобы заслуживать дальнейших теоретических и практических исследований [5]. | Парадигму усиления можно обобщить следующим образом. Пусть дан алгоритм компрессии A; необходимо найти и перестановку <math>\mathcal{P} \;</math> для символов строки s, и стратегию разбиения, такие, чтобы примененный к ним подход к усилению минимизировал размер выходных данных. Выше были приведены убедительные свидетельства того, что преобразование Барроуза-Уилера является элегантной и эффективной перестановкой <math>\mathcal{P} \;</math>. Как ни удивительно, другие классические задачи сжатия данных также вписываются в эту структуру: поиск кратчайшей общей надстроки (эта задача является MAX-SNP-сложной), кодирование с переменной длиной строки для множества строк (полиномиально разрешимая задача), LZ77 и нахождение минимального количества фраз (также MAX-SNP-сложная). Таким образом, подход к усилению является достаточно общим, чтобы заслуживать дальнейших теоретических и практических исследований [5]. | ||
== Экспериментальные результаты == | == Экспериментальные результаты == |
Версия от 14:06, 20 января 2017
Ключевые слова и синонимы
Модели сжатия высокого порядка; сжатие с учетом контекста
Постановка задачи
Неформально техника усиления представляет собой метод, который при применении к определенному классу алгоритмов повышает их эффективность. Повышение должно быть доказуемым и четко определенным в виде одного или нескольких параметров, характеризующих эффективность работы алгоритма. Примеры подобных «усилителей» можно найти в сегментах рандомизированных алгоритмов (здесь усилитель позволяет превратить алгоритм BPP в RP [6]) и теории вычислительного обучения (в данном случае усилитель позволяет повысить точность прогнозирования у слабого обучающего алгоритма [10]). Задача усиления сжатия заключается в разработке техники, повышающей эффективность сжатия широкого класса алгоритмов. В частности, результатом работы Ферраджины и др. явилась обобщенная техника, позволяющая «заставить» компрессор, не использовавший контекстной информации вовсе, всегда использовать наилучший возможный контекст.
Классические алгоритмы Хаффмана и арифметического кодирования [1] могут служить примерами статистических алгоритмов сжатия, обычно кодирующих входной символ в соответствии с общей частотой его вхождения в данных, подлежащих сжатию. [Динамические версии этих алгоритмов рассматривают частоту схождения символа в уже просканированной порции входных данных.] Этот подход эффективен и прост в реализации, однако обеспечивает невысокий уровень сжатия. Эффективность работы статистических алгоритмов сжатия можно повысить в результате использования моделей более высокого порядка, получающих более качественную оценку частоты встречаемости входных символов. Алгоритм сжатия PPM [9] реализует эту идею за сбора данных о частоте вхождения всех символов, попадающих в любой контекст длины k, и сжатия их при помощи арифметического кодирования. Длина контекста k представляет собой параметр алгоритма, который определяется подлежащими сжатию данными: он будет разным при сжатии текста на английском языке, последовательности ДНК или документа в формате XML. Можно привести и другие примеры сложных программ сжатия, таких как алгоритмы Лемпеля-Зива и Барроуза-Уилера [9], использующих информацию о контексте неявным образом. Все эти алгоритмы, учитывающие контекст, хороши по критерию эффективности работы, однако сложны для реализации и анализа.
Применение техники усиления Ферраджины и др. к алгоритмам Хаффмана и арифметического кодирования позволяет получить новый алгоритм сжатия со следующими характеристиками:
(i) новый алгоритм использует усиленный алгоритм сжатия в качестве черного ящика;
(ii) новый алгоритм выполняет сжатие в стиле PPM, автоматически выбирая оптимальное значение k;
(iii) асимптотическая эффективность нового алгоритма по соотношению времени и памяти соответствует эффективности усиленного алгоритма сжатия.
В следующих разделах будет изложено точное формальное обоснование перечисленных характеристик.
Основные результаты
Нотация. Эмпирическая энтропия
Пусть s – строка над алфавитом
(1)
представляет эмпирическую энтропию k-го порядка для s и является нижней границей степени сжатия, которой можно достичь при использовании кодовых слов, которые зависят только от k символов, непоследственно следующих за кодируемым.
Пример 1. Пусть строка s = mississippi. Для k = 1 имеем
Отметим, что эмпирическая энтропия определяется для любой строки и может использоваться для измерения эффективности алгоритмов сжатия без каких-либо предположений о входных данных. К сожалению, для некоторых строк (с очень высокой сжимаемостью) эмпирическая энтропия обеспечивает слишком консервативное значение нижней границы. Например, для
Преобразование Барроуза-Уилера
Пусть дана строка s. Преобразование Барроуза-Уилера [2] (bwt) включает три основных этапа:
(1) добавить в концу строки s специальный символ $, который меньше любого другого символа в
(2) сформировать концептуальную матрицу
(3) построить преобразованный текст
В работе [2] Барроуз и Уилер доказали, что
Чтобы убедиться в мощи преобразования bwt, рассмотрим ситуацию с точки зрения эмпирической энтропии. Зафиксируем целое положительное число k. Первые k столбцов матрицы bwt содержат все подстроки s длины k, лексикографически упорядоченные (а также k подстрок, содержащих символ $). Для любой подстроки w строки s длины k символы, непосредственно предшествующие каждому вхождению w в s, сгруппированы вместе в множество последовательных позиций в
Пример 2. Пусть s = mississippi и k = 1. На рис. 1 показано, что
Поскольку перестановка строки не меняет ее (модифицированной) эмпирической энтропии нулевого порядка (то есть
Из (1) следует, что
Следовательно, для сжатия строки s вплоть до
Алгоритм усиления степени сжатия
Важнейшим компонентом алгоритма усиления степени сжатия является взаимосвязь между матрицей bwt и такой структурой данных, как суффиксное дерево. Обозначим за
Для любой вершины суффиксного дерева u обозначим за
Пример 3. Рассмотрим суффиксное дерево на рисунке. Листовое покрытие состоит из всех вершин, имеющих глубину 1. Разбиение
Матрица bwt (слева) и суффиксное дерево (справа) для строки s = mississippi$. Выходным значением алгоритма bwt является последний столбец матрицы bwt, т.е., в данном случае,
Обозначим за C функцию, которая ассоциирует с каждой строкой x над
Пусть A – алгоритм сжатия, такой, что для любой строки x размер ее выходного значения ограничен
Суммируя все вышесказанное, усиление алгоритма сжатия A над строкой s состоит из трех основных этапов:
1. Вычислить
2. Вычислить оптимальное листовое покрытие
3. Сжать каждую подстроку разбиения при помощи алгоритма A.
Таким образом, парадигма усиления сводит разработку эффективных алгоритмов сжатия, использующих информацию контексте, к (обычно более простой) разработке алгоритмов сжатия нулевого порядка. Эффективность этой парадигмы описывается следующей теоремой.
Теорема 1 ([Ферраджина и др., 2005). Пусть A – алгоритм сжатия, который сжимает любую строку x до размера не более
Аналогичный результат имеет место и для модифицированной энтропии
Применение
Помимо естественного применения в области сжатия данных, механизмы повышения степени сжатия также использовались для разработки сжатых полнотекстовых индексов [8].
Открытые вопросы
Парадигму усиления можно обобщить следующим образом. Пусть дан алгоритм компрессии A; необходимо найти и перестановку
Экспериментальные результаты
Исследование нескольких алгоритмов сжатия, основанных на усилении, и сравнение их с другими современными способами сжатия приведено в работе [ ]. Эксперименты показывают, что техника усиления является более надежной по сравнению с другими подходами и хорошо работает даже с менее эффективными алгоритмами сжатия нулевого порядка. Однако положительные результаты достигаются за счет использования большего количества ресурсов (времени и памяти).
Наборы данных
Наборы данных, использовавшиеся в [ ], доступны по адресу http://www.mfn.unipmn.it/~manzini/boosting. Другие наборы данных для сжатия и индексирования можно найти на сайте Pizza&Chili http://pizzachili.di.unipi.it/.
Ссылка на код
Страница «Усиление алгоритмов сжатия» (Compression Boosting, http://www.mfn.unipmn.it/~manzini/boosting) содержит исходный код всех алгоритмов, протестированных в [ ]. Этот код организован в виде библиотеки с высокой степенью модульности, которая может использоваться любым алгоритмом сжатия и не требует знания алгоритма bwt или процедуры усиления.
См. также
- Арифметическое кодирование для сжатия данных
- Преобразование Барроуза-Уилера
- Индексация сжатого текста
- Сжатие таблиц
- Сжатие и индексирование дерева
Литература
1. Bell, T.C., Cleary, J.G., Witten, I.H.: Text compression. Prentice Hall, NJ (1990)
2. Burrows, M. Wheeler, D.: A block sorting lossless data compression algorithm. Tech. Report 124, Digital Equipment Corporation (1994)
3. Ferragina, P., Giancarlo, R., Manzini, G., Sciortino, M.: Boosting textual compression inoptimal lineartime.J.ACM 52,688-713 (2005)
4. Ferragina, P., Giancarlo, R., Manzini, G.: The engineering of a compression boosting library: Theory vs practice in bwt compression. In: Proc. 14th European Symposium on Algorithms (ESA). LNCS, vol. 4168, pp. 756-767. Springer, Berlin (2006)
5. Giancarlo, R., Restivo, A., Sciortino, M.: From first principles to the Burrows and Wheeler transform and beyond, via combinatorial optimization. Theor. Comput. Sci. 387(3):236-248 (2007)
6. Karp, R., Pippenger, N., Sipser, M.: A Time-Randomness trade-off. In: Proc. Conference on Probabilistic Computational Complexity, AMS, 1985, pp. 150-159
7. Manzini, G.: An analysis of the Burrows-Wheeler transform. J.ACM 48,407-430 (2001)
8. Navarro, G., Makinen, V.: Compressed full text indexes. ACM Comput. Surv.39(1) (2007)
9. Salomon, D.: Data Compression: the Complete Reference, 4th edn. Springer, London (2004)
10. Schapire, R.E.: The strength of weak learnability. Mach. Learn. 2,197-227 (1990)