powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Об одном способе ресурсоёмкого сжатия данных
25 сообщений из 60, страница 1 из 3
Об одном способе ресурсоёмкого сжатия данных
    #39578904
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть данные Д - битовая последовательность длины N, - которые требуется сжать, и стандартный ГПСЧ.

1. Находим битовую последовательность минимальной длины M, которая ни разу не встречается в Д. Назовём её "флаг" (Ф).

2. В цикле перебираем значения seed (s), используемые для инициации ГПСЧ: ГПСЧ(s).

3. Посредством ГПСЧ(s) генерируем случайную последовательность (СП) той же длины N.

4. Сравниваем побитово Д и СП. Все совпадающие - в Д и СП - последовательности битов, длиной больше М заменяем (в Д !) на флаг Ф. При этом следим, чтобы "на стыках" вставляемого флага и соседних исходных битов Д не возникали "паразитные флаги".

5. В результате замен получается битовая последовательность Д' длины N' (меньше N !).

6. Продолжаем перебор (цикл в п.2) до тех пор, пока не найдём значение seed, дающее удовлетворяющую нас степень сжатия К= N/N'

7. Архивный файл представляет собой структуру из трёх элементов: Ф, s, Д' .
______________________________

PS. Как вариант, в качестве флага Ф можно использовать вообще любую последовательность битов, желательно редко встречающуюся в Д, поскольку "естественные" вхождения Ф в Д нужно будет маркировать посредством, например, удвоения: Ф -> ФФ. (И потом нужно будет следить, чтобы дополнительные ФФ не возникали в процессе сжатия.)
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39578935
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... кстати, файл, сжатый с применением одной пары параметров (Ф1, s1), можно дальше пытаться сжимать с каким то другим Ф2, подбирая какое-то другое значение s2. И так пока не надоест.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39579556
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван FXS,

Если ГПСЧ качественный, т.е. распределение битов равновероятно, оцените количество циклов для достижения нужной степени сжатия. Задачка не выглядит очень уж сложной и, я думаю, ответ вам не понравится.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39579565
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задачу можно свести к вырожденной заменив гпсч на последовательность целых чисел.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39579571
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это обычный алгоритм LZW, только с ошибками и случайно-генеруемым словарем :fail:
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39579608
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scf,

по секрету, этот топик вынесен в автономную тему из темы http://www.sql.ru/forum/1281135/dispersiya-dliny-arhiva -- где как раз обсуждалось сильное (желательно) сжатие с расходованием большого (в пределе - не ограниченного) количества ресурсов.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39579610
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl,

Сюрприз: словарь не нужно запихивать в архивный файл!
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39579852
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точно такое же первое впеч, как у Siemargl - типа ЛЗВ, но только словарь заменён алгоритмом. Т.е. как бы , отталкиваясь от идей ЛЗВ, строим нечто из класса "сжатие посредством алгоритма". В связи с этим (и учитывая корни этой темы) есть мнение, что 1 из 2-х: либо нужно уметь восстанавливать исходник, либо нужна воспроизводимость кодирования данной Д. Во всяк я так понимаю термин pow. В случае же ГСПЧ да ещё стандартного я сомневаюсь в воспроизводимости. По моему мнению, при одном и том же СИДЕ СП будут разные (а лень проверять).
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39579867
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98,

вы, наверное, полагаете, что если повторно вызвать ГПСЧ с тем же аргументом (seed-ом), то он возвратит другой результат ...
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39579884
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван FXS, пример кода будет? Желательно со статистикой.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39579890
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, в смысле "пример кода"?
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39579962
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну чтож... пятница продолжается. Давайте порассуждаем.
Иван FXSЕсть данные Д - битовая последовательность длины N, - которые требуется сжать, и стандартный ГПСЧ.

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

1. Английский текст. Или произвольный текст.
2. Поток случайных бит наподобие /dev/urandom
3. Смесь вышеперечисленного.
4. Еще какой-то вариант

1. Находим битовую последовательность минимальной длины M, которая ни разу не встречается в Д. Назовём её "флаг" (Ф).

Я-бы предложил назвать его "escape" ('\')

2. В цикле перебираем значения seed (s), используемые для инициации ГПСЧ: ГПСЧ(s).

Нам нужно хотя-бы формально доказать что длина s в битах будет меньше чем длина random().
К примеру для встроенного в ОС линейного конгруэнтного ГПСЧ, аргумент и функция будут
по 32 бита. И функция - суть биекция.

Если мы вводим в задачу ГПСЧ более высокой или плавающей разрядности то надо
обосновать что он является ГПСЧ. Либо он НЕ-ГПСЧ. Либо не биекция. Не биекция - значит
не покрываем ОДЗ. И т.д.

3. Посредством ГПСЧ(s) генерируем случайную последовательность (СП) той же длины N.

4. Сравниваем побитово Д и СП. Все совпадающие - в Д и СП - последовательности битов, длиной больше М заменяем (в Д !) на флаг Ф. При этом следим, чтобы "на стыках" вставляемого флага и соседних исходных битов Д не возникали "паразитные флаги".

5. В результате замен получается битовая последовательность Д' длины N' (меньше N !).

Последний поинт - слабое место в рассуждениях.

Надо как-то подкрепить рассуждения. Ато получится очередной кодер Бабушкина.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39579979
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНам нужно хотя-бы формально доказать что длина s в битах будет меньше чем длина random().
нам совершенно это не нужно, поскольку пользоваться мы собираемся не "атомарным" значением, возвращаемым random-мом, а (как и написано далее) "случайной последовательность ... длины N". Для построения которой, естественно, нам придётся вызывать random последовательно некоторое количество раз.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39579981
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... причём вся эта (псевдо-) "случайная последовательность длины N" алгоритмически порождается одним (исходным) значением seed.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39579992
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПоследний поинт - слабое место в рассуждениях.
совершенно не слабое, поскольку мы делаем только те замены, которые укорачивают длину строки.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39580019
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что там по первому вопросу?
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39580027
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, да хоть "3. Смесь вышеперечисленного".

При том что вы ведь в курсе той, параллельной темы, и знаете, что тема возникла в контексте сжатия данных блокчейна криптовалюты (типа Биткойна)...
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39580043
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван FXS, ok.

Нужен образец исходных данных. И ваш proof-of-concept.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39580127
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНужен образец исходных данных
как я понимаю, вот здесь https://rutracker.org/forum/viewtopic.php?t=5444025 файлы с расширением .ldb (типа 3806072.ldb) размером ~2Мб -- это блоки блокчейна в натуральном виде ...

С proof-of-concept заметно сложнее ... его нет, есть только чистая идея. В статусе гипотезы, к тому же.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39580130
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда предлагаю ее называть гипотезой СРСД (по названию топика).
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39580543
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98Точно такое же первое впеч, как у Siemargl - типа ЛЗВ, но только словарь заменён алгоритмом. Т.е. как бы , отталкиваясь от идей ЛЗВ, строим нечто из класса "сжатие посредством алгоритма". В связи с этим (и учитывая корни этой темы) есть мнение, что 1 из 2-х: либо нужно уметь восстанавливать исходник, либо нужна воспроизводимость кодирования данной Д. Во всяк я так понимаю термин pow. В случае же ГСПЧ да ещё стандартного я сомневаюсь в воспроизводимости. По моему мнению, при одном и том же СИДЕ СП будут разные (а лень проверять).не ну почему. псевдорандом же.
при одном и том же seed, генерирует одну и ту же последовательность.


это слегка модифицированный алгоритм под названием "мартышка, клацая на пишущей машинке, за очень большое время напишет войну и мир".
Дает возможность топикстартеру посетовать, что не то что алгоритм плохой, просто процессоры у нас слабые :)
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39580553
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это ближе к Библиотеке Борхеса.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39580634
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S.G."мартышка, клацая на пишущей машинке, за очень большое время напишет войну и мир" точно! Я думал об этом, но как-то не нашлось повода упомянуть это трудолюбивое животное.
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39580810
Иван FXS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S.G."мартышка, клацая на пишущей машинкеа майнинговые фермы -- это разве не триллиарды кремниевых мартышек, клацающих на пишущих машинках?
...
Рейтинг: 0 / 0
Об одном способе ресурсоёмкого сжатия данных
    #39581669
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иван FXSЕсть данные Д - битовая последовательность длины N, - которые требуется сжать, и стандартный ГПСЧ.

1. Находим битовую последовательность минимальной длины M, которая ни разу не встречается в Д. Назовём её "флаг" (Ф).

2. В цикле перебираем значения seed (s), используемые для инициации ГПСЧ: ГПСЧ(s).

3. Посредством ГПСЧ(s) генерируем случайную последовательность (СП) той же длины N.

4. Сравниваем побитово Д и СП. Все совпадающие - в Д и СП - последовательности битов, длиной больше М заменяем (в Д !) на флаг Ф. При этом следим, чтобы "на стыках" вставляемого флага и соседних исходных битов Д не возникали "паразитные флаги".

5. В результате замен получается битовая последовательность Д' длины N' (меньше N !).

6. Продолжаем перебор (цикл в п.2) до тех пор, пока не найдём значение seed, дающее удовлетворяющую нас степень сжатия К= N/N'

7. Архивный файл представляет собой структуру из трёх элементов: Ф, s, Д' .
______________________________

PS. Как вариант, в качестве флага Ф можно использовать вообще любую последовательность битов, желательно редко встречающуюся в Д, поскольку "естественные" вхождения Ф в Д нужно будет маркировать посредством, например, удвоения: Ф -> ФФ. (И потом нужно будет следить, чтобы дополнительные ФФ не возникали в процессе сжатия.)

А обратно как распаковать? Вот прямо с коротким примером можете?
Что значит "последовательности битов, длиной больше М заменяем ..."? Насколько больше? На фиксированное число битов? Если заменять последовательности произвольной длины больше М, то как вы потом исходную длину узнаете?
Вот допустим у вас на выходе Ф=101 и Д'=1011101, ну и s какой-то, как вы это распакуете? Вы же даже N не планируете сохранять.
...
Рейтинг: 0 / 0
25 сообщений из 60, страница 1 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Об одном способе ресурсоёмкого сжатия данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]