Теорема Шеннона определяется в терминах случайных данных и вероятностей. Точно так же энтропия строки определяется только для случайных строк - энтропия является свойством распределения, а не самих строк. Итак, мы можем неформально переформулировать теорему Шеннона следующим образом:
Если вы случайным образом выберете строку из заданного распределения вероятностей, то наилучшая средняя степень сжатия, которую мы можем получить для строки, будет определяться степенью энтропии распределения вероятностей.
Учитывая любую случайную строку, я могу легко написать алгоритм сжатия, который сжимает эту строку до 1 бита, но мой алгоритм обязательно увеличит длину некоторых других строк. Мой алгоритм сжатия работает следующим образом:
- Если входная строка равна некоторой заранее выбранной случайной строке, на выходе будет 1-битная строка "0".
- В противном случае на выходе будет N + 1-битовая строка «1», за которой следует входная строка.
Соответствующий алгоритм декомпрессии:
- Если на входе "0", на выходе будет наша предыдущая предварительно выбранная случайная строка.
- В противном случае на выходе будет все, кроме первого входного бита.
Ключевым моментом здесь является то, что мы не можем написать один алгоритм, который для всех строк из данного распределения сжимал бы их все в среднем с высокой скоростью. Слишком много струн.
Если у нас есть заданное вероятностное распределение строк, мы можем вычислить коэффициент энтропии распределения, а затем, если случайным образом выбрать строку в соответствии с распределением и попытаться сжать ее, используя любое strong>, относительный размер сжатой строки в среднем никогда не будет меньше скорости энтропии. Об этом говорит теорема Шеннона.
person
Adam Rosenfield
schedule
26.02.2009