Из моего учебника алгоритмов:Сжимаемость Пример
Ежегодная гонка графства лошади приносит в трех чистокровных, которые никогда не конкурировали друг против друга. Возбужденные, вы изучаете их прошлые 200 гонок и суммируете их как распределения вероятности по четырем результатам: сначала («первое место»), второе, третье и другое.
Outcome Aurora Whirlwind Phantasm
first 0.15 0.30 0.20
second 0.10 0.05 0.30
third 0.70 0.25 0.30
other 0.05 0.40 0.20
Какая лошадь является наиболее предсказуемым? Один количественный подход к этому вопросу заключается в рассмотрении сжимаемости. Запишите историю каждой лошади как строку из 200 значений (первая, вторая, третья, другая). Общее количество бит, необходимых для кодирования этих строк записи дорожки, может быть затем рассчитано с использованием алгоритма Хаффмана. Это работает до 290 бит для Aurora, 380 для Whirlwind и 420 для Phantasm (проверьте это!). Аврора имеет кратчайшую кодировку и, следовательно, в сильном смысле наиболее предсказуема.
Как они получили 420 для Phantasm? Я продолжаю получать 400 байт, так как:
Комбинируйте сначала, другие = 0.4, соедините второй, третий = 0,6. Завершите с 2 битами, кодирующими каждую позицию.
Есть ли что-то, что я неправильно понял о алгоритме кодирования Хаффмана?
Учебное пособие доступно здесь: http://www.cs.berkeley.edu/~vazirani/algorithms.html (стр. 156).
«Какая лошадь наиболее предсказуема?» - на самом деле это не отвечает, потому что размещение зависит от других лошадей в гонке. Аврора может запускать курс ровно в одно и то же время каждый раз - вплоть до миллисекунды! - и все еще получаю результаты, показанные там, из-за других лошадей в гонке. –