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


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

Автор: Serge Osnach, <ench@netcity.ru>
Kiev, Ukraine, 22 ноября 2002 года в 11:02:12

В ответ на : Re: еще дополнение (уточнение) от Сергей в 22 ноября 2002 года в 01:29:59:


> > Повторяю рассуждения:
[skip]

> С точки зрения математики - все верно.
> А с точки зрения практики? По просьбе поясняю на двухбитном примере. (Понимая его как иллюстрацию к 200-битной цепочке).
> С точки зрения математики может существовать 4 двухбитных числа - 00, 01,10 и 11. Но допустим с точки зрения практики известно, что человечество использует только часть из них. Причем до сих пор неизвестны законы на основании которых мы можем теоретически определить какие не используются. И мощность компьютеров позволяет методом перебора оперировать только с 1-битными числами.
> Что мы делаем - выполняем статистические исследования на реальных наборах данных и пытаемся на их основании сделать вывод. Допустим на всех рассмотренных данных получили только 00 и 01.

Имеем противоречие. Если мощность перебора позволяет оперировать не более, чем 1-м битом, то откуда же был получен результат о "00" и "01"?

Давай все-таки рассмотри реальные архивы. Там вероятности всех 2-х битных цепочек примерно равны (конечно, есть небольшой разброс). Следовательно, твой подход, примененный для 2-х битных цепочек не вполне соответствует реальности. То же элементарно просчитывается и для n-битных при небольших n (скажем, n Проблема здесь конечно есть - мы не можем утверждать, что если мы возьмем более большую выборку в ней не встретится 10 или 11, хотя бы изредка.

Вот-вот.

> И утверждать что человечество использует только 00 и 01 можно с какой-то степенью вероятности. Но если выборка была достаточно большая и репрезентативная то на практике мы можем попробовать создать архиватор, задав таблицу соответствия 00-0 01-1. И данный архиватор для большинства данных будет работать.

> Аналогичный пример - вечный двигатель. С точки зрения науки существовать не может. Но если двигатель использует энергию приливов, или тепло Земли - с точки зрения человека его можно назвать вечным и использовать уже сегодня.

>
> > Замечательно. А как ты предлагаешь определять, может ли существовать такой файл в природе, или нет?

> Мне не надо определять есть он или нет, мне надо на основании статистических исследований найти набор функций, подходящих большинству файлов.

Я уже показывал, что этот набор будет подходить менее, чем к половине файлов.

> > С увеличением числа функций тебе прийдется писать в архив более длинные коды, определяющие, какой именно функцией был обработан очередной кусок. Это съест весь выигрыш от введения новых функций.

> Предположим у меня набор из 65000 функций для 200-битных цепочек. Ссылка на функцию занимает 16 бит. Мне надо выбрать одну подходящую, в которой аргумент для данного случая будет не длиннее 183 бит. Все они обладают свойством, что аргумент - более короткий чем результат. Большинство из них - подходят, но аргумент может варьироваться от 1 до 199 бит. И набор функций должен быть таким, чтобы в 0.9999 или лучше обеспечить требуемое отображение (не более 183).

Тем самым одному и тому же исходному файлу у тебя могут соответствовать несколько архивов в том случае, если 2 функции будут одинаково оптимальными. А это лишняя избыточность, и, как следствие, избыточный размер архива.

> В алгоритме это не совсем так, но по математике - весьма похоже. Просто не хочу пока вдаваться подробнее. Вот досчитаю математику, увижу, что требуемую вероятность можно получить только на наборах в миллионы функций (ни один компьютер не потянет) - плюну на эту идею, тогда - расскажу что угодно про свои эксперименты.

Ну почему, для 2-х битных последовательностей современные компьютеры вполне потянут :-)

Ответы:



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

Тема:

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

E-Mail:

URL:

Город:

Страна:

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

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