1.1 Перестановки мультимножества Перестановка мультимножества – это расположение его элементов в ряд. Главное, что нас интересует – это количество таких перестановок. Если дано мультимножество, и известна кратность n1 , , nk его элементов, то различных перестановок будет в точности n! . n1 !n2 ! nk ! Это число называется мультиномиальным коэффициентом и обозначается как n . n1 , n2 , , nk Приведем два полезных разложения этого числа в сумму и произведение. Представление в виде суммы мультиномиальных коэффициентов: n n 1 n 1 n 1 . n1 , n2 , , nk n1 1, n2 , , nk n1 , n2 1, , nk n1 , n2 , , nk 1 Представление в виде произведения биномиальных коэффициентов: n n n n1 n n1 n2 n , n , , n n3 k n1 n2 1 2 nk 1 nk nk 1 Справедливость обоих утверждений проверяется непосредственно. Они оба имеют наглядный комбинаторный смысл, о котором будет рассказано позднее. Скажем несколько слов о происхождении мультиномиальных коэффициентов. Биномиальные коэффициенты возникают при возведении суммы x y в степень n : x y n n n x k y n k . k 0 k Аналогично, мультиномиальные коэффициенты возникают при возведении суммы x1 x2 xm в степень n: x1 x2 xm n k1 , k2 , n k1 k2 x x , km 1 2 , km k1 , k2 , xm km . 1.2 Комбинаторная энтропия. Определим комбинаторную энтропию для чисел n1 , n2 , H comb , nk как 1 n! log 2 , где n n1 n2 n n1 !n2 ! nk ! nk . Выясним, какой смысл вкалывается в эту формулу. В ней используется мультиномиальный коэффициент, который есть не что иное как количество перестановок мультимножества или количество строк с заданной n! 1 . После статистикой. Все строки с заданной статистикой можно перенумеровать числами от 0 до n1 !n2 ! nk ! этого по числу можно однозначно восстановить строку, а по строке восстановить ее номер. Для передачи n! номера такой строки в двоичном представлении требуется не более log 2 бит. Все строки одинаковой n1 !n2 ! nk ! длины, поэтому удобно посчитать среднее число бит, которое приходится на один символ строки – поделить количество бит на n . Это и есть комбинаторная энтропия. 1.3 Свойства комбинаторной энтропии Симметричность. От перестановки элементов комбинаторная энтропия не меняется. Максимум. Значение комбинаторной энтропии максимально, при одинаковых ni . Чем сильнее ni отличаются друг от друга (более неравномерное распределение), тем меньше значение комбинаторной энтропии. Аддитивность. TODO: 1.4 Энтропия Шеннона Вычисление значения комбинаторной энтропии (точнее, мультиномиальных коэффициентов) при больших ni является трудоемким процессом. Однако с помощью формулы Стирлинга для факториала можно построить приближение, которое легко вычислимо: H comb 1 1 n! n! log 2 log 2 n n ! n ! n ! n p n ! p n k 2 ! 1 2 1 p1 log 2 p1 p2 log 2 p2 pk n ! . k pk log 2 pk pi log 2 pi i 1 Имеет место предел: k lim H comb pi log 2 pi , где pi lim n n i 1 ni . n Такое приближение комбинаторной называется энтропией Шеннона: k H pi log 2 pi . i 1 Предел справедлив ввиду формулы Стирлинга для представления факториала: n n n 1 n 1 2 n exp n ! 2 n exp e 12n 1 e 12n Отсюда в частности следует, что n! lim 1 n n n 2 n e n! p1 N ! p2 N ! pk N ! 2 H p 1 , , pk N 1 n 2 N 2 p1 pk 1 2 1 O 1 N Предел на самом деле является пределом снизу, поэтому всегда выполняется: H comb H . Обычно в литературе сразу приводится формула энтропии Шеннона без каких-либо пояснений. Понимание того, что энтропия Шеннона является пределом комбинаторной энтропии помогает лучше понять ее суть. Свойства энтропии Шеннона Непрерывность. Функция H p1 , p2 , Симметричность. , pk непрерывна по каждому аргументу. H p1 , p2 , , pk H p1 , p 2 , , p k , где – любая перестановка k элементов. Максимум достигается, когда p1 p2 pk 1 , таким образом: k H p1 , p2 , 1 , pk H , k 1 , k Аддитивность. TODO: Пример. Комбинаторная энтропия и энтропия по Шеннону. N . 2 В этом случае H 1 , потому что распределение равномерное. Рассмотрим комбинаторную энтропию. Всего Допустим, имеется битовая строка s длины N (четное), в которой число нулей и единиц одинаково и равно N строк длины N с одинаковым числом нулей и единиц существует , следовательно, на одну строку N 2 N необходимо тратить log 2 бит, а в среднем N 2 H comb N 1 log 2 . N N / 2 Рассмотрим частный случай при N 6 , тогда Получаем, что H comb log 2 20 6 1 1 6! H comb log 2 0.72 . log 2 6 / 2 6 6 3! 3! 6 0.72 меньше, чем H 1 . Для кодирования строки s из 6 символов требуется либо 4.32 бита, либо 6 бит при условии, что при декодировании заранее известно, что число нулей равно числу единиц. Рассмотрим другой случай N 10000 , тогда 10000 1 1 10000! H comb log 2 log 2 0.9993 . 10000 5000! 5000! 10000 / 2 10000 При больших N комбинаторная энтропия близка к энтропии Шеннона, поэтому выигрыша практически нет.