Детальная информация

Название: Разработка приложения для реализации алгоритма вычисления паттернов в строковых последовательностях: выпускная квалификационная работа бакалавра: направление 09.03.02 «Информационные системы и технологии» ; образовательная программа 09.03.02_02 «Информационные системы и технологии»
Авторы: Уракова Марина Владимировна
Научный руководитель: Кузнецова Лидия Валерьевна
Организация: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности
Выходные сведения: Санкт-Петербург, 2023
Коллекция: Выпускные квалификационные работы; Общая коллекция
Тематика: строковые последовательности; частные паттерны; алгоритмы; алгоритм Бойера-Мура; алгоритм Кнута-Морриса-Пратта; strings; particular patterns; algorithms; boyer-moore algorithm; knuth-morris-pratt algorithm
Тип документа: Выпускная квалификационная работа бакалавра
Тип файла: PDF
Язык: Русский
Уровень высшего образования: Бакалавриат
Код специальности ФГОС: 09.03.02
Группа специальностей ФГОС: 090000 - Информатика и вычислительная техника
DOI: 10.18720/SPBPU/3/2023/vr/vr23-6198
Права доступа: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Ключ записи: ru\spstu\vkr\26450

Разрешенные действия:

Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети Действие 'Загрузить' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети

Группа: Анонимные пользователи

Сеть: Интернет

Аннотация

Тема выпускной квалификационной работы: «Разработка приложения для реализации алгоритмов вычисления паттернов в строковых последовательностях».Целью работы является разработка приложения для реализации и последующего сравнения алгоритмов вычисления частных паттернов в строковых последовательностях.Предметом исследования являются базовые алгоритмы вычисления паттернов в строковых последовательностях. Первым является алгоритм Кнута-Морриса-Пратта, вторым – алгоритм Бойера-Мура.Задачи, решаемые в ходе исследования:1.      Изучение основных видов и свойств строковых последовательностей, паттернов и алгоритмов.2.      Анализ принципов работы и реализация наиболее популярных алгоритмов вычисления паттернов в строковых последовательностях.3.      Выбор критериев сравнения эффективности выбранных алгоритмов.4.      Разработка приложения для реализации и последующего сравнения алгоритмов.5.      Тестирование алгоритмов на различных входных данных и анализ полученных результатов.В ходе работы были исследованы принципы работы и способы реализации выбранных алгоритмов.В результате выполнения работы разработано веб-приложение для сравнения работы выбранных алгоритмов, была продемонстрирована их эффективность при работе с текстами различного объема и разных алфавитов.

The topic of the final qualification work: "Development of an application for the implementation of algorithms for calculating patterns in string sequences."The aim of the work is to develop an application for comparing algorithms for computing private patterns in string sequences.The subject of the study is the basic algorithms for calculating patterns in string sequences - the Knuth-Morris-Pratt algorithm and the Boyer-Moore algorithm.Tasks to be solved in the course of the study:1. Studying the main types and properties of string sequences, patterns and algorithms.2. Analysis of the principles of operation and implementation of the most popular algorithms for calculating patterns in string sequences.3. Choice of criteria for comparing the efficiency of the selected algorithms.4. Development of an application for the implementation of the comparison of algorithms;5. Testing algorithms on various input data and analyzing the results;In the course of the work, the principles of operation and methods for implementing the Knuth-Morris-Pratt algorithm and the Boyer-Moore algorithm were investigated.As a result of the work, a web application was developed to compare the operation of the selected algorithms, and their effectiveness was demonstrated when working with texts of various sizes and different alphabets.

Права на использование объекта хранения

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все Прочитать Печать Загрузить
Интернет Авторизованные пользователи СПбПУ Прочитать Печать Загрузить
-> Интернет Анонимные пользователи

Оглавление

  • Определения, обозначения и сокращения
  • Введение
  • 1 Строковые последовательности и алгоритмы
    • 1.1 Строковые последовательности и их свойства
      • Определение 1.1. Строковая последовательность – это набор элементов, которые удовлетворяют правилам 0-5 [9, c. 20].
    • 1.2 Линейные строковые последовательности
      • Определение 1.2. Линейными строковыми последовательностями на алфавите А называются элементы множества А+. Элементы множества А* называются конечными линейными строковыми последовательностями на алфавите A [9, c. 24].
      • Определение 1.3. Строка х, имеющая длину n, и строка у, имеющая длину m равны только вслучае, когда n = m и выполняется равенство x[i] = y[i] для всех і = 1, ..., n [3, c. 26].
      • Определение 1.4. Гранью b строки x называется любой собственный префикс этой строки, равный суффиксу х [9, c.27].
      • x[1.. β] = x[n – β + 1..n]. (1.1)
      • x[i] = x[i + p]. (1.2)
      • x = ,𝑢-,𝑟..𝑢', (1.3)
      • x = ur. (1.4)
      • Определение 1.5. Пусть строковая последовательность х = x[1..n] имест минимальный период р* и, соответственно. r* = n/p* и x[1..p*]. Тогда декомпозиция
      • x = ur*, (1.5)
      • Алгоритм 1.1 Вычисление массива граней
    • 1.3 Паттерны
      • 1.3.1 Внутренние паттерны
      • 1.3.2 Частные паттерны
      • 1.3.3 Характеристические паттерны
    • 1.4 Свойства алгоритмов
      • 1.4.1 Корректность
      • 1.4.2 Независимость от алфавита
      • 1.4.3 Временная и пространственная сложность
      • 1.4.4 Отсутствие возврата к ранее просмотренным данным
  • 2 Базовые алгоритмы вычисления паттернов
    • 2.1 Наивный алгоритм
      • Алгоритм 2.1 Поиск первого вхождения строки p в строку x:
    • 2.2 Алгоритм Кнута-Морриса-Пратта (КМП)
      • Определение 3.4 Префикс-функцией от строки s называется массив p, где pi равно длине самого большого префикса строки s0s1s2…si, который также является и суффиксом i-того префикса, не считая весь i-й префикс [9, c.41].
      • Таблица 1. Префиксная функция для строки «cbcbecbc»
      • Алгоритм 2.2 Построения префикс-функции от строки
    • 2.3 Алгоритм Бойера – Мура
      • Алгоритм 2.3. Алгоритм Бойера-Мура
      • Таблица 2. Пример сдвига шаблона
      • Таблица 3. Сдвиг шаблона на стоп-симол
      • Таблица 4. Сдвиг шаблона на стоп-симол
      • Таблица 5. Эвристика совпавшего суффикса
      • 2.3.1 Таблица стоп-символов
      • 2.3.2 Таблица суффиксов
        • Таблица 7. Таблица суффиксов
        • Таблица 8. Иллюстрация:
        • Таблица 9. Таблица суффиксов
        • Таблица 10. Иллюстрация
  • 3 Разработка приложения для сравнения КМП алгоритма и алгоритма Бойера-Мура
    • 3.1 Реализация алгоритмов на языке Javascript
      • 3.1.1 Алгоритм Кнута-Морриса-Пратта
      • 3.1.2 Алгоритм Бойера-Мура
    • 3.2 Описание приложения
    • 3.3 Замеры производительности
      • Случай 1. Орущие строки
        • Таблица 11 Результат выполнения
      • Случай 2. Последовательность ДНК
        • Таблица 12 Результат выполнения
      • 3.3.1 Случай 3. Естественный текст
        • Таблица 13. Результат выполнения с паттерном «беспеременно»
        • Таблица 14. Результат выполнения
        • Здесь полученные результаты отлично иллюстрируют преимущество концепции БМ – чем длиннее паттерн, тем более выигрышно показывает себя БМ-алгоритм, что и следовало из основной его особенности – возможности сдвига паттерна на всю его длину.
        • Таблица 15. Результат выполнения, паттерн «дуб»
  • Заключение
  • Список использованных источников
  • Приложение 1. Поиск граней
  • Приложение 2. Алгоритм КМП
  • Приложение 3. Составления таблицы плохих символов
  • Приложение 4. Алгоритм БМ
  • Приложение 5. Использование React Context

Статистика использования

stat Количество обращений: 2
За последние 30 дней: 0
Подробная статистика