2
Iura(Оффтоп)
Не пишите на транслите.
В одном из моих предыдущих сообщений я попытался кратко описать связь между предсказанием и сжатием. Напомню, что основной проблемой была необходимость пересылки компрессором декомпрессору дополнительной информации, помимо сжатых данных. Было совершенно непонятно, будет ли вся пересылаемая информация меньше исходной.
Оказывается, дополнительную информацию пересылать вовсе не нужно. Достаточно применить т.н. динамическое моделирование при котором статистика для предсказания и для распаковки собирается по одному и тому же алгоритму и, получается, декомпрессор может извлечь её прямо из сжатых данных.
Процесс выглядит примерно так. Пусть компрессор и декомпрессор работают одновременно, компрессор сжимает данные, передает их порциями декомпрессору, а тот сразу же их распаковывает. В ходе такой пересылки, в некоторый (любой) момент времени, компрессору и декомпрессору, понятное дело, часть данных уже известна. Так как и сбор статистики идет по одному и тому же алгоритму, то, оба модуля имеют одинаковые представления о вероятном следующем символе (бите).
Поэтому, компрессору достаточно передавать декомпрессору лишь информацию об отклонениях (ошибках) входного потока от предсказанных значений, а декомпрессору необходимо использовать переданную информацию об ошибках для динамической корректировки статистической модели.
То есть, если для некоторого участка распаковываемой последовательности декомпрессор не обладает информацией об ошибках, то он просто генерирует этот участок согласно модели (например, в самом начале упаковки/распаковки тривиальная модель-заглушка может предсказывать любой символ с вероятностью ровно 50%). Если же декомпрессор знает, что текущий предсказанный бит ошибочен, то он просто корректирует модель и продолжает делать предсказания уже на её основе.
Именно поэтому, на практике, для сжатия применяют, например, арифметическое кодирование, при котором более вероятные элементы (числа) последовательности кодируются меньшим числом бит чем менее вероятные.
Такой алгоритм "хорошие" данные уж точно будет сжимать, да ещё и без потерь (т.е. обратимо). Вот, только сейчас яность начала приходить потихоньку. :)
-- Сб апр 03, 2010 00:02:33 --Связь же задачи предсказания с задачей оптимизации мне так и не стала понятна, увы. Разве что здесь речь может идти о минимизации ошибки предсказания, правда тогда опять непонятен выбор именно генетических алгоритмов... Хотя да, в некотором смысле, эволюция, создавая новые виды, совершает своего рода "предсказания". Но хотелось бы все-таки пощупать более формальную сторону этой догадки-интуиции. По-прежнему надеюсь на подробные объяснения (при этом я сильно сомневаюсь в практической значимости таких результатов, слишком уж ГА "тормознутые").