Jump to content

Алгоритм следующий

(Перенаправлено из алгоритма SEQUITUR )

Sequitur (или алгоритм Невилла-Мэннинга-Виттена ) — рекурсивный алгоритм, разработанный Крейгом Невилл-Мэннингом и Яном Х. Виттеном в 1997 году. [1] который выводит иерархическую структуру ( контекстно-свободную грамматику ) из последовательности дискретных символов. Алгоритм работает в линейном пространстве и времени. Его можно использовать в для сжатия данных . программных приложениях [2]

Ограничения

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

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

S→abcab,

алгоритм выдаст

S→AcA, A→ab.

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

Уникальность диграммы

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

Всякий раз, когда из последовательности сканируется новый символ, к нему добавляется последний отсканированный символ, образуя новую биграмму . Если эта биграмма была сформирована ранее, то создается новое правило для замены обоих вхождений биграмм.Таким образом, это гарантирует, что ни одна биграмма не встречается в грамматике более одного раза. Например, в последовательности S→abaaba , когда уже отсканированы первые четыре символа, образуются биграммы ab, ba, aa . При чтении пятого символа формируется новая биграмма «ab», которая уже существует. Следовательно, оба экземпляра «ab» заменяются новым правилом (скажем, A) S. в Теперь грамматика становится S→AaAa, A→ab , и процесс продолжается до тех пор, пока в грамматике не останется повторяющихся биграмм.

Утилита правил

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

Это ограничение гарантирует, что все правила используются более одного раза в правых частях всех продукций грамматики, т. е. если правило встречается только один раз, его следует удалить из грамматики и заменить его символами из которым он создан. Например, в приведенном выше примере, если сканировать последний символ и применить уникальность биграммы для «Aa», то грамматика выдаст: S→BB, A→ab, B→Aa . Теперь правило «A» встречается в грамматике только один раз в B→Aa . Следовательно, A удаляется, и, наконец, грамматика становится

S→BB, B→aba .

Это ограничение помогает уменьшить количество правил в грамматике.

Краткое описание метода

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

Алгоритм работает путем сканирования последовательности терминальных символов и построения списка всех прочитанных пар символов. Всякий раз, когда обнаруживается второе вхождение пары, два вхождения в последовательности заменяются изобретенным нетерминальным символом , список пар символов корректируется в соответствии с новой последовательностью, и сканирование продолжается. Если нетерминальный символ пары используется только в определении только что созданного символа, используемый символ заменяется его определением, а символ удаляется из определенных нетерминальных символов. После завершения сканирования преобразованную последовательность можно интерпретировать как правило верхнего уровня в грамматике исходной последовательности. Определения правил для содержащихся в нем нетерминальных символов можно найти в списке пар символов. Эти определения правил сами могут содержать дополнительные нетерминальные символы, определения правил которых также можно прочитать из любого места в списке пар символов. [3]

См. также

[ редактировать ]
  1. ^ Невилл-Мэннинг, CG ; Виттен, Айленд (1997). «Идентификация иерархической структуры в последовательностях: алгоритм линейного времени». arXiv : cs/9709102 . Бибкод : 1997cs........9102N . {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  2. ^ Невилл-Мэннинг, CG ; Виттен, Айленд (1997). «Линейное время, инкрементальный вывод иерархии для сжатия». Труды ДКК '97. Конференция по сжатию данных . стр. 3–11. CiteSeerX   10.1.1.30.2305 . дои : 10.1109/DCC.1997.581951 . ISBN  978-0-8186-7761-8 . S2CID   14324301 .
  3. ^ GrammarViz 2.0 - Sequitur и параллельные реализации Sequitur на Java, обнаружение шаблонов временных рядов на основе Sequitur
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0f5c453728ac7e2d5cf7b5f127c3d62e__1708361160
URL1:https://arc.ask3.ru/arc/aa/0f/2e/0f5c453728ac7e2d5cf7b5f127c3d62e.html
Заголовок, (Title) документа по адресу, URL1:
Sequitur algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)