Jump to content

Сложность Лемпеля – Зива

(Перенаправлено со сложности Лемпеля-Зива )

Сложность Лемпеля -Зива — это мера, которая впервые была представлена ​​в статье «О сложности конечных последовательностей» (IEEE Trans. On IT-22,1 1976) двумя израильскими учеными-компьютерщиками, Авраамом Лемпелем и Якобом Зивом . Эта мера сложности связана с колмогоровской сложностью , но единственная функция, которую она использует, — это рекурсивная копия (т. е. неглубокая копия).

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

Сложность Лемпеля-Зива можно использовать для измерения повторяемости двоичных последовательностей и текста, например текстов песен или прозы. Также было показано, что оценки фрактальной размерности реальных данных коррелируют со сложностью Лемпеля – Зива. [1] [2]

Пусть S — двоичная последовательность длины n, для которой нам нужно вычислить сложность Лемпеля–Зива, обозначенную C(S). Последовательность читается слева.

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

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

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

Официальные объяснения

[ редактировать ]

Метод, предложенный Лемпелем и Зивом, использует три понятия: воспроизводимость, воспроизводимость и исчерпывающая история последовательности, которую мы здесь определили.

Обозначения

[ редактировать ]

Пусть S — двоичная последовательность длины n (т. е. символы, принимающие значение 0 или 1). Позволять , с , быть подсловом от индекса i до индекса j (если пустая строка). Длина n S обозначается и последовательность называется фиксированным префиксом если:

Воспроизводимость и технологичность

[ редактировать ]
Пример воспроизводимости Нажмите здесь

С одной стороны, последовательность S длины n называется воспроизводимой по ее префиксу S(1,j), если S(j+1,n) является подсловом S(1,j). Это обозначается S(1,j)→S.

Иными словами, S воспроизводимо из своего префикса S(1,j), если остальная часть последовательности S(j+1,n) представляет собой не что иное, как копию другого подслова (начиная с индекса i < j+ 1) из S(1,n−1).

Чтобы доказать, что последовательность S может быть воспроизведена одним из ее префиксов S(1,j), вам нужно показать, что:

Пример продуктивности Нажмите здесь

С другой стороны, воспроизводимость определяется из воспроизводимости: последовательность S воспроизводима из ее префикса S(1,j), если S(1,n−1) воспроизводима из S(1,j). Это обозначается S(1,j)⇒S. Иными словами, S(j+1,n−1) должно быть копией другого подслова S(1,n-2). Последний символ S может быть новым символом (но не может быть), что, возможно, приведет к созданию нового подслова (отсюда и термин «производимость»).

Сравнение воспроизводимости и производительности Нажмите здесь

Исчерпывающая история и сложность

[ редактировать ]

По определению продуктивности пустая строка Λ=S(1,0) ⇒ S(1,1). Таким образом, с помощью рекурсивного производственного процесса на шаге i мы имеем S(1,hi) ⇒ S(1,hi+1), поэтому мы можем построить S из его префиксов. А поскольку S(1,i) ⇒ S(1,i+1) (при hi+1 =hi + 1) всегда верно, этот процесс производства S занимает не более n=l(S) шагов. Пусть м, , — количество шагов, необходимых для этого процесса производства S. S можно записать в разложенной форме, называемой историей S, и обозначать H(S), определяемую следующим образом:

Сравнение воспроизводимости и производительности Нажмите здесь

Компонент S, Hi(S), называется исчерпывающим, если S(1,hi) — самая длинная последовательность, порождаемая S(1,hi−1) (т. е. S(1,hi−1) ⇒ S( 1,hi)) но так, чтобы S(1,hi−1) не производило S(1,hi) (обозначено). Индекс p, который позволяет иметь самую длинную продукцию, называется указателем.

История S называется исчерпывающей, если все ее компоненты являются исчерпывающими, за исключением, возможно, последнего. Из определения можно показать, что любая последовательность S имеет только одну исчерпывающую историю, и эта история — это история с наименьшим числом компонентов из всех возможных историй S. Наконец, количество компонентов этой уникальной исчерпывающей истории S называется сложностью Лемпеля–Зива S.

Алгоритм

[ редактировать ]

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

Формальное описание этого метода дается следующим алгоритмом :

  • i = p − 1, p — указатель (см. выше)
  • u — длина текущего префикса
  • v — длина текущего компонента для текущего указателя p
  • vmax — конечная длина, используемая для текущего компонента (наибольшая из всех возможных указателей p)
  • C — сложность Лемпеля–Зива, увеличиваемая итеративно.
// S is a binary sequence of size n
i := 0
C := 1
u := 1
v := 1
vmax := v
while u + v <= n do
   if S[i + v] = S[u + v] then
      v := v + 1
   else
      vmax := max(v, vmax)
      i := i + 1
      if i = u then  // all the pointers have been treated
         C := C + 1
         u := u + vmax
         v := 1
         i := 0
         vmax := v
      else
         v := 1
      end if
   end if
end while
if v != 1 then
    C := C+1
end if

См. также

[ редактировать ]
  • LZ77 и LZ78 — алгоритмы сжатия, использующие аналогичную идею поиска совпадающих подстрок.

Примечания и ссылки

[ редактировать ]
  1. ^ Бернс, Т.; Раджан, Р. (2015). «Бернс и Раджан (2015) Объединение показателей сложности данных ЭЭГ: умножение показателей раскрывает ранее скрытую информацию. F1000Research. 4:137» . F1000Исследования . 4 : 137. doi : 10.12688/f1000research.6590.1 . ПМЦ   4648221 . ПМИД   26594331 .
  2. ^ Бернс, Т.; Раджан, Р. (2019). «Математический подход к корреляции объективных спектрально-временных особенностей нелингвистических звуков с их субъективным восприятием людьми» . Границы в неврологии . 13 : 794. дои : 10.3389/fnins.2019.00794 . ПМЦ   6685481 . ПМИД   31417350 .

Библиография

[ редактировать ]
  • Авраам Лемпель и Джейкоб Зив, «О сложности конечных последовательностей», IEEE Trans. по теории информации, январь 1976 г., с. 75–81, том. 22, № 1

Приложение

[ редактировать ]
  • « Становятся ли поп-тексты более повторяющимися? » Колин Моррис — это сообщение в блоге, объясняющее, как использовать сложность Лемпеля-Зива для измерения повторяемости текстов песен (с доступным исходным кодом) .
  • Бернс и Раджан (2015) Объединение показателей сложности данных ЭЭГ: умножение показателей раскрывает ранее скрытую информацию. F1000Исследования. 4:137. [1] (с доступным общедоступным кодом MATLAB).
  • Бернс и Раджан (2019) Математический подход к корреляции объективных спектрально-временных характеристик нелингвистических звуков с их субъективным восприятием людьми. Границы неврологии 13:794. [2] (с доступным общедоступным кодом MATLAB).
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b1272694398435f16449da8ccbff3b8a__1708624260
URL1:https://arc.ask3.ru/arc/aa/b1/8a/b1272694398435f16449da8ccbff3b8a.html
Заголовок, (Title) документа по адресу, URL1:
Lempel–Ziv complexity - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)