Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Есть данные Д - битовая последовательность длины N, - которые требуется сжать, и стандартный ГПСЧ. 1. Находим битовую последовательность минимальной длины M, которая ни разу не встречается в Д. Назовём её "флаг" (Ф). 2. В цикле перебираем значения seed (s), используемые для инициации ГПСЧ: ГПСЧ(s). 3. Посредством ГПСЧ(s) генерируем случайную последовательность (СП) той же длины N. 4. Сравниваем побитово Д и СП. Все совпадающие - в Д и СП - последовательности битов, длиной больше М заменяем (в Д !) на флаг Ф. При этом следим, чтобы "на стыках" вставляемого флага и соседних исходных битов Д не возникали "паразитные флаги". 5. В результате замен получается битовая последовательность Д' длины N' (меньше N !). 6. Продолжаем перебор (цикл в п.2) до тех пор, пока не найдём значение seed, дающее удовлетворяющую нас степень сжатия К= N/N' 7. Архивный файл представляет собой структуру из трёх элементов: Ф, s, Д' . ______________________________ PS. Как вариант, в качестве флага Ф можно использовать вообще любую последовательность битов, желательно редко встречающуюся в Д, поскольку "естественные" вхождения Ф в Д нужно будет маркировать посредством, например, удвоения: Ф -> ФФ. (И потом нужно будет следить, чтобы дополнительные ФФ не возникали в процессе сжатия.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 12:36 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
... кстати, файл, сжатый с применением одной пары параметров (Ф1, s1), можно дальше пытаться сжимать с каким то другим Ф2, подбирая какое-то другое значение s2. И так пока не надоест. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2018, 13:26 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Иван FXS, Если ГПСЧ качественный, т.е. распределение битов равновероятно, оцените количество циклов для достижения нужной степени сжатия. Задачка не выглядит очень уж сложной и, я думаю, ответ вам не понравится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 10:00 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Задачу можно свести к вырожденной заменив гпсч на последовательность целых чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 10:35 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Это обычный алгоритм LZW, только с ошибками и случайно-генеруемым словарем :fail: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 10:50 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
scf, по секрету, этот топик вынесен в автономную тему из темы http://www.sql.ru/forum/1281135/dispersiya-dliny-arhiva -- где как раз обсуждалось сильное (желательно) сжатие с расходованием большого (в пределе - не ограниченного) количества ресурсов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 12:25 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Siemargl, Сюрприз: словарь не нужно запихивать в архивный файл! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 12:26 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Точно такое же первое впеч, как у Siemargl - типа ЛЗВ, но только словарь заменён алгоритмом. Т.е. как бы , отталкиваясь от идей ЛЗВ, строим нечто из класса "сжатие посредством алгоритма". В связи с этим (и учитывая корни этой темы) есть мнение, что 1 из 2-х: либо нужно уметь восстанавливать исходник, либо нужна воспроизводимость кодирования данной Д. Во всяк я так понимаю термин pow. В случае же ГСПЧ да ещё стандартного я сомневаюсь в воспроизводимости. По моему мнению, при одном и том же СИДЕ СП будут разные (а лень проверять). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 19:12 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
exp98, вы, наверное, полагаете, что если повторно вызвать ГПСЧ с тем же аргументом (seed-ом), то он возвратит другой результат ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 19:38 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Иван FXS, пример кода будет? Желательно со статистикой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 20:10 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Dima T, в смысле "пример кода"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2018, 20:30 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Ну чтож... пятница продолжается. Давайте порассуждаем. Иван 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 !). Последний поинт - слабое место в рассуждениях. Надо как-то подкрепить рассуждения. Ато получится очередной кодер Бабушкина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2018, 00:56 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
maytonНам нужно хотя-бы формально доказать что длина s в битах будет меньше чем длина random(). нам совершенно это не нужно, поскольку пользоваться мы собираемся не "атомарным" значением, возвращаемым random-мом, а (как и написано далее) "случайной последовательность ... длины N". Для построения которой, естественно, нам придётся вызывать random последовательно некоторое количество раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2018, 09:31 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
... причём вся эта (псевдо-) "случайная последовательность длины N" алгоритмически порождается одним (исходным) значением seed. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2018, 09:33 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
maytonПоследний поинт - слабое место в рассуждениях. совершенно не слабое, поскольку мы делаем только те замены, которые укорачивают длину строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2018, 10:10 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
А что там по первому вопросу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2018, 12:35 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
mayton, да хоть "3. Смесь вышеперечисленного". При том что вы ведь в курсе той, параллельной темы, и знаете, что тема возникла в контексте сжатия данных блокчейна криптовалюты (типа Биткойна)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2018, 12:51 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Иван FXS, ok. Нужен образец исходных данных. И ваш proof-of-concept. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2018, 14:08 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
maytonНужен образец исходных данных как я понимаю, вот здесь https://rutracker.org/forum/viewtopic.php?t=5444025 файлы с расширением .ldb (типа 3806072.ldb) размером ~2Мб -- это блоки блокчейна в натуральном виде ... С proof-of-concept заметно сложнее ... его нет, есть только чистая идея. В статусе гипотезы, к тому же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2018, 18:58 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Тогда предлагаю ее называть гипотезой СРСД (по названию топика). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2018, 19:08 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
exp98Точно такое же первое впеч, как у Siemargl - типа ЛЗВ, но только словарь заменён алгоритмом. Т.е. как бы , отталкиваясь от идей ЛЗВ, строим нечто из класса "сжатие посредством алгоритма". В связи с этим (и учитывая корни этой темы) есть мнение, что 1 из 2-х: либо нужно уметь восстанавливать исходник, либо нужна воспроизводимость кодирования данной Д. Во всяк я так понимаю термин pow. В случае же ГСПЧ да ещё стандартного я сомневаюсь в воспроизводимости. По моему мнению, при одном и том же СИДЕ СП будут разные (а лень проверять).не ну почему. псевдорандом же. при одном и том же seed, генерирует одну и ту же последовательность. это слегка модифицированный алгоритм под названием "мартышка, клацая на пишущей машинке, за очень большое время напишет войну и мир". Дает возможность топикстартеру посетовать, что не то что алгоритм плохой, просто процессоры у нас слабые :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2018, 14:23 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Это ближе к Библиотеке Борхеса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2018, 14:51 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
S.G."мартышка, клацая на пишущей машинке, за очень большое время напишет войну и мир" точно! Я думал об этом, но как-то не нашлось повода упомянуть это трудолюбивое животное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2018, 18:55 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
S.G."мартышка, клацая на пишущей машинкеа майнинговые фермы -- это разве не триллиарды кремниевых мартышек, клацающих на пишущих машинках? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 08:19 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Иван 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 не планируете сохранять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 12:48 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Barlone, да, длину каждого заменяемого куска нужно будет вписывать в результирующий файл. Что несколько снизит степень сжатия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 13:13 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Ну вы хоть какие-то оценки пробовали делать? Вот какая вероятность найти хотя бы одну совпадающую последовательность битов длины M в двух последовательностях длины N, одна из которых случайная? Приблизительно (N-M)/(2^M). Не сожмется у вас ничего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 13:30 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Да, с первой попытки вряд ли сожмётся. Потому в заголовок и вынесено слово "ресурсоёмкий". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 13:41 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Формула, которую вы написали -- это не "хотя бы одну совпадающую последовательность", а "КОНКРЕТНУЮ совпадающую последовательность (хотя бы один раз)". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 13:43 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Иван FXS1. Находим битовую последовательность минимальной длины M, которая ни разу не встречается в Д. Назовём её "флаг" (Ф). 2. В цикле перебираем значения seed (s), используемые для инициации ГПСЧ: ГПСЧ(s). 3. Посредством ГПСЧ(s) генерируем случайную последовательность (СП) той же длины N. 4. Сравниваем побитово Д и СП. Все совпадающие - в Д и СП - последовательности битов, длиной больше М заменяем (в Д !) на флаг Ф. При этом следим, чтобы "на стыках" вставляемого флага и соседних исходных битов Д не возникали "паразитные флаги". ... Я вот что подумал - текст, как один из видов сжимаемых данных, не очень хорошо подходит для такого сжатия: 1. ГПСЧ старается генерить последовательность разных чисел, т.е. повторы достаточно редки. А у нас идут повторы букв и слогов. 2. ГПСЧ выдает значения из всего заданного диапазона, а в тексте используется только часть. ИМХО таким алгоритмом лучше всего будет белый шум сжиматься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 13:46 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 13:51 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
BarloneНу вы хоть какие-то оценки пробовали делать? Вот какая вероятность найти хотя бы одну совпадающую последовательность битов длины M в двух последовательностях длины N, одна из которых случайная? Приблизительно (N-M)/(2^M). Не сожмется у вас ничего. +1 Немного по-другому рассуждаю: ГСПЧ должен генерить последовательность всех возможных вариантов комбинаций по M байт или M*8 бит, Т.е. всего 2^(M*8). Таким образом для инициализации ГСПЧ потребуется значение размером M*8 бит. Плюс надо указывать размер сколько байт прочитать. В итоге имеем "архив" размером больше оригинала. Я понимаю что могут попасться последовательности длиннее М, но это редкий случай и им можно пренебречь. Поэтому считаю что "архив" почти всегда будет размером больше оригинала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 14:08 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Dima T, не могу понять, что вы написали. Зачем вообще скакать -- в рассуждении и изложении - с битов на байты и обратно? "ГПСЧ должен генерить" ... (псевдо-)случайную последовательность битов указанной длины. Всё, больше ничего от него не требуется. (Да, seed нужно будет тоже записать в создаваемый архив, я знаю.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 14:23 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Иван FXSDima T, не могу понять, что вы написали. Зачем вообще скакать -- в рассуждении и изложении - с битов на байты и обратно? Незачем, полет мысли так шел, но сути это не меняет :) Иван FXS"ГПСЧ должен генерить" ... (псевдо-)случайную последовательность битов указанной длины. Всё, больше ничего от него не требуется. Я к тому что для инициализации ГПСЧ, который может выдать нужную последовательность в M-бит, потребуется не менее M-бит. Это в лучшем случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 14:42 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Еще раз, кратко, в битах: Нам надо M бит найти. Чтобы точно нашлось последовательность должна содержать 2^M комбинаций, т.е. все комбинации из M бит. Следовательно чтобы сохранить адрес нужной комбинации в последовательности (или инициализировать ГПСЧ) нам потребуется минимум М бит. Вывод: ничего не сожмется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 14:52 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Dima T, вы утверждаете, что предложенный метод не позволит ни разу сжать входную строку ни на один одинёшенек битик, пока мы не переберём всё(!) множество битовых строк длины М? Я готов принять это утверждение как гипотезу, но доказательства его пока не вижу ... (При том, что предложенный метод сжатия тоже не доказан, то есть гипотетичен ...) Давайте начнём с того, что среди "всего множества битовых строк длины М" присутствует просто сама строка Д, и на каком шаге она нам попадётся -- непредсказуемо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 14:53 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Dima T, а, сорри, я тут точно запутался в обозначениях длин (N и М) ... но и вы, кажется, тоже: что значит, например, ваше Dima TНам надо M бит найти? Мы сравниваем две строки и, если находим локальное совпадение, то у него есть длина (которую я обозначил М). У строк "11111111111111111111111111111111" и "00011111000000000000000000000000" - есть совдадение с М=5 начиная с 4-й позиции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 15:01 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
(ой, что-то я совсем забыл исходные обозначения ... далеко уже уехал.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 15:03 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Иван FXSДа, с первой попытки вряд ли сожмётся. Потому в заголовок и вынесено слово "ресурсоёмкий".Ну да. Если под "ресурсоемкий" понимать "за триллион лет что-нибудь найдем", тогда конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 15:12 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
То, что я написал сегодня*, проистекает из этой (описанной в этом топике) задачки следующим образом. 1. Нам нужно сжать строку S (длины N). 2. Мы берём псевдослучайную строку Z (той же длины N) и проверяем, не поможет ли она нам сделать это (п.1). 3. В этом топике я описал конкретный способ такого сжатия. 4. А сегодня (в *) я говорю: давайте просто перекодируем строку S через строку Z в строку R. И попробуем сжать полученную строку R каким угодно архиватором. 5. Если получилось -- бинго! Если нет -- возвращаемся в п. 2. _____________________ * http://www.sql.ru/forum/1282108/ob-odnom-paradokse-informacionnoy-entropii ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 15:16 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Иван FXSDima T, а, сорри, я тут точно запутался в обозначениях длин (N и М) ... но и вы, кажется, тоже: Есть такое, но я тебя понимаю :) Иван FXSчто значит, например, ваше Dima TНам надо M бит найти? Мы сравниваем две строки и, если находим локальное совпадение, то у него есть длина (которую я обозначил М). У строк "11111111111111111111111111111111" и "00011111000000000000000000000000" - есть совдадение с М=5 начиная с 4-й позиции. Ты рассматриваешь редкий частный случай, когда есть совпадение. Я рассматриваю вариант что в последовательности есть все комбинации для М=5. Т.к. если они не все, то запись будет еще неэффективнее, т.к. придется использовать более короткие подстроки. Давай чуть упростим задачу: есть строка М бит и какая-то последовательность. Без разницы откуда она берется (ГПСЧ, массив и т.д.). Чтобы случайная строка размером М гарантированно присутствовала в последовательности, необходимо последовательность размером 2^М строк, т.к. всего возможно 2^М комбинаций по М бит. Следовательно наша последовательность должна содержать все возможные комбинации. Для указания нужной комбинации надо переменную размером М бит. Или другими словами: чтобы идентифицировать нужную комбинацию из М бит надо хранить М бит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 15:24 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
А то что ты думаешь что в последовательности найдется чудесное место где за искомой строкой в М бит будет стоять строка, которую ты будешь искать на следующем шаге, то тут ты сильно заблуждаешься, т.к. вероятность такого события почти нулевая. Вывод: хоть сколько переборов делай, но в итоге "архив" будет больше исходного файла. За исключением некоторых частных случаев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 15:34 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Dima TДавай чуть упростим задачу это мне кажется, или вы в самом деле (пока) обсуждаете только один (служебный) пункт -- выбор "флага" (для конкретной входной строки)? Просто я перечитал (наконец) свои собственные обозначения в задаче. М - это длина флага. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 15:45 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
BarloneИван FXSДа, с первой попытки вряд ли сожмётся. Потому в заголовок и вынесено слово "ресурсоёмкий".Ну да. Если под "ресурсоемкий" понимать "за триллион лет что-нибудь найдем", тогда конечно."триллион", маловато, имхо. всего-то 10 в степени 12 нулей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 15:49 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Иван FXSDima TДавай чуть упростим задачу это мне кажется, или вы в самом деле (пока) обсуждаете только один (служебный) пункт -- выбор "флага" (для конкретной входной строки)? Просто я перечитал (наконец) свои собственные обозначения в задаче. М - это длина флага. Это только кажется. У тебя же на каждой итерации какая-то одна конкретная строка (или флаг) конкретной длины М бит. По моим рассуждениям на каждой итерации будет записано не менее М бит. И не влияет что на разных итерациях у М разные значения. Алгоритм не рабочий. Не будет он жать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:02 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Dima Tна каждой итерации какая-то одна конкретная ... флаг)нет, флаг выбирается один раз -- для исходной строки. Если она: "101010111001110101011111100111001111111111", то флаг "000" и точка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:09 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Иван FXSDima Tна каждой итерации какая-то одна конкретная ... флаг)нет, флаг выбирается один раз -- для исходной строки. Если она: "101010111001110101011111100111001111111111", то флаг "000" и точка. Я не совсем понял суть флага. Он для чего? Объясняю как понял: есть ГПСЧ и данные, т.е. то что сжимаем. В результате данные надо привести к такому виду: Код: plaintext где seed i инициализация ГПСЧ len i сколько бит прочитать из ГПСЧ В итоге ищем результат, имеющий наименьшую длину. Правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:20 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Понял про флаг. Ты немного другим путем пошел. Имеем Данные. Придумываем флаг чтобы не было внутри данных. Подбираем: подстроку данных (М бит) и seed, так чтобы ГПСЧ(seed) выдавал эти М бит. Заменяем подстроку на {флаг, seed, М} в том случае если они меньше M, т.е. получаем пожатые Данные. Правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:31 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
нет. Если исходная строка - Код: plaintext Если случайная строка, внезапно, получилась Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:34 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Dima TЗаменяем подстроку на {флаг, seed, М} в том случае если они меньше M, т.е. получаем пожатые Данные. Если так, то не найдется таких комбинаций, т.к. для хранения seed потребуется места столько же сколько занимает исходная подстрока, это я выше доказал. За исключением редких частных случаев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:38 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Иван FXSнет. Если исходная строка - Код: plaintext Если случайная строка, внезапно, получилась Код: plaintext Код: plaintext А где seed для инициализации ГПСЧ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:43 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Dima T, тоже нужно будет передавать, это уже написано - в п.7 исходного поста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:47 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Dima Tдля хранения seed потребуется места столько же сколько занимает исходная подстрока, это я выше доказал я это ваше доказательство не вкурил, извините. Что за "исходная под -строка"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:53 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Иван FXSDima T, тоже нужно будет передавать, это уже написано - в п.7 исходного поста. В случае если повторов подстроки будет найдено 2 и более, то нахождение пожатого варианта становится более вероятно, но размер пожатого будет меньше на какие-то единицы бит. И я придумал как эту задачу порешать за один проход всех вариантов seed :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:54 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Иван FXSDima Tдля хранения seed потребуется места столько же сколько занимает исходная подстрока, это я выше доказал я это ваше доказательство не вкурил, извините. Что за "исходная под -строка"? Например чтобы нашлось 1111 (это исходная подстрока), т.е. 4 бита ГПСЧ должен иметь минимум 2^4 вариантов seed, поэтому чтобы записать конкретное значение seed надо будет 4 бита. Хотя для твоего алгоритма доказательство не совсем корректно, т.к. найти надо какой-нибудь один из всего множества, т.е. вероятность выше, но чувствую что не намного, осталось придумать как это обосновать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 17:06 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Dima T, "Например чтобы нашлось 1111 (это исходная подстрока)" ... в одной конкретной позиции ... "ГПСЧ должен иметь минимум 2^4 вариантов seed" -- но нам совершенно не обязательно, чтобы нашлось именно "1111" и именно в этой позиции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 17:11 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Иван FXS-- но нам совершенно не обязательно, чтобы нашлось именно "1111" и именно в этой позиции. Верно, я потому и написал "доказательство не совсем корректно". Надо отталкиваться от другого: какой макс.длины подстрока наиболее вероятно найдется? Думаю М бит, где М такое что 2^M меньше всех возможных комбинаций seed. Потому что ГПСЧ может выдать больше всего различных комбинаций по М бит. Дальше надо посчитать как-то вероятность получения совпадения M+1 бит, M+2 и т.д. Не соображу как, но чувствую что каждый доп.бит уменьшает вероятность вдвое, т.е. сэкономить пару байт это уже достаточно редкий случай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 17:24 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
SiemarglЭто обычный алгоритм LZW, только с ошибками и случайно-генеруемым словарем :fail: только вы то ли не заметили, то ли решили умолчать о том, что "генерируемый словарь" означает, что словарь не класть в выходной файл (увеличивая его размер), как это делается в LZW. ("С ошибками" я не понял, поэтому отнестись не могу.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2018, 15:18 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Иван FXSсловарь не нужно класть в выходной файл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2018, 15:22 |
|
||
|
Об одном способе ресурсоёмкого сжатия данных
|
|||
|---|---|---|---|
|
#18+
Сейчас, почти через две недели, я бы по-другому сформулировал концепцию сжатия (гипотетическую, конечно, поскольку осуществимость её не доказана). А именно, я бы заменил "флаг" (который непонятно-какой-длины) на "цепную адресацию": Есть данные Д - битовая строка длины N, - которую требуется сжать, и стандартный ГПСЧ. 1. В цикле перебираем значения seed (s), используемые для инициации ГПСЧ: ГПСЧ(s). 2. Записываем s в начало выходного файла. 3. Посредством ГПСЧ(s) генерируем случайную последовательность (СП) той же длины N. 4. Устанавливаем "счётчик цепной адресации" в ноль: А=0. 5. Сравнивая побитово Д и СП, движемся вдоль них обеих до тех пор, пока не находим в них (по "цепному адресу" А) одинаковую подстроку (П) длиной М. 6. Если используемая нами нотация записи целых чисел позволят записать эти два числа (А и М) короче, чем М битов, то записываем их в начало выходного файла. И записываем в его конец очередную порцию несжатых битов - те, что шли до П (то есть подстроку П "выбрасываем", не пишем в выходной файл). (6.1. Кстати, мы можем постановить, что с подстроками короче М0 связываться принципиально не следует; тогда записывать нужно не М, а разницу М-М0, что чуточку выгоднее.) 7. Если условие, описанное в п. 6, выполнено, переходим на п.4; если не выполнено -- переходим на п.5. Дальнейшее сканирование строк -- в любом случае -- продолжается с первого бита после подстроки П. 8. Дойдя до конца строки Д, оцениваем полученный вариант сжатия: если он лучше всех предыдущих, сохраняем его, если нет -- забываем. И переходим к п.1 . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2018, 16:49 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1340187]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
165ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
87ms |
get tp. blocked users: |
1ms |
| others: | 9ms |
| total: | 299ms |

| 0 / 0 |
