Есть ли пределы сжатия данных?
(Эта тема расположена в архиве и закрыта для обсуждения.)

Версия для печати

Конференция: Конференция iXBT.com (http://forum.ixbt.com/)
Форум: Архив "Программирование" (http://forum.ixbt.com/?id=40)
URL: http://forum.ixbt.com/topic.cgi?id=40:515


Tsykunov, 14.01.2002 11:20
Я сильно задумался над проблемой сжатия данных. Начинал, не зная никакой теории, и "изобрел" и Хаффмана, и LZ и еще всякого. Приобрел только лишь святую веру ;) в возможность создания алгоритмов, сжимающих то, что сегодня не сжимается.
Все известные lossless-архиваторы используют примерно один набор алгоритмов, в результате чего не могут сжать результаты друг друга сколько-нибудь серьезно. Мой первый вопрос: есть ли архиваторы, заточенные под компрессию чужих архивов (что-то вроде слышал)? И как они работают?
Вопрос второй, принципиальный: где пределы сжатия битового потока, есть ли они?
Это у меня на уровне ощущений. Делюсь ими. Imho, пределы находятся там, где служебная информация становится больше выигрыша от сжатия. Под служебной информацией понимаю алгоритм (код) (де)компресии и/или его маркеры, словари, SFX-модули и т.д. То есть, архиватор, который весит M байт и будет использован для сжатия ~N файлов, создаст служебную информацию M/N байт. Практический алгоритм эффективен, если компрессия превышает M/N байт/файл. Здесь нет никаких предположений о характере входного файла, случайностях, энтропиях и т.п.
Еще одно наблюдение. Возьмем строку фиксированного размера 256 байт. Если она состоит из 256 одинаковых символов, то легко сжимается через RLE. Если в ней 256 разных символов – она сжимается динамически. Это два полюса, между ними все возможные сочетания. По мере движения от одного к другому снижается эффективность соответствующих алгоритмов сжатия и падает до отрицательной к середине. Шенноновская энтропия для данного алфавита изменяется от минимума до максимума. Получается три промежутка, два из которых сжимаются, обладая соответствующими свойствами, по своим алгоритмам, и третий, который не может быть сжат ими. Есть ли алгоритм для среднего промежутка? Очевидно, он должен использовать свойства, присущие всем строкам промежутка (называются они энтропией или иначе). Какие это свойства? IMHO, это отсутствие у них свойств, подходящих первым методам сжатия. Отсюда вытекает возможность сжатия. Далее можно определить множества на стыках трех алгоритмов…
Это уже не чистая теория, ведь всегда имеешь дело с битовым потоком с определенными характеристиками. Выходной поток архиваторов довольно предсказуем.
OK, закругляюсь.
Please, подскажите чего-то по теме, подтвердите/опровергните мои сумбурное сообщение.

1. WPooh, 14.01.2002 11:37
Не стоит изобретать велосипеды. Почитайте лучше литературу по этому поводу. В этой области уже столько натеоретизировали, что изобрести что-то новое без специальных знаний практически невозможно.
Увеличить степень сжатия можно, в частности, зная структуру данных. Например, сигнал определенной частоты длительности 1 минута, можно закодировать одной чиселкой "частота" и одной "длительность" вместо сжимания бинарных данных (составления таблиц соответствия, выяснения частоты вхождения каждой конкретной величины и пр.)

Добавление от 14-01-2002 11:40:

Выяснить же структуру данных на лету - тяжелое занятие. Можно попробовать перебрать некоторые методы (это кодируем вейвлетами, вон то - RLE) и выбрать лучший. Но занятие ИМХО неблагодарное.

2. Tsykunov, 14.01.2002 17:40
Понятно, что зная структуру данных, можно добиться большего, чем от бинарных данных. Это специализированные задачи. Хотя выходной поток архиватора - тоже в некоторой степени известная структура данных. И на лету выяснять нужно меньше.
Message был такой: любые данные сжимаются.
Здесь у меня крутое расхождение и с теорией и с практикой.
Так как Вы считаете?

3. Alchemist, 14.01.2002 17:43
Tsykunov

Message был такой: любые данные сжимаются.

Неправильно. Абсолютно хаотичный поток не сжимается. Например, если я правильно помню, белый шум. Хотя, это не совсем "данные".

4. Lionking, 14.01.2002 18:18
Белый шум вполне может сжиматься - например, если он был сгенерирован некоторым алгоритмом на основе псевдослучайного датчика, достаточно задать начальное значение датчика, алгоритм получения значения и число элементов в файле - сжатие при достаточно большом объеме выборки просто страшное.
На самое деле копайте в строну колмогоровской сложности, это как раз и есть мера сжимаемости конечной послеовательности.

5. Vladimir Rybinkin, 14.01.2002 18:19
Tsykunov
Постановка задачи интересная... Пару замечаний по интуитивным ощущениям (сжатием никогда не занимался):

1. Сжатие разных кусков исходника должно бы осществляться разными алгоритмами.
2. Интервалы действия одного алгоритма тоже должны бы быть разными.
3. Возможно, нужно делать архивацию всеми N способами, но записывать лучший результат.
4. Скорость архивации - исключительно важная характеристика. Медленная архивация хуже быстрой, даже если ее результат выше. Точнее, скорость архивации должна составлять проценты от наиболее скоростных архиваторов, чтобы это было интересно потенциальным юзерам.
5. Белый шум тоже сжимается (гипотеза )

6. Asclepius, 14.01.2002 18:53
Lionking
Белый шум вполне может сжиматься - например, если он был сгенерирован некоторым алгоритмом на основе псевдослучайного датчика

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

Vladimir...
4. Скорость архивации - исключительно важная характеристика. Медленная архивация хуже быстрой, даже если ее результат выше. Точнее, скорость архивации должна составлять проценты от наиболее скоростных архиваторов, чтобы это было интересно потенциальным юзерам.
Это сугубо application specific... иногда можно пожертвовать скоростью для очень сильного сжатия.

5. Белый шум тоже сжимается (гипотеза )

Ну ну...

7. Lionking, 14.01.2002 19:25
Asclepius

Насколько мне известно, белый шум - это сигнал с постоянным Фурье-образом (в отличие от, скажем, розового). Что такое полная хаотичность - не знаю. Можешь дать математическое определение ? (Стохастический процесс не обязательно случаен - стандартное отображение генерит вполне стохастическую картинку, оставаясь при этом полностью детерминированным).

8. Asclepius, 14.01.2002 19:30
Lionking
цитата:

. White noise as a generalized stochastic process. In order to motivate a mathematical definition of white noise, we need a comparison between functions and stochastic processes. An (ordinary) function is a function f(t) of a real number t. A generalized function is a function f[u] of a test function u. An (ordinary) stochastic process is a function X(t) of t such that for each t, X(t) is a random variable. Thus a generalized stochastic process is a function X[u] of u such that for each u, X[u] is a random variable. White noise is defined as a generalized stochastic process X[u] such that for each u, the random variable X[u] is Gaussian with mean 0 and variance the integral of u-square.


9. Lionking, 14.01.2002 19:45
Asclepius

Никаких противоречий возможности детерминированной генерации белого шума не вижу. Все эти слова про случайность позволяют хорошо работать со статистическими храктеристиками, мало что говоря о данной конкретной выборке - она вполне может быть четко структурированной и совершенно не хаотичной.

10. Vladimir Rybinkin, 14.01.2002 19:48
Интересно, а кто-нибудь (что-нибудь) способен определить, белый это шум или полностью детерминированная последовательность?

11. Asclepius, 14.01.2002 19:57
Vladimir Rybinkin
Это уже косит на разборку с генераторами псевдо-рандомальных чисел во 2ом томе Кнута

Lionking
Не спорю... Но с другой стороны, если этот самый белый шум сгенерирован каким то реальным физическим процессом, вряд ли в нём можно найти детерминистский фактор.

12. Lionking, 14.01.2002 20:04
Asclepius

Да мы же работаем с заданным конечным файлом. Чем он сгенерирован - неизвестно да и неважно - от того, что чередующаяся последовательность нулей и единиц была снята с шумящего резистора (есть такая ненулевая вероятность). жаться она хуже не будет.

13. Asclepius, 14.01.2002 20:14
Lionking
Смотри на мой ответ Владимиру - это уже совсем другая темма.

Я просто пытался объяснить что белый шум, как таковой (по определению) не сжимаем


14. IronPeter, 14.01.2002 20:20
Господа. Хотите я докажу теорему, что сжатие в принципе невозможно?

Дано: алфавит из N букв. Наборов строк длины K ровно N^K штук. Теперь мы хотим переписать (закодировать)
эти строки на том же языке, используя строки длины <K. Таких строк меньше или равно, чем N^{K-1}.
Нельзя однозначно отобразить множество из большего числа элементов на множество их меньшего числа элементов. Можно показать, что если наша операция сжимает хоть одну строку, то оно "разжимает" какую-то другую строку. Сжатие в принципе невозможно!

Возможно оно лишь в том случае, ежели мы сжимаем строки с разумным строением. Есть такое понятие -
колмогоровская сложность строки. Грубо говоря, это длина минимальной программы на формальном языке (скажем, на C), которая печатает данную строку. У строки, состоящей из первого миллиарда знаков pi
после запятой, колмогоровская сложность копеечная. Между тем эта строка _может__быть_ (я не берусь доказать, что она такова) чрезвычайно плохой с вероятностной точки зрения (стандартная энтропия большая).
Можно показать, что почти у всех строк колмогоровская сложность очень большая. И лишь у горстки строк она низкая. Так что у строки, снятой с генератора белого шума, колмогоровская сложность относительно заданного формального языка будет почти наверняка большой, то есть такую строку нельзя сжать.

15. Vladimir Rybinkin, 14.01.2002 20:57
IronPeter
Вводная: N = 4, K = 3;

В этих наборах буквы расположены так:
1. ABCD
2. ABDC
3. ACBD
4. ACDB
.....
Неужели не сожмется?

16. Enot, 14.01.2002 21:03
IronPeter
Как-то странно получается. Колмогоровская сложность необъективная величина?
Дали мне строку. Ну я сотворил печатающий ее алгоритм, потом кто-то его улучшил...потом мне показали реккурентное соотношение, я ее вообще в одну строчку записал Кто-нить эту сложность в глаза видел?
Или про нее только доказывают, что она "не больше, чем" ?

Добавление от 14-01-2002 21:07:

Vladimir Rybinkin
Не передергивать!

17. Asclepius, 14.01.2002 21:13
Enot
Скорее - теоретический предел, аналитически сложность Колмогорова подсчитать невозможно.

Кстати, формального доказательства о несжимаемости рандомального потока не существует


18. Vladimir Rybinkin, 14.01.2002 21:16
Enot
Дык спрашиваю я . Я же говорил - ниче в этом не понимаю.

Да и написал неверно: Первая буква - всегда A, а остальные K-1 - чего останется из N...

19. Asclepius, 14.01.2002 21:21
Vladimir Rybinkin

Это не потходит сабжу IronPeter-а, потому что это уже не любой, а ограниченный алфавит из N букв. Энтропия такого потока по определению меньше чем у неогранниченого.

20. Vladimir Rybinkin, 14.01.2002 21:27
В таком случае, я бы сформулировал это так: можно подобрать такую последовательность, которая не сжимается. Мож, и так, только это вряд ли имеет какое-то практическое значение - реальные данные сожмутся

21. Asclepius, 14.01.2002 21:30
Vladimir Rybinkin
"Сожмутся" - понятие широкое...

22. IronPeter, 14.01.2002 21:40
Vladimir Rybinkin

А как? Записать надо на том же языке из 3 букв.

Enot

Дык конечно необъективная.

23. Lionking, 14.01.2002 21:45
Asclepius

Непонятно, что есть сжатие белого шума самого по себе. С файлом все понятно - это конкретная последовательность байтов, а вот стохастический процесс - это уже достаточно абстрактная вещь, его и потрогать то нельзя, а уж как сжимать - и вовсе не понятно.

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

24. Enot, 14.01.2002 21:53
Lionking
- среднюю колмогоровскую сложность файла заданной длины, сгенеренного генератором белого шума с заданными параметрами (по идее это вполне конкретное число);
По идее - сложность белого шума (если он действительно белый) равна его объему. Он же совсем от балды

25. IronPeter, 14.01.2002 22:00
Vladimir Rybinkin

Я сформулировал простенькое утверждение - почти все строки являются несжимаемыми.

Вот скажем, алгоритм сжимает некоторые битовые строки длины 1024 до длины 512. Спрашивается, какая вероятность, что он сожмет данную строку длины 1024 до длины 512. Ответ. Меньше 2^{-512} . Два в минус пятисотой степени. 150 нулей после запятой... Вот доказательство того, что случайные данные несжимаемы. Относительно любого алгоритма сжатия!!!

А по поводу реальных данных - да, сжимаются. Потому как эти данные не с потолка взяты, а получены как результат работы некоторых алгоритмов/процессов. Какие это алгоритмы? А хрен его знает... В этом и проблема.

PS. Извиняюсь за лаг.

Добавление от 14-01-2002 22:03:

Lionking

Естественно, что средняя колмогоровская сложность строки длины N в алфавите A относительно любого формального языка над тем же алфавитом больше N.

26. Enot, 14.01.2002 22:06
IronPeter
Естественно, что средняя колмогоровская сложность строки длины N в алфавите A относительно любого формального языка над тем же алфавитом больше N.

Почему это? Разве программа, печатающая 1024 буквы 'X' будет длинней этой строки? Ты ж сказал, что это длина минимальной строки.

27. IronPeter, 14.01.2002 22:08
Enot

Я сказал "средняя". Идея очень простая - что в общем ничего сжать нельзя. 1000 букв - это уникумы. А типичная строка очень поганая.

28. Enot, 14.01.2002 22:09
IronPeter
Все равно. Максимум - строка описывается сама собой, так? То есть максимальная сложность - N. Минимальная - где-то 2..3 То есть, средная - ну никак не больше N.

29. Denis_03, 14.01.2002 22:13
Tsykunov

По теме есть неплохой FAQ вот здесь:

http://www.faqs.org/faqs/compression-faq/part1/

30. Asclepius, 14.01.2002 22:14
Enot
строка описывается сама собой, так?
Не так... не забывай код который её выписывает... Даже если этот код занимает 1 бит.

В среднем > N, так как в данном алфавите шанс что строку можно будет серьёзно сжать стремится к нулю


31. Enot, 14.01.2002 22:22
Хм...имеем множество строк длины N. Вопрос: какое распределение у колмогоровской длины? Неужели мощность множества почтибелошумных строк больше, чем хороших (есессно берем какие-то диапазоны для длины Колмогорова)? Может это что-то типа рациональных точек, понатыканных среди иррациональных большинств?

IronPeter
Эй Я только разгромное послание написал

32. IronPeter, 14.01.2002 22:35
Enot

Ну конечно. Как было сказано, мера битовых строк с К. сложностью равной 512 среди всех строк длины 1024 меньше или равна 2^{-512}. Ма-а-аленькое число.

33. Enot, 14.01.2002 22:46
Тогда можно итоги подводить - все хреново Против Колмогорова не попрешь.
Так и останется загадкой, как архиваторы умудряются сжимать, а математики - решать дифуры.
Надо, надо двигать теорию хаоса, а то сидим на островке, а вокруг оно - неупорядоченное.

34. Tsykunov, 15.01.2002 07:20
Iron Peter.
Оцените это.
Первое.
Теорема. Сжатие невозможно. Так как строка А, сжатая в строку В, уже не есть строка А.
Второе.
Теорема. Сжатие всегда возможно. Эмпирическое доказательство: строка Tsykunov сжата до строки Ц алгоритмом, умеющим преобразовывать Tsykunov в Ц и обратно.
Это к тому, что во всех случаях, когда говорят о сжатии\кодировании, имеется в виду система, имеющая 2 состояния: компрессор и несжатые данные, декомпрессор и сжатые данные.
В Вашей теореме отсутствует алгоритм. Данные не могут быть никак изменены относительно самих себя, сохранив информацию. При этом неважно, какая у них структура, сложность.… Из такого же игнорирования условий по умолчанию получаются парадоксы формальной логики. Говоря о цирюльнике, который бреет всех мужчин, мы семантически исключаем его из множества, и на самом деле парадокса нет. Нулевой уровень теории сжатия должен выглядеть так: для любого конечного объема данных существует алгоритм сжатия. Первый уровень: алгоритм сжатия эффективен, если его издержки меньше выигрыша от сжатия. На более высоких уровнях начинается обсуждение структуры данных!
Третье.
N=2 => N1=0, N2=1;
K=1 => K1=0, K2=1;
F – набор данных => F1=K1K2=01, F2=K2K1=10, EF=N^K=2
Сжимаю F1 до 0, F2 до 1 => ratio=50%
Алгоритм прилагается.

Vladimir
1.Да
2.Да
3.Да и еще N да
4.Нет. Пока хочу построить безлошадную повозку, о Ferrari подумаю, если повозка поедет.
5.См. теорему 2

Enot
Да рано итоги подводить! А не считаете ли отсутствие доказательства несжимаемости потока доказательством его сжимаемости? Если да, то нужно ваять алгоритмы.

35. Евгений Машеров, 15.01.2002 09:54
1. Вероятно, рассматривается вопрос сжатия без потерь? Или я пропустил то место, где это оговаривалось?
2. В этом случае универсального алгоритма сжатия не может существовать. Положим, что таковой есть, сжимающий строку в М бит в строку длиной не более М-1 бит. Но всех строк длиной М-1 меньше, чем строк длиной М (доказывается суммированием геометрической прогрессии). Следовательно, существует образ, у которого не менее двух прообразов, то есть такой сжатый сигнал, по которому исходный не восстанавливается.
3. Если же речь идет о сжатии с потерями - то также доказывается невозможность гарантированного сжатия для какой-либо функции потерь, и эффективность существующих алгоритмов объясняется тем, что входные данные отнюдь не равновероятны. Поэтому можно выбрать алгоритм, дающий эффективное сжатие на наиболее вероятных входных последовательностях.
4. А вот результат работы сколько-нибудь рабочего алгоритма сжатия весьма похож на случайную последовательность.

36. rGlory, 15.01.2002 10:08
Моя ложка в общую бочку
Точка зрения практика, это чиста мое ИМХО, поэтому просьба ногами не пинать

аксиома 1 бит несжимаем - поспорим?
2 бита, вернее последовательность по два бита

принимаем следующее:
00 заменяем на 0
01 - 10
10 - 110
11 - 111 конкретные значения думаю не важны

итого длинна входящей последовательности 2 * N, где N количество групп
длинна исходящей последовательности N * ( P1 + 2 * P2 + 3 * P3 + 3 * P4 ), где P1 P2 P3 P4 вероятность появления соответсвующих групп
Для получения сжатия, должно выполнятся неравенство: N * ( P1 + 2 * P2 + 3 ( P3 + P4 ) ) < 2 * N
или P1 + 2 * P2 + 3 * ( P3 + P4 ) < 2
для белого шума ( я подозреваю, что для него P1 = P2 = P3 = P4 = 1/4 )
P1 + 2 * P2 + 3 * ( P3 + P4 ) == 9/4 сжатия не получается. То есть, для возможности сжатия, должна иметь место разная вероятность повляения разных последовательностей. Поправте меня, если я неправ. Эту формулу можно развить для 3 и так далее бит ( мне лень ), но интуиция подсказывает, результат будет тот же.
Это касается сжатия без потерь. Для сжатия с потерями, сжимать белый шум наверное можно
Алгоритм: после срабатывания датчика белого шума, записываем в выходной файл идентификатор и длинну. При распаковке просто генерим белый шум, нужной длинны. А какая вам собстно разница, какой белый шум? Чем один, отличается от другого? Генерация белого шума, это правда еще та задачка, но мы можем специальную плату поставлять с нашим разархиватором... Вот значит где поле то непаханное...

37. Diamant, 15.01.2002 10:15
Сейчас появляется новоя тема - сжатие данных на основе фракталов.
говорят, много ожидается от этого!
Что - нибудь знаете об этом?

38. Евгений Машеров, 15.01.2002 10:42

39. Tsykunov, 15.01.2002 10:53
О колмогоровской сложности, белом шуме и хаотичности.

Истинно говорю, Информация абстрактна и нет у двуногих способов узнать ее, ибо они реальны или не существуют.
Что такое Данные?– это часть Информации. Такая, как отрезок – часть прямой. Прямая – абстрактный объект. Отрезок – ближе к реальному. Скажете, что прямая функции x=3 – реальна? Нет. У Вас нет никакой системы координат. Поэтому Вы можете только предположить, что такая прямая существует. Равно как и множество других, что делает для Вас полезность этого предположения близкой к нулю и снижает реальность отрезка. Поэтому Данные тоже абстрактны и непостижимы, как и Информация, но в несколько меньшей степени .
Что такое Система? Это конечный набор Реальных объектов, о котором могут судить двуногие. Система обладает информацией – полными сведениями обо всех ее объектах в некий момент времени (так как она не может не обладать ими, корректнее говорить: Система имеет свойство информация). Эта информация реальна и конечна. Часть этой информации – данные.
Мы всегда пользуемся информацией или данными. Для простой системы мы можем определить информацию, для сложной – пытаемся решить задачу определения информации или стараемся обходиться данными. Что значит обходиться данными? А)выделить необходимую и достаточную часть информации для неких целей. Б) создать систему меньше исходной и найти в ее информацию для использования. В) А и Б вместе. Г) А и Б и В– одно и то же.
Это и есть сжатие. Оно возможно во всех случаях, кроме рассмотрения ИНФОРМАЦИИ ОДНОЙ системы. Одной – так как несколько систем – новая система.
Белый шум и хаотичность – абстрактные понятия. Если некий процесс воспринимается нами как хаотичный, нужно расширить рамки системы и увидеть, где сидит маленькая функция и производит "белый шум". Каждый может придумать пример. Колмогоровская сложность (я пользуюсь определением от IronPeter, увы, пока не знаю других) данных (включая случай данные=информации) большая для одной системы может (должна?) оказаться малой для другой.
. Прошу всех участников темы высказаться по вопросу: верите ли Вы в сжатие?

40. IronPeter, 15.01.2002 11:06
rGlory

Дак то, что вы говорите, это хорошо известный факт. Есть такие "энтропийные" оценки. Но это для конкретного алгоритма сжатия - замене длинных часто встречающихся последовательностей на более короткие.

Tsykunov

Ну это философия... А колмогоровская сложность, малая для одних языков, вполне может оказаться большой для других языков. Более того, для каждой строки существует свой язык (Tzynikov->Z), колмогоровская сложность в котором равна 1.

41. Lionking, 15.01.2002 11:18
IronPeter

цитата:

Естественно, что средняя колмогоровская сложность строки длины N в алфавите A относительно любого формального языка над тем же алфавитом больше N.

Неестественно - зависит от того, какое распределение вероятностей по последовательностям мы имеем. При равномерном - полностью согласен.

42. IronPeter, 15.01.2002 12:09
Lionking

Да, равномерное. А то нелепо получается - среди абсолютно одинаковых строк наводится какая-то дискриминация. Одни более вероятны, чем другие.

43. Diamant, 15.01.2002 12:17
цитата:
Евгений Машеров:
Diamant
http://inls.ucsd.edu/y/Fractals/


usefull
Thanks.


44. Lionking, 15.01.2002 12:23
IronPeter

И что с того ? В реальной жизни оно так и есть.

45. Harkonnen, 15.01.2002 12:54
Tsykunov
Вот мои мысли:

1. Для сжатия данных без потерь действует принцип Дирихле (равномощность множеств при биекции), который был уже упомянут три раза.

2. Для сжатия данных с потерями все зависит от этих самых потреь. Архив может занимать и 0 бит (и давать 10 нулей в выходном потоке). Да, это сжатие иногда вообще без потерь

3. Случай отсыкания функции, создающей последовательность не приведет к искомому (кстати, невозможному по принципу Дирихле) сжатию, т.к. для описания этой функции потребуется некий формальный язык, на котором запись этой функции может занять ОООЧЕНЬ много бит. В случае с шумящим резистрором придется описать как минимум всю солнечную систему, в которой планеты влияют на солнце, солнце влияет на землю, земля влияет на розетки, розетки влияют на блок питания, блок питания влияет на резистор, а резистор влияет на солнечную систему (тут можно остановиться, это влияние не вылезет за разрешение измерений шума резистора ). Т.е. я имею в виду, что кроме данных для функции требутеся и описание самой функции, а это - то же самое, что и Хаффман и LZ и т.д. и т.п, просто у них языки довольно простые (если охота, убогие), если рассматривать входной поток не как данные, а именно как функция, генерирующая последовательность на Huffman/LZ языке.

4. Искать алгоритм, сжимающий что угодно, нет смысла. Есть смысл думать о минимальных потерях в случае увеличивающегося размера данных, но тут все просто: одним битом в начале выходного потока мы указываем язык. Если 0, то это язык идентичности, т.е. просто несжатый входной поток. Если 1, то сжатая информация. Ну и т.д. (языков может быть не 2, а 4, 8, 16, etc...)

5. Ну и последний парадокс, доказывающий невозможность сжатия:
Пусть у нас есть алгоритм, уменьшающий любые входные данные >1 бита минимум на 1 бит. Тогда если мы применим его рекурсивно N раз (по размеру входного потока), то на выходе мы получим 1 бит. Таким образом, любая информация может быть передана всего 1м битом! (теперь я понял, как Pentium III ускоряет интернет с AGP модемом...)

6. Если мыслить философски, то стоит думать не о сжатии информации в данный момент времени, а о взятии ее из другого момента времени. Тогда если мы определим cluster_size как величиу времени (пусть, в секундах), в течении которого искомая информация остается неизменной, то траффик будет зависеть уже не только от bandwidth (пропускной способности), а от величниы: bandwidth / cluster_size, т.е. чем больше кластер, тем меньше бит потребуется для описания временной точки, в которой находится искомая инофрмация. Эту идею можно развить и до времени/пространства, только тогда описание координат кластера будет занимать в разы больше места. Фактически, эта идея и так воплощена в интернете, где все на ссылках (которые - сжатая информация, которая в процессе "разархивации" скачивается). GetRight - не downloader, GetRight - разархиватор!

46. Asclepius, 15.01.2002 13:02
Harkonnen
Пусть у нас есть алгоритм, уменьшающий любые входные данные >1 бита минимум на 1 бит. Тогда если мы применим его рекурсивно N раз (по размеру входного потока), то на выходе мы получим 1 бит. Таким образом, любая информация может быть передана всего 1м битом!

(теперь я понял, как Pentium III ускоряет интернет с AGP модемом...)

2 All
Эта дискуссия по моему не туда заехала и мы всё удаляемся от программирования и приближаемся к математическим аспектам информатики.

Давайте так: НЕТУ архиватора который может сжимать любые файлы из данного алфавита. Проехали

Но, реальные данные обычно имеют много redundancy которую по умному можно использовать, и по этому размышлять о лучших компрессорах не грех.

47. Tsykunov, 15.01.2002 13:29
rGlory
Поспорим! (Если Вы не уточните Вашу аксиому.)
1. Чем бит отличается от байта? Принципиально – ничем. У Вас 1 бит - минимальная единица хранения информации? А если бы были переключатели, способные принимать три значения yes/no/maybe? А четыре? Такой бит уже сжимается? Или это уже байт? Или файл? Шутка, но в ней намек.
2. Если я зарарил файл, то вполне могу считать, что в нем каждый 1 бит сжался до 0,653 бита. Так?
Далее. Формула хорошая, только с оговоркой. Равные вероятности символов означают в данном случае равную вероятность появления строки любой длины только из символов 01 и строки случайной, в классическом понимании. То есть эта формула – математическая абстракция и не имеет права быть распространенной на реальные данные в таком виде. Кроме того, даже в этом виде она верна лишь для непрерывного потока символов. Если Вы передадите мне конечную строку – у неё сразу появятся некие свойства, позволяющие найти алгоритм ее сжатия. Заметьте, я не говорю, что это сжатие будет эффективным для другой строки или вообще (в смысле совокупных издержек).
Вообще, непрерывная последовательность – несуществующая вещь. У нее нет никаких аналогов в материальном мире. Поляризованные лучи света – эта такая летящая колбаса, начинающаяся от сетчатки глаза и заканчивающаяся в дохлых батарейках фонарика .
. О генераторе белого шума. Верно. Обезьяна рано или поздно напечатает на машинке "Книгу Джунглей". Правда, непонятно, как его сделать, ведь белый шум – абстрактен, а плата – материальна. Как бы не пришлось делать много разных плат, чтобы получить разные белые шумы. Уже глупо звучит – "разные белые шумы"? А зашить в плату функцию – красота!
На 6,34 секунде генерит справку, на 56,45 –ой – диссертацию!


Евгений Машеров
1. Lossless only. Это оговаривалось в теме. Сжатие с потерями имеет предел 1 бит по определению.
2. См. мои предыдущие сообщения. В практическом смысле мне не нужен универсальный алгоритм. Как минимум, для сжатия из-под архиваторов. Теоретически я пытаюсь доказать возможность создания алгоритмов сжатия для любой конечной информации. Что означает возможность практического создания некоторых из них. Создав их достаточно, мы получим универсальный алгоритм. И Ваше доказательство неверно, в нем нет никаких граничных условий. Я же на пальцах показал сжатие строки из двух символов! Представьте три шарика на столе. Задача: расположить их так, чтобы они занимали min площадь. Ответ: ввести в систему дополнительный элемент – стержень с основанием и надеть их на него. Вы думали о том, что слово "всех" (строк длиной М-1 меньше, чем строк длиной М - цитата) имеет неограниченное число значений? Дайте мне ВСЕ строки M – я сожму этот набор данных. Дадите не ВСЕ, я выявлю, что отличает все от ВСЕХ. Создать хаотичный поток Вы не сможете, так как Вы реальный объект, а Хаос – абстракция. И не кормите меня бесконечным потоком – его не бывает. И еще: Ваше доказательство опровергает существование любого сжатия, как класса.
3. Не понимаю я ничего в сжатии с потерями. Но скажу одну вещь. Берег ее, как гранату. С точки зрения понятия значения бита – одного из двух возможных состояний чего-либо, современные multimedia форматы – полный бред. Когда некто записывает на винт трехминутную песню размером 5M, он предполагает возможным существование и использование таких песен числом 2^41943040. Возможно ли сжатие?
4. Ни в коем разе. Я уже говорил об этом. Любой рабочий алгоритм сжатия выдает данные, непохожие на те, что он способен сжать. То есть они НЕ случайны.

48. Евгений Машеров, 15.01.2002 14:06
1. ОК
2. Нет. Это доказательство невозможности универсального сжатия. Число всех строк длины М-1 равно 2^M-1. Оно ограничено, но велико. Что именно Вы полагаете под хаосом? Случайный ли процесс или же процесс, описываемый хаотической динамикой? Попршу уточнить.
3. Ваш аргумент совершенно невнятен. Или он уже взорвался?
4. Проверка выхода хорошего алгоритма сжатия тестом на случайность дает картину, весьма похожую на последовательность случайных и равновероятных битов. Ваш же аргумент столь же невнятен.

49. Harkonnen, 15.01.2002 14:40
Tsykunov
Во всех примерах используются переходы через логичность (набор вместо элемента, стержень для объектов и т.п.), но проблема в том, что все эти переходы берутся из человеческой логики. Если жать на ее основе, то получится самый лучший компрессор для человеческих нужд. Типа картина: зеленое дерево + трава, звук: Trance, 180BMP, программа: делает то-то, то-то. Но если абстрагироваться от человеческого мышления, то появятся такие ситуации, которые методом человеческих привычек будут записаны гораздо длинее, чем тем же RAR-ом.

Добавление от 15-01-2002 14:43:

P.S: В этих 6ти строках я заархивировал 3Gb кода (или сколько там) архиватора, который бы так работал. И так получилось только потому, что формальный язык мышления людей способен эту информацию разархивировать с бешенным уровнем компрессии.

50. Vladimir Rybinkin, 15.01.2002 14:53
Tsykunov
цитата:
Теоретически я пытаюсь доказать возможность создания алгоритмов сжатия для любой конечной информации
Это вряд ли . Я заметил любопытную особенность: архивы (всякие там rar, arj, ... )сжимаются хуже, чем, скажем, txt. Более того, когда я перевожу БД из реляционного формата в сетевой, она обычно сжимается РАЗ в 20. А архивы отличаются ПРОЦЕНТОВ на 20. Для меня очевидно, что существует предел сжатия без потерь. И не надо никаких доказательствх

51. Tsykunov, 15.01.2002 16:59
2All
Как автор темы, позволю себе высказать пожелание к характеру нашей беседы. Большая просьба: если выдвигаете идею, противоречащую высказанной другим (мной), не только доказывайте ее (это есть), но и опровергайте чужое (мое) доказательство (а это не всегда). Please!


IronPeter
Уточните насчет философии. Я пытаюсь неформальным языком описывать формальные понятия, из-за слабой математической подготовки, поэтому похоже на философию. А Ваша фраза неинформативна. Вы имели в виду, что согласны или нет?
А по поводу колм.сл. Ваше заявление надо понимать как согласие с тем, что колм.сл. не есть определяющий параметр возможности сжатия, так как мы вольны в выборе языка для некого набора строк?

Harkonnen
1. Можно поподробнее, а то я не владею?
2. Совсем не владею и молчу.
3. То есть в принципе Вы со мной согласны! Все дело в издержках (я еще обзывал их служебной инф-цией).Пусть функция займет ОООЧЕНЬ много бит, она будет эффективна для сжатия 10* ОООЧЕНЬ много бит[овых] данных.
4. Так и я том же. Такой алгоритм, как и "что угодно" существует лишь в абстрактном поле. Примем, что любые реальные данные можно сжать, если найти алгоритм с приемлемым издержками. OK?
5. Ну, снова парадокс. L Это шутка? Меня еще раньше оскорбила фраза о том, что некие данные не подлежат сжатию, так как у них какая-то то там энтропия. Ставят систему в противоестественную позу и говорят "все, уже не разогнется". Где в этом "парадоксе" издержки сжатия? Они должны накапливаться, чтобы обеспечить затем декомпрессию! Если их не выкидывать из "парадокса", то на определенном этапе они превысят выгоду от сжатия, а дальше сжимай до одного бита, коли охота.
6. Браво! Превосходный пример перераспределения издержек в системе! Дал юзеру URL на 10Gb файл, и вот, с одной из точек зрения, рекорд мира по сжатию. Я додумался в этом роде лишь до примитивного перекидывания пары десятков байт из файла в FAT . А как Вам это? – Пусть, я написал итерационный алгоритм сжатия. За тысячу итераций он сжал файл N вдвое, создав при этом издержек ~1000*(N+N/2)/2. Ведь каждая предварительная ступень существовала (будет существовать при декомпрессии)! Эти издержки перекладываются на ресурс "время"!

Asclepius
Дискуссия – Rulez!
Не согласен с Вашим НЕТУ, так как НЕТУ "любых" файлов, а об алфавите можно в данном контексте вообще не вспоминать. Доказательства выше.
Redundancy данные, конечно, много имеют, но и это не определяющий параметр. Пример: файл без единого избыточного бита на ура жмется, если имеешь сотню таких одинаковых файлов в наборе данных.

52. Asclepius, 15.01.2002 17:11
Tsykunov
Пример: файл без единого избыточного бита на ура жмется, если имеешь сотню таких одинаковых файлов в наборе данных.

Странное заявление... Под файлом естественно подразумевается то что надо сжимать, а то так всегда можно отменить избыточность

53. IronPeter, 15.01.2002 17:37
Tsykunov

Так ежели мы язык выбираем для сжатия, мы так и должны указать в преамбуле - "мол, был выбран способ сжатия N 1203". Для начало должно быть зафиксировано множество способов сжатия. То есть свой формальный язык, описывающий способы сжатия. И пользоваться мы будем этим новым формальным языком, к которому применимы все теоремы о невозможности сжатия. Так что фундаментальное ограничение не обойти.

54. Lionking, 15.01.2002 18:58
Tsykunov

По идее при определении колмогоровской сложности язык должен фиксироваться (скажем. машина Тьюринга) - другое дело, что изменение языка приведет к несущественным изменениям в мере типа констант и множителей, так что все рассуждения обычно применимы к любому языку. Но изменять его в процессе кодирования, естественно, нельзя.

55. Konstantin Mironovich, 15.01.2002 19:38
Tsykunov
результат лучшего известного мне сжатия выглядел так:
veni vidi vici

56. Kantor Ilia, 15.01.2002 20:08
Значить так: есть такая штука - энтропия текста. У естественных языков - большая, у программного кода - меньше, у сжатых текстов - еще меньше.

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

Не очень сложный топик, интересно - RTFM.

Добавление от 15-01-2002 20:14:

Имеется в виду сжатие _одним_ алгоритмом для _всех_ файлов. Да и еще Энтропия характеризует сжимаемость текста довольно эмпирически, произвольный алгоритм сжатия сожмет текст с меньшей энтропией с меньшей вероятностью, нежели текст с большей. Так я это понимаю.

57. IronPeter, 15.01.2002 20:27
Kantor Ilia

Нет у текста никакой энтропии. Энтропия есть у вероятностной меры на пространстве строк.

58. rGlory, 15.01.2002 21:13
Tsykunov
А если бы были переключатели, способные принимать три значения yes/no/maybe? А четыре?
А при чем тут переключатель? Мой кошелек хранит деньги, если сделать кошелек стеклянным, заничт деньги бывают стеклянные? Здесь уже была дискуссия по поводу третичных битов, полторичных битов и иже с ними. Вы сначала опишите, что это такое, может математику новую откроете. Но пока имеем данное - бит.

IronPeter
Но это для конкретного алгоритма сжатия - замене длинных часто встречающихся последовательностей на более короткие.
А какие еще бывают алгоритмы сжатия? Поделитесь плиз.

59. Overdream, 15.01.2002 21:24
Во! Так вы тут горячо обсуждаете компрешн...
http://forum.ixbt.com/0026/010633.html
Вдруг специалисты по компрешану изволят помочь...


60. Евгений Машеров, 15.01.2002 21:30
rGlory
Многозначная логика разработана достаточно, но никакого вклада в сжатие она не вносит. И не внесет. Изменение основания логарифма в формуле энтропии меняет только постоянный множитель. Впрочем, помимо теоретического анализа -строились и машины на троичной логике - "Сетунь", "Сетунь-70" и экспериментальные.
Tsykunov
Еще раз. Универсальный алгоритм сжатия невозможен, потому что сжатых последовательностей будет меньше, чем несжатых. Иначе говоря, будет существовать такая сжатая последовательность, которая была получена из разных несжатых. Восстановление при этом, очевидно, невозможно.

61. Overdream, 15.01.2002 23:11
"Рвем рубаху нагруди в жарком споре..."
вот забавно - разговор на 4-ый лист, а еще никто не замолвил слово за эргодичность
Это в духе нашего времени...


62. YAL, 16.01.2002 00:42
Простите меня за грубость - я вклинюсь в ваш высокий спор с великим китайским вопросом "а на хуа". Я понимаю, что информации мало не бывает, а носителей не хватает... Но с каждым годом объемы дисков увеличиваются в 2x, память дешевеет и процессоры ускоряются. (Если речь не идёт об управлении крылатыми ракетами или спутниками....) Но по прежнему остаётся (и будет долго оставаться) проблема сжатия при передаче данных, а ведь об этом не сказано ни слова! Вот пример - страница, которую я сейчас смотрю состоит из N слов словаря из M+(новояз, слэнг, ошибки) слов. У меня платный инет:-( и я плачу K $ за каждое прочитанное слово. Итак я бы пожертвовал бы многим, если бы словарь размещался у меня локально, а страница ЭЛЕМЕНТАРНО сжималась при передаче! Сговор провайдеров или отсутсвие идей? А компрессия изображений на основе shared словарей - соответсвующий формат файлов - где всё это? А звук, а видео? Я понимаю что всё это лишь малое подмножество некой великой идеи компрессии данных - но это реалии жизни...

63. Hlad, 16.01.2002 00:58
Я конечно в вопросе не особо разбираюсь, но хочу сказать, что все вы забыли одну вещь: параметры сжимающего алгоритма. Архиватор может сжимать в 1000000 раз, но иметь размер в 10 гигабайт.

64. AleX_SPb, 16.01.2002 07:23
YAL Хоть вопрос и не по теме... Существует "принцип разумной достаточности".
Инет это СЕТЬ. Задача сети - передача данных в целости и сохранности. Не важно каких...

Обычно, оплата инета производится по времени, а не по объему.
Закачка страницы занимает 10 сек., прочтение - пару минут.
1. Какой смысл ее сжимать?
2. Есть проги, реализующие упреждающее кэширование - просматривают ссылки и закачивают страницы, пока юзер читает закачанную.

Звук, видео и картинки в сети существуют в виде mp3, mpg (или avi), jpg (или gif) и пр - они уже сжаты, причем в соответствии с контекстом. А вот wav или bmp я что-то не встречал (кроме особо оговоренных случаев).

Не нравятся рекламные баннеры - поставьте AtGuard'а и расслабьтесь.

65. Tsykunov, 16.01.2002 07:37
Евгений Машеров
2. Не знаю, что такое хаотическая динамика. Поэтому считайте процесс случайным или хаот. дин. как Вам выгодно в каждом случае. Понимаете, Ваше доказательство имеет силу только в абстрактной математической системе. Реальные данные находятся в другой системе. АБСТРАКТНОГО универсального алгоритма в Вашей системе действительно не существует. Я же сказал, что прореха в доказательстве в слове "все". Оно предполагает бесконечный поток – чистая абстракция. Реально, Вы всегда можете передать мне только конечный набор данных. А для него существует некий алгоритм сжатия. Дайте мне другой – я найду другой алгоритм. Ваше доказательство говорит: если первый алгоритм сжимает первый набор, то он не сожмет второй. Мы уже толчем воду в ступе. Поэтому, пожалуйста, прежде чем продолжать опровергните мое доказательство: Дайте мне ВСЕ строки M – я сожму этот набор данных. Дадите не ВСЕ, я выявлю, что отличает все от ВСЕХ. и сожму.
3. Беру свою гранату обратно – это offtopic. Потом, может быть, вернемся.
4. А какой у Вас тест на случайность? Подозреваю, что это проверка шенноновской энтропии. IMHO, мы ее дезавуировали уже. Еще раз объясняю на пальцах. Все наборы данных из выходного потока архиватора обладают ОБЩИМ СВОЙСТВОМ. Что есть общее свойство? Например, если все наборы данных начинаются с бита 1. Это дает повод сжать каждый из них на один бит. Если алгоритм сжатия осуществляет RLE, в выходном потоке НЕ будет длинных монотонных последовательностей. Это будет общим свойством наборов данных из такого потока. Такое свойство позволит использовать сжатие на основе предположения о низкой вероятности встречи последовательности. Напишите программку, анализирующую файл по количеству и распределению символов для нескольких алфавитов, прогоните через нее несколько архивов и увидите закономерности. Я так делал.


Harkonnen
Какие переходы через логичность?! Пример о шариках – это аллегория, о том, что мы вольны выбирать систему для данных в каждом конкретном случае из соображений выгоды, лишь бы информация не пропадала. (offtopic – за одним столом я бы показал Вам, как две вилки и спичка занимают площадь=сечению спички). Набор вместо элемента… Никто не обязывает меня придерживаться одного алфавита для рассмотрения данных. Давайте условимся, бит, байт, файл, набор данных – это число в двоичном виде, которое я могу разложить на что угодно и соединить с чем угодно, если смогу восстановить.
К Вашему P.S.
Really?!! I can't believe it!!! Oh, yeah, yeah, of course… But, if you are so clever, show me your decompresser!
А если покажете, я не сомневаюсь, он будет весьма эффективным, даже если будет размером 3 Tb. Я считаю это реальным, но не сегодня.
Контрольный выстрел в Ваш "парадокс". Алгоритм по Вашему рецепту. Сжимает монохромный рисунок (1 бит-1 пиксель): если два соседних бита 0, пишу в первый (для preview) выходной поток 0, иначе 1 и уточняю во второй поток (для lossless). Если нужен lossless, во втором потоке собираются издержки, которые позволяют рекурсивно сжать лишь до определенного предела, зависящего от исходного рисунка (сканированный текст – вполне реально). Если отбросить второй поток – издержки достигают предела в читаемости.
Теперь вопрос. Я сжал два участка рисунка lossless до одного бита 0 каждый. Как я их отличу? По вхождению, конечно. Каждый бит РЕАЛЬНЫХ данных имеет две характеристики – значение и вхождение. (то же байт, файл…) В некоторых случаях я могу менять их местами. В абстрактных данных вхождение туманно. Возьмите реальную шахматную доску, на ней 32 РАЗНЫХ черных клетки. Давайте крикнем: данные на 103-4005 кластерах винчестера нельзя сжать. Конечно, нельзя. Что характерно, это справедливо и для WD, и для IBM, и для Вашего винта и для моего. Потому что это абстрактные данные и не обладают вхождением.

Vladimir Rybinkin
Неконструктивно.

Asclepius
Термин "избыточность" существует только в системе с архиватором. Для Imageviewer в bmp нет никакой избыточности. Для системы НЕИЗБЫТОЧНЫЕ ДАННЫЕ-АРХИВАТОР (1) "избыточность" одна, но можно подобрать систему ДРУГИЕ ДАННЫЕ (ВКЛЮЧАЯ ИСХОДНЫЕ)-АРХИВАТОР(2) или ТЕ ЖЕ ДАННЫЕ-ДРУГОЙ АРХИВАТОР, где "избыточность" другая. Термин "избыточность" не отменяется, но он не абсолютен, а относителен.

P.S. Пример. Сжимаю некоторым архиватором 1000 файлов до размера N (система 1). Вы пишете алгоритм, который подсовывает этому архиватору файлы в оптимизированном для него порядке (система 2). И получаете размер M<N и L денег впридачу (поделитесь)

IronPeter
И пользоваться мы будем этим новым формальным языком, к которому применимы все теоремы о невозможности сжатия.
Все теоремы о невозможности сжатия применимы только на собственных диапазонах. Новый язык будет иметь свои "невозможности". А использовать надо возможности.
Скажите, если написать алгоритм (на новом языке), сжимающий nnn.rar на 20%, - это будет обходом фундаментальных ограничений?

Lionking
Для системы ДАННЫЕ-АРХИВАТОР нет констант, множителей, они есть для приложений, форматов данных…А почему нельзя изменять язык в процессе кодирования (это - сжатия?)?
Пол-файла кодируют на Huffman-языке, другую на LZ-языке сейчас. Или я не понял Вашу мысль?

Kantor Ilia
Да не характеризует энтропия возможность сжимаемости! Дано: алфавит a,b,c,d, набор данных cdab. Найти энтропию и сжать. Сами же признаете, что эмпирически, читай приблизительно, читай вообще никак.

rGlory
Take it easy. It was the joke. По остальным пунктам возражений у Вас нет. Жму руку.

Евгений
Универсального алгоритма нет и Зенон не догонит черепаху.
ВАШ универсальный алгоритм – абстракция. У меня локальный алгоритм, который может сжать определенные реальные данные. Попробуйте прикрутить мое заявление о вхождении и значении бита (см. выше) к Вашему невозможному унив. алгоритму. Я способен получить одинаковые короткие строки из разных длинных, так как они не есть одинаковые, а имеют одно значение.

Overdream
Расскажите, пожалуйста, по эргодичность.

YAL
Верно. И Вы можете это написать. Но Вам понадобится мастерство не программирования, а маркетинга, чтобы протолкнуть эти форматы. Трудно это будет сделать потому, что даже неоптимизированная текстовая информация мала в сравнении с multimedia. И мало кто считает это серьезной проблемой. Идеи общеизвестны, IMHO, и они локально применяются. В статичном алфавите все слова русского, например, языка, кодированные в нем как символы будут иметь размер, скажем 18 бит. Используя динамичный алфавит (не бывает "мультиканального скотча") можно сократить в среднем до 12-15. Возьмите соотношения понятий за символы и будете кодировать фразу несколькими символами. Этот подход можно применить и multimedia, но там несколько круче все. А вообще, это offtopic.
Кстати всем простите за глупый вопрос (серые мы), анимационный файл больше в векторной графике (до ренд.) или в растре?

Hlad
Я этого не забыл и называю его издержками сжатия. Пусть 10 Gb. Сожмем им 10 Tb на 10% и получим эффект.

66. Ahf, 16.01.2002 07:58
на Кулере (http://cooler.irk.ru/) сегодня прочитал:
Компания ZeoSync (http://www.zeosync.com/) заявляет, что ее математики вплотную подобрались к алгоритму сжатия цифровой информации, который позволит сократить исходный размер в 100 раз _без потерь_. "Вплотную подобралась" - это означает, что команда ученых успешно опробовала алгоритм на небольшом файле. Файл содержал случайный набор символов (т.е. избыточности по определению вроде как уже не должно быть!).

67. Евгений Машеров, 16.01.2002 09:27
Tsykunov
Вы даже не заметили, что в моем рассуждении не говорится о бесконечных последовательностях? И меня создается впечатление, что Вы спорите с неким абстрактным противником, не слушая аргументов реальных оппонентов...
Впрочем, если Вас не убеждают абстрактные рассуждения - попробуйте посмотреть, как меняется длина файла при сжатии его последовательно разными архиваторами. Рано или поздно она начнет расти.
Какой тест на случайность? Нет, не только энтропия. Перечислю часть:
Хи-квадрат, Колмогоров-Смирнов, Омега-квадрат (закон распределения), автокорреляция, покер-тест, "тест собирателя купонов", спектр (взаимозависимость символов) и некоторые другие.


Ahf
Что-то очень похоже на раскрутку инвесторов...

68. Alexzander, 16.01.2002 09:27
цитата:
Harkonnen:
P.S: В этих 6ти строках я заархивировал 3Gb кода (или сколько там) архиватора, который бы так работал. И так получилось только потому, что формальный язык мышления людей способен эту информацию разархивировать с бешенным уровнем компрессии.

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

Результат таков - сколько людей, столько и языков программирования, столько же методов, столько же и результатов (выходных данных). Значит, либо заархивированно было с потерями (которые заполняются каждым лично в меру своих способностей), либо архив правильный, да только разархиватор у каждого свой - все равно что некий архив *.archive разархивируют раром, зипом и пр. и в каждом случае получают некий разумный результат.

2 ALL:
Как вам кажется, в чем отличие между архивированием и кодированием? Ведь определенными методами можно закодировать сообщение произвольной длины сообщением короче исходного в десятки, сотни и более раз. Это - архивирование? Грубо говоря, архиватор сам по себе имеет некую длину (размер) и говоря о том, что сообщение сжалось в [х] раз, мы забываем прибавлять к сообщению еще и длину самого архиватора - того набора алгоритмов, функций и пр., что нет надобности передавать вместе с сообщением, но без которого ценность информации - 0. Мы всего лишь кодируем сообщение, без возможности раскодировать его.

И еще. Доказательство о пределе сжатия данных. Аксиома: сжатие без потерь предпологает, что каждому исходному сообщению соответствует одно единственное сжатое сообщение, и каждому сжатому сообщению соответствует одно единственное несжатое сообщение. Допустим мы имеем возможность сжать любое сообщение любой длины до одного байта. Мы знаем, что уникальных, или неповторимо разнообразных, сообщений может быть бесконечно много. Значит и сжатых сообщений тоже бесконечно много. Соответственно сжатие до одного байта противоречит аксиоме. Соответственно предел сжатия находится выше одного байта всегда! минимум - два байта (первый номер функции в библиотеке функций архиватора, второй - базовое значение, по которому эта функция выдает поток данных полностью идентичный исходному сообщению).

Как вам? (сорри, если напостил глупости, я не математик и даже не программист... я больше философ)

69. Tsykunov, 16.01.2002 10:12
Ahf
Слышал. Не они первые об этом заявляют. Я так понимаю, если программный код состоит из реализаций алгоритма и интерфейса, то сделать продукт при готовом алгоритме очень просто. Где продукт? Или это демонстрация намерений с целью урвать инвестиций? Вообще, лучший способ проверить - сходить в US Patent and Trademark Office www.uspto.org или на зеркало какое поудобнее и посмотреть, что они конкретно запатентовали. Сходите, подЕлитесь.
А кто-то ведь действительно напишет такое........

70. Vladimir Rybinkin, 16.01.2002 10:47
YAL
цитата:
У меня платный инет:-( и я плачу K $ за каждое прочитанное слово
А те, от которых зависит величина траффика, эти деньги ПОЛУЧАЮТ. ИМХО, траффик при желании давно можно было уменьшить раз в 10.

Tsykunov

цитата:
Напишите программку, анализирующую файл по количеству и распределению символов для нескольких алфавитов, прогоните через нее несколько архивов и увидите закономерности. Я так делал.
Я тоже (совсем для других целей). Жмет действительно неплохо (и "бесплатно" ).
цитата:
Неконструктивно
Согласен, пора конструктивно. Где продукт? Или это демонстрация намерений с целью урвать инвестиций? . Сколько существует алгоритмов архивации (работающих, с Вашей точки зрения, т.е. достойных попасть в архиватор)? Как дробить сжимаемую информацию между алгоритмами? На сколько ожидается среднее увеличение сжатия и замедление работы архиватора по сравнению с существующими? Какой сервис должен быть?
цитата:
Но Вам понадобится мастерство не программирования, а маркетинга, чтобы протолкнуть эти форматы
Верно и для архиватора (даже супер).

71. Lionking, 16.01.2002 11:30
Tsykunov

Хаффман и LZ - это не языки, а форматы; я имел в виду язык, который их описывает (в колмогоровской сложности фигурирует алгоритм, создающий данный файл - по сути дела self-extract архив - так вот язык, на которой этот алгоритм написан, фиксирован; дальше уже можно на нем реализовывать свои языки и методы - ценой увеличения архива на длину соответствующего кода).

Hlad

В колмогоровскую сложность размер распаковщика входит, так что никто про него не забывает.

Overdream

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

72. IronPeter, 16.01.2002 11:35
rGlory

Какие еще бывают алгоритмы? Хм... То, что язык состоит из одинаковых слов, которые можно кодировать другими словами - это одна абстракция. Вторая абстракция - числовые данные, которые мало меняются по времени. То есть каждый предыдущий символ отличается от последующего в среднем ненамного. Тоже можно сжимать регулярным образом.

Tsykunov

Скажите, если написать алгоритм (на новом языке), сжимающий nnn.rar на 20%, - это будет обходом фундаментальных ограничений?

Нет. Я могу сжать один конкретный файл nnn.rar до одного бита, загнав этот файл в текст разархиватора.
Нельзя сжать все *.rar файлы.

Я не против сжатия естественных данных. Скажем, mp3 файлов. Скажу почему. Думаю, что вполне можно сжимать звук (с потерями), основываясь на особенностях человеческого уха и строении Ровно так, как для кодирования изображения достаточно RGB данных, хотя длина волны в видимом диапазоне меняется непрерывно.


73. Enot, 16.01.2002 12:17
IronPeter
Нет. Я могу сжать один конкретный файл nnn.rar до одного бита, загнав этот файл в текст разархиватора.
Нельзя сжать все *.rar файлы.

Тогда, по тем же причинам, можно и RLE пользоваться. Речь идет не о сжатии всех-всех-всех, а о хорошем сжатии...эээ....в среднем, что ли.

Почему-то же мы считаем RAR "хорошим" архиватором. Потому что он на одних и тех же наборах данных дает результаты не хуже, чем тот же Zip.

74. Harkonnen, 16.01.2002 12:41
Alexzander
Об этом я и говорю, что для детерминированности выбранного алгоритма потребуется мегабитный ID.

Tsykunov
Я объясню, почему бесполезно жать. В мире той информации, в которой мы сейчас живем (.gif, .exe, .jpg, .cpp, etc...) RAR в 99.99% случаев информацию уменьшает хотя бы на байт, т.е. допускает биективное (i.e. без потерь и взаимооднозначное)сжатие, но мощность множества архивов в разы меньше мощности множества всех возможных битовых последовательностей (при этом оставаясь ПРАКТИЧЕСКИ РАВНОЙ мощности той информации, которая полезна людям, пользующимся RAR-ом). Но так как множество всех архивов строилось именно исходя из наименьшего их объема, "запас" до множества всех RAR-архивов достаоочно невелик (я полагаю, порядка 1% от теоритического минимума и 0.01% от практического). Так что если RAR и будет заархивирован, это не будет стоить того времени и усилий. Гораздо логичнее сам RAR оптимизировать, так как в нем уже есть логика, распознающая "бытовые" последовательноси бит, и ее гораздо проще дополнять изнутри, чем влиять снаружи.

75. Overdream, 16.01.2002 12:43
Tsykunov
Расскажите, пожалуйста, по эргодичность.
идем на yandex.ru и по слову "эргодичность" и получаем ответы на все беспокоящие вопросы.

Lionking
Всяческие разговоры про эргодичность, энтропию и т.д. применимы к множеству файлов
Не правда.
У меня остался осадок, что фраза не закончена...

76. Lionking, 16.01.2002 13:37
Overdream

Само понятие эргодичности включает усреднение. Если у нас есть конкретный экземпляр - нет никакого усреднения и никаких вероятностей.

77. ExtraLamer, 16.01.2002 13:55
Harkonnen
...
кроме данных для функции требутеся и описание самой функции
....
В этих 6ти строках я заархивировал 3Gb кода (или сколько там) архиватора, который бы так работал. И так получилось только потому, что формальный язык мышления людей способен эту информацию разархивировать с бешенным уровнем компрессии.

Теперь мой пример
Всю эту ветку конференции я могу переслать в "сжатом" виде другу просто как
http://forum.ixbt.com/0026/010613.html и он ее "распакует"

Так вот вопрос
Уважаемые участники дискуссиии, а не вспомнить ли философов древности и не опредилить ИМХО основноную причину спора
ЧТО ТАКОЕ СЖАТИЕ?

пояснение: ИМХО любой архиватор получает на входе последовательность байт и дает другую на выходе, но к конечной последовательности следует прицепить алгоритм распаковки, что в сумме может дать совсем не уменьшение длины а увеличение.
А что такое алгоритм распаковки? - после-сть инструкций для процессора? А что такое процессор и ....
получаеться выходную "сжатую" последовательность надо рассматривать вкупе со всем миром.
Так ИМХО у каждого понимание "СЖАТИЕ" свое.

78. Lionking, 16.01.2002 15:08
ExtraLamer

На процессоре можно остановиться - сказать, скажем, что это машина Тьюринга.

79. Витька, 16.01.2002 21:27
Внесу свою лепту, с точки зрения теории . Фокусы с сетью и скрытием информации не рассматриваю.

Легко представить архиватор, сжимающий любой существующий файл до восьми байт. Таких файлов гораздо меньше, чем 1e19. Достаточно поместить в него их все, а в архив – порядковый номер. Однако, как правило, это не практично и бесперспективно.

Рассмотрим самораспаковывающиеся архивы (sfx). Очевидно, что в этом случае предел сжатия данных существует. Достаточно (наплевав на теорему (аксиому) Черча (Тьюринга)) перебрать все sfx начиная с самого маленького. Этот предел зависит от процессора и OS, для которых создаётся sfx. Впрочем, переход от одного варианта, к другому может изменить размер архива не более, чем на соответствующую константу, независящую от размера и вида архивируемого файла. Ведь всегда возможен фиксированного размера интерпретатор первого варианта (процессор, ОS) на втором. Эта добавка (константа), конечно может быть весьма велика, особенно, если второй вариант реализует сжатие до восьми байт из предыдущего примера, однако, для реальных случаев – она мала.

Обычно, рассматриваются варианты сжатия с потерей или без потери. На мой взгляд, для картинок, видео, аудио – более эффективны варианты с приобретением. То есть, когда устраняются шумы, и используется известная информация об отображаемых объекта. Музыка -> ноты, музыкант и пр.; Видео -> артисты, сценарий. Шумы можно подмешивать на этапе распаковки. Никто и не заметит.

80. Tsykunov, 17.01.2002 09:04
Нет скоростей выше Скорости Света, и Мухаммед – пророк Его.
Уважаемые Евгений Машеров и другие приверженцы теорий невозможности!
И меня создается впечатление, что Вы спорите с неким абстрактным противником, не слушая аргументов реальных оппонентов...
Согласен, у меня тоже. Мы с Вами играем на разных полях, Вы на "Эйнштейне", я на "Ньютоне". Я забиваю Вам гол, а Вы этого даже не замечаете. Перейдите на мое поле и забейте гол мне!
..
универсального алгоритма сжатия не может существовать. Положим, что таковой есть, сжимающий строку в М бит в строку длиной не более М-1 бит. Но всех строк длиной М-1 меньше, чем строк длиной М (доказывается суммированием геометрической прогрессии). Следовательно, существует образ, у которого не менее двух прообразов, то есть такой сжатый сигнал, по которому исходный не восстанавливается
НЕ ПРАВИЛЬНО.
Вы исходите из того, что число N строк M-1 зависит от M-1, то есть от длины строки в битах N=2^(M-1). Я говорю, что N(M-1)<>2^(M-1). Доказываю. N(M)=2^M (c этим согласны?). Каждый бит в M увеличивает N(M) вдвое. Каждый бит в M-1 увеличивает N(M-1) более чем вдвое. Иначе говоря, каждый реальный бит (в предыдущем предложении – формальный) имеет в строке M-1 размер (длину) меньше 1.
Слышу, слышу Ваше негодование. Не удивляйтесь, именно так выглядит Ваша теорема на моем поле. Доказываю.
Все строки M при M=2 - 00, 01, 10, 11.
Передайте мне набор данных, состоящий из всех строк M. Например, 10,00,01,11.
Сжимаю - 01100. Это 5 формальных бит или 8 реальных. (здесь M-1 означает просто >M)
Если Вы передадите мне набор данных 10,00,10,11, я не смогу сжать ее тем же алгоритмом, но Вы НЕ передали мне ВСЕ строки M! Где строка 01?
Если Вы передадите мне кроме набора данных 10,00,01,11 еще строку, например 10, Вы снова нарушите свои же условия и я не смогу применить мой алгоритм по объективной причине. Цитирую: Вы даже не заметили, что в моем рассуждении не говорится о бесконечных последовательностях?. В Вашем рассуждении – бесконечные последовательности – граничные условия, а Вы их просто не замечаете. Они не переносятся на поле моей теории, поэтому Ваша теория ошибочна на моем поле и верна на Вашем. (Поэтому Вы и проигнорировали мою просьбу опровергнуть мои доказательства – Вы отвергли их без рассмотрения.) Дальше мне остается только цитировать самого себя, это глупо.
Добавлю, что моя теория верна при любом М>2 (это очевидно?), и при некоторых М появляется интервал, в котором слегка модифицированный алгоритм сжатия эффективен и при нарушении условия передачи ВСЕХ строк.


Alexzander
цитата из Harkonnen:В этих 6ти строках я заархивировал….. формальный язык мышления людей…
Здесь архив, состоящий из 6 строк, представлен именно в формализованном виде. А язык мышления людей – он же разархиватор, нельзя считать формальным, пока он не представлен в формализованном виде. Вполне возможно, что он формален и будет когда-то формализован, но сегодня это не так. Поэтому 6 строк – не архив, так как нет формального разархиватора. IMHO, это не ошибка Harkonnen, а аллегория. Вы же правы в своих рассуждениях, но удалились от темы на IMHO некую дистанцию.
мы забываем прибавлять к сообщению Никто ничего не забывает, читайте выше.
Ваше доказательство точно такое же, как и другие. С его помощью можно доказать, что RAR – это фантом, фикция, профанация, обман публики – им ничего нельзя сжать.
Вы напостили не глупости, а общепризнанную теорию.
А я вот точно напостил не общепризнанную теорию. Выясняем, глупости ли это.
Vladimir Rybinkin
Жмет действительно неплохо
А вы сжимали архивы или другие данные? Мне интересно.
Согласен, пора конструктивно. Где продукт? Или это демонстрация намерений с целью урвать инвестиций?
Увы и ах! Нет у меня алгоритма. Если бы был, я не пришел бы сюда узнать у умных людей как мне жить дальше, я сидел бы в лавке и продавал продукт. А урвать хочу знаний, если хотите.
понадобится мастерство маркетинга…Верно и для архиватора
Нет. Если написать алгоритм на 5% эффективнее среднего уровня, с ним можно войти на рынок, за 20% есть хорошие шансы стать лидером рынка, а за 50% - будешь Виндом, Юниксом и святым досом в одном лице за месяц. Маркетинг понадобится, если захочешь срубить не капусты, а Очень Много капусты.

IronPeter и Lionking
Ага, кажется, я понял, наконец, Ваши мысли о языках и К.сложности. Благодарю за терпение. Это значит, что любое мое телодвижение имеет некий первоосновной язык, и, что бы я не сделал, я никуда не уйду от К.сложности, созданной этим языком. Так? Мне нужно это осмыслить. А пока ламерские вопросы. Как в таком случае осуществляются арифметические операции с К.сл.? У меня два набора данных, где К.сл.1>>K.сл.2. Объединяю. Чему равна общая К.сл.? У меня набор данных с большой К.сл. Неким методом разбиваю его на два так, что хотя бы для одного из них она мала. Я не обошел фундаментальных ограничений?

IronPeter
алгоритм (на новом языке), сжимающий nnn.rar на 20%,
Вы же прекрасно понимаете, что я имел в виду эффективное сжатие, где суммарные издержки + сжатый общий объем файлов (файла) на ~20% меньше несжатого общего объема. То же сказал Enot. Повторяю вопрос в этом контексте. Это будет обходом фундаментальных ограничений?
Harkonnen
почему бесполезно жать Простите, не понял. Пытаюсь понять.
если RAR и будет заархивирован, это не будет стоить того времени и усилий. Гораздо логичнее сам RAR оптимизировать
конечно, но в метафизическом смысле это одно и то же.
Overdream
идем на yandex.ru и по слову "эргодичность"…
Спасибо, за ценный совет. Не могли бы представить свою точку зрения на проблему в рамках темы? Или за Вас уже все сказал Lionking ?
ExtraLamer
` мой пример Всю эту ветку конференции я могу переслать в "сжатом" виде другу просто как http://forum.ixbt.com/0026/010613.html и он ее "распакует"
об этом уже сказал Harkonnen. Это перераспределение издержек, а не архивация. Вы не юзаете Excel с удаленного сервера, так как в этом случае издержки Вас не устраивают.
Не умножайте сущностей, архиватор и разархиватор – черные ящики.
Витька
для реальных случаев
Вот Вы IMHO разделяете данные на реальные и теоретические (абстрактные). Вы со мной. Я тоже не знаю, где предел сжатия, выраженный числом, но вижу его много дальше существующего.
На мой взгляд, для картинок, видео, аудио – более эффективны варианты с приобретением Согласен, нам почти всегда безразлично, на каком стуле сидит герой. Представьте, какие веселые будут баги в такой системе. На стене кабинета директора ЦРУ – портрет Дзержинского. ))
Я вышел из темы. Из-за Вас.
Евгений Машеров
Какой тест на случайность? Нет, не только энтропия. Перечислю часть:
Хи-квадрат, Колмогоров-Смирнов, Омега-квадрат (закон распределения), автокорреляция, покер-тест, "тест собирателя купонов", спектр (взаимозависимость символов) и некоторые другие

Внушает. Благодарю за информацию.
..
Ламерский вопрос. Случайность абсолютный показатель или относительный? На одном наборе данных посчитайте случайность по всем этим формулам. Она у Вас разная получилась? Какой из тестов равнее других? Чтобы мы смогли сказать: 3,75 "купона" – граница сжимаемости для любого набора данных. И ответим на вопрос темы.
длина файла при сжатии его последовательно разными архиваторами. Рано или поздно она начнет расти.
Для меня этот процесс очевиден, и он IMHO аргумент в мою пользу.

81. Евгений Машеров, 17.01.2002 09:36
Tsykunov
1. Боюсь, что Ваше доказательство - набор слов. Судя по всему, Вы рассматриваете задачу, не имеющую ничего общего с реальным сжатием.
Для него алгоритма, всегда сжимающего без потерь, не существует.
2. Каков Ваш опыт работы с реальными архиваторами? Насколько я знаю, многие начинают с идеи комбинировать несколько архиваторов, дабы получить суперсжатие - и после первых же опытов просвещаются. Неужели Вы обошли этот этап?
3. 20% выигрыш при сжатии РАР - это Ваш реальный результат? Тогда снимаю шляпу. Или все же фантазии?
4. 5% разница в степени сжатия - да и большая - наблюдается у многих промышленных архиваторов. Она не определяет их успех.
5. Рекомендую ознакомиться с состянием дел, например, в ФИДО-конференции RU.COMPRESS (Они доступна , например, и через www.spektrum.org.ru или другие точки входа)
6. Обычно говорят не о случайности последовательности, а о информации, в ней содержащейся. Когда информация на один, хранимый в байте, символ достигает 8 бит - сжимать бессмысленно.

82. Tsykunov, 17.01.2002 10:39
Евгений Машеров
1. Обзывать доказательство набором слов неконструктивно. Не уходите в кусты. Опровергните.
2.Все универсальные архиваторы rar, zip, arj, etc.. суть одно и то же. Я прекрасно осознаю, что 3*rar~~rar+zip+arj и хуже, чем один rar
3. Я писал, что алгоритма у меня нет, но не думаю, что его не может быть.
4.Раз Вы смогли ее наблюдать - они есть на рынке - о чем я и говорил.
5.Знакомлюсь
6.Ерунда. Информация в наборе данных есть в системе ДАННЫЕ-ПРИЛОЖЕНИЕ, в системе ДАННЫЕ-АРХИВАТОР этой информации уже нет. (bmp-Imageviewer и bmp-rar)

83. Lionking, 17.01.2002 11:19
Tsykunov

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

84. Vladimir Rybinkin, 17.01.2002 11:50
Витька
цитата:
более эффективны варианты с приобретением
Классная формулировка! Думаю, верно для любой информации (шум - понятие растяжимое).

Tsykunov

цитата:
А вы сжимали архивы или другие данные?
Я вообще не сжимал. Я анализировал данные в БД. Сжатие получилось само собой (раза в полтора).
цитата:
Нет у меня алгоритма
Не понял! А разве из существующих ни один не годится (хотя бы с некоторыми модификациями)? Я думал, что задача стоит, по большому счету, в разбивке исходника на куски, которые сжимаются разными алгоритмами, в т.ч. и известными...
цитата:
а за 50% - будешь Виндом, Юниксом и святым досом в одном лице за месяц
Оптимист - плохо информированный пессимист .

Евгений Машеров

цитата:
многие начинают с идеи комбинировать несколько архиваторов, дабы получить суперсжатие - и после первых же опытов просвещаются.
А разве сам факт наличия многих архиваторов не говорит, что в этом что-то есть? Это что, бесперспективное занятие?
цитата:
Когда информация на один, хранимый в байте, символ достигает 8 бит - сжимать бессмысленно.
О! Вот с этим - поспорю! Что есть информация? Мне кажется, что даже кортеж отношения байт на 200, скажем, может быть представлен меньше, чем одним битом . Я просто не знаю, как считать эквивалентную информационную мощность сетевой БД в переводе на реляцию или на дерево, но очевидно, что это порядки (3, 4, 5, 6, ... - не знаю сколько).

Tsykunov

цитата:
Информация в наборе данных есть в системе ДАННЫЕ-ПРИЛОЖЕНИЕ, в системе ДАННЫЕ-АРХИВАТОР этой информации уже нет.

85. Lionking, 17.01.2002 12:33
Vladimir Rybinkin

Факт наличия многих архиваторов говорит скорее о том, что во-первых нет общего критерия "хорошего компилятора" - кому-то нужно быстрее, кому-то - сжимать посильнее, кто-то еще хорошее криптование хочет вдобавок; во-вторых, развитие технологии архивирования еще продолжается (частично из-за роста скорости/памяти комьютеров - попробовал я недавно распаковать не особо большой tar.bz2 на 4M оперативки, после получаса дрыгания винтом таки решил перепаковать его в gz на другой машине).

86. Alexzander, 17.01.2002 12:57
Я так вижу, что идея ИИ (мелькавшая в других ветках), маячит и здесь. Кто-нибудь может предположить, какую выгоду мы получим, если архиватор сможет сам разбивать файл на куски таким образом, чтобы каждый кусок можно было сжать своим методом (из уже имеющихся) макисмально эффективно? Очевидно, результат сжатия - это среднее из лучших результатов используемых методов. Значит нужно писать алгоритм эффективного разбиения файла на куски. Кто-нибудь может сказать - какие типы/виды данных каким методом сжимаются лучше всего?

87. Overdream, 17.01.2002 13:00
Tsykunov
Спасибо, за ценный совет. Не могли бы представить свою точку зрения на проблему в рамках темы?
Я не считаю себя специалистом по компрешану и не готов ввалится в спор без дополнительного изучения проблемы.
Но знаю, что там где есть траффик - нужны компрессоры, а это фактически везде... и как правило, там где они нужны - их нет...

88. Tsykunov, 17.01.2002 14:41
Евгений Машеров
Уклоняясь от дачи опровержения, Вы скрываете информацию от общественности и оставляете несчастного ламера тонуть в пучине его невежества и заблуждений.
Lionking
По идее, при разбиении/склейке колмогоровская сложность практически не меняется (если пренебречь информацией для передачи позиции разбиения) - в конце концов это те же самые данные.
Набор данных X с К.сл.=x. Набор данных Z состоит из суммы двухсот X (нет не суммы, из последовательно записанных X)
Вывод. К.сл. x становится вложенной для К.сл. z, которая вычисляется для функции z=1&1&….&1 и явна невелика. Таким образом, x никак не влияет на возможность сжимаемости Z, а влияет лишь на степень сжатия для неэффективного алгоритма , приложенного к Z или на сжимаемость (полагаю, что на степень, а не возможность) результата эффективного сжатия Z.
Предлагаю обсудить возможность введения термина "колмогорозависимость" для оценки эффективности сжатия системы 'данные-алгоритм сжатия' по одному из возможных параметров.

Vladimir Rybinkin
Нет у меня алгоритма - Не понял! А разве из существующих ни один не годится (хотя бы с некоторыми модификациями)? Я думал, что задача стоит, по большому счету, в разбивке исходника на куски, которые сжимаются разными алгоритмами, в т.ч. и известными...
Видимо, у меня ручки кривые или "некоторые модификации" должны быть уникальными алгоритмами.

89. Евгений Машеров, 17.01.2002 14:41
Tsykunov
1. Вот Ваше доказательство:
"Доказываю.
Все строки M при M=2 - 00, 01, 10, 11.
Передайте мне набор данных, состоящий из всех строк M. Например, 10,00,01,11.
Сжимаю - 01100. Это 5 формальных бит или 8 реальных. (здесь M-1 означает просто >M)
Если Вы передадите мне набор данных 10,00,10,11, я не смогу сжать ее тем же алгоритмом, но Вы НЕ передали мне ВСЕ строки M! Где строка 01?
Если Вы передадите мне кроме набора данных 10,00,01,11 еще строку, например 10, Вы снова нарушите свои же условия и я не смогу применить мой алгоритм по объективной причине. "
Я вижу, что Вы не поняли моего утверждения. Вы показали, что перестановку из 2^M элементов можно закодировать меньшим M числом бит. Но это выполняется лишь для малых М, поскольку число перестановок составляет (2^N)!, где знак ! суть факториал. Логарифм факториала будет порядка M*2^M, что при больших М возрастает весьма быстро.
Я же утверждаю, что не существует алгоритма сжатия без потерь, который способен сжать каждую строку длины М. Как видим, мое утверждение отлично от Вашего. Доказуется оно весьма просто:
Положим, что такой алгоритм существует. Тогка каждой строке длины М от сопоставляет сжатую строку меньшей длины. Но мощность множества всех таких строк равна SUM(i=0,M-1) 2^i=2^M-1.
Таким образом, согласно принципу Дирихле, двум исходным строкам сопоставятся одна и та же сжатая, так что по ней исходная восстановлена быть не может.
2. Зачем делают разные архиваторы? В основном ища компромисс между степенью сжатия, скоростью работы и объемом памяти. А также реализуя удобства и прибамбасы - и демонстрируя свою квалификацию.
3. У Вас есть что-то работающее? Не откажите преоставить для ознакомления. Мой опыт в компрессии, увы, мал - делал Хаффмана и РЛЕ, знаком с арифметическим кодированием и LZW, немного имел дело с JBIG - это что касается без потерь. С потерями - работал с вейвлетным и ДКП-сжатием (ADV601 и JPEG), спектральные методы, неравномерное квантование , ADPCM. Не более того. Так что если что-то столь новое - буду рад узнать...
Vladimir Rybinkin
Если появится архиватор, сжимающий информацию до 8 бит на байт - берем ГСЧ, рассматриваем его выход, как вход архиватора - и читаем все возможные шедевры человеческой мысли...
(Лет 25 тому были очень популярны сочинения братьев Стругацких на магнитной ленте - вот как-то за рюмкой кофе обсуждали мы, как хранить их незаметно для начальства, а диски в то время были на 7.25Мбайт; вот и задумались о создании архиватора специально для них - и обнаружили, что идеал-архиватор должен быть способен писать если не их новые произведения, то, по крайней мере, хорошие пародии...)
Overdream
Т.е. ни GIF, ни JPEG Вы в Интернете не используете, модем Ваш лишен протоколов с компрессией, по телефону Вы говорите исключительно по полевому?

90. ThreeDHead, 17.01.2002 21:06
сори

91. Dmitriy M. Reznitskiy, 17.01.2002 21:10
ThreeDHead
Хорошо, пусть так. Пусть файл занимает 1Мб
Это 8388608 бит. Различных картинок, как ты описал подобной длины может быть 2^8388608
Сам модсчитаешь, сколько это?
И это - только 1Мб.

92. ThreeDHead, 17.01.2002 21:49
сори

93. Dmitriy M. Reznitskiy, 17.01.2002 22:12
ThreeDHead
Задача - заархивировать 1Мб. Какое разбиение?

цитата:

Давайте представим данные (файл, кусок файла) в виде рисунка, допустим 1024х1024. Там где еденичка - там черная точка, а где нолик - белая. Расчитаем - это 128 Кбайт.

94. Overdream, 17.01.2002 22:35
Евгений Машеров
Т.е. ни GIF, ни JPEG Вы в Интернете не используете, модем Ваш лишен протоколов с компрессией, по телефону Вы говорите исключительно по полевому?
Дело в том, что это Ваше виденье проблемы...
Трафик бывает не только сетевой, если Вам это интересно...

95. ThreeDHead, 17.01.2002 22:48
сори

96. Dmitriy M. Reznitskiy, 17.01.2002 22:54
ThreeDHead
Я тебе про более жизненную вещь говорю. Теорию можно навести любую

97. Tsykunov, 18.01.2002 08:17
Евгений Машеров
Другое дело, Евгений! Спасибо.
По существу Вашего доказательства: неправильно.
Вы показали, что перестановку из 2^M элементов можно закодировать меньшим M числом бит.
Показал. И это выполняется.
Но это выполняется лишь для малых М, поскольку число перестановок составляет (2^N)!, где знак ! суть факториал.
А тут сразу два неверных утверждения. Почему это значение переменной ("выполняется"), вычисляемое по некой функции должно считаться верным для одних аргументов и неверным для других? Где в этой функции пределы или еще что?
А каким отношением у Вас связаны "выполняется" и "число перестановок"?
Ваша формула выглядит так:
"Выполняется"=f("число перестановок"), где "число перестановок"=(2^M)!
Что это за f ?
Так вот, "выполняется" и "число перестановок" никак не связаны. Это ошибка. Следовательно, "выполняется" не зависит от М. Я сожму Вам ЛЮБУЮ перестановку для любого М. Вы опять попались на своих граничных условиях, Вы передали мне строку из всех М – это одна перестановка, и тут же передаете мне еще одну – вот откуда у Вас вылез факториал. Хотя я сожму и вторую Вашу перестановку-строку и третью и (2^M)!-ную. А логарифм здесь вовсе не причем.
Далее.
Я же утверждаю, что не существует алгоритма сжатия без потерь, который способен сжать каждую строку длины М.
Опа! А раньше Вы утверждали, что нельзя сжать ВСЕ строки М, а теперь, что КАЖДУЮ. Вот цитаты:
В этом случае универсального алгоритма сжатия не может существовать. Положим, что таковой есть, сжимающий строку в М бит в строку длиной не более М-1 бит. Но всех строк длиной М-1 меньше, чем строк длиной М (доказывается суммированием геометрической прогрессии). Следовательно, существует образ, у которого не менее двух прообразов, то есть такой сжатый сигнал, по которому исходный не восстанавливается.
..
Это доказательство невозможности универсального сжатия. Число всех строк длины М-1 равно 2^M-1.
Вы писали "..всех строк длиной М-1 меньше, чем строк длиной М..", подразумевая "..чем ВСЕХ строк длиной М". Если Вы не подразумевали это, строже формулируйте. Но я считаю, что именно это и предполагалось.
Теперь Вы поменяли свои граничные условия. И снова в них Ваше утверждение верно. Действительно, нет алгоритма, способного сжать каждую из строк длиной М. Поэтому я и не проверял Ваше доказательство ЭТОГО утверждения. Ведь, это и есть принцип Дирихле? Чем отличаются набор данных, содержащий ВСЕ строки длиной М, от строки длиной М (любой или каждой), imho понятно. Вот если Вы передадите мне не каждую строку М, как отдельный набор данных, подлежащий сжатию алгоритмом, а каждую строку М, как единый набор данных, то есть ВСЕ строки М и не больше, это станет в поле моего алгоритма ВСЕМИ строками N - одной из перестановок. Но так мы, как кенгуру, поскачем к бесконечным последовательностям.
Однако, я утверждаю, что и Ваши новые граничные условия не совпадают с моими. Почему - ниже.
У нас с Вами самая продуктивная дискуссия, не так ли? Пусть в ней родится истина. Опровергните меня снова, пожалуйста.

2All
Предлагаю такую мысль. В системе ДАННЫЕ-АЛГОРИТМ СЖАТИЯ два ее элемента неравноправны. Алгоритм – объект (субъект?) более высокого уровня, он способен к анализу данных, а те ничего не знают об алгоритме. Иначе говоря, есть более одного связанных алгоритмов – main-анализатор и f(input)=output подчиненные модули (допуская уровни вложенности (что непринципиально)). Для каждого конкретного набора данных на входе main-анализатор способен определить – имеет ли он возможность сжать данные. Если нет, то Exit без сжатия или кодирование на "языке идентичности" (Harkonnen) c min издержками. Почему сегодня так не делают известные архиваторы? Видимо, из маркетинговых соображений - лучше замусорить диск архивом, большим чем исходник, но не признаваться, что чего-то не можешь. Отсюда и возможность наблюдать увеличение размера архива при неоднократном повторном "сжатии". Строго говоря, это баг. Поэтому, рассматривая применение конкретного алгоритма к каждому набору данных из конкретного конечного множества (ККМ), мы имеем право не учитывать возможность отрицательного сжатия для неких наборов или считать, что это вносит пренебрежимо малые издержки в систему. Таким образом, эффективность данного алгоритма в системе 'алгоритм-ВСЕ наборы данных из ККМ' будет положительной при наличии в системе хотя бы одной эффективной системы 'алгоритм-один (несколько) наборов данных из ККМ'. Здесь просится ряд далеко идущих выводов, которые я опасаюсь пока делать. Однако, это камешек в огород Евгений Машеров
не существует алгоритма сжатия без потерь, который способен сжать каждую строку длины М.
Если ККМ состоит из строк длины М, количеством N и размером S = MN возможен алгоритм, эффективно сжимающий этот ККМ до Sсж < MN. Я заявляю, что каждая строка в этом случае сожмется до Mcж .= Sсж./S < M
Это не прямое опровержение Вашего, Евгений, утверждения, а опровержение применимости его к ККМ, то есть к реальным данным. Мне не нужен алгоритм, который будет сжимать каждую строку М по очереди, его действительно нет, мне нужен алгоритм, эффективно сжимающий некоторую часть из строк М, некоторую комбинацию из строк М.
IMHO реальные данные находятся в n-мерном пространстве, где координаты: размер строки, форматы данных, размещение строк в наборах данных, на носителях (если моя ОС корректно использует общие кластеры для хранения данных – она архиватор), время и т.д. Причем наборы данных фрагментированы в этом пространстве и могут находиться одновременно в нескольких местах. Все же известные мне теоремы невозможности сжатия оперируют лишь проекциями данных на одну, две оси.
Harkonnen
Все еще пытаюсь разобраться в Вашей реплике. Вопрос: что значит множество всех архивов строилось именно исходя из наименьшего их объема? Вы не ставите телегу впереди лошади? Кто строил множество архивов прежде данных?
Теперь о архивации rara. Заявляю, что rar не есть максимально эффективный алгоритм сжатия. Согласитесь, что Вы + СУБД способны оптимизировать БД намного эффективнее, чем rar заархивирует ее. Строим архиватор из-под rarа.
Берем Вашу БД в rar-архиве, разархивируем, открываем в СУБД, оптимизируем (это формализуется), закрываем и архивируем тем же rarом. Имеем эффект. Скажете, частный случай? А сколько частных случаев надо считать тенденцией? Скажете, это вопрос не сжатия данных, а оптимальных форматов информации? А если этот алгоритм зашить в сам rar? Предположим, что форматы html, jpeg и gif идеальны. Возможно, у них вкупе появляется избыточность или еще чего, что позволит сжимать их нередкую комбинацию, безразлично, после rarа или вместо.

98. Евгений Машеров, 18.01.2002 10:38
Overdream
Позвольте получить разъяснения, какой еще бывает трафик, кроме возникающего в коммуникационных сетях? (Да, есть еще на дорогах - но там применение компрессии несколько затруднительно)

Tsykunov
Прошу алгоритм, который для произвольной перестановки М символов строит сжатую последовательность блины (в битах) менее М.
А также алгоритм, сжимающий массив в приведенном Вами примере, если он может быть задан произвольно.
Напоминаю, что алгоритм должен быть не привязан к данным (см. Кнут, т.1).

99. Tsykunov, 18.01.2002 11:04
Евгений Машеров
блины - что это такое?
Алгоритм - через несколько минут.
А Вы бы могли "декомпилировать" его самостоятельно из двух, приведенных мной примеров.
А Overdream, видимо, учитывает трафик между флоппиком и саундкартой.

Добавление от 18-01-2002 12:26:

Евгений Машеров
Прошу алгоритм, который для произвольной перестановки М символов строит сжатую последовательность
От i:=1 до (М^2)-1
Выходной поток:=выходной поток+номер вхождения i-той строки в остаток входного потока;
Исключить из входного потока i-тую строку;
Следующее i
Все.

Например, 10,00,01,11. Сжимаю - 01100. - я.
..
А также алгоритм, сжимающий массив в приведенном Вами примере, если он может быть задан произвольно
Уточните, пожалуйста, какой пример, какой массив, я не употреблял термин "массив", а тут и так уже накручено всяких…

p.s. Простите за "несколько минут" – dialup…

100. Overdream, 18.01.2002 13:11
Евгений Машеров
Позвольте получить разъяснения, какой еще бывает трафик, кроме возникающего в коммуникационных сетях? (Да, есть еще на дорогах - но там применение компрессии несколько затруднительно)
Не позволю. Сами догадаетесь, Вы уже на правильном пути, про дороги вспомнили... а если не вспомните, то ничего страшного - для Вас везде есть компрешн

101. Tsykunov, 18.01.2002 13:38
Alexzander
если архиватор сможет сам разбивать файл на куски таким образом, чтобы каждый кусок можно было сжать своим методом (из уже имеющихся) макисмально эффективно?
Все известные мне алгоритмы разбивают файлы на куски неким образом. Например, на куски:
первые 8 бит, вторые 8 бит ….
А как разбить чтобы было круто (а не как обычно)– большой вопрос для меня.

Все, кроме одного, а какого я скажу чуть позже. Надо подумать.

102. Alexzander, 18.01.2002 13:55
Tsykunov Наверное дожен быть алгоритм анализа данных: видим текст - жмем алгоритмом для текста, ставим метку "здесь был текст", видим винарные данные - жмем другим алгоритмом, ставим метку "здесь были 0 и 1", видим bmp - жмем третьим алгоритмом и ставим метку "здесь была картинка".

Мне интересно вот что: какие типы данных существуют, для которых есть одельные алгоритмы сжатия (текст, бинарные, еще какие?). Ну а про ИИ я сказал, потому что если разные типы данных встречаются внутри одного файла, то его надо правильно разбить на куски, т.е. должна быть встроенная функция оценки качества данных, а это уже близко к ИИ.

103. Евгений Машеров, 18.01.2002 15:19
Tsykunov
Уточните, что есть "Номер вхождения"?

104. Tsykunov, 18.01.2002 15:48
Евгений Машеров
Уточняю.
Первая итерация
10 00 01 11 - Набор данных
00 01 10 11 - Вхождения каждой строки длиной 2 бита в набор данных
записываем, где находится в наборе данных первая строка - 00
это второе вхождение в из четырех возможных - 01
исключаем его из набора данных
Вторая итерация
10 01 11 - Набор данных
0 10 11 - Вхождения каждой строки длиной 2 бита в набор данных
записываем, где находится в наборе данных вторая строка - 01
это второе вхождение в из трех возможных - 10
исключаем его из набора данных
Третья итерация
10 11 - Набор данных
0 1 - Вхождения каждой строки длиной 2 бита в набор данных
записываем, где находится в наборе данных третья строка 10
это первое вхождение в из двух возможных - 0
исключаем его из набора данных
Итого выходной набор данных 01 10 0
Восстановление в обратном порядке.

105. quest, 18.01.2002 16:01
Tsykunov

Пять битов на кодировку 24 вариантов (число возможных перестановок из 4-х строк: 4!=24) - в самый раз! (2^5=32 > 24).

106. Tsykunov, 18.01.2002 18:21
quest
True

Добавление от 19-01-2002 07:39:

Alexzander
Наверное дожен быть алгоритм анализа данных: видим текст - жмем алгоритмом для текста,
Такой анализ уже есть у Вас в голове. Вы ведь не жмете текст lossless JPEG-ом ( а что бы вышло? ). Но Вы ограничены в выборе алгоритмов сжатия. Есть смысл двигаться сразу в двух направлениях: 1. оптимизация форматов данных. Это можно назвать хоть кодированием, хоть архивацией . 2. собственно архивация того, что Вы назвали бинарными данными (они, вообще-то, все бинарные) – наборов данных, формат и структура которых труднопредсказуема. Мне ближе второй путь. Нет повода прекращать поиски из-за того, что некий набор данных имеет какой-то коэффициент "невозможности сжатия". Все они относительны и применимы не всегда.
Одно из определений ИИ – машина, способная в разговоре достоверно изображать человека. Но оно весьма спорно. И практика показывает, что задача, считающаяся по плечу только ИИ, перестает быть таковой после решения. Какой же это ИИ, если его написал за два месяца какой-то Джон Гонсалес.
Мне интересно вот что: какие типы данных существуют, для которых есть одельные алгоритмы сжатия
Я бы ставил вопрос иначе. Какие есть алгоритмы (их мало и они доступны) для отдельных типов данных (их много и не все они определены). Это две стороны медали. "Узнав тайное Имя врага, получишь власть над ним". Возможно, проще будет определить Тип неких данных, а из него алгоритм будет проистекать сам собой. Например, формально описать тип данных "rar-archive".

Добавление от 19-01-2002 12:00:

Евгений Машеров
Я дико извиняюсь, в алгоритме, конечно не М^2, а 2^M - это опечатка.

107. quest, 19.01.2002 14:21
To All

Как хорошо быть молодым и не слишком обремененным лишними знаниями!
Жизнь кажется такой лучезарной, а преспективы - такими оптимистическими... Завидую.

Но невольно вспоминается крылатое выражение: "Пессимист - это хорошо информированный оптимист"

Для начала проанализируем алгоритм Tsykunov на предмет эффективности:
1. Сей алгоритм "сжимает" не строки длины N, а строки длины N*2^N;
2. Алгоритм "сжимает" не все 2^(N*2^N) строки длины N*2^N, а только (2^N)! из них;
4. Алгоритм сжимает не любые (2^N)! строк длины N*2^N, а только те, что являются перестановками всех 2^N строк длины N;
3. "Сжатием" считается случай, когда длина выходной последовательности алгоритма меньше log2((2^N)!), что не выполняется никогда а уже начиная с N=3 ("сжатая" по этому алгоритму последовательнось в этом случае будет длиной 17 бит, в то время как число перестановок 8-ми элеменов равно 40320 и меньше, чем 2^16) не достигается и равенства.
4. Таким образом, простая нумерация перестановок уже начиная с N=3 будет более эффективна. Причем, даже в этом случае ни о каком "сжатии" нет и речи.

Теперь о сжатии вообще.

Пусть у нас есть некий алгоритм компрессии (архивации) последовательности битов длины N. Ессно, имеется и обратный алгоритм, который из образа исходной последовательности генерирует последнюю, т.е. - алгоритм разархивации (декомпрессии).
Возьмем этот алгоритм декомпрессии и добавим к нему банальный двоичный сумматор, чтобы получившаеся программа по двоичному номеру выдавала бит исходной последовательности с этим номером. Если N=2^n, то мы получили программную реализацию конкретной двоичной функции от n переменных. Здесь: исходная последовательность (до компрессии) - просто список значений этой функции на всех наборах значений n двоичных переменных, расположенных в лексикографическом порядке.

Пора привести несколько фактов из теории представления двоичных функций.

1. Каждую двоичную функции f от n двоичных переменных можно представить (реализовать) контактной схемой (определения последней я не привожу, т.к. это не важно для дальнейшего);
2. Каждой двоичной функции f от n двоичных переменных можно поставить в соответствие число, равное минимому числа контактов по всем контактным схемам, реализующим эту функцию. Это число обозначается L(f) и называется сложностью функции f по Шеннону;
3. Шеннон показал, что максимум L(f) равен 2^n/n. Что означает, что существуют такие двоичные функции f от n двоичных переменных, что их сложность (по Шеннону) не менее 2^n/n;
4. Стоит заметить, что последующие работы многих математиков (Ляпунов, Хинчин, Шоломов, Мартин-Лёф и др.) показали, что аналогичные результаты имеют место при любых представлениях двоичных функции (функциональными схемами с разными базисами, итерационными схемами, программными конструкциями, формальными языками и пр.). Везде есть экспоненциальный рост сложности представлений;
5. Доказано, что при двоичном кодировании контактной схемы сложности L требуется минимум q битов на контакт, где q - предел выражения log2(L*log2(L*... log2(L))...) при неограниченном числе вложенных логарифмов. Легко убедиться ( ), что если L=2^n/n, то q=n для всех n, не равных 2 (из-за того, что 2 - основание логарифма);
6. Таким образом, для двоичного кодирования функции максимальной сложности (по Шеннону) требуется минимум q*2^n/n=2^n битов! Отсюда: любая реализация функции максимальной сложности, представленная в двоичном виде имеет размер не меньше 2^n бит;
7. И последнее из теории. Почти все двоичные функции от n переменных имеют максимальную сложность. Здесь: "почти все" означает, что доля функций, имеющих сложность меньше максимальной на любую положительную величину стремится к 0 с ростом n.

Обогатившись знаниями теории (и, как следствие, - потеряв некоторую долю оптимизма), вернемся к нашему декопрессору

Если, как того требует условие компрессии, вся информация об исходной последовательности заключена в её образе после компрессии, наш алгоритм работает разумное время (значит, его сложность не растет экспоненциально) и учитывая, что двоичный сумматор тоже не отличается экспоненциальной сложностью, мы имеем реализацию двоичной функции, закодированную последовательностью битов длины M, где М - длина сжатой последовательности.
Но для функций максимальной сложности M не может быть меньше N (напомню, что N=2^n).

Таким образом, не только существуют последовательности битов, которые нельзя "сжать", но и таких последовательностей большинство (см. п.7 "теории")! А именно, - это те последовательности, которые представляют собой двоичные фунции максимальной сложности по Шеннону.

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

В заключении пролью бальзам на душу оптимистов: несмотря на то, что доказано, что "почти все" двоичные функции имеют максимальную сложность, доселе не известно общее описание (для произвольного n) ни одной такой функции, хотя подозрения имеются...

Успехов в поиске суперэффективных алгоритмов сжатия!

108. PetrZloy, 20.01.2002 01:30
вот почитал я тут последнюю страницу, (и последнее сообщение в частности)
и подумал:

наверное если взять посл-сть - число Pi, думаю что эта последовательность имеет весьма высокую сложность...

а запаковать ее можно довольно просто - правда в понятиях "не совсем двоичных"...

Что вы по этому поводу думаете?

(возможность ввода "новых понятий" и стоимость такого "введения" (в смысле размера))


И вообще я склоняюсь к такому алгоритму сжатия, который изменял бы спосо сжатия в зависимости от исходных данных (для достижения max сжатия) - плавно, предварительно проанализировав данные, и разбив их как получше. А не так - вот это будем сжимать таким алгоритмом, потому что расширение - .txt, а это просто STORE т.к. это JPG. (я утрирую конечно...)

p.s. если я какие глупости говорю или очевидные вещи - уж простите. Надо бы прочитать первые четыре листа хотя бы...

Добавление от 20-01-2002 03:56:

First of all: я говорю об архивации без потерь; рассматриваю практическое применение, а не теорию. Пусть кто нибудь скажет только, что последовательность бит в MP4 файле не отличается от "случайной" и что нельзя ее запаковать. То есть теоретически - не отличается, может весь фильм и есть белый шум - но на практике такого не бывает. Поэтому я хочу рассмотреть практическое применение, а не теорию (теорию конечно тоже, но во имя практики).
Да, еще: рассматриваются весьма большие, но конечные последовательности. В крайнем случае (если все исходные файлы малы) - будет требование - включить SOLID MODE (ну а если посл-ти будут СЛИШКОМ длинные, такие что не будет хватать для них современных мощностей - что ж, придется наоборот, разбивать на куски, хоть это и плохо...

Tsykunov

Допустим я тебе даю последовательность битов. Ты, если я не ошибаюсь, говорил что "сожмешь" любую конкретную конечную последовательность, которую тебе дадут. Чтобы _всем_ (а не только тебе) ее можно было "разжать" ты должен кроме результата сжатия передать им алгоритм распаковки. Если размер результата сжатия + размер алгоритма окажется больше исходного - то вся проделанная работа не нужна.

Не уверен что возможно сжать любую конкретную последовательность так, чтобы суммарный размер результата и алгоритма для распаковки был меньше по размеру чем исходная последовательность.

Допустим, что это возможно. Если так, тогда к (полученному результату + алгоритму) можно заново применить такую процедуру и получить новый результат и новый алгоритм. и в конце концов сжать все до 1 бита... Или нет, не до одного бита, но до какой то определеннлй величины, равной к примеру количеству проделанных таких процедур, умноженному например на 2 (это например, может на 8 или на 1 - не важно).

Чем длинней последовательность и случайней, тем сложнее придумать достаточно небольшой по размеру алгоритм распаковки. Можно разбивать исходную последовательность на куски - уменьшится время поиска алгоритма сжатия/разжатия, однако вероятность его нахождения увеличится(?)

Можно написать программу-СверхАрхиватор - эта программа должна генерировать для заданной последовательности следующую пару объектов: архиватор и разархиватор. Эта пара должна удовлетворять требованиям: размер результата, сгенеренного архиватором + размер разархиватора должен быть меньше исходного размера.

Услуги такого СверхАрхиватора предлагаешь ты, когда говоришь что сожмешь любую последовательность бит, которую тебе дадут.

Евгений Машеров
20% в сжатии рар - реально. Возьмите файл из нулей длиной в пару гигабайт. (Я погорячился - достаточно будет мегавбайта на самом деле) и сожмите его раром. Получившийся архив можно сжать не только на 20%, но и на все 90 тем же самым раром. Все почему? рар не предполагал наличия стольких нулей подряд? (P.S. этот факт проверен)

Lionking
По идее, при разбиении/склейке колмогоровская сложность практически не меняется (если пренебречь информацией для передачи позиции разбиения) - в конце концов это те же самые данные.
Ну как же? я возьму первый миллиард цифр после запятой от Pi переставлю все нули в начало, потом единицы и т д - нельзя пренебрегать такой важной информацией!

109. Tsykunov, 20.01.2002 05:50
guest
Весьма благодарен за столь подробное заявление.
Опровергаю Вашу критику моего алгоритма.
1. Сей алгоритм "сжимает" не строки длины N, а строки длины N*2^N;
Верно. Как я неоднократно уже заявлял, мой алгоритм сжимает ВСЕ строки длиной N – набор данных из ВСЕХ строк длиной N общей длины N*2^N. Этим алгоритмом я пытаюсь опровергнуть заявление Евгения о невозможности сжатия ВСЕХ строк длиной N. Я ни разу не заявлял, что имею алгоритм, который сжимает КАЖДУЮ отдельную строку длиной N. В тексте от 18.01 08.17 я сделал предположение о возможности сжатия КАЖДОЙ строки длиной N, если они сжимаются не по отдельности, а в наборе данных. Могу подтвердить это алгоритмом, с той разницей, что этот алгоритм не сожмет произвольный набор данных, а лишь некоторые из них. То есть он не универсальный (иначе я бы сжал им что угодно), а применим для отдельных случаев.
2. Алгоритм "сжимает" не все 2^(N*2^N) строки длины N*2^N, а только (2^N)! из них;
Верно. Наборов данных, содержащих ВСЕ строки длиной N, как раз (2^N)!
4. Алгоритм сжимает не любые (2^N)! строк длины N*2^N, а только те, что являются перестановками всех 2^N строк длины N
Верно. По тем же причинам.
3. "Сжатием" считается случай, когда длина выходной последовательности алгоритма меньше log2((2^N)!),
Неверно. Давайте не будем усложнять. Сжатием строки, состоящей из ВСЕХ строк длиной N бит и общей длиной N*2^N бит, считается случай, когда длина выходной последовательности меньше N*2^N бит. Не нужен здесь логарифм.
что не выполняется никогда а уже начиная с N=3 ("сжатая" по этому алгоритму последовательнось в этом случае будет длиной 17 бит, в то время как число перестановок 8-ми элеменов равно 40320 и меньше, чем 2^16) не достигается и равенства.
Пусть за нас факты говорят.
N=3 бита
Первая итерация
011 101 110 000 010 100 001 111 - Набор данных
000 001 010 011 100 101 110 111 - Вхождения каждой строки длиной 3 бита в набор данных
записываем, где находится в наборе данных первая строка - 000
это 4 вхождение в из 8 возможных - 011
исключаем его из набора данных
2 итерация
011 101 110 010 100 001 111 - Набор данных
00 010 011 100 101 110 111 - Вхождения каждой строки длиной 3 бита в набор данных
записываем, где находится в наборе данных 2 строка - 001
это 7 вхождение в из 7 возможных -110
исключаем его из набора данных
3 итерация
011 101 110 010 100 111 - Набор данных
00 01 100 101 110 111 - Вхождения каждой строки длиной 3 бита в набор данных
записываем, где находится в наборе данных 3 строка - 010
это 4 вхождение в из 6 возможных -110
исключаем его из набора данных
4 итерация
011 101 110 100 111 - Набор данных
00 01 10 110 111 - Вхождения каждой строки длиной 3 бита в набор данных
записываем, где находится в наборе данных 4 строка - 011
это 1 вхождение в из 5 возможных -00
исключаем его из набора данных
5 итерация
101 110 100 111 - Набор данных
00 01 10 11 - Вхождения каждой строки длиной 3 бита в набор данных
записываем, где находится в наборе данных 5 строка - 100
это 3 вхождение в из 4 возможных -10
исключаем его из набора данных
6 итерация
101 110 111 - Набор данных
0 10 11 - Вхождения каждой строки длиной 3 бита в набор данных
записываем, где находится в наборе данных 6 строка - 101
это 1 вхождение в из 3 возможных - 0
исключаем его из набора данных
6 итерация
101 110 111 - Набор данных
0 10 11 - Вхождения каждой строки длиной 3 бита в набор данных
записываем, где находится в наборе данных 6 строка - 101
это 1 вхождение в из 3 возможных - 0
исключаем его из набора данных
7 итерация
110 111 - Набор данных
0 1 - Вхождения каждой строки длиной 3 бита в набор данных
записываем, где находится в наборе данных 7 строка - 110
это 1 вхождение в из 2 возможных - 0
исключаем его из набора данных

Итого: выходная строка 011 110 110 00 10 0 0 - 15 бит< N*2^N=3*2^3=24 бита
Прошу модератора с пониманием отнестись, если мне придется привести то же самое для N=4.
Откуда Вы, guest , взяли число 40320, я не знаю. При N=8 бит, N*2^N=2048 бит. Этот набор данных жмется примерно до 1600 бит
4. Таким образом, простая нумерация перестановок уже начиная с N=3 будет более эффективна. Причем, даже в этом случае ни о каком "сжатии" нет и речи.
Что ж, мой алгоритм – один из способов нумерации (2^N)! строк. Однако, он эффективен, не требует предварительной фиксации отношений "строка-ее номер" и проверки их при исполнении алгоритма, поэтому он оптимален в общем случае. А сжатие я показал.
Теперь о сжатии вообще и фактах из теории представления двоичных функций.
Все это очень интересно.
Но. Боюсь, что Ваши аргументы действительны в тех же координатах, что и у других уважаемых участников дискуссии. В Абстрактных данных. Вы ввели еще один показатель невозможности сжатия – шенноновскую сложность. Я уже заявлял о неприменимости разных показателей к возможности сжатия реальных данных. Пока меня никто не опроверг (по крайней мере, последнее слово сказано мной). Любой набор данных (строка) с max шенноновской сложностью может входить в другой набор данных или разбит на части, где эта сложность будет меньшей, и набор данных может быть сжат. Не согласны? Ответьте на вопрос: как осуществлять арифметические операции с шенноновской сложностью?
Реальные архиваторы работают с достаточно узкими классами последовательностей, причем такими, которые имеют заведомо малую сложность. В основном, - используются статистические закономерности в этих последовательностях
Верно. А для новых архиваторов нужно найти новые закономерности.
Вы способны подсчитать шенноновскую сложность функции, порождающей двоичное число, представляющее собой Ваш диск С? Предполагаю, она достаточна велика. Почему же реальный архиватор способен сжать диск?
доселе не известно общее описание (для произвольного n) ни одной такой функции
Я считаю, все, что не запрещено, - разрешено. Раз я не вижу доказательств невозможности сжатия – сжатие возможно.

110. PetrZloy, 20.01.2002 10:52
И вообще вот реальный пример того, что нынешние архиваторы, в частности рар "плохо работают":

Берем картинку "banner-88x31-rambler-gray2.gif" (внизу этой хтмл-ки каждый может ее увидеть) сжимаем ее раром. Что нам покажет рар? да большой кукиш. Он ни с какими установками не смог ее хоть на 1% уменьшить.

Посмотрим на график частот встречаемости символов в этом гифе:

Ну сразу видно что хоть чуть чуть, но запаковать можно!

Еще пример: я беру такой файл, который рар хорошо пакует. Начинаю прибавлять к каждому байту его номер. (то есть потом я могу отнять эти номера и восстановить оригинал). При этом из такого

получается такой график: (если кому интересно то это для ref_gl.dll от quake2 версии 3.20, размер 234496)

и у рара из второго файла получается архив в два раза больше чем из оригинала.

Рар не умеет обнаруживать даже такую простую закономерность в файле. А как же он сможет запаковать сгенеренный по паре параметров белый шум? никак. он не поймет никогда в жизни что его можно запаковать.

(на картинках указано значение правой границы в графиках; в каждом графике 256 значений - верхнее соответствует нулевому байту; )

111. Tsykunov, 20.01.2002 16:03
PetrZloy
Совершенно согласен с Вашими заявлениями. (Даже скучно как-то)
За небольшим исключением, касаемо Вашего обращения ко мне лично.
Коротко и без оправданий (Вам ведь лень прочитать всю тему). Суперархиватор не будет жать все подряд до нуля. Он ограничен набором алгоритмов, вложенных в него создателем ( или эффективностью системы самообучения, опять-таки от программиста) и временем (рас)паковки, зависящим от вычислительной мощности. При этом декомпрессия займет много меньше времени, чем компрессия. Поэтому фильм будут сжимать на суперкомпьютере, а для распаковки хватит и обычной воркстанции. По закону Мура давка будет расти.
Итак, все оппоненты молчат?

Добавление от 20-01-2002 16:08:

Ну сразу видно что хоть чуть чуть, но запаковать можно!
по графику мне не видно как, а вообще можно конечно но как

112. PetrZloy, 20.01.2002 16:38
вобщем-то не строго видно, может только этого одного графика и маловато для упаковки (а может и достаточно(??)), но график то хороший!

113. quest, 20.01.2002 16:49
Tsykunov
Опровергаю Вашу критику моего алгоритма.

Вы опровергаете самостоятельно (Вами) придуманную критику!

Напомню: Евгений Машеров (#98, 18-01-2002 10:38) просил Вас "Прошу алгоритм, который для произвольной перестановки М символов строит сжатую последовательность длины (в битах) менее М.", на что Вы разразились алгоритмом (#104, 18-01-2002 15:48), относительно которого я и привел свои комментарии. В этом алгоритме Вы перестановку 4-х символов "сжали" до 5 бит, что нарушает условия задачи. Дабы сразу отсечь возражения с манипуляциями терминами уточню: в Вашем алгоритме используется перестановка строк длины 2 бита, которых ровно 4, и именно эти четыре строки являются символами в задаче Евгения Машерова.

Вы произвольно изменили постановку задачи ("Неверно. Давайте не будем усложнять.") и плавно перешли к совершенно иной:

Сжатием строки, состоящей из ВСЕХ строк длиной N бит и общей длиной N*2^N бит, считается случай, когда длина выходной последовательности меньше N*2^N бит. Не нужен здесь логарифм.

Извините, но это совсем другая задача, более того - неинтересная потому, что имеет тривиальное решение. Это просто кодирование перестановки из 2^N символов. А логарифм пригодится: для кодирования перестановки из 2^N символов потребуется log((2^N)!) бит. Не нужно быть ни Энштейном ни Ньютоном, чтобы просто пронумеровать перестановки и объявить номер перестановки её "сжатием".

Пусть за нас факты говорят.

Факты говорят, что Вы опять передернули:

011 101 110 100 111 - Набор данных
00 01 10 110 111 - Вхождения каждой строки длиной 3 бита в набор данных
записываем, где находится в наборе данных 4 строка - 011
это 1 вхождение в из 5 возможных -00

Это на каком основании Вы закодировали один из 5 вариантов двумя битами? Только потому, что в подобранной Вами перестановке на этом этапе строка 011 оказалась на первом месте? А если она была бы на пятом?
Этот же фокус Вы продемонстрировали еще разок ("1 вхождение в из 3 возможных - 0"), что и позволило сократить кодировку с 17 бит до 15.
"Кодируем помаленьку" (с) Старикашка Эдельвейс.

Беда в том, что апосля хрен раскодируешь!

Откуда Вы, guest , взяли число 40320, я не знаю.

Странно. Вы сами меня процитировали: "число перестановок 8-ми элеменов равно 40320", а теперь утверждаете, что не знаете... Как у Вас с русским языком?
На всякий случай: 2^3=8 и рассматривался случай "сжатия" перестановки всех 8 строк, состоящих из 3 бит.

Пока меня никто не опроверг (по крайней мере, последнее слово сказано мной).

Дык, таким способом Вы можете и вечный двигатель сконструировать! Как первого, так и второго рода...

Ответьте на вопрос: как осуществлять арифметические операции с шенноновской сложностью?

Точно так, как и с любой другой мерой!

Любой набор данных (строка) с max шенноновской сложностью может входить в другой набор данных или разбит на части, где эта сложность будет меньшей, и набор данных может быть сжат. Не согласны?

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

Следствием Шенноновкой теории сложности двоичных функций является тот факт, что для почти всех последовательностей битов НЕ СУЩЕСТВУЕТ self-экстракторов этих последовательностей длины меньших, чем сами последовательности.
Термин: "почти всех" советую уточнить в курсе дискретной математики для мехматов универов.

Можете сколько угодно опровергать это утверждение, но ИМХО конструирование вечных двигателей - более продуктивное занятие.

To All
Готов с любым желающим заключить пари на следующих условиях:
1. Я творю файл размером до 10Mb.
2. Я утверждаю, что в течении месяца невозможно сделать self-экстрактор (исполняемый файл), генерирующий мой файл и размером меньший, чем оный.
3. Я плачу $1000 любому, кто заплатит мне $10 и опровергнет моё утверждение (заплатившему я в течении недели пересылаю свой файл и в течении следующего месяца жду опровержение в виде self-экстрактора).

Жду желающих...

114. IronPeter, 20.01.2002 16:53
Следствием Шенноновкой теории сложности двоичных функций является тот факт, что для почти всех последовательностей битов НЕ СУЩЕСВУЕТ self-экстракторов этих последовательностей длины меньших, чем сами последовательности

ИМХО это следствие здравого смысла. Нельзя посадить десять кроликов в две клетки так, чтобы в каждой клетке было не больше одного кролика.

115. quest, 20.01.2002 17:10
IronPeter
ИМХО это следствие здравого смысла.

А у Шеннона здравого смысла не отнять, в отличии от некоторых из присутствующих...

116. Vladimir Rybinkin, 20.01.2002 17:32
quest
цитата:
Готов с любым желающим заключить пари
Не. ну какая провокация!

Я НЕ занимался архивацией, но мне, как алгоритмисту, явно брошен вызов...

10 баксов я-то найду - в конце концов, это плата за удовольствие

Ok, подумаем (при условии, конечно, что файл ОТ 1Mb )

117. PetrZloy, 20.01.2002 18:57
quest
Заманчивое пари предлагаете... Так соберете по десятке и пропадете...
А вы где проживаете? В москве небось... какая гарантия что если выиграю получу свою штуку?

Интересно, вы уже продумали как будете генерить эту последовательность?
думаю что ваш генератор менбше 10 мегабайт будет занимать. Или будете с какого то физического процесса показания снимать?

118. Vladimir Rybinkin, 20.01.2002 19:02
PeterZloy
Элементарно. Вот последовательность: "AB".
Нужны еще гарантии?

119. quest, 20.01.2002 19:14
PetrZloy
Vladimir Rybinkin

Насчет 1Mb принимается...

Гарантии. Ну раз слова мало, то предлагайте схему, которая Вас устроит. Причем учтите, что я рискую в 100 раз больше

120. Vladimir Rybinkin, 20.01.2002 19:30
Не, мне гарантии не нужны, я их сам найду
Смело, уважаю!

121. PetrZloy, 20.01.2002 19:40
Vladimir Rybinkin
я не понял!

Элементарно. Вот последовательность: "AB".
Нужны еще гарантии?

можно пояснить?

Естественно, 10 мб запаковать легче чем 1 мб. Так что лучше 10!

Мне вообще то для начала решить эту задачу применительно к просто сгенеренной функцией random() - чтобы так сказать время выиграть - ведь не с нуля же начинать. Разлбраться поплотнее в существующих алгоритмах - хафмане, етс. Мне вот кажется в 10 мб-й посл-сти будут повторяющиеся данные, может реверсивно, может еще как то - ... В общем я пока не готов к такому пари. А ответ на вопрос буду ли готовиться - скорее нет чем да, к сожалению...

122. IronPeter, 20.01.2002 19:44
quest

Однако рискуете... Очень думается, что на байтик-два сжать удастся.

Добавление от 20-01-2002 19:46:

Вероятность того, что рандомный файл можно сжать на один байт, равна приблизительно 1/256. В качестве условия надо ставить сжимаемость на несколько байт.

123. Vladimir Rybinkin, 20.01.2002 19:54
PetrZloy
Минимальный размер экзешника (точнее - .com) - 1 байт (retn). Даю файл в 1 байт - задача не имеет решения.

IronPeter
Я, пожалуй, согласен на минимальное сжатие в 1% - не то, чтобы согласен, а как условие решения .

124. PetrZloy, 20.01.2002 20:16
Vladimir Rybinkin
Ну так речь шла о файле "до 10 мб". Вернее было бы сразу определить 10 мб или 1 мб или еще что. То что 1 или 2 или даже 10 байт неполучится сжать это понятно.
А к чему это вы ко мне так обратились? я что, обещал сжать посл-сть любой длины что ли? что то не припоминаю.
Давайте если с самого начала шла речь о 10 мб то определимся с цифрой 1024*1024*10=10485760 байт и небудем больше об размере.

Кстати сжать данный мегабайтный файл до 99% -= это очень сильное заявление. Давайте тут тоже определимся - пусть сжатие будет минимум на 1 байт (ессно учитывая анпакер)

Добавление от 20-01-2002 20:29:

Ну если вы, Vladimir Rybinkin такой крутой - то вам можно поставить и такие условия, как вы говорите: задана последовательность; длина - 1 мб; надо сжать до 99%. Тут можно пожалуй больше чем штуку ставить.

IronPeter
--
Вероятность того, что рандомный файл можно сжать на один байт, равна приблизительно 1/256. В качестве условия надо ставить сжимаемость на несколько байт.
--
Какой длины? неужели любой? Как вы это определили? Если данный файл разбить скажем на 256 кусков, для каждого куска вероятность 1/256, получается уже довольно неплохая вероятность сжать. что за необдуманные постинги.

Добавление от 20-01-2002 20:30:

Ну если вы, Vladimir Rybinkin такой крутой - то вам можно поставить и такие условия, как вы говорите: задана последовательность; длина - 1 мб; надо сжать до 99%. Тут можно пожалуй больше чем штуку ставить.

IronPeter
--
Вероятность того, что рандомный файл можно сжать на один байт, равна приблизительно 1/256. В качестве условия надо ставить сжимаемость на несколько байт.
--
Какой длины? неужели любой? Как вы это определили? Если данный файл разбить скажем на 256 кусков, для каждого куска вероятность 1/256, получается уже довольно неплохая вероятность сжать. что за необдуманные постинги.

125. Vladimir Rybinkin, 20.01.2002 20:32
PetrZloy
цитата:
Ну так речь шла о файле "до 10 мб"
Да, речь шла "до", но не шла "от". Я привел вариант, который quest выигрывает 100 из 100.

Предлагаю вариант - сжатие хотя бы на 1 байт возвращает 11 баксов, более 1% - пари выиграно

126. PetrZloy, 20.01.2002 20:59
Vladimir Rybinkin
ну не надо об этом, к одному слову придираться. Когда я решу заключить пари я бы КОНЕЧНО согласовал точный размер - так что не надо об этом. Раз сказал 10 мб - значит 10. А вообще насчет процента - это, помоему, вы перегинаете.

IronPeter
почему на несколько байт? несколько - это сколько?
Тут вы похоже не учли что код, который генерит посл-сть тоже займет "неколько" байт.

Предлагаю точно и честно сформулироваь условия для начала.
Предлагаю так:
--
Дан .СOM файл для DOS 7.0, который выводит на экран 10485760 байт.
Требуется: создать .сом файл, так же работающий под DOS 7.0, так же выводящий эту последовательность, но чтобы он был меньше хотя бы на один байт.
--
Думаю такая формулировка выражает мнение quest'a.

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

Добавление от 20-01-2002 21:11:

и вообще, если вернуться к началу. Даю вам файл 10485760 байт.
Вы делаете из него 10485760*0.99=10380903 байт.
Я говорю: ну сожмите ваш результат еще несколько сотен раз.
Получается вы готовы сжать мой файл не на 1%, а на скажем 50%.
Я где то ошибся?

Добавление от 20-01-2002 21:19:

Если 200 раз уменьшать по 1 проценту то из 10-ти мб получится 1.5 мб.

Или вы расчитываете что мой 10 мб-й файл будет сжиматься, а полученный архив будет "более сложен" (по колмогорову), другими словами что последовательность в условии будет достаточно вам удобной?

127. Vladimir Rybinkin, 20.01.2002 21:33
quest
Нет, это все-таки:
1. Красиво
2. Нагло

Короче, я согласен принять пари. Верю в свое мастерство алгоритмиста (про то, что я здесь дилетант - уже писал ).

Условия: исходник 1-10 Mb, результат - экзешник меньшего размера, генерящий исходник. Если сжатия нет - я проиграл, если более 1% - выиграл. Иначе - ничья. Идет?

Еще можно тотализатор устроить (на сколько %/байт удастся сжать). QZ, скажем, будет ставки принимать . Месяц интриги...

128. PetrZloy, 20.01.2002 21:44
Слушайте друзья, можно подумать что вы сговорились. Quest специально предложит заранее сжимающуюся посл-сть, владимир ее сожмет, все будут ставить против, кто будет знать секрет - поставит за и выиграет кучу бабок.

Причем я думаю что не так сложно придумать 10 мб которые можно сжать на 1%, но внешне это хрен заметишь.

так что идею ставок не поддерживаю.

129. Vladimir Rybinkin, 20.01.2002 21:50
PetrZloy
Во-первых, QZ секрета не знает. Во-вторых, судьей может быть, скажем, PetrZloy . В-третьих, доброе имя, честное слово, стоит дороже. В-четвертых, у меня есть опыт проведения тотализаторов (есть программа, которая генерит итоги, хоть ежедневно, есть правила, есть возможность введения дополнительных туров и т.п.). В-пятых, тотализатор может быть условным, в виртуальных единицах - просто для интереса.

130. PetrZloy, 20.01.2002 22:00
quest
Учти, что если в файля будет совсем туго со "стандартными закономерностями" - то можно будет сделать некую оценку об отсутствии оных и применить необратимый алгоритм (который не может ОДНОЗНАЧНО распаковать, но в тех местах где он будет предлагать выбор будет работать оценка об отсутствии закономерностей)

поэтому можно чересчур перестараться с генерацией исхходника...
Нужно многое учесть.

Добавление от 20-01-2002 22:01:

насчет судьи я подумаю

131. rGlory, 21.01.2002 06:36
PetrZloy
цитата:
Или будете с какого то физического процесса показания снимать?

Да зачем так сложно. Можно например файл того же размера зашифровать.

132. Alexzander, 21.01.2002 07:48
Ставлю на Vladimir Rybinkin 1000 виртуальных у.е. (виртуальных потому что столько реальных у меня нет, но я верю в Vladimir Rybinkin).

133. rGlory, 21.01.2002 07:52
Alexzander
Принимаю. Кто-то же должен принять Я верю в Шеннон и quest да и интересно, насколько СИНТ приспособлен для сжатия данных

134. Евгений Машеров, 21.01.2002 09:15
Tsykunov
Не имев возможности сразу ответить на Ваш вопрос, я с радостью увидел квалифицированное разъяснение quest'а.
В реальности Ваш алгоритм сжимает перестановку последовательностей длины 2^m с m*2^m до (m-1)*2^m
В то же время энтропийный предел сжатия явно ниже Вашего результата, и достичь его просто.

Добавление от 21-01-2002 09:31:

PetrZloy
Дело в том, что все практически применяемые алгоритмы сжатия - уже адаптивны (в практику вошли годов с 60-х, вытеснив ранее предложенные неадаптивные, которые, впрочем, также применяются; например, факсы сжимаются соединением Хаффмана, RLE и отследивания изменения по строкам)
Скажем LZW адаптируется, формируя словарь, а адаптивный Хаффман - уточняя вероятности символов.

135. quest, 21.01.2002 10:20
Vladimir Rybinkin
Условия: исходник 1-10 Mb, результат - экзешник меньшего размера, генерящий исходник. Если сжатия нет - я проиграл, если более 1% - выиграл. Иначе - ничья. Идет?

Идет!

На таких условиях я даже не стану требовать "предоплаты" (хотя творение файла и потребует от меня расходов и отнюдь не $10 ).

До конца месяца вышлю по мылу (уместится в ящике 10 Mb?) файл и жду до 8 марта результата или $10 по указанному в мыле номеру счета в Сбербанке Принято?

136. IronPeter, 21.01.2002 10:31
1/256 - это оценка сверху. Реальная вероятность не больше. Хотя я думаю, что и не намного меньше. На таких объемах данных влияние конкретной структуры языка должно размываться.

Готов поставить (виртуальные) 1000$ за quest. Если ему удастся найти хороший источник случайной информации.

137. Tsykunov, 21.01.2002 11:21
guest
Вы не поняли суть моих разногласий с Евгением Машеровым и, увы, не желаете понимать ее.
Дабы сразу отсечь возражения с манипуляциями терминами уточню: в Вашем алгоритме используется перестановка строк длины 2 бита, которых ровно 4, и именно эти четыре строки являются символами в задаче Евгения Машерова.
Перестановка строк длины 2 бита, которых ровно 4 – это строки 00, 01, 10, 11 или символы a, b, c, d, их перестановка – это dcba или badc или …..
[/i]Евгений Машеров (#98, 18-01-2002 10:38) просил Вас "Прошу алгоритм, который для произвольной перестановки М символов строит сжатую последовательность длины (в битах) менее М."[/i]
Вы хотите сказать, что Евгений просил меня сделать из строки-перестановки dcab длиной 8 бит сделать строку длиной менее 2 бит? Или менее 4 бит? Не слишком ли круто, такие задачи ставить? Не этого хотел Евгений, IMHO.
Хорошо, пусть вопрос о постановке задачи решает Евгений Машеров. Вы же обвинили меня еще и в том, что МОЯ задача неправильно решена. Она тривиальна, тривиально и мое решение, но тривиально для меня, а не для Вас.
Это на каком основании Вы закодировали один из 5 вариантов двумя битами?
А на таком. Если Вы дадите себе труд капельку подумать, то увидите, что каждый раз номера вхождений у меня представлены двоичным деревом и уникальны. Для каждой итерации строится новое дерево. И каждый раз длина в битах номеров вхождений сокращается. Так что, это не фокусы. Одна случайная перестановка сожмется до 15 бит, другая до 17, третья до 14, но все они будут меньше 24 бит.
Беда в том, что апосля хрен раскодируешь!/i]
Я-то раскодирую. И Вы тоже. Сейчас объясню. Ничего, если только для одной итерации?
4 итерация раскодирования. То есть раскодируем четвертое значение – 011. То есть определяем его вхождение в выходной поток разархиватора, в котором уже есть X X X 000 010 X 001 X, где X – незанятые позиции, то есть вхождение в одну из незанятых позиций.
Дерево для четвертой итерации 00 01 10 110 111 – точно такое же, как при кодировании
"входящий бит" – это функция, откусывающая 1 бит от входного потока и возвращающая его значение
Входящий поток 00 и т.д.
Процедура такая.
если "входящий бит"=0 то если "входящий бит"=0
то "вхождение":=1 иначе "вхождение":=2
иначе если "входящий бит"=0
то "вхождение"=:3 иначе если "входящий бит"=0
то "вхождение":=4 иначе "вхождение":=5
Получаем для 00 "вхождение"=1 и ставим значение 011 в выходной поток:
011 X X 000 010 X 001 X.
Вроде, понятно? Дерево не надо рисовать?
..
[i]А логарифм пригодится: для кодирования перестановки из 2^N символов потребуется log((2^N)!) бит.

"Сжатием" считается случай, когда длина выходной последовательности алгоритма меньше log2((2^N)!)
Вы разберитесь среди Ваших log2((2^N)!) и log((2^N)!).
А потом ответьте на вопросы: Ваш логарифм от 40320 – целое число? Нет? А как Вы собирались кодировать номер перестановки нецелым числом бит? Или Вы его округлили? Тогда, где округление в формуле? А на каком основании округление?
Вот Вы послали меня к учебнику для мехматов универов, я схожу, а Вас к какому послать за логарифм?
Как Вам сказать поласковей?.. - А вы не стесняйтесь, мой IE все стерпит.
Вы утверждаете, что Ваша теория правильна и выполняется на всем пространстве. Я привожу одну точку, где она неверна. (см. мой ответ Lionking от 17,01 14,41 – только меняйте Колмогорова на Шеннона). Отсюда может быть три вывода: 1. Я неправ. 2. Теория полностью неверна. .3. Теория верна не на всем пространстве. Какой вывод сделаете Вы?
А пари с Вами заключать не буду. По двум причинам. Первая, сами знаете какая. Вторая – написавший такой алгоритм может поиметь с него больше 1000 долларов.
P.S. Прошу прощения за стиль изложения, но я брал пример с Вас.
PetrZloy
можно подумать что вы сговорились
судьей может быть, скажем, PetrZloyVladimir Rybinkin
можно подумать, что вы сговорились втроем

138. Евгений Машеров, 21.01.2002 11:31
Tsykunov
Боюсь, что для восстановления дерева при раскодировании Вам придется иметь уже декодированную последовательность. Ваш алгоритм в таком виде неработоспособен. А исправленный - дает ухудшенный вариант стандартного.

139. quest, 21.01.2002 11:39
Tsykunov

Извините, но для Вашего образования у меня нет времени, а у Вас - денег

Излагать специально для Вас основы математики, изучаемые на первых курсах за просто так мне как-то лениво... Чао!

ЗЫ. Желаю всяческих успехов в написании алгоритмов!

140. Vladimir Rybinkin, 21.01.2002 12:13
quest
Принято. Гарантирую выплату "чистыми" (накладные расходы за мой счет).

Я, конечно, дилетант в области архивации, но завелся, поэтому сжигаю мосты: жать буду беспощадно, не 1% + 1 байт, а сколько смогу. 10% - так 10%, в 10 раз - так в 10 раз . Я верю своему "спинному мозгу", а он говорит - сжать МОЖНО!

цитата:
уместится в ящике 10 Mb?
А что, заархивировать нельзя?
Должно, вроде... В крайнем случае, можно нарезать.

Alexzander
Спасибо, постараюсь оправдать .

rGlory

цитата:
интересно, насколько СИНТ приспособлен для сжатия данных
мне тоже

По поводу тотализатора: мы делали это на чемпионаты мира/европы по футболу. Безумно интересно. Общий смысл: правила и алгоритмы расчета должны быть открыты (чтобы каждый заинтересованный мог проверить). Данные сдаются до заранее оговоренного срока (для каждого этапа), после чего публикуются (рассылаются всем участникам). Войти не сначала можно только в заранее оговореных точках (с начала очередного этапа), получая очки последнего участника (если они отрицателные) или 0. Более поздние туры оцениваются дороже, чтобы сохранить интригу до конца. Количество параметров достаточно большое, чтобы обеспечить "разброс и шатание" участников. Ведется график (при большом количестве участников только для нескольких текущих лидеров - у нас было 8).

Примерные правила для этого варианта:
1 этап. Получение экзешника (пусть даже бОльшего размера)
- дата
- изменение объема относительно исходника в байтах
оценки:
- отклонение даты от фактической (попадание, 1 день, 2, 4, 8, ...)
- отклонение размера от фактического (попадание, 1 байт, ..., 1 мегабайт)
2 этап. Улучшение экзешника (может быть разбит на части, например, по неделе):
- общее количество улучшений за этап
- дата
- изменение объема относительно текущей версии (естественно, в минус).

Числовые значение штрафов/премий не очень важны, главное - чтобы были заранее оговорены.

141. PetrZloy, 21.01.2002 12:56
rGlory
Да зачем так сложно. Можно например файл того же размера зашифровать.
Опять я ничего не понял. Вот теперь думаю: я тагой тугой что ли либо присутствующие уже выработали свой язык? (в котором столько всего опускается (хорошее сжатие ) , что я ну никак не могу его (смысл) восстановить (распаковать))

All
Поставил бы я без вопросов на quest, но, блин, можно ведь и лохануться - не такая уж простая это задача - генерация 10 мб, которые нельзя так сжать. Учесть все просто невозможно. А тут Владимир предложил в условиях 1%, и в таким образом без вопросов на quest.

Да, предлагаю исходник заархивировать например РАРом, и выложить для скачивания.
Для ограничения доступа можно запаролить (а нужно ли это - ограничивать?)
А заархивировать не затем, чтобы сжать а чтобы при скачивании не произошло ошибок - рар CRC в архиве держит.

Представьте, если алгоритм будет работать для своих архивов? вот я тогда фильмы буду на дискетах носить

Tsykunov
Ну можно конечно, но не стоит (насчет сговорились, да еще и втроем)
по крайней мере кроме виртуальных ставить я не собираюсь...

142. WPooh, 21.01.2002 14:37
Класс! Сколько я всего интересного напропускал!quest и Vladimir Rybinkin если чего надо, могу посодействовать. Не корысти для а только истины ради. Могу попросить своего друга присобачить АЦП нужной разрядности (до 24 бит) к резистору и нагенерить шума сколько влезет. Могу поанализировать данные. (не одновременно, конечно)
Если обе стороны не против.

143. Tsykunov, 21.01.2002 14:57
2All
Искренне благодарю ВСЕХ участников дискуссии. Я многое понял с Вашей бескорыстной помощью.
Vladimir Rybinkin
Если выиграете 1000 реальных долларов – с Вас 500 виртуальных, как посреднику. Высылайте мылом. .
Заодно, сыграйте на http://mailcom.com/challenge. Удачи!
Евгений Машеров
Боюсь, что нам уже трудно договориться. Вам - особое спасибо.

144. Евгений Машеров, 21.01.2002 15:48
quest
Отважно
Но не столь рисковано. Кстати, физический генератор будет ли программный?
Давненько к военной истории не возвращались - а ведь компрессия и там может быть не оффтопиком Танком дистанционно управлять - или разведданные передавать...

145. Vladimir Rybinkin, 21.01.2002 16:47
WPooh
цитата:
если чего надо, могу посодействовать
Разумеется, я не против. Мне нужен теоретически несжимаемый файл, и кто его получит - дело десятое.

Евгений Машеров

цитата:
Отважно
Согласен. Кстати, с моей стороны ставки тоже достаточно высоки. Дело же не в паршивом червонце (и даже не в штуке ). Результат увидят все, и это, черт побери, моя репутация. Это либо мощнейшая имиджевая вещь, либо .

146. Кудрявцев Леонид, 21.01.2002 17:24
цитата:
WPooh:
...друга присобачить АЦП нужной разрядности (до 24 бит) к резистору и нагенерить шума сколько влезет. ...

Мое IMHO, что полученные данные любым ZIP/ARJ/RAR сожмутся отнуть не на 1% (готов поставить на минимум _30_ - 90%). Врят ли шумы будут _чисто случайные_.

P.S. Предлагаю в качестве теста постараться сделать файл предварительно заархивированный, а потом через какой нибудь крутой шифровальшик пропущенный.

147. Lionking, 21.01.2002 19:05
Кудрявцев Леонид

Если брать разумно (например, младший бит от каждого измерения), никаких лишних корреляций быть не должно и 30% никак не должно получиться (хотя ненулевая вероятность есть

148. IronPeter, 21.01.2002 20:04
Кудрявцев Леонид

Я для смеху сгенерил с помощью rand() файл длиной 1МБ и потом злорадно хихикал над попытками RARа его сжать. Уже в случае такой наивной "случайности" сжать ничего не получается.

149. PetrZloy, 21.01.2002 22:21
Ага, я тоже раньше говорил, что мне бы для начала научиться сжимать файлы, которые random() генерит...

150. AleUri, 21.01.2002 22:25
IronPeter а случайно не последний RAR archiver 3.00 beta 1

151. IronPeter, 21.01.2002 22:29
Нет. А что, он умеет?

152. AleUri, 21.01.2002 22:34
пока науке (эмпирической) это не известно

153. Dmitriy M. Reznitskiy, 21.01.2002 22:34
2[bold]All[/bold]
Всё, конечно, хорошо, всё супер. А скажите мне - хоть кто-то и вас пытался создать нечто работающее? Я даже не говорю о коммерческом использовании, я говорю всего лишь опервом так сказать шаге, когда надо просто попытаться написать некий код ? а? ну?
К чему вся эта ветка?

154. ThreeDHead, 21.01.2002 23:35
2 All
Я на 3-й страничке этой ветки описывал свою ижею сжатия данных, потом она мне показалась очень привлекательной и я свои высказывания подчистил. Но как оказалось, на теории все красиво, а на практике не удалось (отрицательный результат - тоже опыт). Сейчас я заново выложу свою идею (без корректировок), а ниже опишу проблемму с которой я столкнулся, быть может у кого нибудь возникнут идеи.


----------------------------
Подключусь к дискуссии и я.
Я в манематике не шибко силен, но есть идея по поводу алгоритма сжатия.
Давайте представим данные (файл, кусок файла) в виде рисунка, допустим 1024х1024. Там где еденичка - там черная точка, а где нолик - белая. Расчитаем - это 128 Кбайт.
Теперь об архивации: мы имеем N алгоритмов псевдо-случайной генерации чисел (я надеюсь такое бывает ? Если нет то можем иметь готовый набор).
Процесс: мы генерим каждым из имеющихся способов массив битов размером исходных данных т.е. 1024х1024. Перебираем все получившиеся варианты, и выбираем наиболее подходящий по рисунку способ. Далее мы можем конпоновать получившиеся картинки друг с другом (типа 1 на 1 дает 0) а-а-а вспомнил методом И НЕ. Вариантов может быть безграничное множество, и один из них будет наиболее близок к исходнам данным. Ну, вы скажете - "а если есть куча нулей(или единиц), они же выстроются в прямоугольник, полосу, круг, рожицу в конце-концов". Ну дак на это место можно применить прямоугольник, круг, линию (как в MSPaint'е). Ну а когда 90% пикселов совпадают, то все остальные мы можем описать "влоб" (SetPixel(X, Y) ).
Результат: номера нескольких алгоритмов псевдослучайных чисел, несколько формул триугольников / гривых / линий и т.п. и несколько координат пикселей = 10 Кбайт. Как вам размерчик ???
Разархивация: практически моментальная.

Вариантов море, время "архивации" долгое, но ведь это вариант. Как говорится если при подборе пароля не учитывать время, то абсолютно любой пароль можно подобрать. Так и тут, если не учитывать время, то можно подобрать абсолютно любую последовательность формул, чтобы описать исходные данные.
Если ошибаюсь, прошу не пинать, посмейтесь и все. ж)

В дополнение себе:
А еще лучше иметь дело с запакованными файлами (rar, arj, zip, e.t.c.) - их рисунок будет более равномерным и хаотичным, что и надо. Так как сгенерированный псевдослучайным образом блок данных будет таким же (плюс/минус), а в комбинации с другими сгенерированными данными может быть очень похож на исходные данные. И отпадает подбор квадратов, линий, кругов и т.п., так как в хаосе их быть впринципе не может.
Если подобрать рисунок на 80% похожий на оригинал, то можно оставшиеся 20% описать "в лоб". И в результате со 128 Кбайт в ~32 Кбайта, притом "сжимали" сжатые данные !
----------------------------


А теперь результат.
Если подобрать матрицу со случайными числами на 82% похожую на оригинал, то блок данных сжали на 0%, соответственно 91% совпадений - это сжатие 50% и т.д. Это все при 65К комбинациях. Но на самом деле из 65К комбинаций довольно трудно подобрать оригинал даже для матрицы 8х8, максимум удалось 80%.
Вместо постоянного генерирования случайных матриц можно (нужно) использовать базу данных готовых образов для подбора.
Да к стати, с помощью этого алгоритма можно упрощать запакованные данные, а после опять паковать архивером (но это пока только в теории).
У меня есть программа, которая демонстрирует сие действо с разными матрицами от 8х8 до 256х256. Если кого интерисует могу намылить. Может у кого есть фтп, пускай выложат у себя и дадут ссылку.
Ну вроде все.

155. PetrZloy, 22.01.2002 03:41
для Dmitriy M. Reznitskiy
Написать думаю для многих не проблема (в частности для меня) - вот придумать что-нибудь для начала попробуйте...

2 all

Я тут такой бред написал, что пришлось его удалить
(это была идея архиватора, но так как по терверу я не спец то я просчитался - благо не прошло и часа как я все понял)

впринципе могу ее заново запостить, но уже в качестве анекдота

Добавление от 22-01-2002 08:40:

ThreeDHead
Уважаемый! Мне тут пора на экзамен идти, а как вернусь то расскажу вам подробно что думаю о вашем алгоритме, но ключевую ошибку сейчас укажу.
Вы думаете что есть N способов сгенерить случайную посл-сть в 1024х1024 байт.

Давайте возьмем 4х4 (для простоты). Кол-во бит=16, то есть это два байта.
И на самом деле вариантов тут не N, а 2^16=65536. а что вы подразумевали под N и под "способов сгенерить сл-ю посл-сть" не совсем понятно.
И сжатия никакого не выходит.

Остальные мысли по возвращению...

156. Евгений Машеров, 22.01.2002 09:49
Tsykunov
Не сочтите за попытку "давить эрудицией", но рекомендовал бы Вам ознакомится с базисной математикой. В частности, необходимыми являются теория информации (для общего знакомства - Яглом и Яглом), теория вероятностей, Кнут.
(Кроме того - некоторые разделы численной математики).
Для сжатия с потерями желательно знакомство с психоакустикой, физиологией зрения и т.п., смотря по предметной области.
Сжатие без потерь в общем случае действительно невозможно - не существует алгоритма, который любой набор символов превратит в меньший по объему, так, чтобы можно было восстановить исходный. Это происходит потому, что несжатых, длинных наборов, больше, чем коротких, так что одному сжатому будет соответствовать несколько несжатых. Эффективность существующих алгоритмов такого рода обусловлена взаимосвязью символов и их неравновероятностью. Так что необходимыми этапами сжатия будет вычленение зависимостей между символами (будь то корреляция - тогда переход к Карунену-Лоеву или его аппроксимации, или повторение символов - и приходим к RLE), за которым следует энтропийное, использующее неравновероятность символов, кодирование (Хаффман, Шеннон-Фано, арифметическое). В первой части возможен успех - для новых предметных областей, во второй он крайне маловероятен. Действительный прорыв ИМХО возможен в сжатии с потерями, скажем, видеоинформации или геофизики.
Его возможность связана с тем, что сжатие с потерями эксплуатирует тот факт, что различные сигналы практически тождествены с точки зрения некоторого критерия - причем он трудно формализуется, например, такой простой для анализа, как среднеквадратическое отклонение очень плох для сжатия звука.
Последовательности же чисто случайных (или выглядящих как случайные) данных сжимаются весьма плохо. Свидетель тому присутствующий здесь экс-офицер Кей-Джи-Би, ныне дрессирующий многоногих монстров для империализма В криптографии, если зашифрованное сообщение может быть эффективно сжато - это основание для признания шифра плохим (а вот до шифрования сжимать можно и полезно).

157. IronPeter, 22.01.2002 10:56
Евгений Машеров

Не вижу серьезной разницы между наличием корреляции и повторяющимися символами. Ежели у нас есть марковский процесс, то переходная мера задает вероятность на большем алфавите.

158. ThreeDHead, 22.01.2002 11:10
PetrZloy
Теперь моя очередь опустить тебя с небес на землю. Дело в том что каждый бит служебной информации для блока "незапакованных" данных, в конце вылезет тебе боком. Так как подобрать (каждый пятый блок - по твоим словам) будет нереально. Твой алгоритм от моего отличается только лишь тем что я хочу использовать базу данных сгенерированных образов, а ты использовать формулы для их генерации - что в результате одно и тоже.
Да, на счет моего N. Абсолютно понятно что я не смогу подобрать все блоки данных, иначе количество комбинаций станет равным размеру блока (переливание из пустого в порожнее). Но тем не менее есть вероятность что 50% комбинаций кудато да и сгодится - а это хоть небольшое но сжатие. Но на практике пока - фиг там.

Но тем не менее попытку решить проблемму преветствую - тренеровка мозгов.

159. Tsykunov, 22.01.2002 11:13
Vladimir Rybinkin

с моей стороны ставки тоже достаточно высоки
Вы рискуете еще и тем, что тестовый файл при глубоком анализе может оказаться сжимаемым по классическим показателям, которых достаточно много, уже после выполнения Вами условий пари. Ваша победа в этом случае окажется несколько девальвированной. Ведь Вас интересуют не только деньги? Посему Вы должны быть заинтересованы в обеспечении доступа к файлу до того как...
Вы смотрели мой линк? Что скажете?

160. Евгений Машеров, 22.01.2002 12:01
IronPeter
Для марковских - да. А вот известный контрпример, в котором Карунен-Лоев оказывается неоптимальным, построен как раз на сжатии последовательностей одинаковых символов.

161. Vladimir Rybinkin, 22.01.2002 13:13
Dmitriy M. Reznitskiy
цитата:
А скажите мне - хоть кто-то и вас пытался создать нечто работающее?
Интересно, это кому вопрос?

ThreeDHead
С моей (дилетантской) точки зрения этот алгоритм работать должен (правда, это актуально, по-моему, не столько для архивации, сколько для распознавания образов). Кстати, нечто подобное мы когда-то хотели применить для картографии, но эту работу нам так и не дали. Увы, мне не подходит: библиотека образов/алгоритмов - лишние байты в "продукте". Придется выкручиваться гораздо более жестко .

Евгений Машеров

цитата:
Сжатие без потерь в общем случае действительно невозможно - не существует алгоритма, который любой набор символов превратит в меньший по объему, так, чтобы можно было восстановить исходный.
А это как раз мой главный козырь. Мне надо НЕ ЛЮБОЙ .

Tsykunov

цитата:
Вы рискуете еще и тем
Нет, этим рискует как раз quest.
цитата:
Ваша победа
Вашими бы устами . Ох, нелегка она будет (если будет)!
цитата:
Ведь Вас интересуют не только деньги? Посему Вы должны быть заинтересованы в обеспечении доступа к файлу до того как...
Угу. Я и предлагал тотализатор, имея в виду, что буду выкладывать текущую удачу на всеобщее обозрение (если quest не будет возражать).

Я попросил шефа написать, что он по этому поводу думает, и в дальнейшем планирую рассказывать о текущем состоянии здесь:
http://www.2bit.ru/bet.htm

цитата:
Вы смотрели мой линк? Что скажете?
Открыл и закрыл . Хватит и того, что есть по уши. Основной работы ведь у меня тоже до хрена.

162. PetrZloy, 22.01.2002 13:49
Вот я и вернулся.

ThreeDHead
я не понял! как вы узнали про мой алгоритм? Ведь он был доступен только с 3:41 по 4:53 ночи! неужели вы его прочитали???

ну впрочем в 4:53 я же написал что все понял, какой просчет я совершил.
В свою очередь хочу вам сказать, что если вы подбираете такой образ, который не полностью совпадает с оригиналом, а скажем на 90% - вам приходится как то хранить несовпадающие биты - это тоже выползет вам боком, причем очень большим.
"Но тем не менее есть вероятность что 50% комбинаций кудато да и сгодится"
- в том то и дело, что ваш алгоритм не привязан к данным. Чтобы достичь сжатия мы должны сделать хоть какою-то оценку! Вы ее не делаете. т.е. для "очень плохого" файла алгоритм не сработает.

Да, согласен, мой алгоритм по сути имеет ту же идею, что и Ваш.

Поэтому мне и легко было понять тонкие места в нем (после того, как я нашел в своем).

А теперь хочу обратиться ко всем:
2 ALL
я хочу на основе идеи ThreeDHead рассмотреть такой алгоритм:
разобъем последовательность на восьмерки байт (блоки 8х8 бит).
Всего возможно 2^64 вариантов таких блоков.
Чтобы достичь сжатия мы должны воспользоваться какими то знаниями о исходнике, верно? иначе сжатие невозможно по всяким там умным принципам.
Я предлагаю воспользоваться тем фактом, что мы знаем, что заданная последовательность "плоха", то есть в ней не может встретиться, например, состоящий целиком из нулей, или состоящий целиком из единиц, или такого вида: 10101010...

Вобщем, использовать информацию об отсутствии определенных закономерностей.
Таким образом мы перенумеровываем 2^64 возможные комбинации в новый набор, где число вариантов меньше. Правда чтобы стабильно экономить хотя бы один бит из 8 байт придется откинуть половину вариантов - 2^63 - это выглядит малореально, но можно я думаю покопать в ту же сторону.

Tsykunov
Что за линк? я что-то просмотрел??

Добавление от 22-01-2002 13:53:

Vladimir Rybinkin
cool! Вы, я смотрю решили заранее возместить 10 баксов, находящиеся под риском - заработать как нибудь на странице, линк которой вы привели, на рекламе или еще как-то ? похвально, похвально!

Добавление от 22-01-2002 13:56:

ThreeDHead, ALL
Ах, черт я все понял - во всем виновата долбанная рассылка... Так что если кто подписался - можете прочитать анекдот в моем сегодняшнем сообщении от 3:41...[b]

163. Dmitriy M. Reznitskiy, 22.01.2002 13:59
Vladimir Rybinkin
Всем, кто писал, что то-то и это дескать просто сделать

164. Tsykunov, 22.01.2002 14:07
Евгений Машеров
Согласен с Вашими рекомендациями. С Вашими взглядами на развитие теории и практики сжатия спорить не буду. На мой взгляд, общая дискуссия исчерпала потенциал в заданных рамках и форме. Могу лишь изложить личные выводы из нее. Существуют несколько теорий, обосновывающих невозможность сжатия данных с некими формальными признаками. Однако, все они оперируют в основном относительными значениями этих признаков. Некоторые из теорий не имеют общих точек соприкосновения, иные противоречат друг другу. Общим для всех является лишь отсутствие алгоритмов, отодвигающих границу их действительности. То есть эмпирический показатель.
В некотором роде, вера в сжатие – религиозный вопрос. Я пришел сюда испытать мою веру (в числе прочего). Она не поколебалась. Сегодня у меня есть 3-4 направления для работы. Если они окажутся тупиковыми, как и N прошлых, - появятся новые. Я не жду Универсального алгоритма, я ищу доли процента. Возможно, я смогу найти их. Сделал же я основные существующие алгоритмы, пользуясь школьным курсом информатики, и практически на бумаге. И я не одинок в своей вере.

Добавление от 22-01-2002 14:10:

PetrZloy
на 7 странице

165. Vladimir Rybinkin, 22.01.2002 15:57
PetrZloy
цитата:
cool! Вы, я смотрю решили заранее возместить 10 баксов, находящиеся под риском - заработать как нибудь на странице, линк которой вы привели, на рекламе или еще как-то ? похвально, похвально!
Ну надоело, ей-богу! Как я что-нибуть этакое скажу - "демагогия", покажу - "реклама"... Поверьте, я в состоянии заработать $10 гораздо меньшими усилиями.

На всякий случай сообщаю: шеф еще ничего не написал, страничка пустая, НЕ ХОДИТЕ! Я ее сгенерил просто во время своего предыдущего ответа в эту тему. Сегодня инфа должна появиться, завтра (если кому интересно ) - можно смотреть.

166. B.A.D., 22.01.2002 16:10
PetrZloy
заархивировать например РАРом, и выложить для скачивания

RAR не идеал - распаковать тем же RAR и запаковать более мощным Rybinkin точно сможет

которые random() генерит
Ну уж раскусить механизм програмнного random() любой сможет (ИМХО)

Кудрявцев Леонид
предварительно заархивированный, а потом через какой нибудь крутой шифровальшик пропущенный

Вот это уж будет ближе к телу. Но Rybinkin тоже крут.

Vladimir Rybinkin
черт побери, моя репутация

Встречная задача: А на сколько % можно еще повысить Вашу репутацию
(есть ли люди чью репутацию повысить более нельзя)

To all

quest попал на двойную работу
в основном его задача состоит в генерации файла + создание архиватора мощнее чем может создать Rybinkin, чтоб проверить что он не сжимает этот файл. Так что мы наблюдаем соревнование кто лучший архиватор напишет.
(ИМХО такой файл есть, но найти вряд ли удастья до конца месяца - зато можно найти файл который Rybinkin не сожмет - таких гораздо больше)
Моя ставка на победу технологии над набором данных.

167. PetrZloy, 22.01.2002 16:10
Vladimir Rybinkin
Я вообще-то в шутку...

[offtop]Меня одно удивляет, как на этот сайт (http://mailcom.com/challenge) пробрался spylog[/offtop]. А вообще-то наверное интересный ресурс, и вот еще один может тоже: http://arctest.cjb.net/

Добавление от 22-01-2002 16:22:

B.A.D.
RAR не идеал - распаковать тем же RAR и запаковать более мощным Rybinkin точно сможет - ни слова не понял, если можно - поясните. Если имеется ввиду что рар файл не сожмет, то я писал что рар нужен только для того чтобы любой желающий мог скачать этот файл и дрючить его во все дыры, рар гарантирует то, что если закачка архива произойдет с ошибкой то юзер это заметит. Не только рар так делает - почти все, я сказал рар например.

Ну уж раскусить механизм програмнного random() любой сможет (ИМХО)
раскусить этот механизм допустим каждый сможет, но если я например нагенерю файл такого вида:

код:
randseed:=random(maxint); for i:=0 to 10mb do a[i]:=random(maxint)

, да потом еще запишу в обратной последовательности через один в шахматном порядке, инвертируя (я утрирую) - посмотрю как вы (в качестве каждого) раскусите ЧТО это было.

Я например не знаю как запаковать такой файл. Кто знает - просвятите...

168. quest, 22.01.2002 17:05
[To All]

А кроме Vladimir Rybinkin больше желающих поспорить не будет?

Ну, раз так, то пока у меня кой-чё считается, проведу сеанс психологического давления на супротивника и, заодно, алаверды моим болельщикам

Итак, анализ ситуации.
Я генерю файл f1 размером (для простоты) в 2^23 бит (1Mb), а Vladimir Rybinkin умудряется сотворить exe-шник e1.exe , размером не больше 2^23-8 бит (минимум на байт меньше), генерящий мой исходник.
Если бы я дал ему другой файл (f2) такого же размера, он сотворил бы другой exe-шник e2.exe опять размера не больше 2^23-8 бит.
И мне увы...
Но, на моё счастье любой ехе-шник, являющийся self-экстрактором одного конкретного файла, может (и должен) творить только один файл. Разные exe-шники могут выдавать одинаковые файлы, но один self-экстрактор в условиях нашего пари может выдать только один исходник, а чтобы выдать другой он должен отличаться хоть на один бит.
А сколько можно запрограммировать различных exe-шников, размером не больше 2^23-8 бит? - Во всяком случае, не больше число двоичных последовательностей, размером до 2^23-8 бит! На самом деле - значительно меньше (т.к. не все двоичные последовательности представляют собой выполняемые программы), но не будем мелочиться
Нетрудно подсчитать, что всего двоичных последовательностей длины до 2^23-8 бит включительно 2^(2^23-7), включая последовательность длины 0.
Среди них будет масса последовательностей, которые вообще не исполняемые программы, будет огромное число программ, вообще ничего не генерящих, программ, генерящих более одного файла и программ генерящих файл, размером отличающегося от 2^23 бит. Но даже, если бы они (последовательности) все были исполняемыми программами, все генерили по одному файлу, все файлы были разными и одной и той же длины 2^23 бит, то они все в совокупности сотворили бы только 2^(2^23-7) разных файлов размером 2^23 бит.
Ну, а у меня выбор немного побольше: разных файлов длины 2^23 бит существует 2^(2^23).
Если среди них я умудрюсь выбрать один совершенно случайно, то вероятность угодить на исходник, генерящийся хоть одной из всех возможных программ, размером до 2^23-8 бит будет не больше, чем 2^(2^23-7)/2^(2^23). Это радует, т.к. сия величина равна 1/128 (я не с потолка предложил ставки в отношении 1:100 ).
Предложение Vladimir Rybinkin сжимать на 1%, уменьшает его возможности выиграть пари для 1Mb файла с 1/2^7 до ~ 1/2^83885, что ИМХО от нуля отличить весьма затруднительно!

Таким образом, всё упирается в обеспечение случайности выбора последовательности 8388698 бит (1Mb).

Ессно, было бы большой глупостью просто генерить эту последовательность какой-либо, пусть самой хитрой, программой, т.к. в этом случае я бы "случайно" выбирал исходник, заведомо принадлежащих классу, генерируемых программами (рази только моя программа была бы больше 1Mb и никоим образом не могла бы быть уменьшена в размере, но такого монстра мне писать лениво, да и времени нет).

Брать какие-либо физические источники случайных двоичных последовательностей - много мороки и мало знаний физики (у меня).

Но у меня есть знания в другой области
Например, я знаю, что избыточность обычного русского (литературного) текста около 70%. Что означает, что в 10Mb текста примерно 3Mb значимых битов.
И я знаю, как преобразовывать любую битовую последовательность в другую битовую последовательность, каждый бит которой функционально зависит от всех битов исходной последовательности. Причем зависимость такая, что изменение только 1 бита исходной последовательности приводит к изменению половины битов полученной, а пребразование при этом не просто однозначно, а взаимнооднозначно. Иными словами, я умею делать трудноинвертируемые преобразования шифрующего типа.
Отсюда схема: беру в библиотеке Мошкова тексты общим размером в 10Mb (с запасом), сжимаю (или - не сжимаю, что в данном случае большой роли не играет) текст, преобразовываю его, беру отрезок в 1Mb и отдаю любителям основывать свои решения на заключении не головного мозга, а спинного
И, если, 1Mb информации будет упакован в мEньшее количество бит, то вся теория информация и многие смежные дисциплины будут отправлены на помойку...

Есть ещё один вариант: я уже упоминал, что хотя общих описаний функций максимальной сложности по Шеннону нет, но относительно некоторых есть подозрения.
Мне известно одно такое описание. Уже лет 40 лучшие математики-дискретники многих стран исследует этот класс функций и подозрения только усиливаются...
Я накарябал программу построения такой функции 24-го порядка и если она успеет закончить свою работу к концу января (общий объем используемой программой информации будет поболе, чем 2Mb), то Vladimir Rybinkin получит шанс посрамить кучу математиков и скомпромитировать кой-какие системы

ЗЫ. А Санитара пора вязать...

169. Vladimir Rybinkin, 22.01.2002 18:35
quest
цитата:
А кроме Vladimir Rybinkin больше желающих поспорить не будет?
Приветствую желающих. Приз получает только ОДИН победитель (чтобы сжали как следует, а не каждый на 1% ).
цитата:
проведу сеанс психологического давления на супротивника
Обожаю сеансы (психологического давления - в особенности ).
цитата:
Но, на моё счастье любой ехе-шник, являющийся self-экстрактором одного конкретного файла, может (и должен) творить только один файл.
Если это на счастье - то не вижу, почему бы благородному дону не сгенерить пару-тройку файлов .
цитата:
А сколько можно запрограммировать различных exe-шников, размером не больше 2^23-8 бит?
Лично я собираюсь запрограммировать один...
цитата:
Но даже, если бы они (последовательности) все были исполняемыми программами
Я бы повесился
цитата:
И я знаю, как преобразовывать любую битовую последовательность в другую битовую последовательность, каждый бит которой функционально зависит от всех битов исходной последовательности.

Иными словами, я умею делать трудноинвертируемые преобразования шифрующего типа.
Нас - Рать!
цитата:
и отдаю любителям основывать свои решения на заключении не головного мозга, а спинного
Блеск! Даю тоже сеанс: похоже, Вам пока не приходилось решать теоретически неразрешимые задачи. Мне - несколько раз доводилось, в частности, того же Шеннона - примерно на три порядка (альфа-бета в шахматах). Я знаю технологию . Основана на работе СПИННОГО мозга .
цитата:
И, если, 1Mb информации будет упакован в мEньшее количество бит, то вся теория информация и многие смежные дисциплины будут отправлены на помойку...
Там ей и место.
цитата:
Vladimir Rybinkin получит шанс посрамить кучу математиков и скомпромитировать кой-какие системы
Не упустить бы...

170. Dmitriy M. Reznitskiy, 22.01.2002 18:49
Vladimir Rybinkin
кстати, не только сжали, но и разжали потом

171. Vladimir Rybinkin, 22.01.2002 18:56
Dmitriy M. Reznitskiy
Ах, да, я и забыл...

172. IronPeter, 22.01.2002 20:17
quest

А что, есть предположения о классе задач, который имеет максимальную сложность??? Мне казалось, что все предположения делаются об асимптотической сложности, с точностью до O(1). Так что никто не говорит, что там несколько байтиков отщипить нельзя.

173. quest, 22.01.2002 21:34
IronPeter
А что, есть предположения о классе задач, который имеет максимальную сложность???

Угу.

Грубо говоря, задача (или двочная функция) имеет максимальную сложность, если в её структуре отсутствуют какие-либо регулярности. Наличие таких регулярностей, с одной стороны, позволяет упростить представление функции (т.е. её сложность оказывается меньше максимальной), а с другой, - все известные виды регулярности приводит к наличию такого взаимнооднозначного преобразования пространства аргументов функции, которое оставляет функцию на месте: F(X)=F(C(X)), где F - функция, X - вектор её аргументов, а С - некоторое преобразование векторного пространства аргументов. Такие преобразования очевидно C образуют группу и эта группа называется группой инерции функции F в некоторой группе преобразований.
Например. Если некоторая функция имеет тривиальную (единичную) группу инерции в полной линейной группе, то это означает, что для такой функции невозможно найти какую-либо симметрию в расположении 0 и 1 на вершинах n-мерного куба, которую могли бы использовать для упрощения. Mожно еще добавить - это означает отсутствие отклонений от равновероятности распределения всех линейных выборок (каждый бит выборки задается линейной функцией от номера выборки) из битовой последовательности представления функции вплоть до размера выборки в n битов. Т.е. ни один тест проверки на случайность от 1 до n бит не опровергнет гипотезу об их равновероятном распределении.
Для некоторого класса двоичных функций есть подозрение, что они как раз имеют тривиальную группу инерции во всех группах решаемых (Т.е. - для которых есть алгоритмы нахождения обратных. Другими словами - их можно использовать для упрощения функции, или - для построения теста на случайность) преобразований. В свое время мне довелость доказать, что такие функции (от 5-го до 7-го порядков) имеют тривиальные группы инерции в полной линейной группе. Насколько мне известно, гипотеза о тривиальности групп инерций этого класса функций потверждена вплоть до 27 порядка (сведения десятилетней давности).
Их очень трудно строить (так оно и должно быть), но можно. Фактически требуется экспоненциальное время и память. Но я уже пару десятков лет на досуге эти функции считаю и у меня сохранились всё ранее высчитанное вплоть до 20 порядка. Эта информация (упакованная с максимальной плотностью) занимает 2,7Mb и для получения её по-новой потребуется часов этак с тыщу, даже имея все необходимые программы и с десяток гигагерцовых процев. Я надеюсь, что успею часиков за 200 построить такую 24-го порядка, благо не вручную считаю и свободные мощности есть...
А вот Vladimir Rybinkin этого за месяц не успеет проделать - я ж ему дам только конечный результат

174. Vladimir Rybinkin, 22.01.2002 21:55
quest
Жуть какая... Правда, прогнозируемая - я и имел в виду при согласии на пари: легких путей не будет, мне дадут файл, который теоретически нельзя сжать.

Вот смеху будет, если мне все-таки удастся выкрутиться .

Я примерно представляю, естественно, ЧТО я буду делать. Конечно, я не буду использовать классические методы архивации (хотя бы потому, что ни одного не знаю).

175. Tsykunov, 23.01.2002 08:00
Vladimir Rybinkin
Но, на моё счастье любой ехе-шник, являющийся self-экстрактором одного конкретного файла, может (и должен) творить только один файл. Разные exe-шники могут выдавать одинаковые файлы, но один self-экстрактор в условиях нашего пари может выдать только один исходник, а чтобы выдать другой он должен отличаться хоть на один бит. - quest
Если это на счастье - то не вижу, почему бы благородному дону не сгенерить пару-тройку файлов - Vladimir Rybinkin
Я бы ответил иначе, но quest на меня обиделся и со мной не разговаривает. А Вы при желании можете прислать ему экзешник, который кроме генерации исходника иногда исполняет format c: в зависимости от значения внутреннего программного рандома

176. Vladimir Rybinkin, 23.01.2002 10:03
Tsykunov
Нет, я не могу - мне байты надо экономить .

А по делу, конечно, дыра в рассуждениях. Одна и та же последовательность (теоретически) может сгенерить несколько выходных последовательностей (я знаю, как минимум, три способа), причем это "несколько" (опять же теоретически) вряд ли вообще конечно. Читателям этой ветки предлагается самостоятельно обосновать сие утверждение .

Вторая дыра здесь:
разных файлов длины 2^23 бит существует 2^(2^23). Если среди них я умудрюсь выбрать один совершенно случайно, то вероятность угодить на исходник, генерящийся хоть одной из всех возможных программ, размером до 2^23-8 бит будет не больше, чем 2^(2^23-7)/2^(2^23).

Но мне же обязательно повезет, из всего этого жуткого количества обязательно выберется такая, которую можно будет сжать (например, одни нули, тогда я - гадом буду - не меньше, чем на 2% сожму ).

Есть еще третье соображение (которое объясняет, почему я назвал 1%), но это - после получения исходника...

177. Lionking, 23.01.2002 10:38
Кстати, надеюсь господа спорщики видели пари на http://mailcom.com/challenge/ ?

178. Tsykunov, 23.01.2002 10:56
Lionking
Я первый, первый про него сказал )

179. quest, 23.01.2002 11:48
Vladimir Rybinkin
Одна и та же последовательность (теоретически) может сгенерить несколько выходных последовательностей

Конечно может! Но нужна одна, конкретная. Причем она должна генерится при каждом запуске exe-шника на любой машине с, для конкретности, любой версией Виндов, начиная с 95 и NT, чтобы в правильности решения мог убедиться любой болельщик
Требуемые для работы exe-шника килобайты кодов и данных операционной системы, так и быть, учитывать не будем

180. Tsykunov, 23.01.2002 12:17
Vladimir Rybinkin
Один из возможных вариантов генерации предусматривает перебор вариантов. Справедливо считать выполнением условия пари генерацию за время от отправки экзешника Вами до 8 марта минус сутки на закачку (на средней машине, скажем P500-128M)?

181. Lionking, 23.01.2002 12:39
Tsykunov

Виноват, к середине дискуссии начал читать сообщения по диагонали.

182. Alexzander, 23.01.2002 13:43
Ух ты, как тут все серьезно!

Мое видение события таково: раз неизвестны пределы сжатия (или же, точнее, нечем оценить последовательность байт информации и однозначно сказать - вот эта последовательность сжимаемая, а эта - нет), то получается, что quest так или иначе генерит некую последовательность, но не обязательно самую сложную. Здесь как в рулетке - сложное/не очень сложное. Да шансы высоки, что выйдет сложная (потому что сложных больше), но на стороне Vladimir Rybinkin более простая (как это не парадоксально) задача. Сжав файл, он лишь докажет, что последовательность не самая сложная, тогда как для успеха quest ему необходимо найти, вычислить или сгенерить именно самую сложную последовательность. Предельно сложную - несжимаемую! А это посложнее будет...

Так что я подтверждаю свою приверженность!

183. B.A.D., 23.01.2002 14:15
Vladimir Rybinkin
Нет, я не могу - мне байты надо экономить
В отличие от вышеуказаного пари на http://mailcom.com/challenge/ ?, в этом споре конфигурация оборудования не определена - ИМХО на Z80 процессоре компактнее программный код выйдет
И вроде вначале про 10Мб говорили, а теперь про 1Мб. Так 1% это будет 10К - вот куда придеться программку пихать.

quest
Покорректней надо условия выставлять (привлечь пару адвокатов как минимум)
А так Vladimir Rybinkin может свой комп собрать (VR-I), у которого нужная последовательность в ПЗУ сидит

И еще большая просьба выложить для романтиков хоть 100К этой великолепной идиальной несжимаемой последовательности - так редко в нашей жизни встречаеться само совершенство.


184. Vladimir Rybinkin, 23.01.2002 14:23
quest
цитата:
Конечно может! Но нужна одна, конкретная. Причем она должна генерится при каждом запуске exe-шника на любой машине с, для конкретности, любой версией Виндов, начиная с 95 и NT, чтобы в правильности решения мог убедиться любой болельщик
Не-а . Во-первых, я имею полное право написать это для юникс, pdp или мака (не буду, не буду). Во-вторых, я могу задавать параметром: дать мне 5-ю последовательность. В-третьих, я могу в цикле main вызвать 10 раз функцию распаковки на одних и тех же данных и выплевывать в выходной поток 10 результатов ее работы, представляющих собой 1/10 исходника каждый. Кто это может знать, кроме меня? Да и если знать - условие не нарушается. Разве не так?
цитата:
Требуемые для работы exe-шника килобайты кодов и данных операционной системы, так и быть, учитывать не будем
Да можно и учитывать. Только тогда и проверять решение без дополнительного программного кода! Сдается винт, на котором лежит экзешник, генерящий исходник. Запустить его, правда, нечем будет, да и посмотреть тоже...

Tsykunov

цитата:
Справедливо считать выполнением условия пари генерацию за время от отправки экзешника Вами до 8 марта минус сутки на закачку
Мой второй козырь . И еще: итераций может быть "несколько", могут создаваться временные файлы, они могут быть много больше исходника, разве что по завершении работы должны быть уничтожены. Реально это все не работает - время разархивации обязано быть небольшим (в случае, если задача вообще имеет решение). Минуты (если не секунды). Ну, на худой конец, десятки минут.

Alexzander

B.A.D.

цитата:
так Vladimir Rybinkin может свой комп собрать (VR-I), у которого нужная последовательность в ПЗУ сидит
Ok, уточняю: я буду писать программу под DOS в кодах 8086.
цитата:
И еще большая просьба выложить для романтиков хоть 100К этой великолепной идиальной несжимаемой последовательности
А ведь если у меня чего выйдет - моя ышшо великолепнее будет

Ой, извиняюсь. Моя, наверное, БУДЕТ сжиматься...

185. quest, 23.01.2002 14:54
B.A.D.
Покорректней надо условия выставлять (привлечь пару адвокатов как минимум)

Ну, я надеюсь, что здесь люди разумные собрались, со здравым смыслом, тскзть


Vladimir Rybinkin
Если это на счастье - то не вижу, почему бы благородному дону не сгенерить пару-тройку файлов
To All

Если у меня пройдет второй вариант (с функцией максимальной сложности), то последовательность будет одна, но её я готов выложить на всеобщее обозрение и коллективное дрючение

Но если посчитаться она не успеет, то буду давать первый вариант, а он - вероятностный.
Поэтому:
1. Будет опять одна последовательность (я, хоть и не силен, как Vladimir Rybinkin в ниспровержении основ современной дискретной математики , но считать умею - давая пару файлов, я уменьшаю свою законную вероятность выиграть с 99,2 до 98,4%, давая три - до 97,7% и т.д. А оно мне надо? );
2. Выкладывать её тоже чревато - если я "попаду" на сжимаемую последовательность, то есть ещё шанс, что Vladimir Rybinkin не успеет или не сумеет найти способ сжатия и мне удасться хоть на $10 возместить свои затраты, но не факт, что ктой-то из присутствующих не сумеет обскакать моего супротивника и мне улыбнется даже эта маленькая компенсация.

Могу предложить следующее: я генерю пару файлов, один выдаю приватно для зарабатывания жалких баксов, а другой - выкладываю.

Есть и еще вариант: готов сгенерить пару-тройку или больше (пущай сам Vladimir Rybinkin уточнит) и выложить их все, но в этом случае попрошу сжать каждый в отдельности и неудача хоть с одним приносит мне выигрыш

PS. Вооще говоря, мне пора требовать с 2bit гонорар за паблисити...

Добавление от 23-01-2002 15:06:

Vladimir Rybinkin
Во-вторых, я могу задавать параметром: дать мне 5-ю последовательность. В-третьих, я могу в цикле main вызвать 10 раз функцию распаковки на одних и тех же данных и выплевывать в выходной поток 10 результатов ее работы, представляющих собой 1/10 исходника каждый. Кто это может знать, кроме меня? Да и если знать - условие не нарушается. Разве не так?

Не-а!
Договоривались про нормальный (без прибамбасов и параметров) self-экстрактор одного файла.
Уловки, крючкотворство и использование многозначности (вот она 70%-ная избыточность!) великого и могучего не пройдут. !No pasaran!

186. Vuk, 23.01.2002 15:49
Alexzander
... на стороне Vladimir Rybinkin более простая (как это не парадоксально) задача. Сжав файл, он лишь докажет, что последовательность не самая сложная, тогда как для успеха quest ему необходимо найти, вычислить или сгенерить именно самую сложную последовательность. Предельно сложную - несжимаемую! А это посложнее будет...

Вовсе нет. Не хочу сказать, что сгенерить предельно сложную последовательность не сложно - это весьма непросто (хотя, думаю quest это удастся), но вот сжать ее хотя бы на сколько-либо (даже если она будет не идеальной) будет ничуть не проще. Попробуйте, для тривиального опыта, зажать какой-либо файл хотя бы каким-либо архиватором при максимальном сжатии (я попробовал RARом) - и проанализируйте ее характеристики - и вы поймете что получившаяся последовательность УЖЕ приближается к шуму и чтобы что-либо оттуда выкинуть - надо ОЧЕНЬ постараться.

Я сам посмотрел, поанализировал и попробовал - пока не получилось.

А вообще задача очень интересная. Сам сюда пришел потому что об этом думал. Успехов обеим сторонам.

187. Vladimir Rybinkin, 23.01.2002 16:22
quest
цитата:
я надеюсь, что здесь люди разумные собрались
Я тоже надеюсь. Честно играю, честно выигрываю, честно проигрываю . Даже алгоритм (или сколько их там будет), скорее всего, опишу - не думаю, чтобы там было какое-то крутое ноу-хау.
цитата:
Будет опять одна последовательность
Надеюсь .
цитата:
я генерю пару файлов, один выдаю приватно для зарабатывания жалких баксов, а другой - выкладываю.
Красиво и, видимо, правильно.
цитата:
готов сгенерить пару-тройку или больше (пущай сам Vladimir Rybinkin уточнит)
Уточняю: одного более, чем достаточно .
цитата:
Вооще говоря, мне пора требовать с 2bit гонорар за паблисити...
Пока рано . У нас статистика открытая, можно проверить.
цитата:
Договоривались про нормальный (без прибамбасов и параметров) self-экстрактор одного файла
Да, это же я теоретически, если сжать N файлов в один архив, и доставать оттуда нужный .
цитата:
!No pasaran!
А это почему? Исходник у нас один, экзешник - тоже один (чтобы не нарушать отчетности (c)кот Матроскин). А вот как работает main этого экзешника, и как там организованы данные - мои трудности...

Vuk

цитата:
но вот сжать ее хотя бы на сколько-либо (даже если она будет не идеальной) будет ничуть не проще
Согласен. Но я ОЧЕНЬ постараюсь .

188. Tsykunov, 24.01.2002 05:52
Vladimir Rybinkin
Ой, извиняюсь. Моя, наверное, БУДЕТ сжиматься...
А Вы не забудете (по запарке) попробовать ее раром зажать?

189. Alexzander, 24.01.2002 09:40
2 ALL
На мой взгляд, существует некое маленькое упущение. Когда мы говорим, что для каждого сжатого файла существует лишь один несжатый, а несжатых явно больше, и следовательно не все несжатые файлы могут сжаться, мы недоговариваем! Это верно только для одного и того же алгоритма сжатия! Разными алгоритмами можно из одного и того же сжатого файла восстановить сколь угодно много несжатых файлов.

Но Vladimir Rybinkin не ограничен каким-либо одним алгоритмом. Это значит, файл, предоставленный ему, который несжимаем рарами и пр. архиваторами (т.е. известным набором алгоритмов), обязательно сожмется каким-либо другим алгоритмом.

И еще один вывод из этого: любую информацию можно сжать до одного байта, другое дело, что суммарная длина всех использованных при этом алгортмов будет больше исходного файла (собственно это и доказывает Колмогоров). Но неочевидный вывод из этого то, что с увеличением длины исходной последовательности байтов, возрастает и вероятность того, что эту же последовательность можно представить более короткой программой (т.е. сжатый код короче исходного и генерит один в один). Причем растет, предположительно, достаточно быстро.

Оценить рост такой вероятности я не знаю как, но по субъективным ощущениям, для гигабайтной последовательности, такая вероятность весьма и весьма велика, возможно даже сама 1. (Т.е. гигабайт инфы никак не может быть пределом сжатия информации, а значит его всегда можно сжать еще!).

P.S. Перечитал эту ветку два раза целиком. Много думал. Вчера много спорил с парнем из МИФИ. Вывод один - предел есть, он где-то рядом, но смыс у предела только в соблюдении Колмогоровской сложности. Пример: РАР жмет отлично текст. Из 60К я получил 20К. Но сам РАР составляет 100К (все условно). Значит, фактически он ничего не сжал, так как сумма разархиватора составит 20+100К. Предел? Для этого алгоритма да. Я написал другой алгоритм, который жмет эти 20К в 15К. Можно ли говорить, что я 60К заархивировал в 15К? Нет! Для моего алгоритма предел будет иным.

вот, собственно, и все.

Добавление от 24-01-2002 09:51:

Ха-ха! Вот идея шулерского алгоритма сжатия чего угодно. Имеем прогу размером 1-2К (больше-меньше, неважно). Имеем рядом с ней на диске исходный гигабайтный файл. Запускаем. Исходный файл исчезает, но появляется некий экзешник размером опять же 1-2К (может и меньше). Что это? Это заархивированный исходник! ОК. Запускаем его - на месте наш исходник один в один! Невозможно? Легко!

Как? Ответ в слове шулерский. Необходимо описать все условия спора, иначе даже такой ламер как я, сможет получить результат (а кто сказал, что я не удовлетворил всем требованиям?), хотя с архивированием в академическом смысле результат не будет иметь ничего общего. (кому интересно могу раскрыть алгоритм )

Добавление от 24-01-2002 09:58:

Как говорил Марк Твен (если не ошибаюсь), то проще всего профессилоналу играть против профессионала. От ламера никогда не знаешь чего ожидать и какой ход он сделает. (не дословно)

В непредсказуемости ламеров - их сила! У меня есть еще как минимум два способа сжать гигабайтный исходник (два алгоритма), только я екзешники писать не умею... но своими идеями охотно поделюсь...

190. B.A.D., 24.01.2002 12:41
quest
--------------------------------------------------------------------------------
я надеюсь, что здесь люди разумные собрались
--------------------------------------------------------------------------------
Насчет разумных согласен
Насчет "люди" - есть большие сомнения

По поводу человеческого фактора
-Людям свойственно ошибаться
-quest человек
=следствие очевидно

Чем сложнее и больше будет проделано операций при создании исходной последовательности, тем больше вероятность ошибиться и не получить желанного итога. Оцениваю человеческий фактор как +5% к удаче Vladimir Rybinkin

191. Alexzander, 24.01.2002 12:53
Насчет "люди" - есть большие сомнения - явно, про себя?

Добавление от 24-01-2002 12:55:

Люди, может подскажете, где можно Турбо паскаль работающий скачать, что-то молодость вспомнить захотелось... Очень хочется...

192. Vladimir Rybinkin, 24.01.2002 16:10
Tsykunov
цитата:
А Вы не забудете (по запарке) попробовать ее раром зажать?
Во-первых, нельзя - должен быть самораспаковывающийся архив. Во-вторых, если сжатие удастся - незачем .

Alexzander

цитата:
На мой взгляд, существует некое маленькое упущение
На мой - не маленькое . Смысл в том, что сжатую последовательность можно рассматривать как программу разархивации, так и как пассивные данные, которые нужно разжать. Причем (теоретически, конечно), любая комбинация наборов данных может быть и тем, и другим. Иными словами, если мы запустим этот файл на x86 - это будет одна программа, если на PDP - другая, ... Кроме того, если мы напишем разные загрузчики даже в одной системе команд, и будем передавать управление на разные точки входа, мы получим сколько хошь различных генераторов. Наконец, если вспомнить, что программа может модифицировать собственный код, количество вариантов стремительно ползет в бесконечность .
цитата:
Но Vladimir Rybinkin не ограничен каким-либо одним алгоритмом
Увы, ограничен. Ща поясню.
цитата:
Но неочевидный вывод из этого то, что с увеличением длины исходной последовательности байтов, возрастает и вероятность того, что эту же последовательность можно представить более короткой программой.
Да, и, похоже, можно сформулировать алгоритм, определяющий, можно ли в принципе сжать последовательность или же она не сожмется ни при каких условиях.
цитата:
для гигабайтной последовательности, такая вероятность весьма и весьма велика, возможно даже сама 1.
Очень возможно, но есть неприятный нюанс. Ща поясню.
цитата:
Вот идея шулерского алгоритма сжатия чего угодно
Шулерского? Вовсе нет - это почти мой начальный алгоритм. Правда, похоже, ответ действительно шулерский . А мой вариант ДОЛЖЕН архивировать именно в академическом смысле. Так и быть, излагаю:

Имеем прогу размером 1-2К (больше-меньше, ВАЖНО)! Я оценивал на старте ее размер в 5-7К (сейчас надеюсь на 2-3). И НЕ РЯДОМ, а НЕПОСРЕДСТВЕННО ЗА НЕЙ (copy/b) лежит некий файл, пройдясь по которому (т.е. по собственному телу) прога генерит исходник (либо промежуточный файл, по которому пойдет снова). Все бы хорошо, но ведь неявно задано жесточайшее условие (почему-то никто на него не обратил внимание, а я именно из-за этого и назвал 1%). Отщипнуть надо не только БАЙТ, но и размер дезархиватора! Иными словами, несколько КИЛОБАЙТ! Так что я шел именно на мощное сжатие исходника по определению. А раз так - либо ничего не удастся сделать, либо удастся нечто серьезное. Где 10К найдем - там и 20 должно лежать. "Политически" же результат в 1 байт - мелочь, а вот 1%... На это сразу и был соответствующий отклик . И эта прога должны быть максимально компактной (т.е. никаких сложных алгоритмов там быть не может - увеличение размера проги сожрет любую выгоду. А "отжор" и так не маленький: первая же попытка окончилась разочарованием - большой .COM не грузится, придется делать экзешник, пустышка которого СРАЗУ ЖЕ весит 400 с чем-то байт...

цитата:
От ламера никогда не знаешь чего ожидать и какой ход он сделает. В непредсказуемости ламеров - их сила!
Я, кстати, сразу предупреждал, что я ламер

ALL
Сегодня ночью "спина" выдала алгоритм, достаточно безумный, чтобы быть правильным. Не исключено, что сжимать можно чуть ли не все, что угодно, причем сжимать НАМНОГО (так хочется в это верить ). Я проснулся с готовым алгоритмом архивации (полуфабрикатом, конечно, но основную идею поймал). Если это правда (требуется некоторое исследование), то я не знаю, как будет выкручиваться дискретная математика. Пусть что хочет говорит насчет n-мерного куба или чего там еще - ЭТОМУ алгоритму все по барабану . Короче, ситуация становится интересной теоретически, и я готов подождать этой самой супер-последовательности (причем, до недели за мой счет - алгоритм достаточно легко программируется - успею). А если и ЭТО не сработает - просто сдамся, другого такого мне явно не придумать. Парадоксально и красиво (во всяком случае, мне нравится ) Вариант, предложенный quest, разумеется, остается в силе - на его усмотрение.

P.S. (как оправдание распирающего желания выговориться). Этот постинг - ответ на "сеанс психологического давления" quest .

193. quest, 24.01.2002 17:17
Vladimir Rybinkin

Мм-нэ-э, а чего я усматривать должОн? Чёй-то не понял...

А рассуждения интересные, но... ошибочные!

194. Vladimir Rybinkin, 24.01.2002 17:31
quest
Как чего? Я дал предложение на изменение сроков с целью работы над основной последовательностью.

Мож, и ошибочные, но пока я порадуюсь .

195. quest, 24.01.2002 17:40
Vladimir Rybinkin

То бишь:

цитата:
Короче, ситуация становится интересной теоретически, и я готов подождать этой самой супер-последовательности (причем, до недели за мой счет - алгоритм достаточно легко программируется - успею).

можно расценивать, как предложение начать сжимать не с 1, а с 8 февраля с неизменным сроком окончания (8 марта), при условии, что будет выдана (и выложена на всеобщее дрючение) расчетная, а не случайная последовательность?

К сожалению, теперь уже это зависит не от меня - после 31-го января свободных мощностей для расчета (если прога не успеет) может и не быть. Узнаю только накануне.

Кстати, а что делать в случае, если дискретников посрамит кто-то другой и сожмет раньше (ить на всеобщем обозрении будет)? Кому баксы слать?

196. Vladimir Rybinkin, 24.01.2002 17:48
quest
Да, можно расценивать именно так (даже если не будет выложена).

197. PetrZloy, 24.01.2002 17:51
Vladimir Rybinkin
Ну я говорил, что будет честным такой вариант: достаточно чтобы self-extractor был на 1 байт короче исходника. Это как бы и означает сжатие далеко не на 1 байт, если например код будет занимать 3кб, а длина исходника 1 мб, то сжатие при этом должно быть 0.3% !!! это вовсе не 1 байт. Ну а когда вы согласились на процент пожать, тут уже эти 3 кб кода не играют решающей роли. Если селф-экстрактор будет на процент короче исходника, то получается что данные вам надо будет пожать на 1.3%. Что то мне не верится в ваш успех, извиняйте...

198. Vladimir Rybinkin, 24.01.2002 17:59
PetrZloy
Да и сам сомневаюсь .

quest

цитата:
Кому баксы слать?
А я же давал предложение: победителю, который 1. круче сожмет к 8 марта и 2. Заявится как участник ДО всеобщего обозрения (рисковать же тоже должен). А если НЕЗАЯВЛЕННЫЙ выложит результат, и ни один из соискателей его не превзойдет - баксы останутся у quest

199. quest, 24.01.2002 18:02
Vladimir Rybinkin

И последнее уточнение: куда выкладывать будем?

200. Vladimir Rybinkin, 24.01.2002 18:06
Лучше всего на какой-нить сервер... Мы, к сожалению, сами хостимся - места мало . Мож, QZ посодействует?

201. KAE, 24.01.2002 18:20
Vladimir Rybinkin

Если канал 128К, загруженный пользователями, рвущимися наружу , Вас устроит, то могу выложить у себя.

202. PetrZloy, 24.01.2002 18:40
что так трудно положить куда-нибудь мегабайтный файл?
можно на бесплатный сайт - narod.ru, chat.ru, .... Хотите - присылайте мылом (сюды: zloy@aaanet.ru, zloy@rnd.runnet.ru, coins@uic.rsu.ru) - положу на zvpsoft.narod.ru либо на uic.rsu.ru/~zpetukho

какая разница на какой канал - думаю не так много народа его скачают. Всего то мегабайт качать - а из этого проблему раздувают.

203. Alexzander, 24.01.2002 18:59
Хммм... Завтра утром я скорее всего отвечу точно - готов или нет я принять участие сам. Только просьба еще раз - нужен Паскаль! Если мои расчеты верны, то готов сжать хотя бы вдвое.... ну на 25% точно! Дайте только Паскаль. А то без него как я алгоритм испробую? А в репутации я все равно ничего не потеряю. Зато сколько приобрету...

204. Vladimir Rybinkin, 24.01.2002 19:24
Alexzander
Вот это я понимаю! Хотя бы вдвое... Да еще на Паскале (лично я собираюсь программить на плотном асме). Интересно (мой алгоритм тоже не отрицает возможности такого сжатия) - неужто они еще и РАЗНЫЕ??? Или, точнее, неужто хоть один сработает?

205. quest, 24.01.2002 19:34
Alexzander
Vladimir Rybinkin

Кто больше?

Это мне напоминает анекдот, который я вычитал толь у Майерса, толь у Йодана (склероз проклятый):

цитата:

Один программёр говорит другому: "А моя программа в десять раз быстрее твоей и вполовину короче!". "Да" - соглашается второй - "Но, моя-то программа работает, а твоя - нет!"

Если-б эти ваши алгоритмы ещё и работали...

206. Vladimir Rybinkin, 24.01.2002 19:35
quest
А зачем? Лучше 20 баксов в руках, чем...

Это не анекдот, это быль про какого-то очень известного программиста (не помню, про кого).

207. quest, 24.01.2002 19:41
Vladimir Rybinkin
А зачем? Лучше 20 баксов в руках, чем...

Да забавно наблюдать, как процентами туда-сюда Вы с Alexzander перекидываетесь, не имея за душой даже прототипа алгоритма.

это быль про какого-то очень известного программиста (не помню, про кого).

В первоисточнике это был анекдот. Майерса у меня кто-то упер, а вот Йодан сохранился - дома посмотрю...

208. Vladimir Rybinkin, 24.01.2002 20:04
quest
Да я вроде как бы на одном стоял и стоять буду...

А прототип за душой иметь в таких случаях, ИМХО, вредно:
http://forum.ixbt.com/0026/000867-5.html#84

209. Alexzander, 25.01.2002 07:29
Итак. После почти бессонной ночия пришел к следующим выводам. В лоб, обычными алгоритмами сжать сложную последовательность действительно невозможно, либо очень сложно. Что доказывает все вышеназванные умные теории, хотя они в доказательствах и не нуждаются. Тем более с моей стороны.

Но это все верно для коммерческого архиватора, который должен работать на всех машинах и для всех видов данных, выдавая хоть какой, но результат. У нас же задача проще - справиться с _одним_ файлом. Я все таки призываю всех участников обговорить до конца все условия. Иначе разъясню ситуацию с моим шулерским "шуточным" алгоритмом.

Программа-архиватор создает программу-разархиватор, которая знает место исходного файла на диске. Место помечается свободным для операционки, но запись в эти ячейки запрещается (под досом это сделать по-моему можно). Имеем - место свободно, файла нет, а есть "разархиватор" в 2-3К. Он же потом просто восстанавливает фат в исходное состояние и исходник восстановлен. Ура, фанфары. Мошенничество? Да. Но визуально все условия выполнены. Создана программа короче исходника которая генерит его один-в-один.

А теперь фанфары номер два. У меня таки есть идея (или ИДЕЯ), как решить данную конкретную задачу. Но воплотить самому мне ее неподсилу. Есть два варианта:

1. Vladimir Rybinkin получает мою идею по почте и решает поможет она ему, или нет.
2. Я пишу свою идею здесь, меня все пинают ногами (или восхищаются) и делают соответствующие выводы.

Итак, первое слово за Vladimir Rybinkin.

210. Vladimir Rybinkin, 25.01.2002 10:53
Alexzander
Пинаю ногами

Разархиватор в 2-3К записывается на дискету, переносится на другую машину и запускается. Фанфары

Я играю честно, мне не нужна почта, тем более, что в идеях никогда недостатка не испытывал (см., например, http://forum.ixbt.com/0026/009551-2.html#23 ). Теоретически для меня вопрос не стоит: последовательность в 1 бит не сжимается никогда, в 1терабайт - всегда. Вопрос только в количестве: успею ли я (или кто другой) за данное время справиться с данным файлом (отрезать десяток-другой КИЛОбайт). Причем задача, ИМХО, решается именно в лоб (только не в тот лоб ). Есть, конечно, закон сохранения трудностей или там, правило рычага: во сколько раз выигрываешь в объеме, во столько проигрываешь в времени. Или: переход пространства во время...

211. Alexzander, 25.01.2002 11:04
Vladimir Rybinkin
Ок. Тогда я могу предложить свою идею послушать кому-нибудь еще, кто оценит ее возможности и может даже захочет поучаствовать. Повторюсь, я сам не могу ее реализовать из-за недостатка умения программировать. Мой алгоритм решает задачу не в лоб, а очень так сбоку. Но абсолютно честно и академически точно. Хотя для коммерческого использования он не подойдет - нет гибкости. Но сжать им можно все что угодно от пяти байт. Хотя рекурсивно работать не будет, так что _до_ пяти байт сжать не получится, а так в 2-5 раз сожмет что угодно.

212. Vladimir Rybinkin, 25.01.2002 11:13
Alexzander
Думаю, это вопрос к quest (при наличии желающих посмотреть). Мне - по фигу, хоть в обсуждение публиковать.

213. Контрабандист, 25.01.2002 11:18
Извините, что встреваю... Прочитал вашу интересную дискуссию и вижу для Vladimir Rybinkin только одну возможность выкрутиться (в случае правильно сгенерированного файла), зато возможность хорошую. Так как человек, запускающий у себя на компьютере программу "самораспаковки", с большой вероятностью хранит (хранил) где-то на диске и исходный файл-"ответ", программа может просто сканировать диск по фрагменту исходного файла длиной в несколько байт и обнаружить таким образом если не готовый файл, то хотя бы большой его кусок, а этого уже будет вполне достаточно.

214. Alexzander, 25.01.2002 11:24
ОК. Тогда повторю свой вопрос для quest. Что лучше:
1. Предоставить вам на суд мой алгоритм приватно письмом
или
2. Выставить на всеобщее обозрение (оборзение ).

В случае 2 - вы признаете себя проигравшим, если алгоритм хорош?

p/s/ Я так понимаю, что участвую вне конкурса, так что ни на выигрыш ни на проигрыш в денежном эквиваленте не рассчитываю

Добавление от 25-01-2002 11:28:

Чтобы достопочтенная публика не волновалась заранее, сообщаю, что описание алгоритма займет не очень много места в общепринятых словах и идиоматических выражениях. Несколько абзацев по 5-6 строк. Так что могу запостить его без проблем.

Ждем ответа quest....

215. PetrZloy, 25.01.2002 11:50
Alexzander
Ну давайте, давайте, выкладывайте ваш суперсверхалгоритм прямо здесь.
Почему от пяти байт работает только интересно? что то подозрительно, больно.
Он случайно на мой анекдот не похож? (который я стер в форуме, но те, кто подпиман могли его прочитать - 22-01-2002 03:41)
Короче, публикуйте, если он сжимает что угодно в 2-5 раз но не работает рекурсивно - значит он не сжимает ЧТО УГОДНО. результат сжатия ведь тоже "что угодно". Может вы думаете что полученный архив раром будет жаться?

Короче, уточните, что вы имели ввиду под "что угодно" хотя бы, а лучше - алгоритм в студию.

216. quest, 25.01.2002 11:50
Alexzander
1. Предоставить вам на суд мой алгоритм приватно письмом
или
2. Выставить на всеобщее обозрение (оборзение ).
В случае 2 - вы признаете себя проигравшим, если алгоритм хорош?

Отвечаю: вариант 2. Не признаю По двум причинам: 1) Я знаю, что Ваш алгоритм не сработает ; 2) По условиям пари мой проигрыш возможен только в том случае, если Vladimir Rybinkin (или кто-то ещё, кто примет пари до конца января) пришлет мне до 8 марта self-экстрактор моей последовательности размером не больше 0.99 длины её. Менять условия акцептированной публичной оферты запрещает Договорное Право.

217. Alexzander, 25.01.2002 12:02
quest
Я вас понял. Но никто не мешает вам заключить (не пари, нет), отдельный уговор (который дороже денег, парвда?) со мной.

Я предлагаю следующее. Мы с вами решаем всю проблему теоретически. Начальные условия:

1. Мы с вами виртуально находимся у компьютера, на котором находится ваш несжимаемый файл размером 1Мб. (Конфигурацию компьютера оставляю на ваш выбор )
2. Я описываю вам словами алгоритм, как я его попытаюсь сжать (сжать именно данный, предложенный файл, а не десяток подобных - для каждого другого файла решение будет подобным, но другим).
3. Вы мне указываете на недостатки (достоинства) моего алгоритма
4. Минимальное достаточное сжатие - сколько скажете, только будьте разумны.

А уж кто из нас прав - вы или я выяснять не будем (если не сойдемся во мнении). Пусть каждый, кто прочтет - решит сам.

Идет? (можете добавить/уточнить условия по вашему выбору).

218. PetrZloy, 25.01.2002 12:02
Alexzander
Ну видите, уже все говорят, чтобы вы ее постили сюда безо всяких. Так что вперед...
з.ы. какой же вы упрямый...

219. Alexzander, 25.01.2002 12:04
PetrZloy
Не торопите события, если я прав в своих рассуждениях, то это серьезно, если не прав, то тем более можно немножко отсрочить время моего позора.

Добавление от 25-01-2002 12:10:

Еще добавлю - я знаю некоторые условия, при которых мой алгоритм либо не работает, либо его надо существенно менять. Но эти условия больше из области коммерческого применения, а не хочу влезать в эту область и потому хочу избежать некоторых условий.

220. PetrZloy, 25.01.2002 12:13
Alexzander
Вы можете сказать quest'у что готовы соблюсти его условия - написать self-extractor длины 0.99 за месяц после выдачи исходника.
Если вы не можете реализовать алгоритм сами - я готов его реализовать, и даже не на паскале (хотя если он такой крутой что жмет ЧТО УГОДНО в 2-5 раз - то почему бы и нет ) но вначале надо его обсудить - вдруг там грубый просчет будет виден невооруженным глазом и зачем его тогда коодировать?

221. Alexzander, 25.01.2002 12:14
Еще добавлю, если случайно мой алгоритм будет верен, то мы очень сильно обломаем Vladimir Rybinkin, чего он конечно не заслужил. Ведь ему придется не только решить проблему, но сделать это лучше. Поэтому я и предлагаю ознакомится с решением всем желающим частным, так сказать, образом, и не ломать кайф Vladimir Rybinkin. Что думаете?

222. PetrZloy, 25.01.2002 12:16
Alexzander
Если выполнение этих условий влечет за собой то, что исходник будет паковаться классическими архиваторами - то можете смело о них забыть. А если нет - тогда я проних и спрашивал. И неужели вы думате что файл от quest'a не будет им удовлетворять?

Добавление от 25-01-2002 12:17:

Alexzander
Я считаю что Владимир не против. Давайте так: если он не против - алгоритм в студию.

223. Alexzander, 25.01.2002 12:18
PetrZloy
1. Я не умею писать SFX.
2. Я предлагаю просто прибавлять длину моего алгоритма (теоретическую) в приблизительном исполнении к архиву и смотреть - не превысит ли сумма исходной длины минус условие.
3. Месяц нужен для _реализации_ алгоритма, для его понимания нужно куда меньше времени.

Добавление от 25-01-2002 12:23:

Нет, классические архиваторы и прочие приблуды не при чем. я же сразу согласился, что файл несжимаем обычными методами.

Сразу же скажу, что алгоритм не делает прорыва в теории, это всего лишь реализация идеи Tsykunov о введении новой системы отсчета, это как расположить шарики на стержне на столе. Формально - условие выполнено, они действительно занимают меньше места, но в трехмерном пространстве, вместо двумерного. Так и я файл сожму, точно, но если у меня начнут отнимать стержень, то у меня ничего не получится.

224. Vladimir Rybinkin, 25.01.2002 12:28
Контрабандист
цитата:
зато возможность хорошую
Ну-ну . Желающим предлагаю подключиться к пари и попробовать.

quest

цитата:
По условиям пари...
Вот именно!

Alexzander

цитата:
Поэтому я и предлагаю ознакомится с решением всем желающим частным, так сказать, образом, и не ломать кайф Vladimir Rybinkin. Что думаете?
Насчет кайфа полностью согласен. Насчет остального - приличнее помолчать до 8 марта либо подключаться к пари.

PetrZloy

цитата:
Я считаю что Владимир не против
Уже против.

225. Alexzander, 25.01.2002 12:32
Ну что я говорил? До 8 марта могу поделиться своей идеей только по мылу. А вот комментарии готов уcлышать прямо здесь. На всеобщем, так сказать, порицании...

226. PetrZloy, 25.01.2002 12:36
Все какие-то не понятные.

Ок, Alexzander, вроде как тебе надо подключаться к пари, НЕ ИЗМЕНЯЯ ПРАВИЛ.
Вот, еще вариант: шли алгоритм мне, а я пообещаю что никому его не буду передавать. Идет? Или слова недостаточно? Если он мне покажется хорошим то может договоримся - подключаемся к пари; и я его кодирую.

227. Alexzander, 25.01.2002 12:41
PetrZloy
Ты не так понял.
1. К пари я подключится не могу в силу моих малых знаний.
2. Алгоритм готов предоставить любому, кому интересно. Но только так, чтобы не испортить пари.
3. Алгоритм опишу словами русского языка, без блок-схем и прочих премудростей, идет?

Сейчас пишу письмо, пошлю через 571 секунду или чуть позже, как сервер позволит. Если что, мой мыл posylka@moto.ru


Добавление от 25-01-2002 13:05:

Лови.

Добавление от 25-01-2002 14:06:

Так и подмывает сказать "Что молчишь, поймал?"

Добавление от 25-01-2002 14:08:

Знаю, что поймал, только неужели за час нельзя было найти в моих рассуждениях ошибку?
А вообще просьба - пиши на posylka@moto.ru или на posylka@rambler.ru, тот адрес в письме - мой рабочий, и до понедельника я там ничего не увижу...

228. Vladimir Rybinkin, 25.01.2002 14:15
Alexzander
Программу строчит... Али заявку пишет

229. Alexzander, 25.01.2002 14:17
Vladimir Rybinkin
Ага, патентует.

Добавление от 25-01-2002 14:22:

Но если мысль там верная, то вылизать алгоритм там за месяц можно...

230. B.A.D., 25.01.2002 14:23
Размер файла резво скачет от 10 до 1 потом к 2 затем опять к 1 Мб (год лошади, понимаешь )
Alexander за авторское право на свой новейший алгоритм опасается
Сам quest, зная механизм формирования своей последовательности, может закодировать этот механизм в виде программы меньшего размера чем программа от Vladimir Rybinkin


Я ж предлагал подключить адвокатов


Раз уж такой бардак пошел, осмелюсь формализовать условия пари на основе высказываний его участников.

quest не позднее 08.02.2002 предоставляет Vladimir Rybinkin файл F размером от 1Мб до 10 Мб (по своему усмотрению)
Vladimir Rybinkin не позднее 08.03.2002 предоставляет quest программный продукт P.
Эта программа P должна исполняться из под MS-DOS на процессоре с набором инструкций Intel 8086.
Пари выигрывает Vladimir Rybinkin если:
1. После копирования программы P на компьютер вышеуказаной конфигурации и запуска программы, на файловом носителе появиться исходный файл F.
2. Общий суммарный побайтовый размер всех файлов программного продукта P будет меньше размера файла F хотя бы на 1 байт
3. quest на данном форуме признает, что пункты 1 и 2 выполнены.
Во всех остальных случаях пари выигрывает quest
По итогам пари проигравшая сторона выплачивает победителю денежную сумму взаимнооговоренную обоими сторонами
(предварительная договоренность: quest при поражениии выплачивает 1000 USD, Vladimir Rybinkin 10 USD)

Добавление by Rybinkin Если сторонне лицо (ИМХО не связанное с quest!!!) создаст программу удовлетворяющую пунктам 1-3 и меньшее по размерам программы Rybinkin'a , то "баксы останутся у quest ".

231. Alexzander, 25.01.2002 14:47
B.A.D.
Вы забыли про меня... Я хоть и не участвую, но результат своих мучений тоже видеть хочу. Так что решение проблемы сжатия хитрого файла и выигрыш одной или другой стороны не сильно зависят друг от друга..

Добавление от 25-01-2002 14:49:

И в вашей версии правил нет ни слова о моем шулерстве - оно отвечает все вашим условиям!

232. quest, 25.01.2002 14:50
B.A.D.
2. Общий суммарный побайтовый размер всех файлов программного продукта P будет меньше размера файла F хотя бы на 1 байт

Фигу! Vladimir Rybinkin предложил 1%, я это предложение принял с удовольствием
Таким образом, пункт 2 нужно формулировать так:
2. Общий суммарный побайтовый размер всех файлов программного продукта P будет меньше размера файла F хотя бы на 1%

Во всех остальных случаях пари выигрывает quest

Неверно! Пари выиграно мной, если не выполнен пункт 1 или не выполнен пункт 2 Вашей формулировки.

В остальных случаях (0.99F<P<F) ничья.

To All

Я приветствую любые соображения относительно алгоритмов сжатия здесь на форуме, как до выкладывания последовательности на всеобщее обозрение, так и после.

233. B.A.D., 25.01.2002 15:03
Alexander
И в вашей версии правил нет ни слова о моем шулерстве - оно отвечает все вашим условиям!
Насколько я понял Вы хотели скрыть файл на своем компьютере и потом из EXE шника сделать его видимым
Таr в пункте 2 сказано про копирование EXE, а не скрытого файла - посмотрю как Вы будете шуровать на чужом чистом компе (например без винчестера) (но может я не так Вас понял)

To quest
Все три пункта рассматриваються через И (логическое AND), как обычно

Что ж Вы и про 1% вспомнили - думаете он хоть на байт все-таки сожмет
таааак quest поддался на психологическое давление Vladimir Rybinkin)

(ему этот 1% под код программы нужен - все вроде честно)

234. AlexNek, 25.01.2002 15:34
quest
2. Общий суммарный побайтовый размер всех файлов программного продукта P будет меньше размера файла F хотя бы на 1%
Да, но в этом случае будет учитываться не только оптимальность алгоритма сжатия, но и оптимальность написания программы. Я так понимал, что идёт речь о сжатии данных на 1%, а так нужно сжать данные на 1%+х% для кода программы.

Или я чего-то недопонимаю?

235. PetrZloy, 25.01.2002 15:36
Alexzander
Z bpdbyz.cm xnj nfr ljkuj - jndktrfkcz gj [jle ltkf?
Я извиняюсь что так долго - отвлекался по ходу дела, но написал опровержение, вы его почитайте, потом если непротив можно его выложить чтобы другим неповадно было (в частности ThreeDHead)

Добавление от 25-01-2002 15:46:

AlexNek
Я ж уже подсчитывал (впрочем разделить 3 на 1000 каждый может), что если код займет 3 кб то данные придется жать на 1.3%, чтобы селф-экстрактор занял на 1% меньше исходника... Если код займет 3 кб, а селф-экстрактор должен будет занять на 1 байт меньше исходника, то сжимать придется "всего" на 0.3%

236. Vladimir Rybinkin, 25.01.2002 15:49
quest
цитата:
Фигу! Vladimir Rybinkin предложил 1%, я это предложение принял с удовольствием
А чо, есть разница? Ведь никто не напишет "программную составляющую" короче, чем 500 байт, следовательно, вероятность... см. выкладки ранее

Формулировку, впрочем, подтверждаю...

B.A.D.

цитата:
ему этот 1% под код программы нужен - все вроде честно
Это я сразу понимал. И говорил про ДРУГОЙ 1%

AlexNek

цитата:
в этом случае будет учитываться не только оптимальность алгоритма сжатия, но и оптимальность написания программы
А то чего бы я про asm, да про .com вспомнил?

PetrZloy
А чего там ThreeDHead натворил, за что его так?

237. quest, 25.01.2002 16:45
To All

Так было всё чинно-благородно, но начали копать, крючкотворы...

Повторю ещё раз для всех: пари заключено и никакие изменения в условиях уже недопустимы!

Теперь относительно условий пари.
Оно заключено между джентльменами ( ), надеюсь, и никакие шуллерские приемы (типа: отыскания в ОС кусков кода, совпадающих с кусками моей последовательности и использования этого) неуместны.
Изначально речь шла не о сжатии всего подряд, а сжатие одной конкретной последовательности. А в этом случае провести грань между кодом и данными весьма непросто. Скорее - невозможно. Именно поэтому речь и шла об одиночном self-экстракторе, а отнюдь не о "программном продукте". Короче: один файл, генерящий мою последовательность и не использующий для генерации данные OC, дисков и пр., - просто операционная система может использоваться, как исполнительный механизм, ввиду отсутвия у участников пари классической машины Тьюринга.
Собственно, суть пари заключается не выяснении ловкости рук участников, а в противопоставлении "мастерства алгоритмиста" знаниям теории: мол, что круче...
Vladimir Rybinkin я прав?


238. Vladimir Rybinkin, 25.01.2002 17:06
quest
Абсолютно!

Э, сорри! Уточняю: ОЗУ и диск использовать можно, но только для записи промежуточных результатов. Так?

239. Контрабандист, 25.01.2002 17:08
Vladimir Rybinkin
Желающим предлагаю подключиться к пари и попробовать.

Не хочу. Возможность успеха может быть связана только с неудачной генерацией файла quest'ом, либо с присутствием на его компьютере трояна, позволяющего узнать алгоритм генерации. Хотя все это маловероятно, жертвой чужих ошибок мне становиться не хочется. Если же создать файл с реальными случайными данными - например, подать некий шум на вход звуковой карты и при оцифровке записать последовательные значения одного только младшего бита, - то вероятность того, что из этого файла можно будет получить self-extractor размером на n байт меньше, не превосходит 1/2^(8*n) (реально - еще меньше). Поэтому можно сказать, что требование 1% - это явная перестраховка.

240. Vladimir Rybinkin, 25.01.2002 17:11
Контрабандист
Не знаю, не знаю... Мои оценки - шансы примерно равны (разница - в процентах, вряд ли в десятках процентов).

Кстати, 1% - это МОЕ предложение

241. quest, 25.01.2002 17:25
Vladimir Rybinkin
Уточняю: ОЗУ и диск использовать можно, но только для записи промежуточных результатов. Так?

Да, за ради бога!

242. Контрабандист, 25.01.2002 17:41
Vladimir Rybinkin

Существует 2^(8*N) различных файлов длиной N байт. Self-extractor'ов длиной не более M байт (M=N-n) существует заведомо меньше, чем 2*2^(8*M) (множитель 2 появляется за счет учета файлов не только длины M, но и (M-1), (M-2) и т.д.). Таким образом, вероятность того, что произвольно выбранный N-байтный файл получается распаковкой какого-то self-extractor'а, не превосходит 2*2^(8*M)/2^(8*N) = 2/2^(8*n). (Да, в первоначальной оценке я забыл учесть множитель 2).

243. B.A.D., 25.01.2002 17:45
Ну что ж теперь уже большему количеству разумных людей ( и не только людей ) понятны условия пари

Я ж хотел все-таки разобраться с вариантом сжатия указанным мной выше

Итак : (извиняюсь за банальные напоминания, но результат интересен)
Большинство знает почему числа генерируемые rand() называются "псевдослучайными"
Если методы используемые при создании какой-либо последовательности можно описать алгоритмом длины менее длины этой последовательности, то в качестве self-ехтрактора можно использовать этот алгоритм
Таким образом если используемый метод quest короче 1Mb, то для его послед существует self-ехтрактор и ее нельзя назвать несжимаемой, а только "ПСЕВДОНЕСЖИМАЕМОЙ для Vladimir Rybinkin" так как он не знает механизма генерации.

Вот и возникает теоритический вывод, (при выполнении одновременно обоих условий)
1.если никому не удасться сжать файл от quest
2. если никому не удасться кратко закодировать алгоритм генерации от quest
только тогда такая последовательность может балатироваться на звание "НЕСЖИМАЕМОЙ" (но и этого не достаточно)

244. Vladimir Rybinkin, 25.01.2002 18:00
Контрабандист
Да нас..ть мне на все теоретические выкладки, я - практик !

Я заведомо обладаю важной информацией, что последовательность сжать ОЧЕНЬ ТРУДНО. Посему должон стоять коэффициентик 0.??????????. Я сильно подозреваю, что за точкой идет некоторое количество нулей .

B.A.D.
Я, кажется, начинаю догадываться, КАК доказывается, что последовательность АБСОЛЮТНО несжимаемая (ИМХО, знание алгоритма генерации - это не есть сжатие, это каким-то другим словом должно обозначаться).

245. Контрабандист, 25.01.2002 23:24
Vladimir Rybinkin

Ну, если практик, то вероятность того, что _правильно_ сгенерированный файл можно сжать на 10 килобайт - порядка 1/2^80000, или примерно 10^-24000. Причем, как ни парадоксально, эта вероятность не увеличивается с увеличением размера файла. Т.е. файл в 100 мб в общем случае сжать на 10 кб (0.01%) не легче, чем файл в 1 мб на те же 10 кб (1%).

246. Alexzander, 26.01.2002 08:06
цитата:
один файл, генерящий мою последовательность и не использующий для генерации данные OC, дисков и пр., -

А вот этого в исходных условиях не было! Почему нельзя использовать служебную инфу ОСи? Я опечален. Дело в том, что мой алгоритм, собственно, на этом и был построен - в компе крутится столько служебной информации, что не использовать ее просто глупо.

По поводу совпадений кусков кода - это вы не подумавши сказали - если кусок большой, то вероятность совпадения меньше вероятности, что вы сгенерите идеальный файл. Если маленький, то служебная инфа по его нахождению съест весь выигрыш.

Похоже, quest, вы начинаете волноваться и пытаетесь закрыть даже самые маленькие щели для пресечение ненужных телодвижений противников. Это хорошо и не хорошо одновременно.

цитата:
пари заключено и никакие изменения в условиях уже недопустимы

Так что я считаю, что служебную инфу ОС использовать можно, ведь я не раз спрашивал об уточнении условий. Ну да ладно, я вне конкурса здесь выступаю, так что если Vladimir Rybinkin согласен, то так тому и быть.


Добавление от 26-01-2002 08:10:

PetrZloy
На опровержение ответил. Пока все еще ничего не ясно, но здесь мою идею уже хотят зарубить на корню!

247. ndemia, 26.01.2002 08:12
Контрабандист
Причем, как ни парадоксально, эта вероятность не увеличивается с увеличением размера файла.
а... с уменьшением?

248. Alexzander, 26.01.2002 08:16
2 ALL
Если мы знаем, что файл несжимаем, и в нем невозможно найти никаких повторяющихся и пр. подобных последовательностей, то что мешает нам сначала перетасовать байты в файле определенным образом, и искать последовательности в новом файле. А в гигабайте их будет до черта!

Архивируем уже совсем новый гигабайт, а обратно будем восстанавливать в обратно порядке. Самый простой способ - рандом генерит seed по которому тасуем байты. Перетасованное жмем РАРом. Смотрим на результат. При необходимости повторить. Быстро и доступно. За месяц можно такое нажать...

249. Контрабандист, 26.01.2002 10:19
ndemia
Если не учитывать трудность размещения в маленьком файле осмысленной программы, то и с уменьшением файла вероятность по порядку величины не изменяется (а если учитывать, то она, конечно, стремится к 0). Эта вероятность примерно соответствует тому, что произвольно сгенерированный 10-килобайтный файл окажется вдруг состоящим из одних нулей.

Alexzander
Информация о том, каким образом тасовался файл, тоже занимает некоторое место, как раз соответствующее среднему выигрышу от применения такого метода.

Всем
Эти споры возникли от непонимания простой мысли: длинных файлов - много, а коротких (тех, которые короче хотя бы на 10 кб) - мало, причем их меньше не в какой-то там миллион или миллиард раз, а в 10^24000 раз. Даже если бы ВСЕ короткие файлы были self-extractor'ами, то на ВСЕ длинные файлы их бы все равно НЕ ХВАТИЛО.

250. PetrZloy, 26.01.2002 19:04
quest

Жду не дождусь этой крутой посл-сти... А можно для разминки подрючить что-нибудь попроще (ты вроде говорил что есть у тебя такой-то сложности...) ?

251. Alexzander, 27.01.2002 11:11
Контрабандист
А ты пробовал применять этот метод, чтобы так утверждать? Средний выигрыш - ну, ну... И много места займет алгоритм перемены мест каждого третьего байта с каждым вторым? А ведь файл получится координально иной.. И говорить, что он несжимаем уже будет нельзя. К примеру, нашли мы зерно, по которому после перетасовки все младшие байты оказались в начале файла, старшие в конце, а между ними по возрастающей. И что, такой файл заархивировать сложно?

252. Vladimir Rybinkin, 27.01.2002 12:48
Контрабандист
цитата:
Причем, как ни парадоксально, эта вероятность не увеличивается с увеличением размера файла. Т.е. файл в 100 мб в общем случае сжать на 10 кб (0.01%) не легче, чем файл в 1 мб на те же 10 кб (1%).
Спорить не буду, но предпочитаю сжимать файл на 10М, а не на 1М. По крайней мере, удельный вес проги уменьшается .

Alexzander

цитата:
Похоже, quest, вы начинаете волноваться и пытаетесь закрыть даже самые маленькие щели для пресечение ненужных телодвижений противников.
По-моему, quest ведет себя предельно корректно. Во всяком случае, ЕГО толкования условий спора полностью совпадают с МОИМИ, причем, как на старте, так и сейчас...

ndemia

цитата:
а... с уменьшением?

Alexzander

цитата:
что мешает нам сначала перетасовать байты в файле определенным образом
Оно самое! Есть, правда, способ попроще...

Контрабандист

цитата:
Информация о том, каким образом тасовался файл, тоже занимает некоторое место, как раз соответствующее среднему выигрышу от применения такого метода.
Ой ли? Сейчас я относительно спокоен за условия пари. Мне думается, что я сейчас рискую только червонцем, потому как, в случае неудачи я просто публикую имеющийся алгоритм (для спасения репутации ), и тогда пусть тот, кто посчитает, что я не имел оснований полагать, что ДЕЙСТВИТЕЛЬНО МОГУ решить эту задачу, бросит в меня камень. Раньше было хуже: я бросился на задачу без алгоритма с самоуверенностью юнца (в моем возрасте это просто неприлично ). Мое оправдание на тот момент заключается в том, что, ИМХО, ТОЛЬКО ТАК и решаются подобные задачи: можно ее сделать, нельзя - все вторично. Это НАДО сделать! Чтобы отрезать пути к отступлению, я, в частности, рассказал о пари своим детям, поставив под угрозу свой родительский авторитет .

Да, еще. Я ведь, в принципе, могу потренироваться "на кошках". Но не делаю, смысла нет - перегорю до соревнования.

Alexzander

цитата:
И много места займет алгоритм перемены мест каждого третьего байта с каждым вторым?
Один бит . Только ЭТО вряд ли поможет, мой "спинной" алгоритм дал два метода (типа качелей), которые должны бы приводить данные к сжимаемому виду. В случае особой удачи, здесь возможен алгоритм для "среднего промежутка" (см. самый первый постинг в этой ветке).

253. KAE, 27.01.2002 13:47
Могу только пожелать г-ну Рыбинкину удачи в его неелегком деле и привести отрывок из бессмертного произведения А и Б Стругацких, который очень хорошо (как мне кажется) согласуется с темой

цитата:

-- Г-голубчики, -- сказал Федор Симеонович озадаченно, разобравшись
в почерках. -- Это же п-проблема Бен Б-бецалеля. К-калиостро же доказал,
что она н-не имеет р-решения.
-- Мы сами знаем, что она не имеет решения, -- сказал Хунта,
немедленно ощетиниваясь. -- Мы хотим знать, как ее решать.
-- К-как-то ты странно рассуждаешь, К-кристо... К-как же искать
решение, к-когда его нет? Б-бессмыслица какая-то...
-- Извини, Теодор, но это ты очень странно рассуждаешь. Бессмыслица
-- искать решение, если оно и так есть. Речь идет о том, как поступать с
задачей, которая решения не имеет. Это глубоко принципиальный вопрос,
который, как я вижу, тебе, прикладнику, к сожалению, не доступен.
По-видимому, я напрасно начал с тобой беседовать на эту тему.

254. Vladimir Rybinkin, 27.01.2002 14:03
KAE
цитата:
Бессмыслица -- искать решение, если оно и так есть
Именно так! Кристобаль Хозевич абсолютно прав!

255. quest, 27.01.2002 14:11
KAE
Vladimir Rybinkin
Бессмыслица -- искать решение, если оно и так есть

А не найти ли благородным донам заодно и решение в целых числах простенького уравнения: x^N+y^N=z^N для N>2?

256. Vladimir Rybinkin, 27.01.2002 14:14
quest
Во-первых, это уже после завершения первого задания, во-вторых, это годится разве что для KAE - я когда-то доказывал именно невозможность оного .

P.S. В целых - 0^3+0^3=0^3, (-4)^5+4^5=0^5

257. quest, 27.01.2002 15:45
Vladimir Rybinkin
Молодца!

А теперь, размявшись, - сотворить тоже самое для положительных целых.

258. Vladimir Rybinkin, 27.01.2002 16:15
quest
Ты не понимаешь, Теодор. Я играл в эту игру с другой стороны. "Наши" победили . А сидеть на двух стульях сразу я не умею. А впрочем...

259. Контрабандист, 27.01.2002 16:45
Alexzander
И много места займет алгоритм перемены мест каждого третьего байта с каждым вторым?

Хотя вопрос и некорректен, т.к. каждый второй байт с каждым третьим поменять нельзя (их разное количество) , но смысл его понятен. Отвечу в более общем виде. Чтобы существовали какие-то шансы сжать произвольный файл хотя бы на k бит, нужно испробовать порядка 2^k перестановок (рассуждения, которыми это доказывается, в сущности уже приведены выше). Если какая-то перестановка привела к успеху, то мы должны записать ее номер, а в двоичной записи это займет как раз k бит, которые придется добавить к длине файла.


Vladimir Rybinkin
Чтобы отрезать пути к отступлению, я, в частности, рассказал о пари своим детям, поставив под угрозу свой родительский авторитет

А вот это зря. Психологически неверие в несжимаемость файлов вполне объяснимо, т.к. в реальной жизни файлы, заполненные (квази)случайными данными, встречаются крайне редко по причине их абсолютной бесполезности. Но простое математическое доказательство того, что несжимаемых файлов - подавляющее большинство - налицо. Кстати, тонкий юмор ndemia, если он был , моему пониманию остался недоступен.


KAE
Не люблю я творчество Стругацких, но в данном случае надо признать, что цитата к месту.

260. Vladimir Rybinkin, 27.01.2002 18:44
Контрабандист
Или я чего-то не понимаю, или рассуждения неверны. Впрочем, я действительно ничего не понимаю - какие-то цифири, ИМХО, с потолка взятые... , какие-то странные заключения типа: Даже если бы ВСЕ короткие файлы были self-extractor'ами, то на ВСЕ длинные файлы их бы все равно НЕ ХВАТИЛО - я, вроде, приводил иллюстрацию, что и одного может хватить . Или нужно испробовать порядка 2^k перестановок... Мож, я испробую всего 4 перестановки (зато КОТОРЫЕ НАДО ) - так двух бит вполне хватит
цитата:
простое математическое доказательство того, что несжимаемых файлов - подавляющее большинство - налицо
Да мне, в общем-то, все равно - лишь бы попался из меньшинства - а это просто (файлов из меньшинства каждый навалом видел, а из большинства - Жду не дождусь этой крутой посл-сти... ).
цитата:
тонкий юмор ndemia, если он был , моему пониманию остался недоступен
Увы мне, я токо толстый понимаю...

261. quest, 27.01.2002 19:49
Vladimir Rybinkin

Файл (сжатый Rar-ом) послан почтой.
Если не будете его выкладывать на всеобщее обозрение, то прошу форварднуть мыло мне, чтобы я убедился в его идентичности.

Сеанс психологического давления нумер 2:

То All

Я сотворил не просто крутую последовательность, а сверхкрутую!!!
Эта поледовательность не сжимаема Vladimir-ом Rybinkin-ным!!!!!

262. Vladimir Rybinkin, 27.01.2002 20:08
Ох, ни ....! Только я расслабился...

Получил. 1 048 629 в РАРе, 1 048 576 без оного.

Форварднул. А вот куда выкладывать - не знаю. У меня места нет. Кому еще форварднуть для выкладывания?

P.S. Какая точность в размере!

263. AleUri, 27.01.2002 20:17
Vladimir Rybinkin давай aleuri@narod.ru
выложу на народе

264. Vladimir Rybinkin, 27.01.2002 20:21
quest
Последнее уточнение. Давать? Оно?

265. quest, 27.01.2002 20:26
Vladimir Rybinkin

Похоже оно. Давать!

266. Vladimir Rybinkin, 27.01.2002 20:31
Дал... Народной задаче - народ.ру!

Чего? Нулей на 12% больше, чем единиц??? (Сеанс психологического давления нумер 2 )

Обшибся . На калькуляторе считал - со второго раза - 0.396800041198

267. quest, 27.01.2002 20:44
Vladimir Rybinkin
Нулей на 12% больше, чем единиц???

Угу. Это шоб занятней было!

268. AleUri, 27.01.2002 20:45
блин, народ, глючит паразит
шли, плиз aleuri@hotbox.ru
я, конечно, дико извиняюсь

269. quest, 27.01.2002 20:45
На калькуляторе считал

Дык, а надо - столбиком!

270. Контрабандист, 27.01.2002 20:55
Vladimir Rybinkin
Что же непонятного в этих цифирях? Различных файлов длиной, например, 2 байта, существует 256^2=65536. Это не вызывает возражений?

Аналогично, файлов длиной N байт существует 256^N, а файлов длиной от 1 до M (далеко не все из которых - self-extractor'ы) -
256 + 256^2 + 256^3 + ... + 256^M. Сумма этой геометрической прогрессии, как легко убедиться, меньше удвоенного старшего члена, т.е. 2*256^M. Если M хоть немного меньше N, то отношение 2*256^M/256^N - исчезающе малое число.

я, вроде, приводил иллюстрацию, что и одного может хватить
По условиям пари self-extractor после запуска должен создавать ровно один файл длины N, ведь так? В таком случае его, конечно, может хватить, но вероятность такого события при M=N-10000 составляет 0.0000000000000000000000... (24000 нулей перед первой значащей цифрой).

Жду не дождусь этой крутой посл-сти
Последовательность вовсе не должна быть крутой. Чтобы ее получить, достаточно бросить монету нужное число раз, записывая биты (0-орел, 1-решка). Поскольку для мегабайтного файла бросать придется 8 млн. раз, лучше воспользоваться описанным мной трюком со звуковой картой. (Например, если в компьютере есть FM тюнер, настраиваем его на такую частоту, чтобы он выдавал шум достаточно большой амплитуды. После этого записываем этот шум через звуковую карту с небольшой частотой дискретизации, напр., 11025 Гц, в режиме 16 бит, моно. От каждого семпла берем только младший бит, заполняем этими битами байты и записываем в файл. Таким образом, при скорости 11кбит/c ждать, пока накопится 1 мбайт, придется около 15 мин., что намного меньше времени генерации файла, о котором говорил quest ).
Справедливости ради надо сказать, что предложенный способ не совсем надежен, т.к. из-за глюков АЦП звуковой карты полученная последовательность может оказаться не совсем случайной. Однако в том, что ее не удастся сжать на 1%, я практически уверен.

271. Vladimir Rybinkin, 27.01.2002 21:02
AleUri
Послал по всем направлениям

Контрабандист
Все, все, разговоры закончились. После 8 марта поговорим

272. quest, 27.01.2002 21:07
Контрабандист

Он до 8 марта будет оооочень занят, гарантирую!

273. AleUri, 27.01.2002 21:14
ALL
Несжимаемый файл !!!
тута
http://aleuri.hotbox.ru/Rybinkin.rar
и тута http://aleuri.narod.ru/Rybinkin.rar

274. Vladimir Rybinkin, 27.01.2002 21:19
quest
Я? Возможно. Мой комп - более вероятно

AleUri
Почему это??? quest.rar!

275. quest, 27.01.2002 21:20
AleUri
Несжимаемый файл !!!

И не просто несжимаемый, а несжимаемый Vladimir-ом Rybinkin-ным - это куда круче!

Добавление от 27-01-2002 21:36:

То Аll

Господа любители чё-нить сжать!
Выложенный файл сгенерирован специально для Vladimir Rybinkin по методу номер 1 (выше по ветке я его слегка обриcовал).
Но у меня есть ещё один, сотворенный по методу номер 2. Кто-нить хотит попытаться его сжать и посрамить теорию информации? За ради интересу...

Добавление от 27-01-2002 21:42:

Контрабандист
Последовательность вовсе не должна быть крутой. Чтобы ее получить, достаточно бросить монету нужное число раз, записывая биты (0-орел, 1-решка).

Ну не скажите!
C Vladimir Rybinkin это дело не пройдет - он рассчитает движение монетки и уместит решение в код на 1% короче последовательности. Нет, ему нужно давать пробовать на зуб суперкрутую...

276. bgnav, 27.01.2002 23:04
В теории информации есть понятие предел сжатия. Дальше невозможно сжать без потери информации. Это закон природы, как закон сохраниния энергии, между прочим эти законы связаны.

Расписали на 12 страниц измышлений. Никакие перестановки байтов не помогут, в теории расматриваются биты и вероятности их появления.

"Крутой последовательностью" будет белый шум. Шум с радио не будет достаточно случайным.

Процесс сжатия это процесс удаления избыточной информации. В любом конечном потоке ее конечное количество.

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

277. Контрабандист, 27.01.2002 23:39
bgnav
Шум с радио не будет достаточно случайным

Из шума с радио можно выделить регулярный сигнал и белый шум, причем амплитуда последнего будет намного больше дискретности АЦП (у меня в этом нет сомнений). Поэтому если при оцифровке брать только младший бит каждого семпла, то последовательность таки будет случайной.

Почему все надо повторять по нескольку раз???

278. Евгений Машеров, 28.01.2002 10:09
Alexzander
Мой адрес EMasherow@nsi.ru
Можно взглянуть?
(Обещаю не разглашать тайну, даже если сотрудники одной спецслужбы будут подногти загонять иголки от процессора другой фирмы

279. Vladimir Rybinkin, 28.01.2002 10:48
quest
цитата:
у меня есть ещё один, сотворенный по методу номер 2. Кто-нить хотит попытаться его сжать и посрамить теорию информации?
ЧЕГО??? Так если я первый "сделаю", я ее не посрамлю??? А ну, где там второй?

bgnav

цитата:
Никакие перестановки байтов не помогут
Ну не помогут, так не помогут . Чего теперь изысканиями заниматься? НАЧАЛОСЬ!

280. quest, 28.01.2002 11:42
Vladimir Rybinkin
А ну, где там второй?

У меня, есстно!
Она предназначена для других любителей посжимать (не такая крутая). Если таковые найдутся, то я её вышлю любому, кто выложит её на всеобщее обозрение.

Евгений Машеров
Можно взглянуть?

Дык, она выложена на общедоступных сайтах (см. предыдущую страницу ветки)

Внимание всем!

Тому, кто первый сожмет (сотворит self-экстрактор) мою вторую последовательноть хоть на один байт, я гарантирую получение всех баксов, которые мне проиграет Vladimir Rybinkin

Только скажите, кому высылать её для размещения на всеобщее обозрение.


281. Vladimir Rybinkin, 28.01.2002 11:48
quest
Ну, раз не такая крутая - пусть жмут

А вдруг я выиграю - обломаются те, кто сожмет !

282. Vuk, 28.01.2002 12:08
quest
(относительно выложенного файла)
Я тут прогнал его своей маленькой, наспех составленной программкой, но тем не менее приобрел абсолютную уверенность, в том, что этот файл все-таким можно сжать.
Если интересно, что я получил из этого файла, то вот это:
код:

1048199
525221
261826
131650
65963
32387
16240
8138
3985
2046
1017
498
256
131
68
29
14
9
4
2
1
0


Эти циферки показывают сколько последовательностей из одинаковых битиков встретилось в Вашем файле. Т. е. 1048199 - по одному битику, 525221 - по два битика и т. д. И в конце, на самых длинных последовательностях оказалось что это распределение существенно болтается вверх/вниз (!) относительно степеней двойки (1-2-4-8-16-...).
Для наглядности я даже нарисовал тут:

То есть (внимание Vladimir Rybinkin - маленькая идея), отступив от предположения, что символы в файле имеют длину 8 бит и кратны байтам - мы можем этот файл чуть-чуть, но поджать.
Правда, потребуется очень много времени на написание алгоритма и очень-очень много, собственно, на сжатие. Сам попробовать не могу - ( сорри ) слишком занят чтобы дня два сидеть над кодированием...
Тем более я могу и ошибаться. А как Вы считаете, quest, ошибаюсь я или нет?

283. Vladimir Rybinkin, 28.01.2002 12:33
Мне жена сегодня сказала: "Вот уж нисколько не сомневаюсь, что ЭТО ты сделаешь. Им надо было спорить, чтобы ты по дому чего-нибудь сделал"

Vuk (и другие)
Ребята! У меня ЕСТЬ алгоритм. Мне интересно сейчас, ошибаюсь ли Я!

284. quest, 28.01.2002 12:35
А как Вы считаете, quest, ошибаюсь я или нет?

Я, правда, не совсем понял, что Вы подсчитывали, но основную идею вроде усёк: Вы хотите использовать отклонения частот битовых подпоследовательностей от их априорных вероятностей при предположении, что все они равновероятны.
Идея хорошая, но не учитывает одно: это только в самом начале изучения теории вероятностей народ думает, что раз вероятность выпадения решки равна 0.5, то подбросив монетку 1000 раз мы получим ровно 500 выпадений решки. Познакомившись с теорией вероятности поближе, почти все понимают, что это отнюдь не так...


Добавление от 28-01-2002 12:36:

Vladimir Rybinkin
Мне интересно сейчас, ошибаюсь ли Я!

Увы, ошибаетесь...

285. Контрабандист, 28.01.2002 13:14
quest
Тому, кто первый сожмет (сотворит self-экстрактор) мою вторую последовательноть хоть на один байт

С таким же успехом можно было предложить сделать self-extractor ровно на 1 байт длиннее исходного файла. Результат был бы тот же, но условие более эффектное.

286. Vladimir Rybinkin, 28.01.2002 17:57
Ну, ребяты, молитесь, чтобы я ошибся...

Ниче пока не сжал (естественно ), но малейшие телодвижения ТАКОЕ с файлом творят...

Это было:

Это стало:

Точнее, стало не это, но я упростил до предела, чтобы понять, чего там происходит. Не знаю, чем это закончится, но пока что оптимизма прибавилось .

P.S. quest - насчет "в столбик" - правильное замечание, перепутал все, что можно .

287. quest, 28.01.2002 18:19
Vladimir Rybinkin
пока что оптимизма прибавилось

Куды-ж больше то?

288. Vladimir Rybinkin, 28.01.2002 18:24
quest
Как это куды? Я же расценивал шансы как примерно равные, но у меня помене. А сейчас думаю - пожалуй, поболе...

Я, собственно, ничего пока не делаю - смотрю на файл, но уже и ноликов прибавилось, и упорядоченность выросла (здесь, конечно, не заметно). Причем даром - я еще даже одного байта не потратил служебного - 5 бит (или 6, еще не решил).

289. quest, 28.01.2002 18:39
Vladimir Rybinkin
но уже и ноликов прибавилось
я еще даже одного байта не потратил служебного - 5 бит

На эти 5 и прибавилось?

Кстати. А каким образом определяется большая-меньшая упорядоченность? Чем меряете?

290. AleUri, 28.01.2002 19:26
Все мой любимые архиваторы сдались
(по этому собственно и не привожу их список )

quest вышли мне (aleuri@hotbox.ru) вторую последоватьность, выложу ее раз уж взялся

291. Vladimir Rybinkin, 28.01.2002 20:32
quest
цитата:
На эти 5 и прибавилось?
Не, на 610, но не в этом дело. Я их и не прибавлял - просто так получилось.
цитата:
А каким образом определяется большая-меньшая упорядоченность? Чем меряете?
Ничем. Алгоритм тасует данные так, что они становятся более упорядоченными. Вообще-то, это видно и визуально, но не на байтовом распределении. Но, опять-таки, не в этом дело. Я (хм, до пятницы я совершенно занят ) хочу понять, как в принципе можно обрабатывать данные. Погонять алгоритмы, которые: 1. нарушают равновесие, 2. увеличивают упорядоченность, 3. "спекают" данные в более крупные блоки и 4. уменьшают количество вариантов. Конкурс методов объявить, так сказать. А потом уже с победителями разбираться .

292. Alexzander, 29.01.2002 07:34
Евгений Машеров
Может хоть вы убедите меня, что алгоритм не сработает... А то пока объективных возражений не было - я ведь самоделкин, мне надо на пальцах объяснить, что алгоритм не сработает. Жаль, что мне не чем самомоу попробовать ни первый, ни второй файл. Хотя, может это и к лучшему?

293. quest, 29.01.2002 10:06
Alexzander
А то пока объективных возражений не было

Посылайте мне - будут!
(Через сервер iXBT, есстно).

Добавление от 29-01-2002 10:14:

AleUri

Вышлю. Возник небольшой затык по работе, а вторую последовательность я сгоряча потер: думал уже никому не нужно Но, до конца недели постараюсь выбрать время и восстановить.

294. Alexzander, 29.01.2002 11:03
quest
Отправил. Я не очень расстроюсь, если не совершу прорыва и ничего не докажу, но хотелось бы _доказательных_ возражений почему я не прав. А то я уже слышал, что место может быть занято, так и до нехватки оперативки докатиться можно... или еще много до чего.

295. Vladimir Rybinkin, 29.01.2002 11:28
Alexzander
Посылайте мне - будут!
Или мне . Я, кажется, начинаю понимать, как работают классические архиваторы (точнее, как они должны бы работать ).

296. Alexzander, 29.01.2002 11:54
Vladimir Rybinkin
Выслал.

297. Vladimir Rybinkin, 29.01.2002 12:01
Alexzander
Получил...
Уважаемые господа! Ваш электронный адрес взят из открытых источников.
Тем не менее, просим нас извинить за несанкционированную рассылку.
Искренне надеемся, что данная информация будет для Вас полезна.

Это?

298. Alexzander, 29.01.2002 12:08
Vladimir Rybinkin
Нет... Письмо послано с рабочего места, там должно быть все официально. Неужели не получили... Послать еще раз?

299. quest, 29.01.2002 12:10
Vladimir Rybinkin
Я, кажется, начинаю понимать

Вот это - всегда полезно!!!
Оптимизьмы в связи с этим не поубавилось?

300. Vladimir Rybinkin, 29.01.2002 12:14
Alexzander
Ага, пришло. Но там же все написано...

Здесь морду бить или мылом?

quest
Наоборот, прибавилось .-

301. Alexzander, 29.01.2002 12:21
quest
Отвечу здесь, если не возражаете.
Во-первых, несколько страниц назад я уже говорил, что алгоритм работает не во всех условиях. Непереносимость на другие машины - одно из них.
Во-вторых, место, необходимое для файла, можно и ручками освободить.
В-третьих, с числами вы все усложнили. Если число в пределах от 16 до 32, то номер сектора будет 16, 17, 18, 19 и т.д. до тех пор, пока (Число минус Номер сектора) >=0. То же верно и для любых других чисел.
В-четвертых, мы говорим о сжатии одного единственного файла один единственный раз, чтобы доказать, что это возможно. Сколько можно приводить контраргумент, что "В других условиях этого не получится"?!! Достаточно, чтобы получилось хотя бы ОДИН РАЗ.

Возможно, что я где-то не очень точно употребил терминологию, но как тогда называется физический адрес на диске для каждого конкретного байта?


Добавление от 29-01-2002 12:22:

Vladimir Rybinkin
Ни там, ни мылом. Просто примите к сведению как нереальный (если это так) и не копайте в этом направлении.

302. Vladimir Rybinkin, 29.01.2002 12:26
Alexzander
Ok. А насчет не копать - я уже писал: алгоритм есть, направление, стало быть, тоже - другого такого мне не придумать, а если уж и ЭТО не работает - сдамся.

303. Alexzander, 29.01.2002 12:28
Vladimir Rybinkin
Хотя, по зрелому размышлению, непонятно, почему не реально.... Может объясните мылом?

304. quest, 29.01.2002 12:28
Alexzander
мы говорим о сжатии одного единственного файла один единственный раз

Дык, что тогда сжатием называется?

Добавление от 29-01-2002 12:29:

Vladimir Rybinkin
если уж и ЭТО не работает

Точно: не работает оно, подлое!

305. Vladimir Rybinkin, 29.01.2002 12:30
Alexzander
Хорошо. Только я сейчас уезжаю на важную встречу. Вечерком, если получится. Или завтра.

306. Alexzander, 29.01.2002 12:34
quest
А причем тогда ваши (и других) возражения, что места нет или не хватит или занято, что пересылать файл нужно на другую машину (в коммерческой версии, понятно, без этого никак), зачем упоминаются служебные метки, когда для одного случая можно обойтись и без них?

Разархиватор делает примерно так:
- перейти по адресу такому-то
- считать 10 раз по х байт
- сложить каждый раз с номером считываемого сектора
- записать в новый файл
- бла-бла
- перейти по номеру другому
- считать 100 раз по у байт
- высчитать каждый раз по другой формуле
- записать в тот же файл
- бла-бла

И где здесь необходимые служебные метки, которые жрут так много места? Алгоритм работает один раз и ему не надо ИСКАТЬ что и где. Он ЗНАЕТ.

307. quest, 29.01.2002 12:53
Alexzander

Даже комментировать неохота

Да поймите, что номер сектора нужно тоже где-то хранить, а выигрыша не будет, т.к. при сложении чисел показатели степеней складыватся не обязаны! 2^16 + 2^16 отнюдь не равно 2^32

308. Alexzander, 29.01.2002 13:45
quest
Естественно, сорри, про 2^16 и 2^32 это из другой оперы, и будет там не вычитание, а степени, по основанию 2

Может, я чего-то не догоняю, но зачем номер сектора хранить? Ведь комп уже знает где позиционирована головка для чтения - и этот адрес наверное можно получить соответствующей функцией. ФАТ же как-то содержит в себе инфу о расположении файлов на диске?

Добавление от 29-01-2002 13:49:

2 ALL
Сорри всем, за описку по поводу степеней. Самое смешное, что кроме quest больше никто ее не заметил...

Добавление от 29-01-2002 13:51:

quest
Вопрос: если мы считываем 124 байт из файла ххх.zip - неужели мы не можем получить от системы адрес ячейки, где записан этот байт?

309. B.A.D., 29.01.2002 14:56

Alexander

Сорри всем, за описку по поводу степеней. Самое смешное, что кроме quest больше никто ее не заметил

Дык робяты может вы все-таки как-нить по почте разберетесь - народ ВООБЩЕ не в курсе мифического алгоритма от Alexander - нигде его нет и о чем речь не понятно, тем более никому это и не надо (ИМХО) - вот двое нарвались quest и Rybinkin - теперь отдуваются

quest ощутимое различие в количестве 0 и 1 - так вроде стандартное "арифметическое кодирование" должно сжать

310. quest, 29.01.2002 15:17
B.A.D.
ощутимое различие в количестве 0 и 1 - так вроде стандартное "арифметическое кодирование" должно сжать

Дык, где оно, ощутимое различие?

311. B.A.D., 29.01.2002 15:22
To quest
Чего? Нулей на 12% больше, чем единиц??? (Сеанс психологического давления нумер 2 )
Обшибся . На калькуляторе считал - со второго раза - 0.396800041198
(Rybinkin)
Мы то этой последовательности в глаза не видали, но Rybinkin'у верим (наивные мы)

To All
А что если quest=Rybinkin (небольшая шутка)

312. quest, 29.01.2002 15:32
B.A.D.
Мы то этой последовательности в глаза не видали

А кто мешает посмотреть?

Но, продолжим цитирование (Чего? Нулей на 12% больше, чем единиц??? (Сеанс психологического давления нумер 2 ) Обшибся . На калькуляторе считал - со второго раза - 0.396800041198 (Rybinkin))
quest:

цитата:
Дык, а надо - столбиком!

Rybinkin:
цитата:
P.S. quest - насчет "в столбик" - правильное замечание, перепутал все, что можно.

Советую (на будущее) читать всё подряд, а не только последнюю страницу ветки.

313. WPooh, 29.01.2002 15:33
B.A.D.
А что если quest=Rybinkin (небольшая шутка)
Не, вряд ли. А вот "начальник/подчиненный" или "сотрудники" - запросто. Можно QZ спросить - он их IPшники может глянуть.

Добавление от 29-01-2002 15:36:

quest
А может раздвоение личности на почве превращения г..на в конфетку произошло. Шютка.

314. B.A.D., 29.01.2002 15:43
WPooh
"начальник/подчиненный" или "сотрудники" - запросто

точно!! - только они сами об этом не знают

слышь WPooh что-то твой IP сильно на IP QZ смахивает
и точно совпадает с IP моего начальника

315. WPooh, 29.01.2002 15:54
B.A.D. Это чего? Наезд или комплимент?
Не, у меня даже бороды-то нету. Только отращиваю. Да и возраст поменьше. Не, вроде бы не раздвоение. Да и за окном сосенки кругом и белки скачут, а не бетонные коробки с кучей машин в пробках. Вроде даже за начальника он мне не идет.

316. Vladimir Rybinkin, 29.01.2002 18:49
Alexzander
Я немного погорячился - не хочется комментировать . Даю только одно возражение:
Берем несколько чисел подрят из файла так, чтобы они лежали в промежутке от 2^16 до 2^32
Нет таких чисел в файле (подряд ). А если бы и были (т.е. была возможность кодировать большее количество бит меньшим) - зачем все это, и так закодируем.

quest

цитата:
Советую (на будущее) читать всё подряд, а не только последнюю страницу ветки
Снова правильное замечание .

B.A.D.
Уточненные данные:
0 - 4194305, 1 - 4194303, 1/0 - 0.99999952316295548 или, по-старому, 0.0000002384185791015625 (если снова не наврал ).

цитата:
А что если quest=Rybinkin
А какая разница? Этому некто все равно файл либо сжать, либо не сжать. А если не сжать, так выставить алгоритм на всеобщее осмеяние. Анонсов в любом случае хватает .

317. Alexzander, 30.01.2002 07:26
Vladimir Rybinkin
цитата:
Нет таких чисел в файле (подряд )

Нет таких - возьмем из другого промежутка, не подряд - так перетасуем, станут подряд.

318. Vladimir Rybinkin, 30.01.2002 10:37
Alexzander
Много крови . Нет, все должно быть проще. Я сейчас расцениваю свои шансы процентов эдак в 70 (сеанс N 3 ). Не нужно, похоже, колупаться ни с чем больше байта. А мож, и надо - вот погоняю алгоритмы тасования - статистика все скажет.

319. Alexzander, 30.01.2002 10:53
Vladimir Rybinkin
Дык я настолько непрофи, что мне неподсилу оценить сложность задумки. Зато есть куча народу, которые мне на это укажут!

320. quest, 30.01.2002 13:03
To All

Вторая последовательность выслана AleUri. Он обещался её выложить на общедоступном месте.

Напоминаю:

Первый, кто сожмет вторую последовательность хоть на байт (сотворит self-экстрактор длины меньшей, чем сама последовательность) получит все баксы, которые мне проиграет Vladimir Rybinkin

Первенство будет определятся по дате и времени мыла, содержащего соответствующий self-экстрактор и направленное мне через сервер iXBT.

Успеха!

321. CrazyElk, 30.01.2002 13:24
Читаю и радуюсь.

Образцу Вечной Дисскусии о некорректно поставленой задаче. (дискуссия будет вечной именно по причине некорректной постановки вопроса. не неправильной, а именно не корректной т.е. не допускающей однозначного ответа исходя из заданных условий).

Итак вопрос. Есть ли пределы сжатия данных?
(предполагая common sense для понятий данные и сжатие, беда в том что sense далеко не common)

Два формально абсолютно правильных ответа.

1. Данные сжать невозможно (т.е. предел сжатия 1:1, где то в дисскусии этот вариант проскакивал)
2. Данные бесконечной длинны могут сжимаются до размера 1 бит. (т.е. предел сжатия бесконечность, я не утвеждю что любые, но этого и вопросе не было).

Теперь пояснения
1. Если под данными подразумеваются множество Q всех возможных битовых (кому не нравится байтовых) последовательностей x длинной не более N, т.е. Lan(x)<=N . А под алгоритмом сжатия взаимно одназначная (иначе обратное декодирование не возможно) функция F переводящи x в x' такая что для любого x, F(x)=x' and Lan(x)>Lan(x'). То для практически интересных случаев когда N конечно (если N бесконечно то и преобразовывать предется бесконечно долго если нечиго не знать о характере данных) такую функцию создать невозможно. (для тех кому это не очивидно: Мощность множества значений функции меньше мощности множества аргументов посему для любой функции с взаимной одназначностью туго, а она требуется по условиям задачи - нонесенс однако получается). Ну что и требовалось доказать "Данные сжать невозможно" конечно в том смысле данные и сжать как определено в примере.

Конечно тутже крик передергивание - мы хотим сжимать не все возможные данные, а только практически встречающиеся. Второй пример это как раз иллюстирует просто по другому определя данные. Упирая именно на их практическое существование и великолепное знание природы этих данных. Определение сжатие тоже самое.

2. Данные это последовательность бит длинны N (можно даже N равно бесконечности) формируемая как отклик фильтра КИХ или если нравится экзотика и бесконечность БИХ на разовое возмущение (данные практически существуют и их природа хорошо известна). Таких данных будет ровно два (а чем это вам не множество). Возмущение единичное и возмущение нулевое.
Ну соответствено алгоритм это уравнение фильтра и сжатая последовательность представляется всего одним битом (0 или 1). Вот вам и случай 2.

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

Так что самый разумный ответ на вопрос в том виде в каком он задан на мой взгляд - unpredictable result due to incorrect question.

P.S.
Точнее эта дискусия в которой один рассуждает о дровах, а другой о яблоках.
И еще долго будут рассуждать пока не уточнят о чем собственно речь идет.

322. quest, 30.01.2002 13:49
CrazyElk
Читаю и радуюсь.

ИМХО, - немного не тому

По-моему, дискуссия крутится вокруг другого вечного вопроса: "Вера или знание?"!

Те, у кого знаний недостаточно (по причинам объективным, или субъективным) основывают свои суждения по сабжу на вере, другая сторона - на знаниях.

Ну верит Vladimir Rybinkin в свои возможности алгоритмиста!

А я пытаюсь ему показать, что в математике и программизме вера в свои возможности, хоть и полезная штука, но отнюдь недостаточная...
Желательно и знать кой-чё... Полезно, в том числе, - и для кошелька!

323. Vuk, 30.01.2002 13:51
CrazyElk
Мдя... Радость - это хорошо. Но прежде чем употреблять какие-либо термины, надо понять их смысл или, по крайней мере, научиться правильно писать.

to All
Сорри за флейм но, думаю, я выражу общее мнение.

324. CrazyElk, 30.01.2002 14:04
Vuk
Если можно каких именно терминов я не понимаю (можно часным порядком olegkrs@mail.ru во избежание флейма). Даже не зная каких, на мой взгляд важнее наоборот "надо научиться правильно писать или, по крайней мере, понять их смысл"

Добавление от 30-01-2002 14:16:

quest
Можно уточнить условия пари.
То что идет в дискусии по этой ветке очень похоже попытку доказательство с нулевым знанием (Vladimir Rybinkin не раскрывая алгоритм сжатия доказывает его существование) это интересно посмотреть. Но так и не смог четко выдилить условия пари (уж больно много сообщений). А для такого типа доказательств постановка условий и алгоритм проверки существенно важен. Если остальные условия прозрачны и это интересно только мне тогда - olegkrs@mail.ru

325. quest, 30.01.2002 14:32
CrazyElk
Можно уточнить условия пари.

Всё очень просто: я дал файл в 1Mb и до 8 марта жду, что супротивник представит self-экстрактор этого файла, размером меньшим, чем сам файл.
Не представит - выигрываю я ($10).
Представит и размер будет не больше 0.99 длины исходника - я проиграл($1000).
В остальных случаях остаемся при своих (ничья).

Ферштейн?

326. Vladimir Rybinkin, 30.01.2002 14:50
Ох, теоретики...

Посмотрим, как вы будете оправдываться, КОГДА я сотворю этот экстрактор .

327. CrazyElk, 30.01.2002 16:01
quest
А как на счет проверки что этот алгоритм не заточен на упаковку этой и только этой последовательности.

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

Вот некоторые соображения в пользу ощущения: существенно что последовательности одна, поскольку комбинирование сложного алгоритма для генерации множества последовательностей из отдельных алгоритмов требует кроме обьеденения самих алгоритмов дополнительных индексных данных (какой именно алгоритм применять) размер которых существенно увиличивает суммарную длинну комбинированного алгоритма т.е. для каждой последовательности в отдельности может существовать ее компактное алгоритмическое представление, а вот для всего множества в целом нет).

Разница постановок между наперед заданный алгоритм и произвольные входные данные и заданные входные данные и произвольный алгоритм на мой взгляд очень существенна.

Фактически в этим пари проверяется утверждение что для заданной ограниченной (и как следовательно не чисто случайной) последовательности не существует ее компактое алгоритмическое представление. Это еще вопрос, причем не даже эквивалентный существованию эффективного алгоритма для сжатия произвольной случайной последовательности. Для провеки существования алгоритма эффективно сжимающего случаные данные (при этом он на регулярных данных вполне возможно давал бы полную лажу) корректнее было бы - Vladimir Rybinkin представлял распаковщик, а уже затем затем получает N тестовых файлов длинны M для упаковки где N от 1 до сколько договоритесь. И если для этих файлов условие сжимаемости 0.99M исходного текста выполняется то можно с определенной вероятностью говорить о существовании сжимающего алгоритма. Это было бы похоже на доказатество с нулевым знанием - поставщику исходных данных существование - или отсутствие алгоритма после N тестов очивидно но никаких данных о нем у у него нет и другим доказать существование алгоритма он не может.

Но вобщем спор ваш. Вам и решать что именно им решается и как его вести.

328. quest, 30.01.2002 16:13
CrazyElk
для любой наперед заданной последовательности существует алгоритм генерации такой что суммарная длинна алгоритма (включая входные данные которые он использует) меньше чем заданная последовательность

Ну вот!
Ещё один.
А ить поначалу боле-мене здраво рассуждал, а тут опять ощущения полезли...

Заразно, наверное

329. B.A.D., 30.01.2002 16:34
CrazyElk И еще долго будут рассуждать пока не уточнят о чем собственно речь идет.
Результат - запинали ногами

ExtraLamerЧТО ТАКОЕ СЖАТИЕ?
Результат - запинали ногами

Я уже пытался дать определения
Результат - всем по барабану, каждый о своем спорит

T0 Alexzander ну нельзя обсуждать Ваш алгоритм, не описав его (смотрел я всю ветку - нет описания)

330. quest, 30.01.2002 17:02
B.A.D.
T0 Alexzander ну нельзя обсуждать Ваш алгоритм, не описав его (смотрел я всю ветку - нет описания)

Та нечего там обсуждать - не алгоритм, а просто некие, как бы помягче сказать, ну, к примеру, не совсем адекватные рассуждения.

331. CrazyElk, 30.01.2002 17:56
quest
Каюсь ввел в рассуждения неопределенное понятие чем ввел в смущение окружающих (взял слишком высокий уровень абстракции). Понятие алгоритм у меня совершенно не определено ни какие операции ни как их комбинировать. Хоть в дисскусии всеми наверное понимается программа на PC т.е базовые элементы алгоритма вполне определены и зафиксированны.

Так вот если базовые операции алгоритма заранее не определены, как я молчаливо и предпологал в своих рассуждениях (виноват еще раз каюсь), и сложность реализации базовых операций не учитываются в общей сложности алгоритма (с чем повидимому согласны все) то в качестве базовой операции берем сложение по модулю числа представленного заданной последовательностью + 1 и в этой арифметике генерация требуемой последовательности тривиальная задача описываемая очень компактно аналитически (псевдо код for (i=0,i+1<>0,i++){}; Out(i); или еще проще Out(-1) . Сложность суперпозиции же таких "компактных" описаний величина не аддитивная (все таже служебная информация какой набор операций использовать) и даже если меняя определения базовых операции мы компактно опишим каждую из последовательностей то все множество компактно представить не выйдет.

В пари в отличии от моих рассуждений базовые операции вполне определены (набор команд процессора) и как следствие относительно этих базовых команд существует не более чем 2^int(N*0.99) алгоритмов (под алгортмом понимаю как команды так и входные данные) генерирующих не более чем 2^int(N*0.99) последовательностей длинны N и т.д. и т.п. не буду повторять аргументы quest там все корректно и прозрачно. Т.Ч. "несжимаемые" последовательности существуют с учетом выше изложенног. Теперь интересен только результат пари.

P.S.
А ощущение было от того что просто так априори выделенных последовательностей быть не может эта сжимаемая эта не сжимаемая их чтото должно выделять. Разобрался - выделяет базовый набор алгоритма. Меняем базовый набор для построения меняется множество "сжимаемых" последовательностей.

332. AleUri, 30.01.2002 20:09
ALL

Первая последовательность (http://aleuri.hotbox.ru/1.rar) Копия Первой последовательности (http://aleuri.narod.ru/1.rar) - та, которая послана для Vladimir Rybinkin
Вторая последовательность (http://aleuri.hotbox.ru/2.rar) Копия Второй последовательности (http://aleuri.narod.ru/2.rar) - про которую сказано

цитата:
Первый, кто сожмет вторую последовательность хоть на байт (сотворит self-экстрактор длины меньшей, чем сама последовательность) получит все баксы, которые мне проиграет Vladimir Rybinkin

Всем удачи !

333. Vladimir Rybinkin, 30.01.2002 20:15
"Болтанка" у второй явно больше

А не попробовать ли МНЕ получить баксы от Рыбинкина?

334. Витька, 30.01.2002 21:06
CrazyElk
Вам очень верно заметил Vuk, что:
цитата:
прежде чем употреблять какие-либо термины, надо понять их смысл или, по крайней мере, научиться правильно писать.

Вы же сами сказали про невозможность взаимно однозначного преобразования (отображения) двух конечных множеств разного размера друг в друга. И после этого, вдруг начинаете “уточнять” (IMHO, гнать пургу) - про какие то базовые операции. Какая разница!!!


quest

А сколько Вы ставите против того, что я, в течении недели (после согласия) предоставлю программу, которая сможет сжать (и обратно разжать конечно) любой из десяти файлов размером 1M..10M, которые вы сделаете в последующие 30 дней?

335. quest, 31.01.2002 10:07
Витька
я, в течении недели (после согласия) предоставлю программу, которая сможет сжать (и обратно разжать конечно) любой из десяти файлов размером 1M..10M

Шуллерские приемы мы здесь уже обсуждали!

Или Вы всерьёз?

336. Витька, 31.01.2002 11:11
quest
Всерьёз. Никаго шулерства абсолютно - (де)архиватор рассматривает только содержимое только входного файла. Даже имя не учитывает . Исходники в качестве бесплатного приложения.

337. quest, 31.01.2002 11:18
Витька
А сколько Вы ставите против того, что я, в течении недели (после согласия) предоставлю программу, которая сможет сжать (и обратно разжать конечно) любой из десяти файлов размером 1M..10M, которые вы сделаете в последующие 30 дней?
Всерьёз. Никаго шулерства абсолютно

А сколько хотите!
Но при условии, что Вы тоже поставите на кон сумму, способную мне компенсировать мои 30-дневные затраты. Баксов этак пятьсот...


338. PetrZloy, 31.01.2002 11:29
Витька
Это ГОРАЗДО БОЛЕЕ реально, чем сжать одну конкретную, но с учетом размера кода в селф-экстракторе.

Даже я более менее представляю как это сделать.

Я так понял что вы размер своего екзешника не учитываете - иначе условия были бы еще жестче чем в пари, к-е всеми тут обсуждается.

То есть я бы ничего не поставил при таких условиях.

Добавление от 31-01-2002 11:36:

Витька
И вообще то вы тоже условия слишком размыто обрисовали.
Учитываете размер ЕХЕ? или нет?
Нафига 10 файлов упоминать? После того как вы пришлете ваш архиватор достаточно будет сделать 1 файл, который он не сожмет. Или что вы имели ввиду? Тем более имея исходник.

339. quest, 31.01.2002 11:47
PetrZloy
Нафига 10 файлов упоминать?

Вообще-то, было подозрение, что он намеревался спрятать часть "сжимаемых" файлов в теле своего "(де)архиватора". Тогда ограничение на число и размеры файлов имеют смысл. Но раз говорит о полном отсутствии шулерства, то действительно интересно зачем?

340. White Eagle, 31.01.2002 11:59
quest
Вроде как Витька обещает сначала программу, а потом получает 10 файлов.
Так что спрятать не выйдет.

Витька, или я не прав?

341. Витька, 31.01.2002 12:32
quest
Но при условии, что Вы тоже поставите на кон сумму, способную мне компенсировать мои 30-дневные затраты. Баксов этак пятьсот...

$500 это перебор. Они есть у меня, но риск слишком высок. Ведь дальше идей я пока не продвинулся.
Ставлю $50 против Ваших $500. К тому же, я обещал без шулерства, а архиватор не заканчивающий работу за разумное время например на PIII-650@900GHz/256M (мой компьютер) отношу к нечестности.


PetrZloy
Учитываете размер ЕХЕ? или нет?

Зачем? Впрочем уверен, что больше, чем на 100K (реально 30K Delphi console) он не потянет.

После того как вы пришлете ваш архиватор достаточно будет сделать 1 файл, который он не сожмет.

Совершенно верно.

White Eagle
Вроде как Витька обещает сначала программу, а потом получает 10 файлов.
Так что спрятать не выйдет.

Вы меня абсолютно правильно поняли.

342. quest, 31.01.2002 12:39
Витька
архиватор не заканчивающий работу за разумное время например на PIII-650@900GHz/256M (мой компьютер) отношу к нечестности.

Ваше определение разумности, плииз?

343. Витька, 31.01.2002 12:46
quest
Долгожданный и очень важный вопрос .
10 файлов за 30 дней, ну скажем не больше 3-x дней архивации на один файл. Думаю, что 10 раз ужать свой результат он сможет .

344. quest, 31.01.2002 13:12
Витька
Думаю, что 10 раз ужать свой результат он сможет

Дык, требуется ужать не свой результат, а мой файл!
Ну, будем играть словами, аль приступим к точному формулированию условий очередного пари?
Юристов звать, иль миром разойдемся?

345. Витька, 31.01.2002 13:24
quest
Дык, требуется ужать не свой результат, а мой файл!

Естественно. Просто я боюсь, что ужимать им же созданный архив ему было бы несколько сложнее, чем созданный Вами файл. Где Вы обнаружили у меня игру словами?

346. Vuk, 31.01.2002 13:40
quest
Согласен с Вами относительно того что болтанка хоть и есть но при таких величинах отклонения (от априорной вероятности появления последовательности одинаковых битов определенной длины) роли не играет - отклонения слишком малы. Но вот во второй последовательности хвост выглядит как
код:
516
287
121
63
27
18
5
1
3
0


Здесь можно уже пару-другую байт получить только за счет прямой замены более длинной последовательности повторяющихся бит на более короткую.
Но не в этом дело. Просто распределение с таким хвостом мне очень напомнило распределение, полученное мной на основе анализа файла mp3, многократно пережатого архиватором.
quest, признайтесь, каким образом Вы создали этот (второй) файл?

347. quest, 31.01.2002 13:44
Витька
Где Вы обнаружили у меня игру словами?
Вот:
Думаю, что 10 раз ужать свой результат он сможет

Формулируйте точно Ваши условия (включая максимальные размеры Ваших (де)архиваторов, и максимальное время из работы).
Если время работы будет измеряться часами и сутками, а не минутами, то Ваше предложение по ставке меня не устроит: за время, которое мне придется затратить на это пари я могу заработать больше $50. Элементарно невыгодно. Тут может идти речь уже о сотнях.

Добавление от 31-01-2002 13:45:

Vuk
признайтесь, каким образом Вы создали этот (второй) файл?

Не-а!

348. CrazyElk, 31.01.2002 14:50
Витька
>>на написано 30-01-2002 21:06
>>И после этого, вдруг начинаете “уточнять” (IMHO, гнать пургу) - про какие то базовые операции.
>>Какая разница!!!

А вот какая!!!
Простая как в этом примере: сваяли ты класный self extractor удовлетворяющий всем условиям по сжимаемости для четвертого пня активно пользуясь в нем SIMD инструкции, вызовы "стандартных" библиотек оформленных как Win32 dll (например все что с MFC, скажем для сравнения строк, сортировки массивов и т.д и т.п.) и посылаеш его на проверку. А в ответ мил человек нет у меня P-4 и вообще taget платформа на которой проверяется решение PC XT под DOC скажем 3.3 пришли пожалуста этот-же алгоритм сделанный для чистого X86 Dos3.3. Ну как ты сами думаеш насколько байт (кило, мего) и в какую сторону изменится размер программы когда в нее добавятся X86 реализации для этих "P4 Win32 стандартныех" команд и функций.

Вот и выходит что "базовый" набор команд из каких можно строить алгоритм еще как влияет на размер self extractor-а и возможность сжать последовательность.

P.S.
(а в промежутке еще есть 286, 386, 486, P, PII, PIII, K-5, K-6 ... и это только X86 совместимые не говоря о моторолерах для Apple и Z-80 ... дальше не углубляюсь)

P.S. II IMXO Пари спасает то что 99.9...% в качестве платформы рассматривают от P и выше в качестве процессора и Win95-98 в качестве операционки.

349. Витька, 31.01.2002 15:17
quest
Где Вы обнаружили у меня игру словами?
Вот:
Думаю, что 10 раз ужать свой результат он сможет

Это была некоторая избыточная информация о свойствах моей программы, только повышающая Ваши шансы. Неужели не понятно?

Весь вопрос в степени Вашей уверенности в несжимаемости Ваших файлов, и моей в работоспособности моего алгоритма. Никто не требует от Вас тратить какое-то время.

По поводу интересующих Вас условий, то максимальный размер моей программы 100K (а чего мелочится, ничего взятого с потолка она содержать не будет, но даже минимальный экзешник у меня начинается от 20K), максимальное время работы 48 часов.
Про минуты – Вы погорячились, ведь тогда можно успеть запустить её несколько тысяч раз рекурсивно и получить решение для Вашего предыдущего пари with Rybinkin (в котором, кстати не оговаривалось время работы sfx).

P.S. Мне кажется, что Вы боитесь подвоха. Так вот, повторяю – никакого шулерства. Правда и никакого прикладного значения – голая теория.

CrazyElk
Ну и что? Неужели Вы хотите сказать, что наличие SIMD влияет на возможность построения взаимно однозначного соответствия между двумя конечными множествами разного размера? А если нет, то очевидно, что любое отображение множества файлов заданного размера на множество всех файлов приводящее к уменьшению одних (это любой метод архивации), обязательно приведёт к увеличению других. При чём здесь набор инструкций?

350. quest, 31.01.2002 16:04
Витька
Мне кажется, что Вы боитесь подвоха.

Конечно!

Правда и никакого прикладного значения – голая теория.

И именно потому, что неплохо знаю теорию.

К примеру, я знаю, что чисто сжать любую последовательность битов невозможно (аргументы тут приводились не раз). Но можно иммитировать сжатие, если есть возможность разделить информацию в исходном файле и некоторую её часть просто иметь в (де)архиваторе. Я уже говорил, что очень трудно установить чёткую грань между алгоритмом и данными. И поэтому, предлагая первоначальное пари настаивал на self-экстракторе.

Вы от требования self-экстрактора отошли. А здесь есть масса возможностей сжать, фактически не сжимая.
Самый простой пример: иметь в своем архиваторе n-е число констант (битовых последовательностей) и заменять в "сжатом" файле найденные последовательности (буде таковые найдутся) на номера соответствующих констант. Если число битов номера, вместе с числом битов адреса найденной последовательности меньше её длины, то всё убито! Здесь, при условии, что исходный файл достаточно случаен (следовательно - несжимаем стандартными средствами), вступает в действие теория вероятности. Можно заранее просчитать вероятности наступления нужного события и сформировать нужное число констант нужной длины (или - множество алгоритмов получения констант). Останется только так замедлить работу программы, чтобы не дать мне возможность определить это множество констант и сгенерировать исходник, этих констант не содержащих. Формально - всё ОК, а по-существу - никакого сжатия нет.

И это - только один пример!!!

Посему: при таком времени работы и таком размере файла, для того чтобы иметь более-менее приличное матожидание выигрыша мне потребуются затраты далеко превышающие $1000 (задействовать одновременно много машин). Я ж не по уши деревянный, чтобы тратить такие деньги ради максимально ожидаемого выигрыша в $50!

351. @Matrix, 31.01.2002 16:05
Витька
А сколько Вы ставите против того, что я, в течении недели (после согласия) предоставлю программу, которая сможет сжать (и обратно разжать конечно) любой из десяти файлов размером 1M..10M, которые вы сделаете в последующие 30 дней?

Вы хоть сами-то понимаете, что вы обязуетесь написать алгоритм, сжимающий практически любые данные как минимум в 10 раз?

Простое доказательство приведенного утверждения: берем произвольный файл (для увеличения сложности, zip-архив) размером 10 Мб, подаем его на вход Вашему алгоритму, потом (если результат больше 1 Мб) подаем на вход этот результат и т. д. Если Ваш архиватор сжимает ЛЮБОЙ файл размером 1..10Мб, то такими последовательными операциями мы либо любой файл размером 10Мб сожмем менее чем в 1Мб, и докажем Вашу правоту, либо найдем файл, который уже не будет сжиматься...

Ну так что, будем спорить? На сколько?

Добавление от 31-01-2002 16:11:

Упс... Прочитал про предполагаемое время работы... Не, так может итераций не хватить

352. CrazyElk, 31.01.2002 16:16
Витька
На теоретическую возможность построения соответствия конечно не влияет.

А вот на обьем описания (читай алгоритма) этого соответствия на языке команд процессора очень даже да влияет. Поскольку описание (алгоритм) в self extract входит неотемлемой частью то и на итоговый размер exe файла тоже Сравнивается же исходная последовательность и сумма размеров описания разжимающего алгоритма (т.е исполняема часть self extract файла) + входные данные для этого алгоритма (остаток байт в self extract файле).

А не просто размер исходная последовательность с размером входных данных для некоторой программы (разжимателя). (в эдаких условиях сравнения я что угодно сожму до 1 бита вся сложность уйдет в программу разжимания).

P.S. Предложение ограничить программу 100к эквивалентна в чем то заранее махом получить что то ~10% (100k ot 1M) форы в сжатии ведь если это self extract то эти 100к в игре. А так вроде как и не считаются.

P.S. II Обратите внимание что о сжимаемостьи или не сжимаемости конкретных примеров не говорил не слова (не собираюсь ни анализировать ни дискутировать). Так что сожмете его или нет никакого значения не имеет. Корректную IMXO поцедуру проверки существования алгоритма сжатия белого шума (насколько понимаю спор вокруг него) излагал ранее. (спорить с кем не собираюсь)

353. Vladimir Rybinkin, 31.01.2002 19:54
CrazyElk
цитата:
насколько байт (кило, мего) и в какую сторону изменится размер программы когда в нее добавятся X86 реализации для этих "P4 Win32 стандартныех" команд и функций
ЧЕГО??? КУДА??? Да никак не влияет. Ну, почти. Была, скажем где-то полезная команда "подсчет числа единиц" - ну, нет ее...
цитата:
Корректную IMXO поцедуру проверки существования алгоритма сжатия белого шума (насколько понимаю спор вокруг него) излагал ранее. (спорить с кем не собираюсь)
Спорить не буду, а процедуры что-то не нашел. И как проверять?

quest
Где-то раньше, помнится, приводились какие-то расчеты - особо не вникал, тем более, что они числовые. А вот формулу вероятности сжатия файла из N байт на M байт - есть такая?

354. Витька, 31.01.2002 21:12
quest
То есть отказ. А жаль. Я начал писать Вам более подробный ответ, но ... Может завтра допишу.
Кстати, Ваш первый файл не плох. Только последовательности в 20 бит не все встречаются. До теоретически возможных 23 Вы не дотянули. Но, мой первый же, тестовый Монте-Карловский архиватор сжал его за час на 7 байт. Может везение?

355. CrazyElk, 31.01.2002 21:28
Vladimir Rybinkin
Процедура доказательство с нулевым знанием (zero knowledge proof) существования сжимающего алгоритма (т.е. как не раскрывая самого алгоритма доказать желающему что он существует) см. мой постинг написан 30-01-2002 16:01 адресованый quest предпоследний абзац в середине.

>>ЧЕГО??? КУДА??? Да никак не влияет. (написано 31-01-2002 19:54 Vladimir Rybinkin)
Заранее: И ни какого отношения к разрабатываему тобой алгоритмуэтот пост не имеет.

Это ответ для Витька на его постинг в мой огород написаный им 31-01-2002 15:17 в ответ на мой 31-01-2002 14:50 и т.д. там ссылка есть дальше. Если что непонятно но интересно в обратном порядке по постам все прояснится. Не прояснится - ну извини такой я косноязычный.

quest тыто хоть понимаеш о чем я пишу али все криво сумбурно и непонятно а ?

Кстати пост quest от 31-01-2002 16:04 написанный для Витька по этой же проблеме с точки зрения програмиста наверно еще лутше все обьясняет что и я пытался донести но с другой стороны.

P.S. Да не нужна она тебе (в смысле процедура эта zero knowledge proof) у вас с quest уже своя выработана. А если уж сам вопрос интересен милости просим в Applied Сryptography все очень понятно и прозрачно описано с илюстрациями и пояснениями читай нехочу (классика-с сила).

356. quest, 01.02.2002 11:10
Vladimir Rybinkin
А вот формулу вероятности сжатия файла из N байт на M байт - есть такая?

Угу. Но ить это - теория, кою не признаём...

Витька
То есть отказ.

На таких условиях пусть Vladimir Rybinkin играет, - он теории не признает из принципа!

До теоретически возможных 23 Вы не дотянули.

Чтобы её можно было сжать ровно вдвое? А в оставшиеся полмегабайта спокойно вставить программу распаковки?
Устал уже говорить: я с теорией знаком неплохо!

Но, мой первый же, тестовый Монте-Карловский архиватор сжал его за час на 7 байт. Может везение?

Отчего-ж? Так оно и должно быть. И даже еще десяток-другой байтов можно выжать - энтропия позволяет. Остался пустячок: втиснуть в эти байты программу распаковки и Вы на коне!

CrazyElk
тыто хоть понимаеш о чем я пишу али все криво сумбурно и непонятно а ?

Я с криптографией знаком...

357. CrazyElk, 01.02.2002 15:24
quest
Я с криптографией знаком...

Да я вопрос задал не всмысле твоего знания теории (всяких всяческих и разнообразных, а уж если чего не знаеш сможеш разобратся в этом сомнений не возникает) я о своем стиле изложения вопрос задал. А то впечатление от ответов и возражений что по китайски пишу все вроде читают все видят и ничего не воспринимают. Вот и поинтересовался как с твоей точки может и вправду заумно и криво пишу и человеку не понять как не старайся в силу убогости изложения автора (меня то биш )?

P.S. Усе писать прекращаю а то окинул взглядом еще раз тему и понял что можно следующими брать с таким же успехом:

а) ищем трехмерные числа (а что рациональные числа одномерные по оси отобразить можно, комплексные двумерны хорошо векторами представляются - отседова "ясно" трехменые должны быть срочно ищем. Чур в теорию не заглядывать кто оную не признает, Л.С. Понтрягина в упор не видить)

б) срочно опровергаем Большую теорему Ферма ну ту что x^n+y^n=z^n и n > 2 (Чего проще: для опровержения всего один то примерчек нужен - пишим программу поиска цельночисленных решений и ищем... ищем... ищем... тем более что в Кирил и Мефодии она до сих пор в недоказанных числится сколько им ссылки не присылай, а Taylor и Wiles пошли ну сами знают куда.)

Good Bye ALL

358. Витька, 01.02.2002 18:51
quest
Остался пустячок: втиснуть в эти байты программу распаковки и Вы на коне!

Да? А что Вы скажете насчёт поставки в виде двух файлов с суммарным размером меньше Вашего?
Один – распаковщик “unpack.com”, другой архив “archive.bin”.
Распаковывается в голом DOS на компьютере не ниже PIII-256M RAM
командой типа: unpack.com < archive.bin > 2

359. Kyros, 01.02.2002 19:03
2 All очень прошу, если кто разобрался с форматом МР3 - помочь
http://forum.ixbt.com/0026/011098.html

360. quest, 02.02.2002 11:27
Витька
Да? А что Вы скажете насчёт поставки в виде двух файлов

Скажу, что это нарушает условия!

Публичная оферта акцептированна - обратного ходу нету, увы...

361. Vladimir Rybinkin, 02.02.2002 13:13
quest
цитата:
Угу. Но ить это - теория, кою не признаём...
Во-первых, признаем (если она не мешает решать текущую задачу ). Во-вторых, я (в случае победы или даже ничьей), похоже, претендую на попадание в книгу рекордов Гиннесса за самое большое расхождение теории и эксперимента .

обратного ходу нету

362. quest, 02.02.2002 13:33
Vladimir Rybinkin
Во-первых, признаем

Упс! Уже прогресс

претендую на попадание в книгу рекордов Гиннесса за самое большое расхождение теории и эксперимента

Мнэ-э... А где оно, расхождение-та?
Конечно, времени ещё навалом, но оно бежит, подлое, а так ещё много нужно изучить...

PS. А не приказал ли долго жить знаменитый ночной алгоритмик, случаем?

PPS. А, ить, как много нового и интересного ещё узнаете, и всего за десять баксов!

363. Vladimir Rybinkin, 02.02.2002 13:41
quest
цитата:
Мнэ-э... А где оно, расхождение-та?
Ну... Надеюсь изо всех сил (с)Карлссон.
цитата:
А не приказал ли долго жить знаменитый ночной алгоритмик, случаем?
Жив, курилка ! Даже хуже: позавчера принято решение считать эту работу проводимой в рамках НИР (так что теперь 10 баксов пойдут не из моего кармана ). В понедельник попрошу шефа отметить это документально, а то это свинство (http://www.2bit.ru/news.htm) меня слегка раздражает...

364. Контрабандист, 02.02.2002 17:23
Vladimir Rybinkin
Интересно, директор компании БИТ Владимир Романов - это, случайно, не автор Reget'a?

P.S. Оценка сверху для вероятности сжатия уже приводилась: 2/256^M; от N она не зависит. Естественно, эта оценка справедлива только тогда, когда исходный файл заполнен строго независимыми случайными данными с равными вероятностями появления 0 и 1. Файл quest'a формально к таким не относится, но практически найти в нем какую-то закономерность вряд ли будет возможно (разве что с помощью оптического компьютера ).

365. Vladimir Rybinkin, 02.02.2002 21:49
Контрабандист
цитата:
Интересно, директор компании БИТ Владимир Романов - это, случайно, не автор Reget'a?
А хрен его знает... Завтра спрошу. Что не родственник царя Николая - точно, спрашивал .
цитата:
2/256^M; от N она не зависит
Ну, это абсолютный рекорд ...
цитата:
разве что с помощью оптического компьютера
"Вряд ли" - это уже теплее. С такой страшной вероятностью какие-то другие термины нужны

Лана, после 8 марта поговорим

366. AleUri, 02.02.2002 21:57
Vladimir Rybinkin после 8 марта поговорим - в таких делам, IMHO, так далеко планировать ну никак нельзя. Это как повезет, может послезавтра проснешься с гениальной идеей, а можешь и много ночей подряд не спать за зря

367. Vladimir Rybinkin, 02.02.2002 21:59
AleUri
Да с идеей-то все в порядке, реализация хромает .

368. AleUri, 02.02.2002 22:11
тогда, пока еще нельзя категорично утверждать, что все в порядке
На практике всяко бывает

369. Vuk, 03.02.2002 12:51
цитата:
Vladimir Rybinkin:
Даже хуже: позавчера принято решение считать эту работу проводимой в рамках НИР (так что теперь 10 баксов пойдут не из моего кармана ). В понедельник попрошу шефа отметить это документально, а то это свинство (http://www.2bit.ru/news.htm) меня слегка раздражает...

А я вот в воскресенье вынужден заниматься текущей работой, хоть дома аппаратура соответствущая стоит... готовая к обсчету идей. Душат науку на корню, млин...

370. Kroz, 04.02.2002 08:48
Я поздно присоединился, так что пардон, если чего пропустил. Но...

Я вполне согласен с этим высказыванием:
То есть, архиватор, который весит M байт и будет использован для сжатия ~N файлов, создаст служебную информацию M/N байт. Практический алгоритм эффективен, если компрессия превышает M/N байт/файл.

Кроме того, я полагаю, что любую цифровую с конечным числом значений последовательность можно сжать. Не сжимается только реальный белый шум, но если его преобразовать в дискретную последовательность с конечным интервалом дискретизации и квантования, то, я считаю - сжимается.
Доказательство простое. У каждой последовательности есть свои вероятностные характеристики. Скажем, белый шум, который кажется абсолютно случайным. Чисто интуитивно прикиньте вероятность того, что последовательно будут идти, скажем, 100 одинаковых значений. Мизер, правда?
И еще. Я полагаю, что даже абсолютно случайную последовательность с оговоренными ранее условиями можно сжать. Методика проста: просто поток следует разбить на интервалы, где вероятностные характеристики будут с небольшим разбросом, следовательно, теоретически сжимаемо.
И потом. На сколько я знаю вся теория кодирования (сжатия),насколько я понял, построена из предположения, что у нас есть поток данных с одинаковыми вероятностными характеристиками по всей его продолжительности (т. е. берется усредненное значение энтропии и т. д.). А ведь это создает свои ограничения.

Я не прав?

371. Vladimir Rybinkin, 04.02.2002 11:02
Kroz
цитата:
Я не прав?
Надеюсь, что прав . Примерно мои мысли на момент принятия вызова...

372. A Yu Sheverdyaev, 04.02.2002 13:32
quest
Mne by Vashu vyderjku

373. Vladimir Rybinkin, 09.02.2002 21:17
quest
А что есть результат? Я же пока не жму, только смотрю, КАК...

Ну вот разве что:
Оригиналы файлов:
1 - 1 048 576 байт
2 - 1 048 576 байт

Самораспаковывающиеся архивы RAR:
1r.exe - 1 061 526 байт + 12950 байт (+1.235008%)
2r.exe - 1 061 530 байт + 12954 байт (+1.23539%)

Самораспаковывающиеся архивы БИТ:
1b.exe - 1 049 120 байт + 544 байт (+0.05188%)
2b.exe - 1 049 120 байт + 544 байт (+0.05188%)

374. quest, 09.02.2002 21:22
Vladimir Rybinkin
А что есть результат?

Результат это: 1.exe - 1 038 090 байт, или на крайний случай - 1 048 575 байт!

Пока и близко нету. А время тикает...

375. Vladimir Rybinkin, 09.02.2002 21:24
Времени-то хватит... Насчет размера не уверен

376. quest, 09.02.2002 21:27
Vladimir Rybinkin

Сдаваться не пора? А то тема совсем заглохла - народ жмёт недуром...

377. Vladimir Rybinkin, 09.02.2002 21:30
quest
Кому это?

378. AleUri, 09.02.2002 21:42
а вот не подеретесь

379. NA, 10.02.2002 00:14
Сразу хочу сказать, что с теорией темы я знаком исключительно по прочитанному в этой же теме . Может, это имеет свои плюсы - свежий глаз, так сказать. И вот такая соринка есть в глазу:

- часть участников исходит из утверждения, что сжатие может оказаться невозможным из-за "меньшего количества комбинаций содержимого меньших по размеру файлов" (я верно формулирую?). Т.е., поскольку вариантов содержимого для файла в 100 кб меньше, чем для файла в 50мб, то...

Но, блин! Ведь вы забываете о том, что любой паре "большой файл - маленький файл" может быть сопоставлено БОЛЕЕ ОДНОГО алгоритма преобразования! Теоретически, ничто не мешает архиватору А при каких-то условиях создать из некоего файла результат, идентичный созданному архиватором В из другого файла. (заголовки архивов сюда не относятся - ибо они как раз невольно МАСКИРУЮТ выше указанный отрадный факт).
Нет никакой ложки, в общем (©кино).

Вот. Ногами не бейте - это просто заметки на полях, причем неприкрыто дилетантские.

380. dogada, 10.02.2002 01:30
Предел сжатия есть

Есть потому, что "не существует архиватора который может сжать любые данные".

У меня не хватило мужества просмотреть все 16 страниц дисскуси, может кто-то на это утверждение уже ссылался, но если будут желащие могу привести доказательство того, что не существует универсального архиватора.

Хотя тема эта очень увлекательная. Сам убил на нее две недели личного времени и до сих пор иногда возвращаюсь к ней Собственно, максимум который мне удалось достичь, это сжатие около 30% zip-архивов на 5-7% в среднем. Но работы уже не над универсальным архиватором, а хотя бы над хорошо сжимающем достаточно случайные последовательности (под которыми я понимаю zip-, gzip- и bzip-потоки) продолжаются

381. Vladimir Rybinkin, 10.02.2002 10:42
NA
С теорией я знаком примерно так же . На днях, правда, познакомился немного подробнее. Оказалось, что алгоритм Хаффмена я знал (точнее, то, чем я собирался жать, оказалось Хаффменом ). Ну и RLE, конечно (ИМХО, совершенно бесполезный алгоритм). LZW... Черт его знает - в принципе, все понятно, но я его как-то не чувствую. Мое первое впечатление от теории - там пока просто непаханое поле. Это, кстати, вполне логично - проблема сжатия данных никогда еще серьезно не стояла. Да и не стоит. А возможности явно чувствуются. Например, "мой" Хаффмен несколько отличается от классического (по крайней мере, от того, что про него пишут). Надеюсь, в лучшую сторону . Кроме того, есть, как минимум, еще один алгоритм...

Я отношусь к той части участников, которая считает, что бОльший файл жать легче, чем меньший. Именно из-за большего количества вариантов.

dogada

цитата:
Предел сжатия есть
Есть. Один бит при всем желании не сжать. А вот терабайт, думаю, жмется всегда. И плевать, какие у него там данные.

Я, кстати, провел любопытный эксперимент. Взял ту самую крутую последовательность, скопировал ее... 32 раза, что ли. И скормил архиваторам. ZIP и ARJ сдались сразу, а RAR минут 15 чего-то кумекал, прикидывал... С тем же результатом .

382. IronPeter, 10.02.2002 10:59
dogada

По самым скромным прикидкам, доказательство повторялось порядка двух десятков раз.
Практически на каждой странице. А на некоторых по два раза.

NA

По самым скромным прикидкам, ваше возражение приводилось порядка десяти раз. И столько же раз повторялось его опровержение.

Как-то дискуссия зациклилась...

383. dogada, 10.02.2002 15:36
Vladimir Rybinkin:
А вот терабайт, думаю, жмется всегда. И плевать, какие у него там данные.

Нет, батенька, и терабайт, и два терабайта ВСЕГДА не жмутся. Я бы привел доказательство того, что и три терабайта ВСЕГДА не жмутся, но не хочу быть 21-м, кто приводит это доказательство в этом форуме (по словам IronPeter).

Добавление от 10-02-2002 15:36:

IronPeter:
Как-то дискуссия зациклилась...
Но ответ на вопрос "Есть ли пределы сжатия данных?" ведь найден. А дальше уже возможно лишь обсуждение, какой агоритм сжимает лучше какие данные.

384. Vladimir Rybinkin, 10.02.2002 16:40
dogada
цитата:
Нет, батенька, и терабайт, и два терабайта ВСЕГДА не жмутся. Я бы привел доказательство того, что и три терабайта ВСЕГДА не жмутся, но не хочу быть 21-м, кто приводит это доказательство в этом форуме (по словам IronPeter).
Ну и КОГДА ЖЕ они не жмутся?

Я не поленился, пробежался по ветке. Мож, конечно, чего пропустил - напомните, если что. Итак:

Кстати, формального доказательства о несжимаемости рандомального потока не существует (c) Asclepius
Раз!

Вот скажем, алгоритм сжимает некоторые битовые строки длины 1024 до длины 512. Спрашивается, какая вероятность, что он сожмет данную строку длины 1024 до длины 512. Ответ. Меньше 2^{-512} . Два в минус пятисотой степени. 150 нулей после запятой... Вот доказательство того, что случайные данные несжимаемы. Относительно любого алгоритма сжатия!!! (c) IronPeter
Два! Это доказательство??? Иллюстрация, не более.

Положим, что таковой есть, сжимающий строку в М бит в строку длиной не более М-1 бит. Но всех строк длиной М-1 меньше, чем строк длиной М (доказывается суммированием геометрической прогрессии). Следовательно, существует образ, у которого не менее двух прообразов, то есть такой сжатый сигнал, по которому исходный не восстанавливается (c) Евгений Машеров
Три! Пожалуй, самое серьезное. Но и я приводил возражение: существует (теоретически) бесконечное множество последовательностей, которые можно вывести из одной, каждая из которых будет больше оной.

Ну и последний парадокс, доказывающий невозможность сжатия: Пусть у нас есть алгоритм, уменьшающий любые входные данные >1 бита минимум на 1 бит. Тогда если мы применим его рекурсивно N раз (по размеру входного потока), то на выходе мы получим 1 бит (c) Harkonnen
Четыре! Простое возражение. Предел существует, и он определяется длиной последвательности. Все, что больше "критической массы" - сжимается!

любая реализация функции максимальной сложности, представленная в двоичном виде имеет размер не меньше 2^n бит (c) quest
Пять! Ну, это мы еще посмотрим - насколько я понимаю, именно ЕЕ мне и предстоит ужать. !

цитата:
Но ответ на вопрос "Есть ли пределы сжатия данных?" ведь найден.
И где он? Озвучить можно? И доказательство в 21-й раз послушать не мешает - тупой я...

385. AleUri, 10.02.2002 18:51
Vladimir Rybinkin подсоблю немного, может пригодиться
Pascal - архиваторы
http://src.fitkursk.ru/browse.asp?id=13
C/C++ - архиваторы
http://src.fitkursk.ru/browse.asp?id=24

386. Vladimir Rybinkin, 10.02.2002 18:58
AleUri
И чего? Жмут, что ли? Или это тексты? Тогда - на фиг, программить я и сам малек умею .

Вроде не тексты... И что с ними делать?

387. AleUri, 10.02.2002 19:01
идеи воровать
не зря же народ работал раньше

388. Vladimir Rybinkin, 10.02.2002 19:07
AleUri
1. Я играю честно
2. А хрен ли ж народ ниче не сделал? Сделал бы - и спор такой не возник...

389. AleUri, 10.02.2002 19:25
как ничего не сделал ??
Просто в большинстве алгоритмов как один из главных критериев используется разумное время паковки\распаковки. Для тебя же это не критично. Пусть хоть неделю мучается.
Полагаю, что что кое-где этого можно достичь просто подгонкой коэффициентом, вообще говоря

390. Vladimir Rybinkin, 10.02.2002 19:38
AleUri
Да знаю я, чего делать .

Вариантов и так СТОЛЬКО, что...

391. AleUri, 10.02.2002 19:49
ну тогда извиняй, за то что отвлек от течения творческой мысли

392. Vladimir Rybinkin, 10.02.2002 19:51
AleUri
Да ради Бога! Мыслей-то давно уже нет. Комп вон чего-то считает, а я Инетом балуюсь .

393. AleUri, 10.02.2002 19:59
так я не понял? уже все мысли реализовал и ждешь результата счета или полагаешь, что для реализации вариантов мыслить не надо?

394. Vladimir Rybinkin, 10.02.2002 20:03
AleUri
В принципе - не надо. Я же уже писал: если И ЭТО не сработает - сдамся. И что алгоритм достаточно легко программируется.

Там еще будет творческая работа (в случае удачи). Денька на 3-4.

395. AleUri, 10.02.2002 20:12
Vladimir Rybinkin - Там еще будет творческая работа - разместить распаковщик в те самые крохи, которые удастся сэкономить?

396. Vladimir Rybinkin, 10.02.2002 20:24
Угу.

397. IronPeter, 10.02.2002 20:52
Vladimir Rybinkin

Доказательством является простое соображение, что в 2^{512} клеток нельзя посадить
2^{1024} кроликов так, чтобы в каждой клетке сидело не более чем по одному кролику.
Если мы рассадили их в клетки, то останется еще по крайней мере 2^{1024}-2^{512} свободных кроликов. Вероятность того, что данный кролик сидит в клетке, равна приблизительно 2^{-512}.

Этот принцип (Дирихле) явно или не явно указывался в этой ветке порядка 20 раз.

398. Vladimir Rybinkin, 10.02.2002 20:56
IronPeter
Не знаю, мож, насчет кроликов это и верно. А насчет сжатия - пихай сколько хошь кроликов в любую клетку - и все дела!

399. dogada, 10.02.2002 21:14
Vladimir Rybinkin
Но ответ на вопрос "Есть ли пределы сжатия данных?" ведь найден.
И где он? Озвучить можно? И доказательство в 21-й раз послушать не мешает

Ответ на вопрос: предел сжатия существует.

Доказательство от противного.

Предположим, что все последовательности бит длиной N (где N может быть очень большим, или в Вашей терминологии - преодалевшим "критическую массу") можно сжать до последовательностей длинной N-k, где k=1,2,....N-1. Тогда будут существовать как минимум (а в действительности их будет намного больше) одна сжатая последовательность, которой соотвествуют две различные несжатые. Следовательно, мы не сможем восстановить первичные данные из сжатых (и это, кстати, не имеет совершенно никакого отношения к размеру архиватора, то есть даже если он будет феноменально большим, это не поможет). Следоваетельно, эта трансформация необратимая, и хотя она будет сжимать все, но не будет все расжимать, поэтому точнее будет говорить, что "существует предел обратимого сжатия".
Как определить конкретную величину "предела сжатия" для любого алфавита с заданными вероятностями появления символов, я думаю Вы знаете

Это тоже самое, о чем писали Евгений Машеров и guest, которых Вы цитировали выше.

Там еще будет творческая работа (в случае удачи). Денька на 3-4.
По-доброму завидую Вашему оптимизму, но творческой работы не будет. Будет еще одна "последняя попытка" немного изменить алгоритм сжатия. И к этому вопросу вы будете периодически возвращаться и в будущем, как и всякий увлеченный изобретатель вечного двигателя.

Кстати для математиков-романтиков (к которым, в определенной мере, я и себя причисляю). Есть очень важный класс задач, для которых по крайней мере существует надежда, что они решаемы (в отличие от универсального сжатия). Собственно, вопрос в том, существуют ли полиномиальные алгоритмы (или более широко - показывающие лучшую производительность, чем полный перебор) для т.н. NP-задач. Это и задача коммивояжера, и даже алгоритм игры в знакомый всем "сапер", и еще целая куча других. Причем, по-моему, задача коммивояжера и алгоритм игры в сапера относятся к классу NP-полных задач, то есть при решении одной - решаются все остальные.

400. Vladimir Rybinkin, 10.02.2002 21:24
dogada
цитата:
Предположим...
Следовательно, мы не сможем восстановить первичные данные из сжатых
Ну какое, на фиг, "следовательно"! Я же писал, что нет .
цитата:
творческой работы не будет
Я, конечно, псих, но не настолько же... МОЖЕТ БЫТЬ, и не будет .
цитата:
Будет еще одна "последняя попытка"
А вот этого точно не будет. И возвратов тоже.
цитата:
вопрос в том, существуют ли полиномиальные алгоритмы (или более широко - показывающие лучшую производительность, чем полный перебор) для т.н. NP-задач.
Ну, опять красная тряпка . Ну сколько можно говорить - я специалист как раз по решению NP-полных задач.

401. AleUri, 10.02.2002 21:25
Блин, народ, вы запарили уже. Вопрос не том Существует ли Предел сжатия или нет.

Вопрос в том, что Vladimir Rybinkin сомневается в том что quest сумел сгенировать последовательность, кот. он не сумеет сжать более чем на 1%.
И только, остальное все пустое сотрясание воздуха

402. dogada, 10.02.2002 23:35
Вопрос в том, что Vladimir Rybinkin сомневается в том что quest сумел сгенировать последовательность, кот. он не сумеет сжать более чем на 1%.

Виноват. Так тогда Владимира Рубинкина как-то даже неспортивно от решения такой важной задачи guest'a отвлекать. Помню, я в школе с одноклассниками, не очень сильными в математике, играл в азартные игры почерпнутые из книги Я. Перельмана "Занимательная математика". Первый месяц им казалось, что ставки (для них) очень выгодные, а уже во втором месяце со мной играть никто не хотел - все проиграли.

Как сейчас помню главный хит. Ставки 1 к 10. Соеденить в течение 3 дней все вершины заданного графа, чтобы путь проходил не больше чем один раз, через каждую вершину. Это можно было сделать только для графов с числом вершин. удовлетворяющих определенному условию. Но его кроме меня никто незнал, потому что не читал "Занимательной математики". Здесь, судя по всему, ситуация похожая.

403. Kroz, 11.02.2002 08:51
Пусть у нас есть алгоритм, уменьшающий любые входные данные >1 бита минимум на 1 бит. Тогда если мы применим его рекурсивно N раз (по размеру входного потока), то на выходе мы получим 1 бит (c) Harkonnen
Мысля интересная. А есть ли алгоритм, который бы уменьшал любую последовательность на как минимум 1 бита? Мне кажется есть. Смотрите:
Пусть существует алгоритм упаковки 1, для которого все же есть несжимаемая последовательность 1, которую он ну никак не может сжать. Ну так применим для этой последовательности алгоритм 2, для которого эта последовательность будет сжимаема.
В качестве алгоритма1 и алгоритма2 необязательно брать абсолютно разные алгоритмы. Например, применим алгоритм с предсказанием с различными "версиями" предсказания.

404. Vladimir Rybinkin, 11.02.2002 11:10
AleUri
цитата:
Вопрос не том Существует ли Предел сжатия или нет
Сейчас, мож, и не о том . Однако, смотрим название темы: Есть ли пределы сжатия данных?

dogada
Да уже все, я сделал, что мог, и пусть кто может, сделает лучше

цитата:
Здесь, судя по всему, ситуация похожая
Перельмана я тоже читал. Только и выигрывать удавалось в такие игры не менее двух раз: альфа-бета на три порядка и скорость обработки графов на два (как минимум). Ну, есть еще Штейнер (http://www.2bit.ru/tg.htm) - там тоже сколько-то порядков. А здесь, похоже, самый крупный куш лежит (судя по тому, чего наговорили насчет вероятности ).

Kroz
А ну-ка, применим сие рассуждение для массива из двух бит!

405. Витька, 11.02.2002 13:03
Vladimir Rybinkin
Я, кстати, провел любопытный эксперимент. Взял ту самую крутую последовательность, скопировал ее... 32 раза, что ли. И скормил архиваторам. ZIP и ARJ сдались сразу, а RAR минут 15 чего-то кумекал, прикидывал... С тем же результатом

Хороший тест, но не всё так плохо. Я как-то состряпал bat файл, который используя 84 комбинации версий и параметров для архиваторов 7za, acb, ACE32, arc, arj, BSA, BSArc, ha, hap3, HYPER, ICE, jar32, lha, LIMIT, pak, PKPAK, PKZIP, PKZIP25, rar, rar32, rk, SQZ, ZOO (что попалось под руку) создаёт 84 архива. С Вашей задачей справились четверо. Вот результат для двойного копирования:

код:

1 2097152
7z_PPMd.7z 1999820
acb.acb 1162594
rk_.rk 1071496
7z_LZMA.7z 1063214
jar32m4.j 1055259


Для 32-х кратного лучший:
код:

1 33554432
jar32m4.j 1086901


406. @Matrix, 11.02.2002 14:45
Vladimir Rybinkin
Попробую я доказать, что ли...

Итак, возьмем все возможные последовательности длинны N. Таковых будет ровно 2^N. Согласны?

Далее, предположим, что у нас существует алгоритм, сжимающий ЛЮБУЮ из этих последовательностей. И разжимающий, естественно Чтобы разжатие было однозначным, каждой сжатой последовательности (длины <N) должна однозначно соответствовать исходная последовательность (длины N). Все пока правильно?

Далее, посчитаем суммарное число всех последовательностей длины <N. Легко видеть, что их будет 2^N-1 + 2^N-2 + ... + 2. Эта сумма равна 2*(2^(N-1) - 1) = 2^N - 2. Логично?

Идем дальше. Каждой из этих последовательностей (длины <N) соответствует одна и только одна последовательность длины N. Таким образом, разархивируя эти последовательности, мы получим в самом лучшем случае 2^N - 2 разных последовательности длины N. А всего их у нас ровно на 2 больше! Значит, существуют как миинмум какие-то 2 последовательности длины N, которые мы не получим ни из одной последовательности длины <N. ЧТД

Есть аргументированное опровержение? Или только "Не верю"?

407. Кудрявцев Леонид, 11.02.2002 15:12
Это доказывает, что нет универсального алгоритма, который сжимает ЛЮБУЮ последовательность. То-есть, если ARJ хорошо архивирует тексты, но уже на сжатых zip'ах он приведет к увелечению файла.
Но, Rybinkin'у нужно создать алгоритм который сжимает ОДНУ, заранее заданную последовательность. А все остальные может увеличивать сколько хочет . Правда, для этого было еще одно ограничение, аглоритм не должен быть длиннее съекономленного места. Rybinkin уверяет - что такой алгоритм есть.
IMHO второе опровергнуть сложнее.

408. White Eagle, 11.02.2002 15:13
Витька
Ну и в чем смысл этого тестирования?
По моему доказывает только то, что один из архиваторов при поиске повторяющихся последовательностей не поленился перебрать мегабайтные. Ну круто конечно

409. Vladimir Rybinkin, 11.02.2002 15:15
Витька
Здорово! Ай да jar, ай да сукин сын!

@Matrix
1. Согласен.
2. Неправильно. Из одной последовательности длины <N теоретически можно восстановить сколько угодно (бесконечное множество) последовательностей длины N (выше я рассказывал, почему). Таким образом, пакуем "тыщу" последовательностей длины N в одну длины <N и разархивируем либо с параметром (номер нужной), либо оптом всю тыщу.

Дальше не идем .

410. White Eagle, 11.02.2002 15:29
Vladimir Rybinkin
Таким образом, пакуем "тыщу" последовательностей длины N в одну длины <N и разархивируем либо с параметром (номер нужной)
А 10 бит на параметр для "тыщи" из воздуха возьмём?

либо оптом всю тыщу
А вся то она нам на кой болт?

411. @Matrix, 11.02.2002 15:34
Кудрявцев Леонид
Давайте я вам Rybinkin'а процитирую, что ли...
А вот терабайт, думаю, жмется всегда. И плевать, какие у него там данные.

И еще (про ответ на заглавный вопрос темы):
И где он? Озвучить можно? И доказательство в 21-й раз послушать не мешает - тупой я...

Вот я и привожу это доказательство еще раз... Раз послушать хочется

Добавление от 11-02-2002 15:38:

Vladimir Rybinkin
А откуда вы параметр возьмете? Это эквивалентно дополнительному байту информации... Али юзер должен будет перебирать тыщу параметров?
Кроме того, если "Из одной последовательности длины <N теоретически можно восстановить сколько угодно (бесконечное множество) последовательностей длины N", тогда нарушается принцип однозначного соответствия между сжатой и несжатой информацией, то есть Ваш архиватор просто не будет иметь разархиватора!!! Или будет генерить бесконечное множество возможных вариантов того, что могло быть до сжатия... Откуда ему знать, когда остановиться?

Добавление от 11-02-2002 15:41:

White Eagle
А вся то она нам на кой болт?
Ну как это на кой? Неужто мы не знаем, что архивировали?

Предлагаю алгоритм универсального архиватора! Архив состоит из одного числа -- длины исходного файла. А разархиватор генерит нам "оптом" ((с) Vladimir Rybinkin) все возможные файлы такой длины! Круто?

412. quest, 11.02.2002 15:42
Vladimir Rybinkin
Витька

Вы, милостивые государи, не так копировали!
Надо было: 1-й битик из 1-й копии, 1-й битик из второй, ... , 1-й битик из 32-й, 2-й битик из 1-й, 2-й битик из второй, ... , 2-й битик из 32-й, ... и т.д.

Тады банальный WinZip не задумываясь жмет:

код:

1x32 33554432
1x32.zip 1652557


PS. Вот только понять не могу: а на кой хрен этот замечательно любопытный эксперимент понадобился?

413. Vladimir Rybinkin, 11.02.2002 15:48
White Eagle
цитата:
А 10 бит на параметр для "тыщи" из воздуха возьмём?
Не, юзер скажет, чего ему надо .
цитата:
А вся то она нам на кой болт?
Такого вопроса не было. Это же преподносится как парадокс, чего-то доказывающий. А я отвечаю: "Ну и что?"

P.S. Это не алгоритм, это всего лишь идея.

@Matrix
Никакой принцип не нарушается. Просто в одной сжатой лежит несколько несжатых, которые достаются разными способами.

цитата:
Откуда ему знать, когда остановиться?
Ну, предположим, первым идет счетчик, СКОЛЬКО их там понапихано .

414. @Matrix, 11.02.2002 16:38
Vladimir Rybinkin
И что? Вы все же утверждаете, что существует алгоритм, которому на вход подается информация суммарной длины <N байт (не важно, в файле она или частично в файле, частично в командной строке), а он из нее извлекает ОДНУ И ТОЛЬКО ОДНУ последовательность длины N, причем для любой последовательности длины N существует кодирующая ее последовательность длины <N? Тогда просмотрите еще раз мое доказательство...

Если же он извлекает не одну последовательность, тогда это называется сжатием с потерей данных и не имеет смысла...

415. Vladimir Rybinkin, 11.02.2002 16:47
@Matrix
цитата:
Если же он извлекает не одну последовательность, тогда это называется сжатием с потерей данных
???!!! Даже если все они в точности соответствуют исходной тыще? Что потеряно-то?

И еще. Все это я говорю исключительно потому, что мне преподносят утверждение: сжатых последовательностей должно быть в точности столько же, сколько и несжатых (2^N). Я говорю: НИ ФИГА! Может быть ВООБЩЕ ОДНА! Только и всего .

416. Vuk, 11.02.2002 17:03
@Matrix
Да не существует такого универсального алгоритма! Это уже доказано на сто рядов. И Vladimir Rybinkin есс-но не пытается его создать. Другое дело что есть шанс отыскать такую закономерность в каждой конкретной последовательности (или некоторой ее подпоследовательности), для которой можно построить алгоритм генерации этой последовательности и при этом сама запись алгоритма в виде тех же данных будет занимать [существенно] меньший размер, чем исходные данные. Вот и все.
А qwest в свою очередь попытался сделать такую последовательность, алгоритма генерации которой ну не вжизнь не отыскать . Более того, qwest утверждает, что такого алгоритма и вовсе нет

qwest
Я правильно трактую?

417. quest, 11.02.2002 17:14
Vuk
Я правильно трактую?

Я хоть и не qwest, но отвечу

попытался сделать такую последовательность, алгоритма генерации которой ну не вжизнь не отыскать

Не-а! Я же её сгенерировал, следовательно алгоритм генерации в природе существует и есть отличная от нуля вероятность его отыскать. Но, Vladimir Rybinkin его не отыщет (точнее - это ему не поможет), ибо сгенерированная последовательность несжимаема Vladimirом Rybinkinым!

Более того, qwest утверждает, что такого алгоритма и вовсе нет

Не знаю, как qwest, а я такого не утверждал...

418. AleUri, 11.02.2002 21:01
ставить файлы в 1 мег последовательно, так и вообще полный бред
у последнего рара размер словаря по умолчанию 4 мега

Добавление от 11-02-2002 21:04:

Vladimir Rybinkin - Сейчас, мож, и не о том . Однако, смотрим название темы: Есть ли пределы сжатия данных? - Этот вопрос действительно был актуален, около месяца назад
Жизнь течет, все изменяется

419. @Matrix, 11.02.2002 21:16
Vuk
ОК. Алгоритм где хранится? В разархиваторе? Или наш архив самораспаковывающийся, то есть в нем и алгоритм? Если самораспаковывающийся, то см. мое док-во еще раз (hint -- посчитайте max кол-во алгоритмов, запись которых занимает <N байт). Если нет, то любая последовательность ужимается в 1 байт, а вся инфа -- в экстракторе. И для каждой последовательности свой экстрактор...

Vladimir Rybinkin
???!!! Даже если все они в точности соответствуют исходной тыще? Что потеряно-то?

При чем тут тыща? Мы сжимали ОДНУ. А разархиватор нам дает тыщу? Круто, конечно, но бесполезно. Смысл потерян Я же уже писал про универсальный алгоритм сжатия... Повторюсь -- архив представляет собой длину исходного файла. А алгоритм генерит все возможные файлы данной длины. Тоже ведь ничего не потеряно, правда? Ведь среди них обязательно будет исходный файл...

Добавление от 11-02-2002 21:23:

2 All
Я вижу, спорить бесполезно... Vladimir Rybinkin не верит в математику (или просто не понимает ее), что уж тут сделаешь... Я знаю, что она верна, ибо пока не видел опровержений, а доказательства были весьма логичны и убедительны

Засим религиозные споры заканчиваю. Сколько можно доказывать очевидные вещи? С верующими (в существование универсального алгоритма, в вечный двигатель и т.д.) спорить бесполезно

420. Vladimir Rybinkin, 11.02.2002 21:32
Хм. А вот ЭТО (http://www.2bit.ru/betold.htm) уже интересно! Похоже, шутки кончились...

У меня еще не досчитан до конца этот метод, но есть еще два сильнодействующих средства...

421. Alexzander, 12.02.2002 10:32
Давненько меня здесь не было...

Меня-то еще несколько страниц назад запинали (правда так толком ничего и не объяснили). Но Vladimir Rybinkin все еще держится.

Подождем результатов!

422. yuri-the-cloud, 12.02.2002 13:15
Vladimir Rybinkin Хм. А вот ЭТО уже интересно

Только ссылочки на картинки
http://www.2bit.ru/im\bet1o.gif

Должны быть с нормальными слэшами, а не вашими, досовскими
http://www.2bit.ru/im/bet1o.gif

423. Vuk, 12.02.2002 14:28
@Matrix
Вы, кажется, все равно не в ту сторону клоните. И дело здесь не в религии. Есть одна конкретная последовательность. И вот для нее есть некоторая вероятность найти алгоритм сжатия и записать вместе с данными. Никто и не спорит, что произвольная последовательнось (о которой Вы писали) в общем случае не сожмется.

quest
Я хоть и не qwest, но отвечу
Сорри Не со зла

424. Vladimir Rybinkin, 12.02.2002 14:33
yuri-the-cloud
Дурные привычки легко приобретаются, и трудно искореняются . Спасибо.

Vuk

цитата:
Никто и не спорит, что произвольная последовательнось (о которой Вы писали) в общем случае не сожмется.
Я тоже, в общем-то, не спорю. Только обсчитываю я первую последовательность, а результат применяю на обе. Спектры похожи, как однояйцевые близнецы...

425. quest, 12.02.2002 14:53
Vladimir Rybinkin
Спектры похожи, как однояйцевые близнецы...

Даю бесплатный совет, как увеличить число близнецов до трех (можно и боле):

1. Сгенерите случайную последовательность битов такой же длины (в первом приближении можно просто брать младший бит втроенного Random-а);

2. Примените свой результат к этой последовательности;

3. Вы будете удивлены видом спектра...

4. А если не будете, можете смело выкидывать сгенеренную последовательность, как недостаточно случайную.

426. Евгений Машеров, 12.02.2002 15:23
Vladimir Rybinkin
У меня еще не досчитан до конца этот метод, но есть еще два сильнодействующих средства

Пурген и люминал? И применять совместно?


quest

Когда банкет на все выигранные 10$?

427. Vladimir Rybinkin, 12.02.2002 15:57
quest
цитата:
Даю бесплатный совет, как увеличить число близнецов до трех (можно и боле):
Да хватит мне близнецов и так ...
цитата:
Вы будете удивлены видом спектра...
Нет, не удивлен, все то же самое. (http://www.2bit.ru/BET/test.gif) . Выбрасывать как недостаточно случайную или просто так?

Евгений Машеров

цитата:
Пурген и люминал? И применять совместно?
Нет. Применять пока раздельно - там посмотрим.
цитата:
Когда банкет на все выигранные 10$?
Размечтались ! Не первая, так вторая, глядишь, ужмется .

428. quest, 12.02.2002 16:06
Vladimir Rybinkin
Выбрасывать как недостаточно случайную или просто так?

Методу нужно выбрасывать!
А спектр преобразования можно было и не считать - легко получается аналитически...

Не первая, так вторая, глядишь, ужмется

Фи! Это не спортивно.

429. Vladimir Rybinkin, 12.02.2002 16:08
quest
Мне аналитически не надо, мне надо, чтобы ужалось.

А я их на банкет и отдам

430. quest, 12.02.2002 16:14
quest
Мне аналитически не надо, мне надо, чтобы ужалось.

Дык, аналитически-то оно считается из предположения, что исходная последовательность именно случайная! А ужимается только отклонения от случайности. Ваши же тесты просто подтверждают гипотезу о случайности последовательности. То бишь: ни хрена полезного для сжатия не дают!

PS. Когда банкет будет?

431. Vladimir Rybinkin, 12.02.2002 17:47
quest
цитата:
Дык, аналитически-то оно считается из предположения, что исходная последовательность именно случайная! А ужимается только отклонения от случайности
Опять теория пошла? Повторяю: я - практик!
цитата:
То бишь: ни хрена полезного для сжатия не дают!
Не дают, так не дают... У меня другое мнение, но это неважно: "практика - критерий истины"
04194303 1 04078484 1
04194305 0 04310124 0
цитата:
Когда банкет будет?
Ну уж никак не раньше марта. Надо же и с суммой определиться

Добавление от 13-02-2002 10:31:

Витька
У меня посьба: еще разок скопировать ту последовательность раз 8, но первую копию оставить как есть, у второй предварительно отрезать первый байт, у третьей - два первых и т.д. И снова прогнать через колоду архиваторов.

432. Alexzander, 14.02.2002 07:20
Vladimir Rybinkin
Ну что, какие есть промежуточные результаты? Что-то интерес к проблеме угас, или спорщики пришли к договоренности (во что я не верю)?

433. CrazyElk, 14.02.2002 11:02
Vladimir Rybinkin написано 11-02-2002 15:48
Не, юзер скажет, чего ему надо .

Тогда поправочка - любая последовательность жмется ДО 0 Байт.
из командной строки юзер скажет, чего ему надо..

(И ныне и присно во веки веков АМИНЬ)

434. Витька, 14.02.2002 12:53
Vladimir Rybinkin
У меня посьба:...

Бога ради.
Написав програмку:

код:
 {$APPTYPE CONSOLE}
program cop8;
type t=array[0..0] of byte; var f:file; n,i:integer; p:^t;
BEGIN
assign(f,'1'); reset(f,1); n:=FileSize(f); getmem(p,n); blockread(f,p^,n); close(f);
assign(f,'2'); rewrite(f,1); for i:=0 to 7 do {$R-} blockwrite(f,p^[i],n-i); close(f)
END.


и использовав готовый батник получаем:
код:
 jar32m3.j   8425702
2 8388580
7z_PPMd.7z 7533370
acb.acb 4385238
rk_.rk 1071888
7z_LZMA.7z 1064141
jar32m4.j 1062180
1 1048576


435. White Eagle, 14.02.2002 13:09
Vladimir Rybinkin
У меня посьба: еще разок скопировать ту последовательность раз 8, но первую копию оставить как есть, у второй предварительно отрезать первый байт, у третьей - два первых и т.д. И снова прогнать через колоду архиваторов.

О, еще один крутой тест
А то что в нем одинаковая последовательность из 1М минус 7 байт повторяется 8 раз - не смущает?
алгоритму LZ ну совсем по колено, что там первых 1-7 байт нету

436. Vladimir Rybinkin, 14.02.2002 16:19
Витька
Угу, спасибо.

White Eagle
Нет, не смущает. LZ здесь ни при чем.

437. Tsykunov, 15.02.2002 07:19

@Matrix & dogada
Позволю себе разъяснить Вам некоторые вещи, в свете которых Ваши посты с доказательствами представляются мне абсолютно бессмысленными. Тема "Есть ли пределы сжатия данных" - просто рекламный слоган для привлечения участников. Такого вопроса не стоит. Вопрос в том, где находятся эти пределы. В этом легко убедиться, прочитав мои сообщения. Я нигде не говорил, что пределов нет, я предлагал поискать их, причем не там, где они находятся в некоторых умных теориях. И хватит кидаться "универсальными алгоритмами", "любыми" последовательностями - все это не имеет никакого отношения к реальному сжатию. Вы и многие другие участники (всего три-четыре человека в чем-то соглашались со мной) строите свои заборы не поперек, а вдоль дороги. И утверждаете, что нашли тупик. А мне туда не нужно.
dogada, что значит все последовательности бит длиной N ?
@Matrix , что значит алгоритм, сжимающий ЛЮБУЮ из этих последовательностей?
Пусть, я написал алгоритм для сжатия английского литературного текста. Ваши доказательства говорят, что он не может работать, так как нельзя сжать им "все/любые" последовательности от "аааааааааа....." до "zzzzzzzzz.....". Ну, явная бессмыслица. Какая надобность в "любых" последовательностях? Где Вы видели их?
Попробуйте принять еще одно суждение, которое в неявном виде уже звучало у меня: Каждый реальный архиватор создается для сжатия ОДНОЙ битовой последовательности. Эта последовательность весьма велика - не тера- и даже не петабайты. Однако, она конечна. В хелпе архиватора можно узнать максимальный размер входного файла, а характер его алгоритма определяет свойства файлов, для которых возможно сжатие. Пользователь реально использует архиватор для сжатия лишь части этой строки. Поэтому все рассуждения о невозможности сжатия ЛЮБЫХ строк одним "универсальным" алгоритмом бесполезны. Докажите еще, что вода мокрая...
Продолжая аналогию с дорогой, скажу, что пределов нет, там где стоит вдоль дороги забор энтропии или какой-нибудь сложности, а движение вперед ограничивается наличием алгоритмического бензина в баке и дорожным полотном новых видов данных, появляющимся перед нами. (Давно ли появилась задача сжатия mpeg? А после того, как получилось умять фильм до размеров одного CD. Раньше не было таких типов данных). Попробуйте прочитать все мои сообщения и, если Вам охота поспорить, опровергните их. Только не опровергайте наличие бузины в огороде бесспорным существованием киевского дядьки, как и получалось, в основном. Аргументированная дискуссия завязалась с Евгением Машеровым, но потом скатилась до кухонной перебранки по поводу малозначительного алгоритма (хотя оппоненты и признавали существование других решений той же задачи).
А по поводу "веры" скажу, что Вы верите в некую расплывчатую "несжимаемость". Почему расплывчатую? Да назовите мне хоть одно ЧИСЛО, характеризующее ее. На всех 18 страницах только "большая" сложность, "высокая" случайность. Можно назвать число, но только если привязать его вычисление к конкретному алгоритму, который привязан к конкретному типу данных (иначе к одной строке). То есть нельзя будет распространять его куда-либо еще и отрицать им существование других алгоритмов сжатия.
dogada, не повторяйте ошибок других участников, не говорите, что нельзя сжать ВСЕ строки длиной N - они легко сжимаются. Если имеете в виду КАЖДУЮ строку длиной N - так и говорите и стройте свои доказательства на этой основе.
Кстати, не могли бы Вы рассказать, какими алгоритмами Вам удалось достичь 5-7% сжатия zip-ов? Я занимаюсь вопросом больше Вашего, но таких замечательных результатов не достиг. Rar и некоторые другие иногда поджимают zip, но не более 1%. А 5-7% - круто!
IronPeter Удивительно, у Вас столько здравых мыслей, но эти Ваши кролики не лезут ни в какие ворота. Ну, есть принцип Дирихле. Ну, нельзя сжать одним алгоритмом каждую из строк длиной N. Что с того? Вы можете назвать задачу, где нужно использовать каждую из строк длиной N? Типа, как сжать mp3. То есть родить алгоритм, сжимающий каждую строку от 5 до 10Mb. Так? Более того, я приводил примеры, как принцип Дирихле можно обходить на реальных задачах. Он хоть и правильный в своих границах, но дырявый какой-то что ли...

438. Евгений Машеров, 15.02.2002 09:31
Tsykunov
Не совсем понял Вашего упрека в разжигании кухонной свары. Если укажете конкретно - готов извиниться.
По сути же вопроса скажу - пределы сжатия данных существуют, и совершенствование методов сжатия возможно лишь в связи с сужением объема сжимаемой информации (т.е. существенный прорыв в области архиваторов общего назначения представляется мне маловероятным - а вот создание специализированных архиваторов HTML-страниц, притом заточенных под русский/английский - возможно). Еще большего прорыва можно ожидать при сжатии с потерями - но для этого нужны исследования прежде всего в области физиологии восприятия (что сделано, скажем, в MP3).
Что до конкретно Вашего пари - то приглашения на банкет (с подачей минеральной воды под сухарики жду не от Вас

439. dogada, 15.02.2002 14:15
Tsykunov
что значит все последовательности бит длиной N ?
Это значит 2 в степени N последовательностей, каждая из которых длиной N бит.

Пусть, я написал алгоритм для сжатия английского литературного текста. Ваши доказательства говорят, что он не может работать, так как нельзя сжать им "все/любые" последовательности от "аааааааааа....." до "zzzzzzzzz.....". Ну, явная бессмыслица.

Как раз явная бессмыслица и извращение фактов Ваша цитата выше. Я и Matrix (позволю себе высказаться за него, раз уж Вы нас обоих в отсутствии здравого смысла обвиняете) писали о ВСЕХ (я) или ЛЮБОЙ ИЗ (Matrix) последовательностях длиной N бит. А Вы очень интересно переходите к кодированию английского текста. Не хватало еще, чтобы Вы привели алгоритм ужатия английского литературного текста , основаный на том, что любой символ можно закодировать не более чем 7 битами, а в текстовом файле каждый символ занимает минимум 1 байт. И победоносно заявили "мой алгоритм сжимает ЛЮБУЮ последовательсность символов английского языка не менее чем на 1/8"!

Каждый реальный архиватор создается для сжатия ОДНОЙ битовой последовательности.
Для zip-а первые 8 бит этой ОДНОЙ битовой последовательности можете назвать?

А по поводу "веры" скажу, что Вы верите в некую расплывчатую "несжимаемость". Почему расплывчатую? Да назовите мне хоть одно ЧИСЛО, характеризующее ее.
Ok. Но заранее предупреждаю, что объяснять почему для случайных и почти случайных потоков (каковым является содержимое архиваторов) нет другого выхода как использовать алфавитное кодирование, а не супер-пупер алгоритмы восстановления исходных данных, сменяющие друг друга при каждом столкновении с "забором энтропии", и почему любой набор этих супер-пупер алогритмов (не словарных) может быть сведен к алфавитному кодированию, имеющему аналогичную результативность, я не буду.
Итак, предел сжатия алфавита A {a1 .. an} с вероятностями появления символов P {p1..pn} равен сумме произведений длин кодов символов (l) на сответвующие вероятности появления этих символов в выходном потоке. Т.е. a1*l1 + a2*l2 + a3*l3 + ... an*ln. (Для полностью случайного потока байт все p будут равны 1/256 если за символы алфавита взять байты).
Беда в том, что даже если теорию назвать "некоторыми умными теориями" все рано длины кодов символов (l) ДОЛЖНЫ удовлетворять неравенству Макмиллана. На случай, если Вы вдруг о таком не слышали: 2^(-l1) + 2^(-l2) + ... + 2^(-ln) <= 1

dogada, не повторяйте ошибок других участников, не говорите, что нельзя сжать ВСЕ строки длиной N - они легко сжимаются.
Повторяю опять. ВСЕ строки длиной N это 2 в степени N строк. И я продолжаю повторять ошибки других участников, утверждая, что ВСЕ такие строки не ужимаются.

Кстати, не могли бы Вы рассказать, какими алгоритмами Вам удалось достичь 5-7% сжатия zip-ов?
Я писал лишь о том, что ужимал около трети zip-ов на 5-7%. Две другие трети росли на 0-4%. Алгоритм потоковый(блочный), безсловарный, подстановочный, работает на уровне бит, а не байт, очень быстрый и с минимальными требованиями к памяти.

440. IronPeter, 15.02.2002 20:49
Tsykunov

Так принцип Дирихле играет на полную катушку. Quest вывел специального кролика, совершенно случайного. В принципе каждый может вывести похожего кролика, взяв random. Так вот, этот кролик таков, что он совершенно лишен всякой индивидуальности.

Обычные кролики (текст, звук, видео) снабжены некоторой структурой, которая делает их описание простым (у меня есть знакомый хороший пианист, он говорит, что миди звук хороших сэмплов приближается к концертному роялю. Чуть чище, но очень близко). Грех такую музыку не сжать. А вот абсолютно случайного кролика... Не выйдет.

441. Vladimir Rybinkin, 17.02.2002 15:34
Tsykunov
цитата:
Вопрос в том, где находятся эти пределы
Ага, где? ИМХО, есть три интервала: первый - когда данные не сжимаются ни при каких обстоятельствах. Этот интервал лежит от нуля до трех бит. Второй - когда данные могут сжиматься, а могут и нет (зависит от данных). Третий - когда данные сжимаются при любых условиях. Вот о границе между вторым и третьим интервалом и спор: в бесконечности она али нет .
цитата:
я предлагал поискать их, причем не там, где они находятся в некоторых умных теориях
Опять же согласен. То, о чем здесь говорится и то, где я ковыряюсь, настолько далеко друг от друга, что даже если АБСОЛЮТНО ВСЕ доводы о невозможности сжатия правильные (а это, скажем так, вызывает некоторые сомнения), то и это не говорит о том, что данные сжать нельзя! Это похоже на задачу "сложить 4 треугольника из 6 спичек". Можно сколь угодно красиво и убедительно доказать, что это невозможно. Но задача-то решается...
цитата:
Какая надобность в "любых" последовательностях? Где Вы видели их?
Любых - мне лично неинтересно. А вот на несжимаемую последовательность, которых большинство (теория, кажись, утверждает имеено это) я бы с удовольствием посмотрел. Ну так где ХОТЬ ОДНА??? Куда зарылось это большинство? Покажись, представитель! Вот quest - выложил. Но даже он говорит, что это все же из меньшинства последовательность!
цитата:
Да назовите мне хоть одно ЧИСЛО, характеризующее ее
Ага, и мне интересно.
цитата:
я приводил примеры, как принцип Дирихле можно обходить на реальных задачах. Он хоть и правильный в своих границах, но дырявый какой-то что ли...
А на кой его обходить? Я его уж толком и не помню. Мне он, во всяком случае, не мешает .

Евгений Машеров

цитата:
существенный прорыв в области архиваторов общего назначения представляется мне маловероятным
Интересно, кто-нить не согласен?
цитата:
приглашения на банкет (с подачей минеральной воды под сухарики жду не от Вас
Даже если я сожму вторую последовательность и не сожму первую - я, конечно, проиграл. Посему вероятность приглашения ОТ МЕНЯ рассчитана выше .

dogada

цитата:
Это значит 2 в степени N последовательностей, каждая из которых длиной N бит
Дык 99.999999% - 100% их всех жмутся обычным Хаффменом .Кто до N-1 бит, кто до N-2, кто...
цитата:
Для zip-а первые 8 бит этой ОДНОЙ битовой последовательности можете назвать?
Если я правильно понял, Tsykunov говорил о сжатии одной НЕСЖИМАЕМОЙ битовой последовательности.
цитата:
объяснять почему для случайных и почти случайных потоков нет другого выхода как использовать алфавитное кодирование, а не супер-пупер алгоритмы восстановления исходных данных, сменяющие друг друга при каждом столкновении с "забором энтропии", и почему любой набор этих супер-пупер алогритмов (не словарных) может быть сведен к алфавитному кодированию, имеющему аналогичную результативность, я не буду.
Круто! Вот нет другого выхода, и все тут!
цитата:
Итак, предел сжатия алфавита A {a1 .. an} с вероятностями появления символов P {p1..pn} равен сумме произведений длин кодов символов (l) на сответвующие вероятности появления этих символов в выходном потоке. Т.е. a1*l1 + a2*l2 + a3*l3 + ... an*ln.
Ниче не понял - что за цифирь получается, и о чем она говорит? Вот пример:
0000000001011011
00001010110111
Последовательность элементарно жмется на два бита (12.5%). Словарем пренебрегаем, т.к. его в формуле нет (да и копейки). И чего говорит эта формула? Где предел? ЭТО ли он, или можно еще ужать?
цитата:
И я продолжаю повторять ошибки других участников, утверждая, что ВСЕ такие строки не ужимаются.
А я продолжаю занудливо вякать: пока что все как раз ужимаются. Где хоть одна из ТЕХ?

IronPeter

цитата:
этот кролик таков, что он совершенно лишен всякой индивидуальности
Ну дык и хорошо! Еще уши обрежем, шкуру снимем - совсем индивидуальность потеряет, станет простой и сжимаемый .

442. @Matrix, 18.02.2002 03:54
Tsykunov
Пусть, я написал алгоритм для сжатия английского литературного текста. Ваши доказательства говорят, что он не может работать, так как нельзя сжать им "все/любые" последовательности от "аааааааааа....." до "zzzzzzzzz.....".
Я никогда не утверждал, что нельзя придумать алгоритм, хорошо сжимающий английский литературный текст. Более того, я считаю, что практически любое ограничение, накладываемое на исходные данные, позволяет придумать очень эффективный алгоритм. И Ваш пример с MPEG -- лучшая тому иллюстрация. Мое же доказательство было чисто теоретическим и имело отношение в основном к святой уверенности одного господина в том, что хороший программист может придумать алгоритм сжатия, который будет сжимать любую последовательность, которую ему скормят. Вы будете оспаривать невозможность существования такого алгоритма?

Так что вопрос (и ответ) был чисто теоретический...

Vladimir Rybinkin
Так... Вы все с ног на голову ставите. Попробую свое утверждение переформулировать.

Итак, я вполне допускаю, что для КАЖДОЙ КОНКРЕТНОЙ последовательности существует алгоритм, эффективно сжимающий ИМЕННО ЕЕ. Может, это и не так, но этого я с уверенностью утверждать не могу -- думать лень Но в то же время я утверждаю, что не существует некого ЕДИНОГО алгоритма, который бы сжимал ЛЮБУЮ последовательность. Еще раз, я не утверждаю, что существуют В ПРИНЦИПЕ несжимаемые последовательности...

При этом замечу еще раз, что спор -- чисто академический, поэтому не будем касаться вопроса о том, где это могут встретиться абсолютно любые последовательности. Хотя пример привести могу -- про SETI слыхали? Массивы данных у них немеряные, сжатие бы не помешало...

Добавление от 18-02-2002 03:56:

Ну дык и хорошо! Еще уши обрежем, шкуру снимем - совсем индивидуальность потеряет, станет простой и сжимаемый

А это уже сжатие с потерей данных Вам бы понравился архиватор вордовых документов, который из них бы убирал "индивидуальность"?

443. Vladimir Rybinkin, 18.02.2002 11:53
@Matrix
цитата:
Мое же доказательство было чисто теоретическим и имело отношение в основном к святой уверенности одного господина в том, что хороший программист может придумать алгоритм сжатия, который будет сжимать любую последовательность, которую ему скормят.
Вы будете оспаривать невозможность существования такого алгоритма?
цитата:
Итак, я вполне допускаю, что для КАЖДОЙ КОНКРЕТНОЙ последовательности существует алгоритм, эффективно сжимающий ИМЕННО ЕЕ
Не вяжется . Моя задача - сжать именно КОНКРЕТНУЮ последовательность. Правда, результаты экспериментов приводят к мысли, что все-таки СУЩЕСТВУЕТ "алгоритм сжатия, который будет сжимать любую последовательность, которую ему скормят". Так что ЭТО (я утверждаю, что не существует некого ЕДИНОГО алгоритма, который бы сжимал ЛЮБУЮ последовательность.) под вопросом (для меня, для меня )
цитата:
А это уже сжатие с потерей данных
Нет, просто уши и шкуру отдельно сожмем.

444. quest, 18.02.2002 12:19
Поздравляю всех присутствующих с прошествием половины срока, отведенного Vladimirу Rybinkinу не доказательство недоказуемого!


@Matrix
я вполне допускаю, что для КАЖДОЙ КОНКРЕТНОЙ последовательности существует алгоритм, эффективно сжимающий ИМЕННО ЕЕ.

Зря допускаете. Принцип Дирихле не дозволяет сего.

Vladimir Rybinkin
ИМХО, есть три интервала: первый - когда данные не сжимаются ни при каких обстоятельствах. Этот интервал лежит от нуля до трех бит. Второй - когда данные могут сжиматься, а могут и нет (зависит от данных). Третий - когда данные сжимаются при любых условиях. Вот о границе между вторым и третьим интервалом и спор: в бесконечности она али нет

Не по тому параметру делите!
Предлагаю для размышления (если есть время, не занятое экспериментами по созданию вечного двигателя и трисекции угла ) тезис: для каждой длины (больше n) есть три интервала... (далее по тексту).

445. @Matrix, 18.02.2002 12:56
quest
Ну почему же? Замечу, что в моем доказательстве абсолютно не важно, какое количество и каких знаний содержится в деархиваторе, является ли он внешним или разговор о сэлф-экстракторе и т.д.

Если эти ограничения убрать, то есть рассматривать только размер "сжатого" файла, а на размер деархиватора забить (ну это же почти как параметр командной строки, чего его считать ), тогда ЛЮБУЮ последовательность я сожму в 1 бит Просто запихнув ее всю в деархиватор...

Добавление от 18-02-2002 12:59:

Поздравляю всех присутствующих с прошествием половины срока, отведенного Vladimirу Rybinkinу не доказательство недоказуемого!

Кстати, зра Вы так... Может, на наших глазах рождается новая математика... И в одном ряду они будут -- геометрия Лобачевского, математика Rybinkin'а...

Добавление от 18-02-2002 13:00:

Vladimir Rybinkin
Не вяжется
Все вяжется... Просто надо подумать немного...

Добавление от 18-02-2002 13:02:

Нет, просто уши и шкуру отдельно сожмем.
Хм... А то, что на хранение сжатых шкур и ушей место нужно -- на это мы дружно забили, да? Или есть веские основания предполагать, что этой величиной можно пренебречь?

446. Alexzander, 18.02.2002 13:06
@Matrix
Нет, просто если кролик настолько усредненный, что его не ужмешь, то шкура, сама по себе, может ужаться архиватором для шкур, тушка - архиватором для тушек - и т.д. Если разбить последователность на некие элементы и рассматривать их независимо, то они, возможно, сожмутся.

447. CrazyElk, 18.02.2002 13:13
к Tsykunov
к реальному сжатию

А не зазорно ли будет благродному дону привести опеределение, математическое и формальное, предметной области о которой он ведет речь т.е. что имеет отношение по его мнению к реальному сжатию. А потом обьяснить мне глупому в частностьи: Чем таки "нереальны" например последовательности исходных данных для расчета молекулярного обтекания при входе космического аппарата в верхнии слои атмосферы методом Монте-Карло. (Можно еще примеров их у нас есть. Или опять определения в стиле "реально то что имеет структуру и сжимается, а что не сжимается не реально" и как в анекдоте "ты у меня умная сама придумай")

P.S. это не наезд это просто сильно эмоциональное замечание что существование ПРЕДЕЛА СЖИМАЕМОСТИ ДАННЫХ и его величина зависит только от определения что такое ДАННЫЕ и что значит СЖАТИЕ. Если внимательно прочитать постинги то можно замететь что большинство (аргументирующих а не верующих) сходится на том что ДАННЫЕ это любая битовая/байтовая последовательность длинны не более N а СЖАТИЕ это представление этой последовательности алгоритмом ее формирования для PC битовое/байтовое представление которого на PC имеет длинну меньше N.
Если твое виденье отличается от этого Welcome его озвучить.
Иначе , к вопросу о дорогах, все равно что выйти в чистое ровное поле и требовать да или нет в ответ на вопрос: а можно ли через дороги в этом поле построить мост, при том что ни одной дороги в поле то и нет. Если хочется куда то ехать по полю, нужно хоть намекнуть куда ты хочеш.

448. @Matrix, 18.02.2002 14:24
Alexzander
Угу... Но только не забудьте, что придется тратить драгоценные байты на то, чтобы отделять слои друг от друга, а также чтобы указывать, каким именно алгоритмом сжата та или иная прослойка. А если алгоритмов очень много, то расходы могут быть весьма существенные. И потом, что будет делать ваш архиватор кроликов, если ему подсунуть на вход слона? Ужмется ли слон архиватором кроличьих шкурок?

З.Ы.: Господа! Читайте книжки! Книжки -- рулез!

Тогда, maybe, меньше будет необходимости доказывать очевидное...

449. Vladimir Rybinkin, 18.02.2002 14:57
quest
Спокуха!

P.S. Времени, естественно, нет (если кто-то полагает, что я занимаюсь только, или хотя бы в основном, сжатием - сильно ошибается), но на эксперименты оно уже не нужно. Алгоритм лег окончательно.

@Matrix

цитата:
И в одном ряду они будут -- геометрия Лобачевского, математика Rybinkin'а...
"Это - вряд ли!" (c). А если и будут, то уж никак не из-за какого-то там сжатия .
цитата:
Просто надо подумать немного...
"думать лень" (c)@Matrix
цитата:
Или есть веские основания предполагать, что этой величиной можно пренебречь?
Нет, есть веские основания предполагать, что отдельно уши жмутся лучше, и суммарное место уменьшается.

Alexzander
Ага.

@Matrix

цитата:
Господа! Читайте книжки! Книжки -- рулез!
Тогда, maybe, меньше будет необходимости доказывать очевидное...

Задача пионера науки всегда состояла в том, чтобы опровергать то, что было доказано. Пошевелите-ка мозгами, молодой человек!(c) д-р Маракот, А Конан Дойль.

450. @Matrix, 18.02.2002 18:44
Vladimir Rybinkin
"Это - вряд ли!" (c). А если и будут, то уж никак не из-за какого-то там сжатия
Именно из-за него! Ибо если Вы придумаете-таки УНИВЕРСАЛЬНЫЙ алгоритм сжатия, бОльшая часть современной математики рассыпется как катрочный домик...
"думать лень" (c)@Matrix
Для тех, кому думать лень, я специально все один раз очень четко расписал. И не только я
Нет, есть веские основания предполагать, что отдельно уши жмутся лучше, и суммарное место уменьшается.
ВЕСКИХ оснований нет и быть не может. Либо, как я уже говорил, мы имеем дело с совершенно новой математикой. И честь ее открытия принадлежит Вам! Равно как и Нобелевские премии на ближайшие лет 25-30
Задача пионера науки всегда состояла в том, чтобы опровергать то, что было доказано.
Только опровергать надо аргументированно... А фразы типа "а вот мне кажется, что если вот так и вот так, то будет вот так" опровержениями не являются. С Вашей стороны не прозвучало ни одного математически обоснованного опровержения, только Ваша святая уверенность в собственной правоте.

P.S.: А книжки Вы все-таки почитайте... Программист должен знать математику. По крайней мере, хороший программист.

451. White Eagle, 18.02.2002 18:53
@Matrix
Равно как и Нобелевские премии на ближайшие лет 25-30

Нобелевские премии за математику не дают

С Вашей стороны не прозвучало ни одного математически обоснованного опровержения, только Ваша святая уверенность в собственной правоте.

А разве Vladimir Rybinkin это кому-то обещал?
Вот сожмет он последовательность - это и будет опровержением

452. @Matrix, 18.02.2002 18:57
White Eagle
Нобелевские премии за математику не дают

Ради такого дела -- введут, все обиды забудут

Вот сожмет он последовательность - это и будет опровержением

Угу... Придется ведь искать последовательность, которая его алгоритмом не сжимается Ладно, блажен, кто верует...

453. CrazyElk, 18.02.2002 20:17
Vladimir Rybinkin
Задача пионера науки всегда состояла в том, чтобы опровергать то, что было доказано. Пошевелите-ка мозгами, молодой человек!(c) д-р Маракот, А Конан Дойль.

А можно кого нибудь из предметной области поближе каких нибудь Галуа, Гауса, Лобочевского .... Колмогорова, Петровского .... , а то прямо как у Энштейна. Дословно цитату не приведу но смысл следующий:

"Популярность это когда вас просят высказать свое мнение в области в которой вы совершенно не разбираетесь как специалист." Это по поводу авторитетности высказываний г-дина (c) д-р Маракот от А Конан Дойлья в математике. С тем же успехом в исторических диспутах можно приводить цитаты из Фоменко и К

В математике то что было даказано не опровергают, а либо находят ошибку в исходном даказательстве, либо вводят отличный от исходного аксиоматический базис. Геометрия Лобачевского например ни в коей мере не опровергает геометрию Эвклида хоть и даказывает совершено противоположные высказывания. Причем одна не является частным случаем другой.

P.S. Справка, выделения мои (долго не думал взял с km.ru).
А Конан Дойль. - Видный английский прозаик, в основном, детективного жанра, всемирно известный "отец" Шерлока Холмса; автор более сотни книг. Родился в Эдинбурге (Шотландия), образование получил в иезуитских колледжах Стоунхёрст и Фельдкирхе (Австрия), а также в Эдинбургском университете, закончив его с дипломом врача.
После мед. службы в Юж. Африке (во время англ.-бурской войны 1899-1902 гг.) Дойл был возведен в рыцарское звание. По возвращении в Англию начал практиковать в Портсмуте, в качестве дополнительного заработка писал детективную и историческую прозу; с 1891 г. - профессиональный писатель.

454. Vladimir Rybinkin, 18.02.2002 21:04
@Matrix
цитата:
Ибо если Вы придумаете-таки УНИВЕРСАЛЬНЫЙ алгоритм сжатия, бОльшая часть современной математики рассыпется как катрочный домик
Да ничего не рассыплется! То, что я делаю, ничему не противоречит. Просто "другое измерение".
цитата:
Только опровергать надо аргументированно
Ну уж у меня-то здесь ПОЛНАЯ конкретика!
цитата:
А книжки Вы все-таки почитайте... Программист должен знать математику. По крайней мере, хороший программист.
Да я на "книжки-рулез" цитату и привел . И бессменным чемпионом города по математике был в свое время. И не программист я, сколько раз уж говорил .
цитата:
блажен, кто верует
А кто, интересно, верует? Я-то точно нет...

CrazyElk

цитата:
А можно кого нибудь из предметной области поближе каких нибудь Галуа, Гауса, Лобочевского
Да сколько хошь! Демокрит, Коперник, те же Лобачевский или Эйнштейн. Это СЕЙЧАС они признаны. А Планк, говорят, так вообще чуть ли не последним поверил в то, что он придумал.
цитата:
Это по поводу авторитетности высказываний г-дина (c) д-р Маракот от А Конан Дойлья в математике.
А при чем тут, собственно, математика??? И что, фраза неверна?

P.S. Можно и Фоменко, очень неглупый мужик...

455. @Matrix, 19.02.2002 01:25
Vladimir Rybinkin

Да ничего не рассыплется! То, что я делаю, ничему не противоречит.

Ну, если пошли такие утверждения... За моими словами стоит очень приличная математическая база. Что стоит за Вашими?

И бессменным чемпионом города по математике был в свое время.

Правда? No comments...

А при чем тут, собственно, математика??? И что, фраза неверна?

А что, верна, что ли? Да я тыщу контрпримеров приведу! Когда и пионеры науки вовсе не занимались опровержениями, и опровергатели на проверку городили полную чушь... Так что фраза -- неверна. И, кстати, те основы математики, на которые Вы покушаетесь, не опровергал никто и никогда...

Можно и Фоменко, очень неглупый мужик...

Только демагог страшный. Доказательств-то, на самом деле -- ноль без палочки. Беззастенчивое перевирание исторических текстов и многого другого. Над его опровержением метода радиоуглеродного анализа от души хохотали многие мои знакомые профессиональные физики Впрочем, это уж точно во флейм...

Ладно, все. Здесь бесполезно дальше разговаривать. Лучший математик города, не понимающий математику уровня 8-го класса -- это клиника. Пытаться доказывать очевидное -- надоело. В следующий раз что-либо напишу не раньше 8-го марта, ибо бесполезно. Тем более что метод сжатия уже на мази...

456. Tsykunov, 19.02.2002 08:59
dogada
Я писал лишь о том, что ужимал около трети zip-ов на 5-7%. Две другие трети росли на 0-4%
А почему такой пессимизм? Ведь реализация отказа от сжатия при отрицательном результате займет пару строк. Таким образом, Ваш алгоритм сжимает zip в среднем на 1,7-2,3%. Интереснее другое, Вы пробовали применять его рекурсивно к результатам сжатия, к другим типам данных: rar, arj, jpeg, mp3 etc..? Какие результаты? Или он заточен только под особенности формата zip? Или такой вариант: если при одном проходе файл чуть-чуть подрастает, не становится ли он при этом более податлив к алгоритму, что позволяет его все же поджать? Может, все же распишете свой алгоритм поподробнее? Конечно, отказаться - Ваше право. Или попробуйте продать его Рыбинкину - это ли не то, что он ищет?

Теперь о грустном. Что-то мне Ваш пост опять не понравился.
явная бессмыслица и извращение фактов Ваша цитата
Вы не поняли. Вы приводите теорему, которая должна что-то доказывать. Эта теорема относится к тем данным, которые в ней рассматриваются. То есть, Вашими же словами, 2 в степени N последовательностей, каждая из которых длиной N бит. Ваше доказательство верно (неточность в терминологии здесь не слишком существенна). Верно оно в отношении именно этих данных. Если же кто-то попытается распространить доказательство на другие типы данных, здесь возникнет двоякая ошибка. Во-первых, применимость доказательства к тем другим типам данных тоже необходимо отдельно доказывать. Во-вторых, что следует в практическом смысле из этой теоремы? То есть, как на практике применяется тип данных, который рассмотрен в ней? Я утверждаю своим примером об английском языке, что попытка применить это доказательство к другим типам данных некорректна, и нельзя указать на тип данных, на который это доказательство имеет право быть распространено еще. То есть нельзя основывать свое видение пределов сжатия данных на этом доказательстве. Это вопросы граничных условий. Не забывайте о них. Я и пишу, что "универсальный алгоритм" - несуществующая вещь, так как он "есть" только для "любых строк", которых тоже не существует. Поэтому неоспоримый факт, что не может быть "универсального алгоритма" для "любых строк", ничего не добавляет к несуществованию оного в поле реального сжатия. Я не обвинял Вас в отсутствии здравого смысла, а указал на то, что нет надобности в таком доказательстве в рамках данной темы. А для того, что эти пределы существуют, есть доказательства лучше и корректнее, IMHO.
Не хватало еще, чтобы Вы привели... - ну, так не привел же, а Вы меня уже отругали .
Для zip-а первые 8 бит этой ОДНОЙ битовой последовательности можете назвать?
Слишком короткий отрезок требуете. Если Вы действительно не поняли, разъясню. Возьмем все строки длины N. Из этих строк часть M может быть сжата zip-ом, другая L=2^N-M не может быть сжата им. Последовательность из всех строк M и есть та ОДНА строка, о которой я говорил. Конечна она потому, что нет смысла рассматривать все комбинации из строк М и комбинации комбинаций, так как N - максимальный блок информации, который zip может переварить за раз. У части строк M (и у части L тоже) могут быть выделены подстроки длиной меньше N, которые также могут быть сжаты. Нижний предел длины таких подстрок определяет количество служебной информации, которую zip впихивает в выходной файл. Таким образом, минимальный отрезок, который я могу Вам назвать в качестве первого в этой строке будет длиной в несколько сот бит. Например, файл 1, состоящий из 106 символов q, жмется до 105 байт PKZIP v.2.50.
Я назвал.
Вы удовлетворены?
объяснять почему для случайных и почти случайных потоков (каковым является содержимое архиваторов) ... любой набор ... алогритмов (не словарных) может быть сведен к алфавитному кодированию, имеющему аналогичную результативность, я не буду.
Вам все же лучше сделать это. Это ведь важный элемент Вашего доказательства. А то я заявлю, что 1+1=3, и не буду объяснять почему; и докажу потом, что 2+1=4. Еще хотелось бы услышать Ваши определения случайного и почти случайного потоков.
предел сжатия алфавита A {a1 .. an} с вероятностями появления символов P {p1..pn} равен...
Ну, и что Вы этим доказали? Вы только подтвердили мои слова! Откуда Вы берете в этой формуле вероятности появления символов р? А?! - Из конкретного типа данных. И алфавит оттуда же. Вот и возьмите какой-нибудь тип данных со своими алфавитом и вероятностями, подсчитайте Ваш предел сжатия для алфавитного кодирования этого типа данных. Получили число? Прекрасно. Теперь попробуйте обосновать, как этот предел распространяется на другой тип данных, если эта фраза была сказана Вами в опровержение моей.
Для полностью случайного потока байт все p будут равны 1/256 если за символы алфавита взять байты
Осторожнее, пожалуйста, с такими заключениями. Можно легко впасть в опасное заблуждение. Так как если "случайный" поток дает p=1/256, то p=1/256 не дает случайный поток. Это не математическое равенство. Пример: файл из 1000 байт 0, потом 1000 байт 1, ......1000 байт 255. И легко привести еще кучу таких примеров, где, несмотря на вероятности, которые Вы считаете предельными для сжатия, файл съеживается как урюк. Вы, конечно, можете заявить, что я передергиваю, и эти примеры нужно исключить как маловероятные. Пусть. Но Вы, в таком случае, станете лепить некий свой тип данных, в котором не будет тех примеров, еще чего-то. И снова потеряете право распространять предел сжатия этого типа куда-либо еще.
Беда в том, что даже если теорию назвать "некоторыми умными теориями" все рано длины кодов символов (l) ДОЛЖНЫ удовлетворять неравенству Макмиллана
А в кавычки умные теории Вы заключили, не я...
Опять же, что Вы доказали Макмилланом? Непонятно мне, объяснитесь.
ВСЕ строки длиной N это 2 в степени N строк.... ВСЕ такие строки не ужимаются.
Я доказал сжимаемость выше (если можно говорить "доказал" об очевидном факте). Смотрите посты 80 - стр.4, 97, 99, 104 - стр.5, 109 - стр.6, 137 - стр.7. Опровергайте или признавайте свою ошибку. Рядом найдете посты Евгения Машерова и quest, где они подтверждают это, в конечном итоге.
Евгений Машеров
Свару начали quest и я сам. А Вы могли бы быть мудрее, не позволить нам троим уйти от основной темы к мелочам.
прорыв...представляется мне маловероятным...
Но все же... И потом, добавить 5-10-15% к рар или mpeg - прорыв или не прорыв, но значительно.
Что до конкретно Вашего пари - то приглашения на банкет (с подачей минеральной воды под сухарики жду не от Вас
Вы что-то напутали. Я не заключал никакого пари.
А что Вы имеете против сухариков с минералкой? Для печени полезно .
IronPeter
Quest вывел специального кролика, совершенно случайного.
Э-э, нетушки. Он же сам говорил, что его файл не случаен. по методу номер 1 ... Я же её сгенерировал - quest . По его же словам, для создания "случайного кролика" с весом тушки в 1 мег ему пришлось бы залудить программу с кодом в пару мег. Ну, может и не так, но по сложности что-то сопоставимое. И то не факт.
И снова это не в тему. Все ведь здесь согласны, что пари имеет мало общего с реальным сжатием.
А вот абсолютно случайного кролика... Так где они, абсолютно случайные толпами ходят? В каких форматах? Я ж про это и вопрошал.
А если покупать их у одного фермера, то у всех будут хвостики пупочкой, одинаковые. Их и будем ампутировать. Не катят Ваши кролики.
@Matrix
Мое же доказательство было чисто теоретическим и имело отношение в основном к святой уверенности одного господина в том, что хороший программист может придумать алгоритм сжатия, который будет сжимать любую последовательность
Ну, если так, то ладно. Скажу лишь в защиту того господина, что он, IMHO, умышленно провоцировал участников на неверные выводы, и другой господин (не Вы) попал.
про SETI слыхали? Массивы данных у них немеряные, сжатие бы не помешало...
Как-то мне кажется, что они свои данные рассылают и хранят в сжатом виде. Вы не знаете этого точно? Вот уж странно бы вышло, такие данные, куда случайнее... и жмутся.
Vladimir Rybinkin
ИМХО, есть три интервала: первый - когда данные не сжимаются ни при каких обстоятельствах. Этот интервал лежит от нуля до трех бит. Второй - когда данные могут сжиматься, а могут и нет (зависит от данных). Третий - когда данные сжимаются при любых условиях. Вот о границе между вторым и третьим интервалом и спор: в бесконечности она али нет
Не совсем так. Я все проталкиваю идею о том, что предел сжатия надо привязывать не к данным, а к издержкам алгоритма сжатия. В свете этого граница первого интервала лежит в общем случае дальше Вашей. Точно сказать невозможно, так как нельзя ее привязать к длине входной строки.
Есть еще один аспект проблемы, который здесь упоминался только вскользь.
Существует два вида сжатия.
Первый: собственно эффективное сжатие, когда архиватор+несжатые данные весят больше, чем разархиватор+сжатые данные (как я уже указывал, данные - все данные, сжатые за время жизни архиватора, а архиватор и разархиватор - обычно объединены в const код). Такой вид сжатия используется для целей хранения и передачи данных.

Второй: неэффективное сжатие, когда [архиватор+]несжатые данные весят меньше, чем разархиватор+сжатые данные. Используется такой вид сжатия только для передачи данных. Пример такой системы - Internet или мой домашний WinRAR . (Я не использую его для хранения, так как имею еще несколько свободных гигабайт. Он нужен мне иногда для разархивации данных извне и для передачи вовне.). Иначе такое "сжатие" называется перераспределением издержек. Оно может требовать кроме кода наличия определенной хардверной инфраструктуры, которая включается в понятие "[архиватор/]разархиватор".
Так вот, с точки зрения второго варианта Вашего второго интервала вообще нет, однозначно. Тогда как по первому варианту его наличие (и третьего) спорно, и уверенно можно говорить только о практическом существовании алгоритмов, для которых есть несжимаемые строки, а привязываться к длине строк IMHO все же неверно.
Если я правильно понял, Tsykunov говорил о сжатии одной НЕСЖИМАЕМОЙ битовой последовательности.
Нет. Это как раз единственная строка сжимаемая zip-ом.

457. Евгений Машеров, 19.02.2002 10:01
Tsykunov
Видите ли, Ваши графики иллюстрируют непонимание теории вероятности, весьма популярное и приносящее миллионы владельцам казино. Равновероятное и равномарное на самом деле не одно и то же! Вы показали, что эмпирическое распределение не равномерно, но это не противоречит тому, что оно принадлежит равномерному распределению, для которого равновероятны все исходы. Именно этим заблуждением, о тождестве равномерного и равновероятного, гонимы к рулетке игроки, увидевшие 7 красных подряд и ставящие на черное, полагая, что вероятность выпадения красного уменьшилась.
Возможность же сжатия некоторых архивов говорит не о том, что сжаимаемо все, а лишь о том, что, ввиду ли ограничений по времени работы алгоритма, или же по памяти, или по недостатку квалификации разработчика - архиватор не полностью использовал возможности сжатия.
Что до минеральной воды - то, говоря о ней, яимел в виду, что на 10$ выигрыша исле гостей из числа не верящих в супер-сжатие особо не разгуляешься...

458. Vladimir Rybinkin, 19.02.2002 11:57
@Matrix
цитата:
За моими словами стоит очень приличная математическая база
За Вашими словами, извините, стоят только слова. А за моими - 8-е марта и обязательство опубликовать алгоритм (нехорошее в случае частичной удачи ).
цитата:
Правда? No comments...
Не понял, ну да ладно.
цитата:
Да я тыщу контрпримеров приведу!
Не надо тыщу. Два-три вполне достаточно.
цитата:
те основы математики, на которые Вы покушаетесь
Я уже говорил: ни на что я не покушаюсь.
цитата:
Только демагог страшный
Ну, этого добра... Мне, например, много раз это говорили (причем, ИМХО, говорили именно демагоги ).
цитата:
Лучший математик города, не понимающий математику уровня 8-го класса -- это клиника.
ЧЕГО??? Да за 8-й класс я и сейчас горло перегрызу! Любой "приличной математической базе"! Я побеждал на городских олимпиадах с 4-го по 10-й класс, и именно в 8-м у меня в грамоте 2-е место исправлено на 1-е! Две задачи я решил нестандартным способом, и преподаватели не сразу поняли, что решил я их таки правильно. А ну, ЧТО СТОИТ ЗА ВАШИМИ СЛОВАМИ???!!!
цитата:
В следующий раз что-либо напишу не раньше 8-го марта
Вот это правильно! Тогда уже можно. Навалились гурьбой, стали руки вязать...

Tsykunov

цитата:
А почему такой пессимизм? Ведь реализация отказа от сжатия при отрицательном результате займет пару строк. Таким образом, Ваш алгоритм сжимает zip в среднем на 1,7-2,3%.
цитата:
Или попробуйте продать его Рыбинкину - это ли не то, что он ищет?
Не то, не то
цитата:
Скажу лишь в защиту того господина, что он, IMHO, умышленно провоцировал участников на неверные выводы, и другой господин (не Вы) попал.
Опять же ! Жаль, моя главная провокация пока без ответа (насчет того, что... врочем, помолчим ).
цитата:
предел сжатия надо привязывать не к данным, а к издержкам алгоритма сжатия
А я не к данным и привязываю. На больших последовательностях, ИМХО, обязаны попадаться сжимаемые кусочки (или те, которые сводятся к сжимаемым). Данные или алгоритмы лишь увеличивают/уменьшают количество таких кусочков, но было бы очень странным, если на всем здоровенном массиве не найдется чем поживиться какому-либо из алгоритмов.
цитата:
с точки зрения второго варианта Вашего второго интервала вообще нет, однозначно
С этой точки я еще не смотрел . Похоже.

Евгений Машеров

цитата:
Возможность же сжатия некоторых архивов говорит не о том, что сжаимаемо все, а лишь о том, что, ввиду ли ограничений по времени работы алгоритма, или же по памяти, или по недостатку квалификации разработчика - архиватор не полностью использовал возможности сжатия.
Возможно. Но не исключено и обратное. Если все-таки все данные сжимаются, то второй проход по архиву еще чего-нить откопает...
цитата:
Что до минеральной воды - то, говоря о ней, яимел в виду, что на 10$ выигрыша исле гостей из числа не верящих в супер-сжатие особо не разгуляешься...
Интересная мысль! А вот нам с Alexzander можно будет неплохо погудеть !

459. quest, 20.02.2002 09:36
Vladimir Rybinkin
Я побеждал на городских олимпиадах с 4-го по 10-й класс

А в каком городе, если не секрет?

460. Tsykunov, 20.02.2002 10:41
CrazyElk
привести опеределение, математическое и формальное, предметной области о которой он ведет речь т.е. что имеет отношение по его мнению к реальному сжатию.
Не знаю, насколько формальными Вы посчитаете мои определения, однако, не могу отказать Вам.
Определения данных [и сжатия] - на странице 2, сообщение 39. Это рамочное определение, то есть все, что не подходит под него, данными не является. Таких данных весьма много. Я выделяю из их множества реальные данные. Что есть реальные данные, я повторяю на протяжении всей дискуссии. Прочитайте мои сообщения снова. Что там непонятно? Специально для Вас: каждый из источников данных, с которыми мы имеем дело, производит однородные наборы данных. Нечего ожидать из выходного потока архиватора текстового файла. Это дает мне основание утверждать, что возможны эффективные алгоритмы для сжатия таких однородных наборов данных.
Многие здесь зациклились на "любых" данных. Вы тоже?
Если внимательно прочитать постинги то можно замететь что большинство (аргументирующих а не верующих) сходится на том что ДАННЫЕ это любая битовая/байтовая последовательность длинны не более N а СЖАТИЕ это представление этой последовательности алгоритмом ее формирования для PC битовое/байтовое представление которого на PC имеет длинну меньше N.
Для меня это (любая последовательность) абстрактная, несуществующая вещь. Я не могу представить себе источник данных, порождающий то txt, то exe, то gif без всяких регулярностей. Единственная польза от подобного источника - генератор случайных чисел. Однако, Вы знаете, что программные генераторы считаются псевдослучайными, а организация надежного генератора на физическом процессе - непростая задача. (Кстати, Вы меня к аргументирующим относите или к верующим?) Рискну привести пример, хотя меня могут за него покусать. Мы решили провести чемпионат по генерации последовательностей. Вы пишете алгоритм, производящий несжимаемые строки длиной 10 мегабайт, а я сжимаемые. Проверять сжимаемость будем раром. Запускаемся одновременно. Победит тот, кто нагенерит больше. Кто победит? Официальная теория и Вы тоже считаете, что несжимаемых строк неизмеримо больше. Согласен. Но, Ваше преимущество выразится в счете примерно тогда, когда мы проапгрейдимся на Пентиум-28. А еще долгое-долгое время Вы будете неприлично далеко позади меня, так как мой алгоритм будет заведомо быстрее (не надо пояснять, почему?). Этот пример к тому, что "любые" строки - виртуальная вещь, вероятность получить в мире реальных данных несжимаемую строку ниже, чем сжимаемую, хоть это и не вписывается в Вашу теорию вероятности. Плиз, не тыкать меня носом в "несжимаемые" строки вроде архивов или сжатого multimedia. Если потребуете, напишу, почему.
Итак, реальные данные - не любые строки
Если Вы согласитесь с этим утверждением, то Вам придется сунуть в пыльный шкаф добрую половину теорем о пределах сжатия, привязанных к любым данным.

Теперь о подробнее сжатии. Повторю свою формулировку: во всех случаях, когда говорят о сжатии\кодировании, имеется в виду система, имеющая 2 состояния: компрессор и несжатые данные, декомпрессор и сжатые данные. Есть возражения?
Ваша представляется мне не совсем корректной по двум причинам. Первая: она может подвигнуть некоторых (а Вас?) к ошибочным выводам, что нужно искать единый способ сжатия каждой строки в отдельности (и не найдя его, объявить об очередном пределе сжатия), или что реальное сжатие связано с созданием селфэкстракторов, то есть по отдельному способу на каждую строку (с последующим объявлением предела). Вторую я озвучил в предыдущем сообщении: возможно неэффективное "сжатие" - перераспределение издержек. Оно не вписывается в Ваше определение.
Итак, реальное сжатие - сжатие реальных данных.
Мораль: ищите новые алгоритмы, пределы сжатия не зависят от абстрактного представления о данных.
Чем таки "нереальны" например последовательности исходных данных для расчета молекулярного обтекания при входе космического аппарата в верхнии слои атмосферы методом Монте-Карло.
Это что-то очень крутое и умное? Я должен убояться? А я вот считал как-то медленное погружение подводной лодки в схватывающийся бетон . Если Ваши данные не жмутся раром, это не круто - у меня пол-винта таких. Вы, когда наберете Ваших обтеканий побольше, найдете структуру, закономерности и напишете алгоритм сжатия. А селфэкстрактор для одной строки писать не стоит, хлопотно, ее структура может не позволить. Нужен тип данных, то есть их должно быть достаточно для того, чтобы сжатие создавало издержек не больше, чем эффект от него.
Можно еще примеров их у нас есть.
Чем больше их у Вас будет, тем больше вероятность сжать чего-нибудь. Вот если бы Вы дали мне одну строку, как quest дал Рыбинкину, сжать ее было бы много сложнее.
нужно хоть намекнуть куда ты хочеш.
Повторяю, нужно взять некий тип данный, например, rar. Подумать и написать алгоритм сжатия для него процентов на 10-15%. Потом взять другой тип и снова подумать. Реально? А меня убеждают, в том, что это полный тупик, так как невозможно сжать то и другое, так и сяк:..

461. FLASH_MAIN, 20.02.2002 11:03
2ALL
Пределы сжатия сущесствуют, т.к. бесконечности не сущесствует, а значит бесконечное сжатие данных - нарушает всеобщую конечность, что нименуемо приведет к дематериализации всего окружающего мира и созданию многомерного бесконечного пространства, где измерений не существует!

462. Витька, 20.02.2002 11:19
Tsykunov
Я не могу представить себе источник данных, порождающий то txt, то exe, то gif без всяких регулярностей.

Пример: “rar e archive.rar”


Повторяю, нужно взять некий тип данный, например, rar. Подумать и написать алгоритм сжатия для него процентов на 10-15%.

Избыточность не очень маленьких rar архивов гораздо меньше одного процента.

463. Евгений Машеров, 20.02.2002 11:27
Tsykunov
Приближением к подобному источнику является выход практически применяемого архиватора. И чем лучше архиватор - тем лучше приближение.

464. Vladimir Rybinkin, 20.02.2002 12:16

465. Vuk, 20.02.2002 17:16
цитата:
Vladimir Rybinkin:
quest
http://www.nelidovo.com/

Позвольте полюбопытствовать - а какое отношение имеет завод пластмасс к рассматриваемой теме?

466. Vladimir Rybinkin, 20.02.2002 17:20
Vuk
А директор завода - мой друг детства, к тому же он городское имя под свой сайт захапал. Я ему маленькую рекламу сделал .

467. I.D., 20.02.2002 17:34
Не следует забывать просуществование нейрокопмьютеров.
Например характерным примером нейрокомпьютера (хоть и весьма примитивным и медленным) является головной мозг человека, который чаще всего и используется
для разработки тех или иных алгоритмов сжатия. Например в результате работы двух таких машин был разработан широко известный алгоритм Лемпеля-Зива.

468. Tsykunov, 21.02.2002 09:42
Евгений Машеров & other
Ваши графики иллюстрируют непонимание теории вероятности
Что-то у многих здесь самым убийственным аргументом становится: "я ЗНАЮ математику, а Вы - нет!".
Один известный ученый говорил: "Если я не могу объяснить ребенку то, чем я занимаюсь, значит, я сам этого не знаю".
Евгений, это не упрек, а так, мысли вслух.
Евгений Машеров
Равновероятное и равномарное на самом деле не одно и то же!
Конечно.
Вы показали, что эмпирическое распределение не равномерно, но это не противоречит тому, что оно принадлежит равномерному распределению, для которого равновероятны все исходы.
Иначе говоря, каждое неравномерное эмпирическое распределение принадлежит множеству всех возможных распределений, которые в пределах этого множества равновероятны. Так?
А если так, то на каком основании конкретное множество неравномерных эмпирических распределений (входящее во множество каждых) можно объявить равновероятным?
Это снова та же бодяга: все - не все, каждый - не каждый, любой - не любой.
-Все в руках Аллаха.
-Как это все? А сознание Будды? Руки Аллаха ведь есть только в сознании Будды. С этим вы не станете спорить?
-Конечно, нет. Руки Аллаха есть только в сознании Будды. Но вся фишка в том, что сознание Будды все равно находится в руках Аллаха.
- (с) В. Пелевин, Generation "П".

Именно этим заблуждением, о тождестве равномерного и равновероятного, гонимы к рулетке игроки, увидевшие 7 красных подряд и ставящие на черное, полагая, что вероятность выпадения красного уменьшилась.
Некорректный пример.
1. Последовательность исходов на рулетке - бесполезные данные.
2. Рулетка - честная игра. Проигрывают на ней те, кто нарушает ее правила (как Вы описали). А нарушают их все, кроме крупье. Иначе неинтересно играть. Если всю ночь ставить одинаковую сумму на красное, то равновероятно ничего не выиграешь и ничего не проиграешь, а неравномерность тут в том, что реально одну ночь чуть проиграешь, другую чуть выиграешь. Но это не игра, а мастурбация. Я в детстве умел играть на старом советском автомате так, что вероятность выиграть двойную ставку была около 0,8, можно было доить его до исчерпания. Почему-то я так не делал.
ввиду ли ограничений по времени работы алгоритма, или же по памяти,
Мы здесь не учитываем время работы алгоритма и количество памяти.
или по недостатку квалификации разработчика
Квалификация разработчика играет только в законах Мерфи.
архиватор не полностью использовал возможности сжатия
Современные архиваторы не полностью используют возможности сжатия - очевидный факт.
говорит не о том, что сжаимаемо все
Да и не надо мне ВСЁ!
Если я напишу алгоритм сжимающий rar хоть на 5%, хоть на 95%, я получу новый тип данных: архив tsy, который я уже не могу сжать, и создам издержки. Какое тут может быть ВСЁ?
Возможность же сжатия некоторых архивов
Почему Вы соглашаетесь, что можно сжать архив на 1-2%, но отрицаете возможность сжать его на 10-15%? Где этот предел, почему?
Как бы выглядел наш спор до изобретения LZ? Боюсь, что так же.

Витька
Избыточность не очень маленьких rar архивов гораздо меньше одного процента.

Обоснуйте
Пример: “rar e archive.rar”
Ха-ха! Так они жмутся все! Самая смешная шутка из последних 10 листов.

Евгений Машеров
Приближением к подобному источнику является выход практически применяемого архиватора. И чем лучше архиватор - тем лучше приближение.
Лучше - относительная характеристика.
Вы не можете говорить, что практически применяемый архиватор лучше или хуже возможного. Поэтому и приближение нельзя оценивать по этой характеристике.

469. Витька, 21.02.2002 13:12
Tsykunov
==Избыточность не очень маленьких rar архивов гораздо меньше одного процента.==
Обоснуйте

Пожалуйста? Можно взять rar архив размером 100K, произвольным образом поменять в нём 99.9% байт, не совсем произвольным – оставшиеся, и при этом он останется rar архивом. Доказательство тривиально. Из этого следует, что для любой взаимно однозначной функции (архиватора) с областью определения – rar архивы от 100K в области значений найдутся файлы уменьшившееся менее, чем на один процент или не уменьшившееся. ЧТД. (Для простоты я не мелочился, но цифры 100K и 1% легко заметно уменьшить.)


==Пример: “rar e archive.rar”==
Ха-ха! Так они жмутся все!

Кто жмётся? Впрочем этим я не сказал, что кто-то не жмётся. Вы искали ”источник данных, порождающий то txt, то exe, то gif без всяких регулярностей.”, и я Вам его дал.

470. Евгений Машеров, 21.02.2002 15:24
Tsykunov
1. Ну что же делать, если некто не знает математики. Иногда приходится ему о сем говорить...
Что до объяснения детям, то, мнится мне, Вы не дитя...
Если три уровня понимания:
- когда возникает теплое чувство понимания
- когда можешь сделать
- когда можешь сделать лучше.
Детям достаточно объяснить на первом уровне. А Вы претендуете на третий...

2. Далее у Вас игра словами. Под равномерным распределением я, как это обычно принято, понимаю распределение с равной вероятностью исходов. Что, при известных условиях, дает максимизацию энтропии.

3. Польщен знакомством со специалистом столь высокого класса, что для него вовсе невозможным представляется недостаток квалификации разработчика...

4. А впрочем, уже недолго..

"Восьмое марта близко-близко,
И сердце бъется об ремень.
Не подведи... мой архиватор...
В Международный Женский День".

471. Vladimir Rybinkin, 21.02.2002 20:31
Евгений Машеров
Это что еще за народное творчество? "Мой" архиватор...

Грозят расправою кровавой
Мне и в Мужской, и в Женский день
Замочим их! Не ради Славы
Не ради Истины, Державы
А так. Из вредности. Да, Жень?

472. GummyBear, 21.02.2002 21:11
Я прочитал всю вашу ветку
и не нашел увы ответ.
Есть RAR, есть ZIP есть мысли...
А где паковщик? Ну не бред?

473. Tsykunov, 22.02.2002 08:32
Евгений Машеров
Если три уровня понимания:
- когда возникает теплое чувство понимания

Жаль, что у Вас ко мне нет даже теплого чувства понимания
- когда можешь сделать
- когда можешь сделать лучше

Это намек, что Вы уже достигли такого уровня понимания, что никто лучше Вас сделать не может? Вот оно - Абсолютное Знание!
Далее у Вас игра словами.
Бросьте Вы такие фразы, плз. Конкретнее хотелось бы...
Под равномерным распределением я, как это обычно принято, понимаю распределение с равной вероятностью исходов.
И что из этого? Я задал конкретный вопрос, получил ответ про игру словами и повторение предыдущего заявления, из которого никаких новых выводов.
Нечего сказать в прозе?
Да и не один вопрос был, беретесь спорить - отвечайте на все.
Польщен знакомством со специалистом столь высокого класса, что для него вовсе невозможным представляется недостаток квалификации разработчика...
Мы ведь обсуждаем возможность создания алгоритма, а не возможность его создания Васей Клюшкиным.
А впрочем, уже недолго..
Любой исход пари ничего не докажет по главному вопросу.

Витька
Кто жмётся? Впрочем этим я не сказал, что кто-то не жмётся. Вы искали ”источник данных, порождающий то txt, то exe, то gif без всяких регулярностей.”, и я Вам его дал.
Все, что извлечено из архива, то и жмется, иначе зачем его было туда пихать.
Источник-то подразумевался порождающим несжимаемые строки, нерегулярные, случайные.

474. Евгений Машеров, 22.02.2002 09:08
Tsykunov
1. Полагаю, что целью данной ветки, равно как и всей конференции "Программирование", является не выработка теплых чувств, но решение конкретных задач.
2. Нет. Не могу сделать лучше уже известных алгоритмов. Поэтому, когда вижу человека, претендующего на такое - пытаюсь понять, что сие: прорыв в знаниях либо безтветственная болтовня.
3. Исход пари даст ответ не по главному, а по предыдущему вопросу.

475. Витька, 22.02.2002 10:52
Tsykunov
Все, что извлечено из архива, то и жмется, иначе зачем его было туда пихать.

Ошибаетесь. Например предмет пари был передан в архиве. Угадайте зачем. Впрочем бывают разные причины.


Источник-то подразумевался порождающим несжимаемые строки, нерегулярные, случайные.

С каких пор txt, exe, gif стали такими?


Евгений Машеров
Поэтому, когда вижу человека, претендующего на такое - пытаюсь понять, что сие: прорыв в знаниях либо безответственная болтовня.

Скорее это третье. Сжатие использующие специфику объекта. Практически наверняка, алгоритм сжимающий файлы от quest будет плохо сжимать тексты . Хотя кому-то, метод может показаться нетривиальным, и даже прорывом.

476. Vladimir Rybinkin, 22.02.2002 12:37
Евгений Машеров
цитата:
когда вижу человека, претендующего на такое - пытаюсь понять, что сие: прорыв в знаниях либо безтветственная болтовня.
А чего пытаться? Я предельно конкретно и подробно все описал. Если уж и это неочевидно - была мыслишка в "Извилинах" (не помню, моя или нет, но я с ней согласен): принципиальной разницы между гением и кретином нет. Все определяется практикой (результатом). Таким образом, пытаться понять заранее - бессмысленно.

P.S. Даже если и болтовня, то уж ОТВЕТСТВЕННАЯ! Попробуйте пойти на такое (или просто вспомните, легко ли бывало плыть против течения) - думаю, согласитесь .

Витька

цитата:
Практически наверняка, алгоритм сжимающий файлы от quest будет плохо сжимать тексты
Нет. Если то, что я делаю, сработает - это просто означает возможность сжатия "среднего промежутка" (см. первый постинг ветки).

477. Евгений Машеров, 22.02.2002 12:54
Vladimir Rybinkin
Как человек, имевший дело с кретинами (и даже получающий надбавку за это) замечу, что разница отсутствует только с точки зрения кретина. Гений эту разницу как-то видит...
Алгоритм Ваш мне представился невнятным набором слов, и, буде он окажется эффективен, буду знать, что мое место ближе к кретинам.
А если нет - не обессудьте...

478. Vladimir Rybinkin, 22.02.2002 13:05
Евгений Машеров
цитата:
разница отсутствует только с точки зрения кретина. Гений эту разницу как-то видит...
Как алгоритмист - указываю на противоречие: либо разница отсутствует не только с точки зрения кретина, либо середины нет .
цитата:
Алгоритм Ваш мне представился невнятным набором слов
Хм. Где это Вы его откопали? О нем знают, по моим сведениям, лишь три человека .
цитата:
А если нет - не обессудьте
Никогда!

479. Ку-Ри-Цин, 23.02.2002 05:10
Vladimir Rybinkin, должен сказать, слабоват ты со своими алгоритмами, не тот масштаб. Вот наши товарищи из далекого забугорья обещают на порядок больше и без потерь
http://www.cnews.ru/news/comp/2002/02/22/20020222175651.shtml

480. Vladimir Rybinkin, 23.02.2002 11:22
Ку-Ри-Цин
Да я чего, я ничего . Я же говорил - дилетант я здесь. Мой конек - СУБД, оптимизация, работа с железом (впрочем, последнее уже начал забывать).

А "товарищи" как раз и говорят, что мой спинной мозг не ошибался .

Наверное, мой алгоритм обнаружили

P.S. А что, интересно, скажут господа теоретики? Нобелевского лауреата тоже математике за 8-й класс учить будем?

481. Кондыбас, 25.02.2002 13:04
Есть простая цепочка:

данные - кодер - упакованные данные - декодер - данные.

Чтобы иметь согласование на входе-выходе(без потерь), нужно иметь согласование на кодере/декодере. Иначе это потеря информации. Синякам достаточно перемигнуться и они друг друга поняли - полная согласовка

Соотношение данные/упакованные данные (в кг.) может быть любым. Хоть бесконечно большим. Любой объем информации можно запаковать в один бит. Расплачиваться придется кодером/декодером. Один бит - наличие/отсутствие цветка на подоконнике - кодировало довольно длинную фразу: явка провалена, чувствую хвост, пока не берут, надежды мало, сюда не ходи. Плейшнер декодер не согласовал и погорел.

Теоретически, рекурсивная функция может порождать цепочку значений любой длины. Из затравки в 20-30 байт и трех-четырех параметров можно получить сотню метров файлА. И даже может статься, что это будет инсталляха чего-нибудь полезного. Но задача в том, что нужно _подобрать_
1. рекурсивную функцию
2. затравку
3.- n+1. параметры.

Это, покамест, вне пределов наших аналитических возможностей.

482. ThreeDHead, 25.02.2002 13:39
Кондыбас
Нагородил чего-то:
Один бит - наличие/отсутствие цветка на подоконнике - кодировало довольно длинную фразу: явка провалена, чувствую хвост, пока не берут, надежды мало, сюда не ходи.
Не все данные вписал, забыл про: Солнечная система -> Пятая планета от солнца -> Страна Россия -> Город Москва -> Улица Ленина -> Дом номер 5 -> Окно (X, Y) -> Цветок -> короче ж...па.
Идентиффикаторы всей этой лабуды у тебя столько места съест, что лучьше бы этому цветку на свет и не появляться.

483. GreatMaster, 25.02.2002 21:09
ммм... а если по теме (если кто помнит: "существует ли lim->...") то:
НУ НИКАК НИ СЖАТЬ В 1 БАЙТ 10 БАЙТ
НИКАК
даже если все сжимаемые байты имеют форму типа 00000001, 00000010, 00000100 и т.д.
дык вот, 3 из 10ти будут иметь одинаковый направленность. Учитывая ЧТО в нашем байте мы опишем только 8 бит - мы НУ НИКАК не сумеем разместить информацию о местоположении 2х оставшихся (совпадающих с кем то) битах.
о чём разговор то? существуют ли? я отвечаю: на данном _этапе_ да.
а вот если "...а вот советские учёные..."
дык вот мы насчёт того чтобы вместо обычных ДА/НЕТ добавить МОЖЕТ БЫТЬ
а?

484. Евгений Машеров, 26.02.2002 09:13
Ку-Ри-Цин
Несколько опоздавшая новость. Больше месяца назад они заявились, но очень скоро обнаружилось, что действительно крупные ученые, перечисленные среди разработчиков алгоритма - вообще об этом не слыхали. Т.е. раскрутка инвестора...

485. Ку-Ри-Цин, 26.02.2002 16:44
Евгений Машеров
Спасибо, что во время предупредили, а я уж чуть было... значит остается только Рыбинкин... спаситель наших надежд

486. Евгений Машеров, 26.02.2002 17:07
Ку-Ри-Цин
Я тогда задал вопрос о них на RU.COMPRESS - порекомендовали универсальный архиватор /dev/null/

487. Ghoort, 26.02.2002 18:15
+

488. @Matrix, 26.02.2002 19:29
Ghoort
Определим множество A как множество сжатия
Это множество исходных (сжимаемых) последовательностей, что ли? ОК, пусть это и будет множество сжатия...

множество всевозможных N комбинаций из элементов 0 и 1
Это в смысле множество всевозможных слов длины N в алфавите {0,1}? ОК...

Множество А сжатия с определенной сжатием f:A->A
Так... Что-то пошло неправильно. Значит, множество сжатия -- множество всевозможных слов длины не более N в алфавите {0,1}...

Сжимаемостью подмножества B назовем m(B)/m(f(B))
Не забудем здесь, что это сжимаемость подмножества B оператором f, а не чем угодно...

А теперь внимание -- вопрос: на фига все это? Достаточно было первого пункта -- определить, что сжимаем -- а все остальное можно задвинуть. Для доказательства достаточно. А первый пункт по ходу дискуссии подразумевался...

Vladimir Rybinkin

цитата:

P.S. А что, интересно, скажут господа теоретики? Нобелевского лауреата тоже математике за 8-й класс учить будем?


Евгений Машеров

цитата:

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

А что теперь скажет господин практик?

489. Ghoort, 27.02.2002 10:40
x

490. Vladimir Rybinkin, 27.02.2002 11:25
Евгений Машеров
цитата:
Несколько опоздавшая новость
И несколько преждевременное опровержение. Нет, чтобы еще месячишко потерпеть .

@Matrix
цитата:
А что теперь скажет господин практик?
Жаль, жаль... значит остается только Рыбинкин... спаситель наших надежд

491. Alex_Mal, 27.02.2002 11:28
Ghoort
Есть такая теория: Теория функций комплексного переменного. Там уже давно рассмотрено "Сжимающее отображение", как раз то, что тут описано. Есть там и теорема о Сжимающем отображении. К сожелению не помню ее формулировки (да простит меня декан), но что-то они важно гласит. Просто я попробовал указать вам где можно поискать решение. Хотя может я и не прав.

492. quest, 27.02.2002 11:31
Vladimir Rybinkin

Кстати, спасителю ихних надежд осталось спасаться 10 дней!

493. Ghoort, 27.02.2002 11:35
x

494. quest, 27.02.2002 11:36
Ghoort
Все здешнии термины придумал я

Вопрос: "А на кой?", так и остался открытым...

495. Ghoort, 27.02.2002 11:39
x

496. quest, 27.02.2002 11:44
Ghoort
Утверждение. Предела для сжатия с потерями нет.

Браво!!! А ещё: Волга впадает в Кайспийское море, а 2х2=4.

497. Ghoort, 27.02.2002 11:49
x

498. Евгений Машеров, 27.02.2002 12:47
Ghoort
Что-то мы перемещаемся даже не в "Полемику", а во "Флейм".
Давайте вернемся к конкретике.
Сжатие с потерями - это интересно. Вот только хорошо бы разжимать. Кто что слышал нового о сжатии видео?

499. Ghoort, 27.02.2002 13:06
x

500. quest, 27.02.2002 13:47
Ghoort
Теорема 1. Пусть B1 - подмножество сжатия, тогда мера наименьшего подмнжества сжатия B2, которое получается из B1 сжатием без потерь, пропорционально КОЛИЧЕСТВУ элементов M множества B1.
m(B2) = S(g(M))+(M-S1(g(M)))*(g(M)+1) ~ M+O(1)
Теорема доказана

И доказана неправильно

Ибо, в Вашей терминологии m(B2)~O(M*(log2(M)-2)), что легко (хотя и не так "научно") доказывается. Бум спорить?

501. Ghoort, 27.02.2002 13:54
x

502. quest, 27.02.2002 14:01
Ghoort
просуммировать ряды точно мне так и не удалось

Вот как удастся, так и начнем...

503. Ghoort, 27.02.2002 14:21
x

504. quest, 27.02.2002 14:29
Ghoort
Если Вам нравиться задавать вопросы "на фига?", то мне такие собеседники не интересны.

Мне нравятся собеседники, которые хотя-бы понимают смысл используемых терминов и обозначений, а вот деятели, открывающие Америку, не удосужась вспомнить (или подучить, если в свое время их "декан простил") азы, действительно не интересны - ликбезом следует заниматься в другом месте.

моя теорема дает точный и приближенный ответы на заглавный вопросы темы.

Увы, ничего она не даёт, ибо - не верна.

505. Ghoort, 27.02.2002 14:31
x

506. quest, 27.02.2002 14:35
Ghoort
Докажи

Я бесплатно учу только достаточно вежливых людей. А с хамоватых - деньги вперед!

507. Ghoort, 27.02.2002 14:39
x

508. Vladimir Rybinkin, 27.02.2002 14:48
quest
цитата:
Кстати, спасителю ихних надежд осталось спасаться 10 дней!
Спасать!

Я уже говорил: времени мне хватит.

цитата:
Я бесплатно учу только достаточно вежливых людей. А с хамоватых - деньги вперед!
Интересно . Деньги вперед я не платил. А учеба явно не бесплатная. Who am I?

509. Ghoort, 27.02.2002 14:51
x

510. Евгений Машеров, 27.02.2002 15:23
Ghoort
Математика, она, конечно, язык. Только у Вас говорить на нем... невразумительно получается.

1. _Число_ 0 и _число_ 00 у Вас различны?
2. Из чего следует "минимальность" множества В2?
3. Мощность (не совсем понял, что именно Вы именуете мерой множества? Я как-то привык встречать этот термин в ином контексте...) множества всех двоичных векторов длиной меньших N равна 2^N-1 ("Алгебра" 9-й класс).
4. Что Вы понимаете под "типом файла"?

511. Ghoort, 27.02.2002 15:46
x

512. Alex_Mal, 27.02.2002 16:04
Ghoort
Я ошибся, это другая теория. Там есть про сжимающие отображения, и про нумерацию перечислимых множеств.

513. Евгений Машеров, 27.02.2002 16:11
Ghoort
А тогда зачем для конечных множеств вводить понятие меры? Вроде как оно для них совпадает с мощностью?

514. Ghoort, 27.02.2002 16:18
x

515. IronPeter, 27.02.2002 21:13

Мне это все напомнило сцену из Кин-дза-дзы.

-Ду ю спик туркиш?

-Почему это ты, родной, говоришь на языке, продолжения которого не знаешь?

516. Евгений Машеров, 28.02.2002 09:27
Ghoort
Боюсь, что введенное Вами понятие мены имеет весьма мало общего с общепринятым. Хотя "точная нижняя граница суммы длин конечного или счетного множества интервалов, покрывающих заданное на прямой множество S" на слух звучит похоже на Ваше определение - но ничего общего оно не имеет...
Если же Вы вводите свой язык - не ссылайтесь на "язык математики". Возможно, Ваш язык лучше - но он иной...

Добавление от 28-02-2002 09:29:

Очепятка: мены - читай меры.

517. Ghoort, 28.02.2002 10:20
x

518. IronPeter, 28.02.2002 11:29
Ghoort

Нет, уж извольте использовать конвенциональный язык.

В приведенном постинге столько конструкций, случайно надерганных из разных областей метематики, что дух заватывает.

Скажем, "стандартная лебеговская мера на многообразии". Причем тут многообразие?
Многообразием называется топологическое пространство, которое локально евклидово пространство. Что, есть "стандартная" мера на многообразии? Ну-ка, покажь. От чего она не зависит?

Или "корень суммы". Сумма берется как минимум от двух величин. Сумма чего с чем?
Или

Есть стандартная мера для пространства итегрируемых с квадратом функций

Да шо ты говоришь? Сначала берется измеримое пространство, потом L_2 от него. А что потом, ты хочешь ввести меру на борелевских подмножествах L_2 ? Хорошей меры там нет, заявляю как доктор.

Да и общее определение меры я уже привел выше. Оно подходит для любых множеств, которые объявляются открытыми (топология).

Кошмар... Причем тут топология? Ты что, только по топологии можешь построить меру??? Что это за мера? Вот прислали тебе в коробочке топологию на множестве.
Как ты меру соорудишь?

519. Ghoort, 28.02.2002 11:46
x

520. IronPeter, 28.02.2002 12:12
Ghoort
Далее, когда я писал про меру на L_2 я не написал слов "хорошая" "удобная" или "плохая".

Было написано "стандартная".

Мера любого множества положим нулем. Такая мера есть всюду. Куда уж стандартнее. Пойдет? Это она? Что это за стандартная мера на L_2? Какие у нее свойства аддитивности и инвариантности (относительно изометрий)?

Например возьму и припишу каждому открытому множеству число. Какое именно без вышеупомянутой коробочки, я сказать не могу

Мера целого должна быть равна сумме мер частей (это требование). При случайном выборе такого не будет.

Кстати, Вы не написали своего мнения о введенной мною мере на сжимаемых множествах.

Мера отдельной строки равна числу единиц в ней? Ну какой может быть мнение - есть и есть. Можно доказывать разные теоремы, скажем, что полная мера всех строк длины n равна n*2^{n-1}. Иное дело, что с ней серьезного можно делать?

521. Ghoort, 28.02.2002 12:20
x

522. Евгений Машеров, 28.02.2002 12:41
Ghoort
Боюсь Вас разочаровать, но с понятием меры я ознакомился тому лет двадцать. Вероятно, Вы полагаете, что за это время Вашими усилиями математика настолько ушла вперед? Из ваших постингов сего не вытекает.

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

Что же до введенной Вами "меры на сжимающих множествах", то, признаться, не понял, какое отношение она имеет к сжатию информации. Да, сумма длин строк (не чисел! числа 1 и 01 равны!) данного подмножества обладает свойствами меры (если пренебречь тем, что строка длины 0 занимает в реальном представлении не 0 байт). Ну и что из этого?

Боюсь, Ваше представление о проблеме несколько поверхностно, и размахивание математическими терминами, из коих часть вообще не относится к теме, Вас не спасает.

523. Ghoort, 28.02.2002 12:58
x

524. quest, 28.02.2002 16:14
Ghoort
Мне даже приходит на ум, что доказательство теоремы никто не проверил. Кстати там есть ошибка, на конечный результат правда не влияющая.

А что её проверять, если она просто не верна!

Доказывать мне это лениво, но можно сделать так: если утверждается, что эта самая мера пропорциональна числу последовательностей из 0 и 1, то должен быть коэффициент пропорциональности. Таки, давайте любой коэффициент и я укажу число различных последовательностей, при котором сия замечательная мера будет больше, чем моё число, умноженное на указанный коэффициент.

Попробуйте понять, что в основе ваших построений лежит непонимание сути сжатия, обсуждаемого здесь: вы путаете кодирование со сжатием. Конечно, можно взять файл, сколь угодно большой, и объявить, что однобитовый файл с расширением .ghoort есть "сжатие" этого файла. В качестве архиватора использовать просто прогу, генерирующюю сей "архив", а в качестве деархиватора использовать исходный файл с проверкой входа и банальной записью файла. Но кому такие прибамбасы нужны? Если это сжатие, то я - архиепископ!

525. Ку-Ри-Цин, 28.02.2002 17:05
quest, не надо передергивать. Кодирование и сжатие - синонимы (при условии кодирования без потерь). В любой сжимающей программе основой сжатия является поиск одинаковых последовательностей, т.е. поиск закономерностей, которые потом кодируются каким-либо кодом, составляется словарь ну и т.д. Что такое словарь? Это и есть кодирование, пусть частичное кодирование исходного материала, но кодирование, на котором и стоит сжатие. Какая разница откуда берется словарь? Передается вместе с последовательностью или с полки в виде книги?

526. quest, 28.02.2002 17:18
Ку-Ри-Цин
не надо передергивать.

Именно!

Вам, собственно, кто сказал, что кодирование и сжатие - синонимы? Cами догадались?
Действительно, алгоритмы сжатия часто (но отнюдь не всегда) используют методы теории кодирования, но суть сжатия состоит в том, чтобы код+словарь был бы меньше исходных сообщений, в то время, как при кодировании этот вопрос вообще не стоит, ибо предполагается, что словарь кодовых слов есть на обоих концах линии связи.

Кроме всего прочего, теория кодирования (алгебраическая) в основном рассматривает коды увеличивающие размеры передаваемых последовательностей (для защиты от ошибок), а отнюдь не уменьшающие их. Учите матчасть!


527. Ку-Ри-Цин, 28.02.2002 19:28
quest, эти ваши все высказывания всего лишь констатация конкретного практического аспекта. Да, основная потребность такова, ну что? Давай те возьмем ту часть, где выходной код уменьшается.

528. Витька, 28.02.2002 19:40
Ку-Ри-Цин
В любой сжимающей программе основой сжатия является поиск одинаковых ...

Возьмите тривиальный разностный сжиматель звука. И усё. Никаких словарей не надо.
Если Вы чего не понимаете, то не стоит про это вопить.

529. Ку-Ри-Цин, 28.02.2002 20:59
Витька
Фу, как грубо! А что это такое "тривиальный разностный сжиматель звука"?

Добавление от 28-02-2002 21:00:

quest
Сжатие - это частный случай кодирования, следовательно сжатие - это кодирование

530. Витька, 28.02.2002 22:29
Ку-Ри-Цин
Фу, как грубо!

А: "Сжатие - это частный случай кодирования" - это не грубо? IMHO, это идиотизм какой-то.


А что это такое "тривиальный разностный сжиматель звука"?

Вроде ADPCM называется. Короче, данные - плавная последовательность чисел. Вычисляем разности, и видим, что они требуют меньше бит. Ключевое слово - вычисляем. Никакой статистики.

531. Ку-Ри-Цин, 28.02.2002 23:01
Витька, отбрасывание якобы малозначимых бит, это вычисление, кодирование или сжатие?

532. @Matrix, 28.02.2002 23:20
Ку-Ри-Цин
Если размер файла уменьшается, а информация не теряется -- это не сжатие?

533. Ку-Ри-Цин, 01.03.2002 01:51
???

534. Евгений Машеров, 01.03.2002 09:21
Ку-Ри-Цин
Кодирование и сжатие - отнюдь не синонимы. Зачастую коды строятся так, что они увеличивают длину закодированного сообщения - ради повышения достоверности (начиная с тривиального добавления контрольных битов и до...), ради сужения частотной полосы модулированного сигнала (избегая резких изменений сигнала на входе модулятора) или ради недопущения длинных последовательностей нулей (а то слетит синхронизация) и единиц ( сокращая межсимвольное взаимодействие). А если говорить о кодах в узком смысле, как средство сокрытия информации, то они могут расти прибавлением к шифруемому сообщению случайных последовательностей.
В то же время можно ставить задачу сжатия аналоговыми средствами (например, как задачу сужения частотной полосы).
Кроме того, далеко не все алгоритмы сжатия без потерь используют повторение символов. Скажем код Хаффмана (и его предки, от кода Морзе; и потомки, скажем, арифметическое кодирование) используют только неравновероятность отдельных символов.
Витька
Если просто перейти к разностям - это DPCM (ДИКМ), ADPCM (АДИКМ) использует квантование, причем шаг квантования (вообще говоря, переменный) настраивается по сигналу (т.е. это уже сжатие с потерями). А чисто разности (с проходом по ним затем Хаффманом) мы использовали для сжатия электроэнцефалограммы (без потерь).

535. Ку-Ри-Цин, 01.03.2002 16:42
Евгений Машеров
>Кодирование и сжатие - отнюдь не синонимы...

Я же писал уже, сжатие - это частный случай кодирования. Сжатие - это кодирование, а вот кодирование не всегда есть сжатие.

>Зачастую коды строятся так, что они увеличивают длину закодированного сообщения...

И что этот частный случай доказывает? Что не бывает по-другому? Бывает.
В нашей деревне был такой вот случай. Помнится когда мой тесть пригласил каких-то работяг крыть крышу дачи, то в самом начале выяснилось, маловато материала. Я быстренько прикинул, если листы жести укладывать горизонтально, а не вертикально, как хотели делать изначально, то за счет меньшего расхода материала на сгибах его должно вполне хватить и сказал об этом этим самым работягам, на что последовал убийственный аргумент - так никто не делает. У меня естественный вопрос - почему? После длинной паузы опять последовал ответ - так никто не делает. Понятно, больше вопросов не имею

>Кроме того, далеко не все алгоритмы сжатия без потерь используют повторение символов.

Здесь я не совсем корректно выразился. Я не конкретизовал понятие символа, но это не значит любимые 8 бит. Хорошо, давайте так, если у вас любовь к 8 битам - повторение последовательностей исходных 8-битных символов , которым можно присвоить некий идентификатор (уникальный символ). Повторение символов в том или ином смысле есть всегда, на этом основано сжатие. Если все символы уникальны, то как же это можно сжать?

>Скажем код Хаффмана (и его предки, от кода Морзе; и потомки, скажем, арифметическое
>кодирование) используют только неравновероятность отдельных символов

Браво! Браво! В предыдущем высказывании меня опроверг, а в следующем поддержал. Евгений Машеров, вы от книжек с формулами оторвитесь, приподнимитесь над ними и оглянитесь вокруг, а то из-за деревьев леса не видите.

536. Dron007, 01.03.2002 20:04
Повторение символов в том или ином смысле есть всегда, на этом основано сжатие. Если все символы уникальны, то как же это можно сжать?

Очень даже просто. Вот пример. На входе - числа от 1 до N. Элементарный цикл восстановит последовательность. При каком-то не очень большом N размер программы для вывода последовательности станет меньше самой последовательности. Сжатие? Сжатие. И нет никакого повторения.

537. Витька, 01.03.2002 20:18
Поясняю для самых маленьких.

Ку-Ри-Цин
Витька, отбрасывание якобы малозначимых бит, это вычисление, кодирование или сжатие?

Это называется округление. Для всего есть свои названия. К моему примеру это не имеет отношения, поскольку ничего не отбрасывается, и потери информации не происходит. Всё восстанавливается полностью.

Ку-Ри-Цин
Я же писал уже, сжатие - это частный случай кодирования.

Сжатие, это когда нечто уменьшается в размере. Например сжатие пружинки. К кодированию скорее можно отнести общения кота с кошкой (что конечно глупо и смешно), чем сжатие.

Ку-Ри-Цин
После длинной паузы следует ответ - так никто не делает. Теперь понятно.

Также смешно, вмешиваться в работу специалиста, советовать не имея понимания. Я рад, что Вы это поняли.

Ку-Ри-Цин
Повторение символов в том или ином смысле есть всегда, на этом основано сжатие.

Многократное повторение глупости не делает её умнее. Сжимать можно по разному.

Ку-Ри-Цин
Если все символы уникальны, то как же это можно сжать?

Иногда довольно тривиально. Например, если символы расположены в алфавитном порядке.

Добавление от 01-03-2002 20:19:

Евгений Машеров
Если просто перейти к разностям - это DPCM (ДИКМ), ADPCM (АДИКМ) использует квантование,

Вы конечно правы. Но метод настолько прост, что я его использовал ещё до того, как узнал про название. Для моих данных, иногда было выгодно хранить даже не первую, а вторую производную.

538. Ку-Ри-Цин, 01.03.2002 20:22
Dron007, берем Льва Толстого, сажаем его за письменный стол, через пару дней получаем "Войну и Мир". Сжатие? Сжатие в виде Льва Толстого. Лев Толстой выступает как архиватор "Войны и Мира". Если возьмем Шолохова, то получим "Тихий Дон". Еще один архиватор. А если возьмем витька, то нифига не получим. Почему?

539. quest, 01.03.2002 20:26
Ку-Ри-Цин

Их что, закодировали?

540. Ку-Ри-Цин, 01.03.2002 20:32
Нет, они сами довели себя до такого состояния

541. Faizullin Rustam, 01.03.2002 20:39
Интересно вы тут развлекаетесь


Ку-Ри-Цин

Я могу объяснить почему крышу так не делают, целых две причины:
1) чем больше горизонтальных швов тем больше вероятность протекания.
2) если слишком большое расстояние между швами то при сильном ветре листы начинают хлопать

За офтоп извиняюсь

542. Витька, 01.03.2002 20:58
Ку-Ри-Цин
берем Льва Толстого, сажаем ...

Где же Вы его откопаете? Но даже если найдёте, то кто его посадит? Он же памятник. Впрочем, даже когда был живым, то был не в состоянии написать за два дня “Войну и мир” даже с помощью десятка шолоховых.
А от меня Вы действительно нифига не получите. Глупость не лечится.

543. Ку-Ри-Цин, 01.03.2002 21:04
Сам такой


Faizullin Rustam
1) листы кладут в нахлест, так что сомнительный аргумент
2) не проходит, края соединяют не просто в нахлест, их еще подгибают. Если сравнить величину сгиба краев по горизонтали и вертикали, то вертикальный сгиб больше. Фактически крыша кроется этакими составными вертикальными полосами.

544. Faizullin Rustam, 01.03.2002 21:47
Ку-Ри-Цин

Правильно они тебе ответили
Ты бы их переспорил и жил с протекающей крышей
А как делают крыши можешь не объяснять приходилось подрабатывать когда за программирование не платили(да и сейчас вне Москвы на стройке можно больше заработать).

А Лев Толстой сможет заново слово в слово войну и мир написать?

545. Ку-Ри-Цин, 01.03.2002 22:04
Не знаю, не знаю... тут к сожалению замешан человеческий фактор... сейчас я собираюсь отходить в мир иной... до утра... если его встречу, то обязательно спрошу

546. Евгений Машеров, 02.03.2002 21:56
Ку-Ри-Цин
А вот товарищ Прокис, в "библии цифровой связи", определяет кодирование как нечто противоположное сжатию, как процесс, в результате которого длина последовательности символов возрастает (для повышения надежности передачи, для уменьшения межсимвольной интерференции, для обеспечения синхронизации). Поучим мэтра?

547. Ку-Ри-Цин, 03.03.2002 01:22
Однажды стрроителя всю жизнь строящего сараи спросили - а дворец ты можешь построить? Могу! - ответил строитель и построил большой-пребольшой сарай.

Евгений, не будем спорить кто умнее, а кто прокис, давайте обратимся лучше к толковому словарю, который нам сообщает, что

КОДИРОВАТЬ, рую, руешь; анный; сов. и несов., что (спец.).
1) Зашифровать (вывать) при помощи кода. К. секретное донесение.
2) Перевести (водить) информацию из одной кодовой системы в другую.
3) Осуществить (влять) медицинское воздействие или лечебный гипноз с целью предупреждения заболевания или избавления от вредных привычек. К. от ожирения, от алкоголизма, от наркомании, от табакокурения.

Вы уважаемый Евгений Машеров все время ударяетесь в частности, говорите о пункте 1. А вот мне кажется, что следующий пункт 2 является более общим определением и вмещает в себя понятие пункта 1. Наоборот как-то совсем не получается. Под второй пункт попадает также понятие "сжатие". А вот что говорит товарищ Прокис в "библии цифровой связи" по поводу пункта 3?

А теперь внимание! Контрольный вопрос ко всем моим опонентам - почему все кодеки для сжатия речи, видео, музыки называют кодеками (кодерами)?

548. Евгений Машеров, 03.03.2002 18:41
М-да. Ссылаться в технической конференции на толковый словарь. Это ново. Это смело.
Впрочем, не вернуться ли к первоначальной теме?
Еще раз.
1. Универсальный алгоритм, способный сжать любую последовательность, невозможен (доказательство см. выше).
2. Универсальный алгоритм, сжимающий "в среднем", т.е. длина сжатой последовательности в среднем меньше исходной - невозможен. Доказательство немногим сложнее.
3. Реальные алгоритмы сжатия без потерь эффективны потому, что распределение исходных последовательностей - не равновероятно.
4. Действительное продвижение возможно в задаче сжатия с потерями. При этом оно должно быть основано не на "гениальном озарении", а на глубоком проникновении в структуру сжимаемой информации (пример - закон Вебера-Фехнера их физиологии слуха позволил сразу сжать сигнал вдвое, перейдя к альфа- или мю-представлению, а физиология речевых органов позволила создать LPC- кодеки, например GSM). Еще интереснее изучить физиологию восприятия движущихся изображений.
5. Пари уважаемого Владимира Рыбинкина, в случае победы покажет, что вся современная математическая основа теории кодирования невалидна, а также, что он - крут как программист. В случае же проигрыша (что представляется мне почти неизбежным) мы получим одно небольшое разочарование в небывшем чуде и одного нового человека, знающего кое-что о сжатии информации (вариант, что он знает Тайну, но не смог запрограммировать - исключаю, как неинтересный). Поэтому я и интересуюсь нынешним статусом пари.

549. Ку-Ри-Цин, 03.03.2002 19:52
Евгений Машеров
>М-да. Ссылаться в технической конференции на толковый словарь. Это ново. Это смело.

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

>Впрочем, не вернуться ли к первоначальной теме?

Уважаемый Евгений Машеров, не надо юлить, не надо уходить в тину, вы так и не ответили на мой простой вопрос - почему все кодеки для сжатия речи, видео, музыки называют кодеками (кодерами)? Ну что, поучим мэтров?

550. Евгений Машеров, 03.03.2002 20:32
Ку-Ри-Цин
1. Я действительно преподавал. А также реализовывал алгоритмы цифровой обработки. От практического опыта у меня уверенность в своей правоте, а вот от преподавания - неизгладимое желание добиться от студента хотя бы элементарного понимания. Видимо, инструментов не хватает.
2. Отсутствие книг и нежелание искать в Интернете?
Диагноз:
а. Незнание материала.
б. Нежелание его знать.
в. Гиперуверенность в своей правоте.
Как здесь, так и в ветке, в которой Вы открыли тождественность КИХ и БИХ-фильтров...
3. Вы полагаете, что наличие коммерческих названий определяет суть объекта? Мне Вас жаль...

551. Ку-Ри-Цин, 03.03.2002 21:15
>а физиология речевых органов позволила создать LPC- кодеки, например GSM

>Вы полагаете, что наличие коммерческих названий определяет суть объекта? Мне Вас жаль...

как хорошо, что я не был вашим студентом

552. Евгений Машеров, 04.03.2002 09:34
Ку-Ри-Цин
1. То есть что такое LPC Вы не знаете?
2. Да, наверно, приятно. Зато в противном случае Вы что-либо знали бы...

553. Vladimir Rybinkin, 04.03.2002 11:23
Евгений Машеров
цитата:
Ссылаться в технической конференции на толковый словарь. Это ново. Это смело.
Смело - может быть, но не ново. Мне именно его в качестве аргумента как-то приводили .
цитата:
Универсальный алгоритм, способный сжать любую последовательность, невозможен
Непохоже . Мне или сжать надо, или опубликовать идею. Тогда и поговорим .
цитата:
Пари уважаемого Владимира Рыбинкина, в случае победы покажет, что вся современная математическая основа теории кодирования невалидна
Опять же не похоже. Мне (алгоритму, в смысле) плевать на теорию кодирования.
цитата:
вариант, что он знает Тайну
Какой, на фиг, тут могет быть вариант .

554. Евгений Машеров, 04.03.2002 11:58
Vladimir Rybinkin
Ждем-с. Уже недолго-с.

555. quest, 04.03.2002 12:17
Евгений Машеров
Ждем-с. Уже недолго-с.

Угу. Три дня.

Vladimir Rybinkin
Как дела? Чёй-то никаких обновлений на сайте BIT2 уже месяц. Двигается НИР?

556. Alexzander, 04.03.2002 12:59
А каков прогресс?

557. Vladimir Rybinkin, 04.03.2002 12:59
quest
цитата:
Чёй-то никаких обновлений на сайте BIT2 уже месяц. Двигается НИР?
Разве? Я им уши оборву . А НИР ща малек подвигаем - у меня никаких обязательств окромя сжатия сейчас нет...

558. Ку-Ри-Цин, 04.03.2002 16:46
Евгений Машеров
>То есть что такое LPC Вы не знаете?

Ну как вам сказать, немного знаю. Был у меня такой период, 5 лет занимался LPC-кодеками в тогдашней Rockwell Semiconductor System (теперь Rockwell Automation), в том числе породил LPC-кодек с использованием генетических алгоритмов, поэтому было бы интересно послушать вашу версию, почему "коммерческое" название LPC-кодирование (кодек, кодер) применяется повсеместно учеными мужами вместо какого-то другого истинного научного названия известного только вам. Было бы также интересно услышать от вас почему LPC-кодек не является кодеком, почему А/mu-Law кодирование не является кодированием, каким боком закон Вебера-Фехнера относится к A/mu-Law кодированию или давайте лучше так - расскажите о A/mu-Law кодировании с точки зрения закона Вебера-Фехнера.

559. Евгений Машеров, 04.03.2002 23:47
Ку-Ри-Цин
Достаточно простым.
Закон Вебера-Фехнера указывает, что отклик слухового анализатора пропорционален логарифму силы раздражения. Что и позволяет перейти от равномерного квантования к логарифмическому.

560. Ку-Ри-Цин, 05.03.2002 01:22
Евгений Машеров, как бы это помягче сказать... общее представление о законе Вебера-Фехнера вы имеете, но не более. Вы путаете мгновенное значение сигнала с реакций нервной клетки. Максимальная частота импульсов в нервной системе порядка 400-500 Гц, а сигнал (для примера возьмем цифровую телефонию) квантуется с частотой 8000 Гц. В лучшем случае клетка может выработать острые импульсы той же частоты как на входе до 400-500 Гц, но никак не форму входного воздействия. Ну вы... ну вы ... блин... даете! Перепутали нервную клетку с логарифмическим АЦП. Я думал вы действительно что-то знаете, а вы.. В общем нет слов, одни приятные эмоции. Спасибо за приятное времяпровождение

561. Евгений Машеров, 05.03.2002 09:04
Ку-Ри-Цин
Боюсь, что Вы, в свою очередь, путаете реакцию улитки и реакцию нервной системы в целом. Для последней логарифмический закон выполняется с достаточной точностью, во всяком случае, не меньшей, нежели его приближение
a-law или mu-law.

562. Alexzander, 06.03.2002 06:54
Так как прогресс? Я все еще надеюсь!

563. Евгений Машеров, 06.03.2002 09:19
Действительно, нельзя ли организовать репортажи с финиша. Я бы даже заметил - с полного финиша

564. Alexzander, 06.03.2002 09:33
Евгений Машеров
Может действительно случиться "полный финиш", только в чью пользу?

Добавление от 06-03-2002 09:35:

Vladimir Rybinkin
А в случае отрицательного результата, хотелось бы услышать описание причин. Но, надеюсь, этого не будет.

565. Vladimir Rybinkin, 06.03.2002 10:57
Отчепитесь, мужики! 7-го вечером поговорим А описание (в случае проигрыша) я дать обещал .

Даю последний репортаж: если вы заметили, я говорил, что алгоритм программируется довольно просто. А вам не приходило в голову, что я его УЖЕ СДЕЛАЛ?! И что последнее время просто заводил конфу, чтобы врезать 8-го по теоретикам? Со всей дури!

566. Alexus, 06.03.2002 12:51
Vladimir Rybinkin
чтобы врезать 8-го по теоретикам? Со всей дури!
Буду искренне рад, если Вам это удастся, т.к. сам неперевоспитываемый практик

вот тут тогда начнется...

567. Alexzander, 07.03.2002 07:14
Vladimir Rybinkin
Я буду участвовать! (c) слова Ярмольника из к/ф "Человек с Бульвара Капуцинов.

568. quest, 07.03.2002 07:22
Vladimir Rybinkin
чтобы врезать 8-го по теоретикам

8-го поздновато будет

Седни супер-пупер алгоритму на гора!

569. Vladimir Rybinkin, 07.03.2002 09:12
quest
8-го - в самый раз. А седни - на гора!

570. B.A.D., 07.03.2002 11:10
Шайбу -шайбу!

571. Alexzander, 07.03.2002 13:06
Может на сегодня определенное время забить, чтобы наверняка. Пусть все желающие зайдут в эту ветку в это время. Как вам?

572. yuri-the-cloud, 07.03.2002 13:28
Alexzander Ага, заодно сверим часы поточнее, через NTP. И с секундной точностью все дружно кликнем. Глядишь, и конфа упадет

573. Alexzander, 07.03.2002 13:48
yuri-the-cloud
Думаю, администрация не оценит.

Просто мне на дайл-апе пока законнектишься, пока страничку откроешь... а такм ни фига... потом повтор через час, .. через два... Лучше уж сразу часов на 23.00 договориться.
Ау?

574. quest, 07.03.2002 14:13
Лично я сейчас сваливаю коньяк пьянствовать по разным поводам.

А по условиям пари (см. страницу 7 ветки), я жду результата до 8-го числа. То бишь, - до 24.00 включительно сей день.

Vladimir Rybinkin, ау!

575. Vladimir Rybinkin, 07.03.2002 14:41
Какой, на фиг, 23:00? В 22:00 (скорее всего, раньше) я сваливаю. Так что не позже 22:00

576. Alexzander, 07.03.2002 14:43
Ага. Понятненько. Значится до 22.00 нужно сюда заглянуть... ок. Интересно сколько постов появится в течении первых десяти минут после опубликования Vladimir Rybinkin'ом результатов. Держу пари не меньше 30!

577. Пабло, 07.03.2002 14:54
Приветствую!

А если будет ничья? То кто что выиграет?!)))

ЗЫЖ Думается мне что ничья и будет!))))

578. Vladimir Rybinkin, 07.03.2002 15:11
Мне вот интересно было сколько постов появится ДО опубликования

Если ничья - я выиграл . Но ничьей НЕ БУДЕТ!

Добавление от 07-03-2002 17:50:

Ну что, пришла пора расчесться за овец!
Увы, хватило мне только времени - сжать не удалось...

Сначала орг. вопросы
quest, спасибо за прекрасную провокацию, я получил большое удовольствие (к сожалению, далеко не такое большое, на которое я действительно рассчитывал). В том мыле не было адреса - готов понести материальное наказание . Спасибо всем, кто в меня верил (извините, я на самом деле старался, и даже оценивал свои шансы выше 50% - слишком хорошо все начиналось).

Теперь алгоритм. НИР не закрыт, поэтому всего я не скажу - разве что кто-то "убъет" основную идею. Итак, стратегическая идея, на которой базируется мой "спинной алгоритм: Стало быть, известно, что сжать последовательность практически невозможно? И НЕ НАДО!!! Будем решать совсем другую задачу: преобразование исходной последовательности в такую, которую можно будет сжать. Например, если мы к каждому байту исходника добавим 0xDD, затем инвертируем третий бит, затем у битов 2-3 заменим сочетания 01 <-> 11, затем в младших тетрадах заменим 8 <-> 9, 12 <-> 14, а в старших - 3 <-> 14, затем все байты 0x00 <-> 0xE6 - соотношение нулей и единиц в файле изменится с 4194305/4194303 до 4199135/4189473, т.е. до 0.23% (реальный алгоритм дает еще больше).

После того, как с целым файлом уже ничего не удается сделать, переходим к половинке (при этом "расщепить" можно тоже разными способами - бит налево, бит направо, 16 байт налево, ...). Таким образом, задача становится переборной, причем, "оценочной функции", в общем-то, все равно, что произойдет: появится ли неоднородность по 5-му биту, увеличится дисперсия тетрад, ... Годится практически все, лишь бы увеличивалась неоднородность. Практика показала, что ЧТО-ТО, да происходит - есть выбор. Вопрос в том, хватит ли полученной неоднородности для какого-либо "классического" алгоритма сжатия, и сколько это будет "стоить". Опыты показали, что при удаче там может лежать где-то 28 килобайт (дальше "оптимизм" я не исследовал).

Основная бяка, которая мне мешалась - необходимость, помимо универсальной служебной информации (обнаружились некоторые "популярные" приемы, которые неплохо бы вогнать в тело архиватора - для меня ВСЕ есть объем ) иметь еще и набор функций обработки (ну хотя бы работы с файлами). Это, увы, немало. Короче, примерно 2-3 килобайта, которые я могу "надергать" из полученных блоков, с потрохами съедаются дополнительным кодом (дешевле простое копирование).

Было много еще интересного (я понял фразу "больше всего информации содержится в белом шуме" ), в частности, почему-то не сработала одна очень красивая идея, и я так и не понял, почему. Короче, на днях я буду писать предварительный отчет по НИР - обмозгуем получше.

Такие дела. Теперь можете кусать . Где теория что запрещает? Если что непонятно - кое что расскажу подробнее. Но уже после праздников.

Всех женщин с праздником! Хотел посвятить вам свою победу...

579. Евгений Машеров, 07.03.2002 19:14
Присоединяюсь к поздравлению женщин, но...
В общем, я не удивлен, скорее успокоен. Фокус в том, что преобразования даннйо последовательности в сжимаемую существуют - но вероятность найти их приближается к нулю с ростом длины сжимаемой последовательности. Испытывая множество "улучшающих преобразований", можно найти подходящее - но для того, чтобы указать, какое из преобразований применимо - нужно сколько-то бит, причем больше, чем мы выигрываем. Есть возможность везения - но вероятность такова, что лучше продать квартиру и поехать в Монте-Карло, поставив все на № - вероятность выигрыша в этом случае порядков на десять выше...
quest
Когда банкет с минералкой под сухарики?
Пиво со всадником Валерием Сибирианом я уже пил

580. Витька, 07.03.2002 19:18
Vladimir Rybinkin
соотношение нулей и единиц в файле изменится с 4194305/4194303 до 4199135/4189473, т.е. до 0.23% (реальный алгоритм дает еще больше).

Сколько больше? Очень интересно!!!

581. B.A.D., 07.03.2002 20:34
А ну вот раз такие дела и откровения, может нам глубоко уважаемый QUEST, победивший в пари , раскажет (хоть примерно) как он генерировал свою великолепную последовательность.

Alexander

Интересно сколько постов появится в течении первых десяти минут после опубликования Vladimir Rybinkin'ом результатов. Держу пари не меньше 30!


Насчет постов не знаю, но тостов у нас на работе уже больше.

582. Ку-Ри-Цин, 07.03.2002 20:46
Vladimir Rybinkin
>Теперь можете кусать . Где теория что запрещает?

Могу предложить свой алгоритм. БЕСПЛАТНО! Сначала просеиваем все нолики и единички. Нолики налево, единички - направо. А теперь все это сжимаем. Ну как?

Vladimir Rybinkin, я ТАК в тебя ВЕРИЛ, а ты... Ты бы хоть на кошках сначала потренировался, что ли. Взял бы для начала какую-нить битмапину, как в JPEGе, сделал бы DCT, нашел остаток, сжал бы чем нибудь его без потерь. В итоге получил бы пожатую без потерь картинку, а потом на ту же самую (исходную) картинку напустил бы свору своих алгоритмов, чтобы они смогли хотя бы повторить или даже (!) превзойти сжатие выше упомянутого за счет нахождения скрытых закономерностей (а-ля скрытые Марковские модели). Тут было бы о чем поговорить.


583. @Matrix, 07.03.2002 22:49
Vladimir Rybinkin
Результат был достаточно предсказуем...

А энтузиазм -- это здорово! Говорю безо всякой иронии -- правда здорово. Владимир, если ты однажды направишь свою энергию в какое-нибудь другое, пусть сложное, но хотя бы теоретически возможное русло, у тебя может многое получиться!

Также, пользуясь случаем, передаю мои поздравления всем женщинам! А также победителю пари

584. Пабло, 08.03.2002 11:48
Приветьствую!

Вот тут заитересованным по поводу криптования и, немного, денег!)))

http://www.proext.com/news/?id=5168

ЗЫЖ Щисливаго программинья!)))

585. KAE, 08.03.2002 13:19
Пабло
Глянул линк.
Скачал файло, кторое они дают.
Не понял одного, они что не дают описания алгоритма шифрования, но хотят чтобы его проверили на устойчивость?

И где они гарантируют, что последовательность, предоставляемая ими, вообще имеет какую-либо закономерность
То есть нигде не увидел упоминания характера кодируемой информации.

Странная очень проверка

586. TVGr, 09.03.2002 01:27
Ну почему, короткое описание есть вот здесь http://www.virtual-media.com/docs/TheBodacionServer.pdf (Бодасьон -- название-то какое рульное!). Только оно какое-то странное, и собственно математику не объясняют.
В-общем, если quest предлагал его последовательность представить меньшим количеством байт, эти ребята предлагают найти функцию, которой эти последовательности генерируются. Имхо, дело невозможное.

587. KAE, 09.03.2002 03:22
А самое главное, непонятно каким образом относится к криптостойкости алгоритма.

588. Vladimir Rybinkin, 11.03.2002 10:37
Евгений Машеров
цитата:
вероятность найти их приближается к нулю с ростом длины сжимаемой последовательности
Здрасьте! Я же показал - как. Мне бы чем больше, тем лучше.
цитата:
но вероятность такова, что лучше продать квартиру и поехать в Монте-Карло, поставив все на № - вероятность выигрыша в этом случае порядков на десять выше...
Это, интересно, почему? И как посчитать количественную оценку? Выигрыш есть всегда. Махонький (очень махонький) - но ВСЕГДА!

Витька

цитата:
Сколько больше? Очень интересно!!!
А чего интересного? Это же НА ВСЕМ ФАЙЛЕ. В любой момент можно перейти на следующий уровень. У меня было 0.27%. Можно и больше, но уже идут совсем копейки, дальше перешел на 0.5М.

Ку-Ри-Цин

цитата:
Нолики налево, единички - направо. А теперь все это сжимаем. Ну как?
Классно. Я бы так и сделал, но кто-то уже предупреждал: надо не только сжать, но и разжать потом .
цитата:
я ТАК в тебя ВЕРИЛ, а ты
Да я и сам верил
цитата:
Ты бы хоть на кошках сначала потренировался, что ли
Я об этом писал...

@Matrix

цитата:
Владимир, если ты однажды направишь свою энергию
Нет. Лет 20 назад я уже направил. Правда, в теоретически невозможное. Но получилось .

quest
Куда баксы слать?

589. Пабло, 11.03.2002 11:28
Vladimir Rybinkin
цитата:

вероятность найти их приближается к нулю с ростом длины сжимаемой последовательности


Здрасьте! Я же показал - как. Мне бы чем больше, тем лучше.

Ну а если делать не самораспаковывающийся архив, а обычный файл-}запакованный файл!)))
KAE

Хе...чтото видать линк-то убрали!))))

590. @Matrix, 11.03.2002 12:13
Vladimir Rybinkin

Нет. Лет 20 назад я уже направил. Правда, в теоретически невозможное. Но получилось

??? Прям даже интересно... Что же такое теоретически невозможное удалось сделать? Желательно с доказательством теоретической невозможности оного...

591. KAE, 11.03.2002 12:23
Пабло
В смысле ?

592. Vladimir Rybinkin, 11.03.2002 13:05
Пабло
цитата:
Ну а если делать не самораспаковывающийся архив, а обычный файл
Тогда можно ужать до нуля - уже писали

@Matrix

цитата:
Что же такое теоретически невозможное удалось сделать? Желательно с доказательством теоретической невозможности оного...
Да графы, графы . http://www.2bit.ru/sm.htm . А доказательства я не знаю - инфа от одного американского профессора. Он сказал, где там Дейкстра закопался - так я тот участок проскочил сослепу, и не заметил .

593. Пабло, 11.03.2002 15:10
Vladimir Rybinkin

цитата:

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

Тогда можно ужать до нуля - уже писали

до нуля чего - процентов?!

KAE

Ну я имел ввиду линк свой там тока описание и ничего более...!?

594. quest, 12.03.2002 16:53
Vladimir Rybinkin and All

Комментарии и объяснения будут чуть позже, а пока интрига: моя супер-пупер последовательность не сжимаема Vladimir-ом Rybinkin-ным, а вообще-то её можно сжать...

595. KAE, 12.03.2002 16:58
quest
Наверняка какие-нибудь переводы в другие пространства присутствуют

Биективные отображения, изоморфизмы и т.п.

Излагай уж, изверг

596. quest, 12.03.2002 17:00
KAE
Наверняка какие-нибудь переводы в другие пространства присутствуют

Никаких переводов - голая теория, кою Vladimir Rybinkin не приемлеть...

597. KAE, 12.03.2002 17:05
quest
И долго измываЦЦа будешь ?

598. quest, 12.03.2002 17:16
KAE
И долго измываЦЦа будешь ?

Угу. Пока нету времени на писанину.

Вот можно проверить: http://web.referent.ru/nvi/forum/files/Quest1/1.exe

Здесь сжатие не на 1%, а до менее 1%!

599. KAE, 12.03.2002 17:34
quest
А слабо с прилинкованным .bpl выложить ?
А то не пускается

600. quest, 12.03.2002 17:41
KAE

А могешь сам сотворить еxe-шник, вот супер-пупер код:

код:

program Rybinkin;
{$APPTYPE CONSOLE}
const
mask:array[0..7] of byte=(127,191,223,239,247,251,253,254);
prim:integer=30103623;
curr:integer=773497;
type
pmap=array[0..1048575] of byte;
pm=^pmap;
var
map: pm;
f: file of pmap;
i,j: integer;
begin
getmem(map,1048576);
FillChar(map^,1048576,255);
for i:=1 to 8388608 do
begin
if curr>8388607 then
begin
j:=(curr and 8388607) shr 3;
map^[j]:=map^[j] and mask[curr and 7];
end;
curr:=curr shl 1;
if curr>16777215 then
curr:=curr xor prim;
end;
Assign(f,'1');
Rewrite(f);
Write(f,map^);
Close(f);
end.

Здесь Delphi, но можно легко на любом языке наваять...

601. KAE, 12.03.2002 19:13
quest
Хехе...
Все-таки это был random

А не боялся, что как-нить подберет алгоритм ?

602. quest, 12.03.2002 19:26
KAE
Все-таки это был random

Да нет, не random, а как уже говорилось, - некая функция. В данном случае: вторая половина "функции расстояния" 24-го порядка.

А не боялся, что как-нить подберет алгоритм ?

Дык, в пари участвовал тока Vladimir Rybinkin, а он теории не любит, посему вероятность его "выхода" на эту функцию была очень мала (это нужно было повыудить из моих постов намёки, а потом обратится к спецам в ФАПСИ или в ИКСИ). Но, ить, и этого мало: константики prim и curr подобрать нужно было! А их возможных сочетаний многовато...

603. KAE, 12.03.2002 19:33
quest
А как время будет механизмы по которым она работает объяснить сможешь ?

А то код то понять я могу, а вот ПОЧЕМУ оно генерит такое распределение не очень

604. quest, 12.03.2002 19:35
KAE
А как время будет механизмы по которым она работает объяснить сможешь ?

Всенепременно!

605. AlexNek, 13.03.2002 03:00
quest
с интересом следил за развитием событий. В связи с оригинальной концовкой, есть вопрос, а какова вероятность нахождения подобных фунций в произвольном файле.
Ну а результат, без объяснений, нам простым смертным, непонять. Хоть пару англицких терминов бы добавили
Пока что я просто заменил цифры, так вроде есть больше над чем размышлять.
код:

program Rybinkin;
{$APPTYPE CONSOLE}
const
// prime index 127=0,12,17,21,x,23,x,x; 257=24
mask:array[0..7] of byte=(127,191,223,239,13*19{247},251,11*23{253},2*127{254});
prim:integer=30103623; //$01cb5847
curr:integer=773497; //$000bcd79
type
pmap=array[0..$000fffff] of byte;
pm=^pmap;
var
map: pm;
f: file of pmap;
i,j: integer;
begin
getmem(map,$00100000);
FillChar(map^,$00100000,255);
for i:=1 to $00800000 do
begin
if curr>$007fffff then
begin
j:=(curr and $007fffff) shr 3;
map^[j]:=map^[j] and mask[curr and 7];
end;
curr:=curr shl 1;
if curr>$00ffffff then
curr:=curr xor prim;
end;
Assign(f,'1');
Rewrite(f);
Write(f,map^);
Close(f);
end.


606. Vladimir Rybinkin, 13.03.2002 10:10
quest
Ну я торчу!
Адрес?

607. KAE, 13.03.2002 10:14
Vladimir Rybinkin
Тусняк по поводу устраиваться не будет ?

608. Vladimir Rybinkin, 13.03.2002 10:41
KAE
Не ко мне вопрос .

609. Евгений Машеров, 13.03.2002 10:41
quest
Похоже на кусочек шифровальной программы. С аллюзиями на ГОСТ или DES.
Признаться, я ждал попросту какой-нибудь текст (не "ВР - козел", но что-то повеселее...) , сжатый стандартным шифровальным алгоритмом.

610. KAE, 13.03.2002 12:07
Евгений Машеров
Мне IPES/IDEA немного напомнил
Но это просто потому, что я его реализовывал на курсовике

611. AlexNek, 13.03.2002 13:27
KAE
А Вы не поясните тогда какая длина ключа у приведенного примера уж не 64 бита случаем.

612. KAE, 13.03.2002 13:45
AlexNek
В примере quest ?
Именно 64. А что ?

Кстати, лучше на "ты"

613. quest, 13.03.2002 14:23
Евгений Машеров
Признаться, я ждал попросту какой-нибудь текст (не "ВР - козел", но что-то повеселее...) , сжатый стандартным шифровальным алгоритмом.

Я-ж открытым текстом говорил, что дам функцию...

To All
Итак, некоторые пояснения.

Возможность сжать данные напрямую зависит от наличия в этих данных каких-либо закономерностей. Надеюсь, в результате месячных экспериментов, в этом убедился даже мой оппонент.

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

Вот на этом и был построен мой вариант.

Преамбула.
Есть такое понятие, как линейные реккурентные последовательности. В данном случае - двоичные. Это просто последовательности битов, образованные следующим образом: берется произвольные (не все равные 0) n битов, а каждый следующий определяется суммой (по модулю 2, есстно) некоторых (фиксированных) из n предыдущих. Простейшая конструкция, имеющая богатую теорию и массу применений.
Конечно, такая последовательность будет циклической. Но размер цикла зависит от того, какие именно из "предыдущих" n битов складываются. Если эти биты соответствуют коэффициентам двоичного многочлена над полем P2, неприводимого и содержащим среди своих корней первообразный корень n-й степени, то длина цикла будет ровно 2^n-1. Такие многочлены принято называть примитивными, а соответствующие последовательности - линейными реккурентными последоватедьностями максимальной длины(LRSM).
C LRSM связана, так называемая "функция расстояния" - по начальной комбинации n битов и заданной комбинации n битов, определяющая номер "места" заданной комбинации в LRSM с заданным началом. Именно эта функция претендует на роль функции максимальной Шенноновской сложности.
Еще 30 лет назад я это узнал от одного из самых крупных в мире специалистов по криптографии, доктора ф-м наук М.М.Глухова, обучаясь на факультете криптографии тогдашней Высшей Школы КГБ.
Ну а функции максимальной по Шеннону сложности, априори не имеют в своем представлении каких-либо закономерностей...
Функцию расстояния можно задать просто приписав первой половине n-мерных битовых векторов LRSM n-го порядка 0, а второй - 1. Что и было сделано.

Получение супер-пупер последовательности.
Взят двоичный примитивный многочлен 24-й степени, коэффициенты которого представлены константой prim. Взят начальный 24-х битовый вектор, представленный константой curr. Далее генерируется LRSM последовательность и первым 2^23 векторам этой последовательности присваивается значение 0. При генерации используется алгоритм, описанный Д.Кнутом во 2-м томе "Искусства программирования на ЭВМ" (стр. 44-46). Он генерирует LRSM в "обратном" порядке, поэтому "функция расстояния" получается инвертированной. Вторую половину полученной функции расстояния, заданной таблично, я и выдал.
Ввиду уверенности в её сложности, я был спокоен отностительно отсутствия статистических закономерностей в её представлении, а подобрать константы curr (их могёт быть 2^24-1) и prim (а их ровно Fi(2^24-1)/24, где Fi - функция Эйлера) за месяц весьма затруднительно. Вот и вся премудрость...

Именно кой-какие знания теории дали мне возможность безбоязненно ставить $1000 супротив $10.

Практика, практикой, а знать теорию тоже невредно!

614. KAE, 13.03.2002 14:45
Конечно, такая последовательность будет циклической. Но размер цикла зависит от того, какие именно из "предыдущих" n битов складываются. Если эти биты соответствуют коэффициентам двоичного многочлена над полем P2, неприводимого и содержащим среди своих корней первообразный корень n-й степени, то длина цикла будет ровно 2^n-1. Такие многочлены принято называть примитивными, а соответствующие последовательности - линейными реккурентными последоватедьностями максимальной длины(LRSM).
Еще с универа любил такие фразы
Интересно какой процент людей ПОЛНОСТЬЮ понимает ее значени
Я понял урывками

615. Vladimir Rybinkin, 13.03.2002 17:44
quest
цитата:
Надеюсь, в результате месячных экспериментов, в этом убедился даже мой оппонент
Нет. Я же писал - не искал я закономерности .
цитата:
Практика, практикой, а знать теорию тоже невредно!
Думаю, для ТАКИХ задач - вредно . Я говорил, почему...

616. Alexzander, 14.03.2002 13:42
Vladimir Rybinkin
Чтож, не получилось так, но, мне кажется, можно достичь результата и по-другому. Я пытался придумать некий механизм, но результат вышел неважнецкий. Однако идея все еще не опровергнута коренным образом. А именно:

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

Обратное действие выполняется с помощью обратной формулы, которая берет часть параметров из архива, а часть из служебной информации (которую естественно хранить нет надобности). Результат вычислений соответственно должен дать исходник.

Неужели нельзя сделать такой алгоритм? Неужели не сработает?

617. KAE, 14.03.2002 13:50
Alexzander
Ты хочешь чтобы архив распаковывался только на одной архитектуре/ОС/конфигурации ?
Имхо, не вставляет.

618. Alexzander, 14.03.2002 14:02
KAE
Э-э-э... Так и речь шла не об универсальном архиваторе (тогда действительно теория работает на все 200% и результат не достичь), а о решении конкретной задачи - сжать одну (!) несжимаемую последовательность. Вобщем неважно, ели прога не будет сжимать ничего иного.

619. Newrow, 14.03.2002 19:41
Хоть одна задача, хоть универсальная, энтропия не победима. Нельзя сжать сообщение до размера, который меньше энтропии этого сообщения (сжатие без потерь). И эту энтропию не изничтожишь. Это даже физики знают. Не говоря уже про программеров.
Вот про сжатие с потерями - это интересная тема. Фрактальное там сжатие, вейвлеты. Но, боюсь, судя по тому что здесь написано, мало кто в этом разбирается.

620. AleUri, 14.03.2002 19:53
Newrow ой, боюсь физики, разбираются в глубоко теоретических моделях энтропии, ой как далека она от программисткой практики

621. Newrow, 14.03.2002 20:17
Дык я и говорю "даже".
А про программистскую практику и энтропию мне рассказывать не надо, сам программировал сжатие (с потерями) на вейвлетах. Так вот там модифицированный Хаффман применялся и без энтропии никуда.
Кстати, получалось сжатие лучше jpeg'а при одинаковом (визуальном) качестве.

622. AleUri, 14.03.2002 20:23
не боюсь сжатие с потерями здешнюю публику не заинтерисует
а вейфлеты, это то что пробвигает небезизвестная LuraTech?

623. Евгений Машеров, 14.03.2002 23:29
Newrow
Лучше, но свои глюки получаются (скажем, при сжатии менее 0.1 бита на пиксел - 24 цвета!) у очаровательной негритянки на тестовом снимке вырастает борода

Добавление от 14-03-2002 23:31:

AleUri
А что, есть идеи? В частности, применительно к сжатию видео?

624. quest, 15.03.2002 11:50
То All

Сообщаю всем заинтересованным, что Vladimir Rybinkin полностью (и даже, ИМХО, - с лихвой) исполнил свои обязательства!

Считаю его настоящим джентельменом, об чём и сообщаю публике!

625. Vladimir Rybinkin, 15.03.2002 12:00
Alexzander
Вряд ли. Помимо всего прочего, такие участки будут стоить дороже из-за накладных расходов. Я, когда писал, что "есть еще один алгоритм", имел в виду алгоритм "кусочной" оптимизации. В какой-то степени он пересекается с идеей использования некоторых "готовых" кусков файла. Но, ИМХО, алгоритм использования этих кусков обязан быть привязан либо к сжимаемому файлу, либо к архиватору.

Newrow

цитата:
И эту энтропию не изничтожишь
Не знаю, не знаю... Ведь и Хаффмен, и LZW - алгоритмы, которые сразу приходят в голову. И файла с "неизнечтожаемой" энтропией до сих пор никто не знает... Не чисто здесь с теорией, не имеет права она работать на 200% ! И вообще, нам не нужно ждать закономерностей от файла. Сделать их своими руками - наша задача.

quest
Исполнить я действительно исполнил. Но не ожидал, что так быстро станет об этом известно .

626. Eugene_E, 15.03.2002 12:07
Как передать 1 Гиг псевдослучайных данных ?
- передать формулу генератора псевдослуч. последовательности и начальное значение.
Но как решить эту задачу в общем случае ?
Может быть разбивать боьшой массив на части и ПОДБИРАТЬ параметры/нач.знач. генераторов для каждой части.
Подозреваю что части будут весьма небольшими..

627. Newrow, 16.03.2002 15:33
цитата:
Vladimir Rybinkin:
И файла с "неизнечтожаемой" энтропией до сих пор никто не знает... Не чисто здесь с теорией, не имеет права она работать на 200%


А как же zip или rar архив, который уже больше не сожмешь?
А теорему Шеннона, значит, на котрую Haffman опирался, когда свой алгоритм придумывал, как чисто теоретическую забыть?

628. Vladimir Rybinkin, 16.03.2002 15:55
Newrow
цитата:
А как же zip или rar архив, который уже больше не сожмешь?
Кто сказал? Почему не сожмешь? ZIP даже в этой ветке кто-то жал...
цитата:
А теорему Шеннона, значит, на котрую Haffman опирался, когда свой алгоритм придумывал, как чисто теоретическую забыть?
Хрен знает, на что там Хаффмен опирался, но я этот алгоритм придумал где-то часа за полтора, не больше (вместе с формулами оценки, можно ли сжать данный кусок, и если да, то на сколько, и каким "словарем" при этом лучше пользоваться). Это просто то, что первым в голову лезет (после RLE, конечно - тот алгоритм приходит одновременно с вопросом "А КАК сжимать"?

Да и LZ... Цитирую себя из этой же ветки:
Я вообще не сжимал. Я анализировал данные в БД. Сжатие получилось само собой (раза в полтора).
Так вот, не САМО СОБОЙ. Просто тот мой алгоритм обработки, как оказалось, очень тесно переплетается с LZW. Так я там даже задачу СЖАТЬ не ставил!

И что получается? Первое, что приходит в голову, и есть существующие алгоритмы сжатия? И это вершина человеческой мысли??? ЧУШЬ!


URL: http://forum.ixbt.com/topic.cgi?id=40:515