Re: еще дополнение (уточнение)


Сайт о сжатии >> Форум #Компрессор# >> [Ответить] [Ответы]

Автор: Сергей, <zu@valley.ru>
Россия, 20 ноября 2002 года в 22:50:18

В ответ на : Re: еще дополнение (уточнение) от Serge Osnach в 20 ноября 2002 года в 16:47:31:


> Теперь самое время оценить этот выигрыш :)
Ну что ж, попробую.
Допустим, что удастся добиться сжатия на каждом проходе в среднем на 1% с вероятностью 0.99. Предположим, что хотим сжимать файлы не хуже, чем вдвое - для этого потребуется порядка 70 проходов. Вероятность благоприятных для нас вариантов - 0,99^70 = 0,4948. То есть почти в половине случаев получаем требуемый выигрыш.
Если удастся получить 1% с вероятностью 0,9999 то вероятность благоприятного для нас исхода - 0,993. Дальше - лучше. Вопрос достижений хороших параметров -вопрос технологии. Считаю, что его можно решить (используя сверхмощные компьютеры и соответствующие алгоритмы) но отнюдь не уверен, что удастся мне или еще кому-то в ближайшее время.

> А вот и нет. Компрессор не может сжимать хотя бы на 1 бит половину или больше файлов размера не больше, чем N бит при достаточно большом N (а ведь именно об этом случае и идет речь).
> Этот факт прямо следует из того, что количество файлов размером не более N почти вдвое больше количесва файлов размером не более N+1.
> Следовательно, твоя оценка слишком оптимистична :)

2^100 - это число порядка того же, что и вес в граммах Земли. Запомним эту цифру.
Выводить функцию сразу для всего файла - дело безнадежное. Естественно функция для файла представляет из себя набор более простых функций. попробуем экспериментировать на 200-битных числах.
Попробуем написать генератор функций. При этом функции он генерит следущим образом - берет на реальном архиве пару смежных 200 - битных цепочек и выбирает для обоих из них случайную функцию с интересующими нас параметрами для обоих цепочек (функция одна, но аргументы разные, так что каждая из полученных интересующих нас цепочек - разная и меньшей длины, чем исходная). Потом следующую пару и т.д. Составляем коллекцию скажем так из 1 000 000 функций. Потом берем несколько гигов реальных архивов и пропускаем через нее все эти функции. Определяем насколько часто и качественно каждая из них удовлетворяет нас. На основании этих данных составляем коллекцию из нескольких десятков (сотен) тысяч "золотых функций".
Пробуем жать реальные файлы.
В развитие темы гоняем иные коллекции и наборы архивов, обновляем "золотую коллекцию" все более лучшими функциями.
Вот в общем-то как все это мне представлялось.
А теперь вспомним о числе 2^100 и попробуем понять - а сколько на всех компьютерах Земли существует в принципе файлов (и будет создано в обозримом будущем). Это число явно на много десятков порядков меньше (это бы значило, что используя Землю в качестве носителя мы записали бы по 100 бит на каждый ее грамм, хотя конечно плотность записей на носитель гораздо больше, но ведь и их масса по отношению к Земле ничтожна) - а ведь мы-то работаем с 200 - битными цепочками.
Если, число всех возможных файлов на Земле оценить в 2^40 то какой процент это составляет от 2^200 - большинство из которых может и увеличиваться?
И можно ли достичь вероятности попадания скажем в 0,999999 - (мне то до сих пор казалось, что увеличивая число функций и их качество удастся добиться величины больше 1).
Если учесть, что все существующие файлы производит ограниченное число программ
(источников) и есть для всех них определенное число закономерностей, которые на сегодня мы не можем уловить, то получается, что хотя теоретически суперкомпрессор создать нельзя, но на практике он вполне может существовать.

Ответы:



Ответить на это сообщение

Тема:

Имя (желательно полное):

E-Mail:

URL:

Город:

Страна:

Вежливый и подробный комментарий:
(Форматируйте его, пожалуйста, как почту - короткими строками
Еnter в конце строки, пустая строка между параграфами).

Пожалуйста, заполните все поля.
И не нажимайте по два раза на кнопку! Дождитесь ответа сервера.