Колмогоровская сложность — различия между версиями
(→Примеры) |
м (rollbackEdits.php mass rollback) |
||
(не показано 14 промежуточных версий 3 участников) | |||
Строка 68: | Строка 68: | ||
Докажем последнее свойство: | Докажем последнее свойство: | ||
===Невычислимость=== | ===Невычислимость=== | ||
− | {{Лемма | + | {{Утверждение |
+ | |about=Лемма | ||
|statement= | |statement= | ||
Если <tex>f:\{0,1\}^* \rightarrow N</tex> {{---}} [[Вычислимые функции|вычислимая функция]], такая, что <tex>\forall x : f(x) \leqslant KS(x)</tex>, тогда <tex>f = O(1)</tex>. | Если <tex>f:\{0,1\}^* \rightarrow N</tex> {{---}} [[Вычислимые функции|вычислимая функция]], такая, что <tex>\forall x : f(x) \leqslant KS(x)</tex>, тогда <tex>f = O(1)</tex>. | ||
Строка 82: | Строка 83: | ||
|statement= | |statement= | ||
<tex>KS(x)</tex> невычислима. | <tex>KS(x)</tex> невычислима. | ||
− | |||
− | |||
}} | }} | ||
+ | |||
+ | Пусть <tex>KS(x)</tex> вычислима. Возьмем вместо <tex>f(x)\ KS(x)</tex>. Очевидно, что <tex>\forall x : f(x) \leqslant KS(x)</tex>, но из принципа несжимаемости ясно, что <tex>KS(x)</tex> неограничена. Противоречие. Следовательно, <tex>KS(x)</tex> невычислима. | ||
+ | |||
+ | <tex> \forall x > x_0: K(x) > f(x)</tex>, если только <tex>f \leqslant const </tex> или <tex> f </tex> {{---}} невычислима. | ||
+ | |||
+ | ====Альтернативное доказательство с использованием теоремы о рекурсии==== | ||
+ | Функция <tex> K(x) </tex> {{---}} это минимальная длина программы <tex> p : p(\varepsilon) = x </tex>. | ||
+ | Допустим, что <tex> K </tex> вычислима, тогда напишем такую программу: | ||
+ | <code> | ||
+ | <tex>p(\varepsilon){:}</tex> | ||
+ | '''foreach''' <tex>x\in ~ \Sigma^* </tex> <span style="color:Green">//перебираем слова по возрастанию длины</span> | ||
+ | '''if''' <tex> K(x) > |p|</tex> <span style="color:Green">//теорема о рекурсии используется здесь</span> | ||
+ | '''return'''<tex>(x)</tex> | ||
+ | </code> | ||
+ | |||
+ | Длина этой программы меньше длины минимальной программы, которая возвращает <tex>x</tex> на пустом входе. Поэтому возникает противоречие. Следовательно <tex> K </tex> невычислима. | ||
==Применение== | ==Применение== |
Текущая версия на 19:26, 4 сентября 2022
Колмогоровскую сложность (англ. Kolmogorov complexity) можно рассматривать как способ измерения количества информации в строке.
Но как понять, какое количество информации содержит в себе строка? Один из классических способов — это подсчет количества битов (число, пропорциональное длине строки). Рассмотрим следующий пример:
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Понятно, что эту строку можно описать более компактно на естественном языке, "128 нулей", всего 9 символов.
Можем дать следующее определение. Количество информации, которое несет строка — это размер файла, полученного сжатием строки каким-то конкретным компрессором (например, LZW). Но мы по-прежнему можем придумать строку, которая явно несет в себе мало информации, но которую компрессор тем не менее не сожмет.
Еще более сильное определение. Количество информации, которое несет строка — это размер файла, сжатого максимальным образом, самым лучшим компрессором. Но тогда встает вопрос, почему такой компрессор существует. На самом деле он есть, и в некотором смысле колмогоровская сложность строки — это размер наименьшей программы, которая печатает эту строку.
Определения
Декомпрессор
Определение: |
Назовём декомпрессором (англ. decompressor) | алгоритм, восстанавливающий разжатый текст из сжатого.
Примечание: для простоты мы будем рассматривать бинарный алфавит, но все утверждения мы можем обобщить на строки произвольного алфавита.
Относительно каждого декомпрессора мы можем определить понятие сложности строки:
Определение: |
Пусть Если такого не существует, тогда . | , тогда назовем колмогоровской сложностью строки , размер минимальной строки , такой, что .
Примеры
- , тогда
- , тогда
Определение: |
Будем говорить, что декомпрессор | не хуже, чем декомпрессор , если .
Теорема: |
Существует оптимальный декомпрессор (англ. optimal decompressor) , который не хуже всех остальных. |
Доказательство: |
Пусть |
Определение: |
Пусть | — это оптимальный декомпрессор, тогда колмогоровская сложность .
Утверждение: |
Очевидно, что если и — оптимальные декомпрессоры, то |
Свойства
Тривиальные свойства
- Если
( запишем как пару — информация об алгоритме и информация о строке , по предыдущему пункту нам нужно закодировать только сложность первого аргумента, что есть константа)
— алгоритм, то - Принцип несжимаемости:
(Какой бы у нас ни был компрессор, он не может все строки фиксированной длины делать меньше. Строк длины меньшей, чем — , мы не сможем декомпрессировать) - — невычислимая функция.
Докажем последнее свойство:
Невычислимость
Утверждение (Лемма): |
Если вычислимая функция, такая, что , тогда . — |
Пусть Вспомним, что , следовательно . Отсюда: , но ясно, что при больших это неравенство не выполняется. Противоречие. |
Примечание: если функция
определена только на , то лемма остается в силе с единственным отличием, что пробегает все значения из в порядке перечисления.Утверждение (следствие из леммы): |
невычислима. |
Пусть
вычислима. Возьмем вместо . Очевидно, что , но из принципа несжимаемости ясно, что неограничена. Противоречие. Следовательно, невычислима., если только или — невычислима.
Альтернативное доказательство с использованием теоремы о рекурсии
Функция
//перебираем слова по возрастанию длины if //теорема о рекурсии используется здесь returnforeach
Длина этой программы меньше длины минимальной программы, которая возвращает
на пустом входе. Поэтому возникает противоречие. Следовательно невычислима.Применение
Альтернативное доказательство теоремы Гёделя о неполноте
Г. Хайтин[1] заметил следующее:
Утверждение: |
В данной фиксированной системе вывода существует недоказуемое утверждение вида |
Выпишем множество пар утверждение доказуемо . Возможны два варианта:
|
Заметим, что во всех множествах пар все
ограничены какой-то константой, следовательно существует огромное число истинных, но недоказуемых утверждений видаДоказательство бесконечности простых чисел
Утверждение: |
Простых чисел бесконечно много. |
Предположим, что простых чисел конечное число. Тогда любое число | , где — это некоторая константа. Возьмём наибольшей колмогоровской сложности. Тогда , но также , т.к. . Но это неравенство не будет выполняться на достаточно больших , противоречие.
См. также
Примечания
- ↑ Грегори Джон Хайтин — аргентино-американский математик и информатик, внёс вклад в метаматематику, совместно с Андреем Колмогоровым считается основателем алгоритмической теории информации.