Колмогоровская сложность — различия между версиями
| Строка 40: | Строка 40: | ||
Нетрудно заметить, что <tex>2|p| + 2</tex> зависит только от <tex>D</tex>, но никак не зависит от <tex>x</tex>, т.е. является константой. <br> | Нетрудно заметить, что <tex>2|p| + 2</tex> зависит только от <tex>D</tex>, но никак не зависит от <tex>x</tex>, т.е. является константой. <br> | ||
Следовательно, <tex>U</tex> {{---}} оптимальный декомпрессор. | Следовательно, <tex>U</tex> {{---}} оптимальный декомпрессор. | ||
| + | }} | ||
| + | {{Определение | ||
| + | |definition= | ||
| + | Пусть <tex>D</tex> {{---}} это оптимальный декомпрессор, тогда '''колмогоровская сложность''' <tex>KS(x) = K_D(x)</tex>. | ||
| + | }} | ||
| + | {{Утверждение | ||
| + | |statement= Очевидно, что если <tex>D_1</tex> и <tex>D_2</tex> {{---}} оптимальные декомпрессоры, то <tex>\exists c_1, c_2: \forall x: | ||
| + | \left\{ | ||
| + | \begin{array}{l l} | ||
| + | K_{D_1}(x) \leqslant K_{D_2}(x) + c_1 \\ | ||
| + | K_{D_2}(x) \leqslant K_{D_1}(x) + c_2 | ||
| + | \end{array} | ||
| + | \right. | ||
| + | </tex> | ||
}} | }} | ||
Версия 15:00, 4 января 2015
Колмогоровскую сложность можно рассматривать как способ измерения количества информации в строке.
Но как понять, какое количество информации содержит в себе строка? Один из классических способов — это подсчет количества битов (число, пропорциональное длине строки). Рассмотрим следующий пример:
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Понятно, что эту строку можно описать более компактно на естественном языке, "128 нулей", всего 9 символов.
Можем дать следующее определение. Количество информации, которое несет строка — это размер архива, полученного сжатием строки каким-то конкретным архиватором (например, LZW). Это более нетривиальная задача, но мы можем придумать строку, которая явно несет в себе мало информации, но которую архиватор тем не менее не сожмет.
Еще более сильное определение. Количество информации, которое несет строка — это размер архива, сжатого максимальным образом, самым лучшим архиватором. Но тогда встает вопрос, почему такой архиватор существует. На самом деле он есть, и в некотором смысле колмогоровская сложность строки — это размер наименьшей программы, которая печатает эту строку.
Определения
| Определение: |
| Назовём декомпрессором алгоритм, восстанавливающий разжатый текст из сжатого. |
Примечание: для простоты мы будем рассматривать бинарный алфавит, но все утверждения мы можем обобщить на строки произвольного алфавита.
Относительно каждого декомпрессора мы можем определить понятие сложности строки:
| Определение: |
| Пусть , тогда назовем колмогоровской сложностью строки , размер минимальной строки , такой, что . Если такого не существует, тогда . |
Примеры
- , тогда
- , тогда
| Определение: |
| Будем говорить, что декомпрессор лучше, чем декомпрессор , если . |
| Теорема: |
Существует оптимальный декомпрессор , который лучше всех остальных. |
| Доказательство: |
|
Пусть — некоторая строка, . Обозначим за строку (мы удвоили каждый бит строки и добавили в конце ). |
| Определение: |
| Пусть — это оптимальный декомпрессор, тогда колмогоровская сложность . |
| Утверждение: |
Очевидно, что если и — оптимальные декомпрессоры, то |