ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА
№16
ПРИЛОЖЕНИЕ
Сентябрь 2023
Секция 4
МАТЕМАТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ И ПРОГРАММИРОВАНИЯ
УДК 519.682
Б01 10.17223/2226308Х/16/31
АНАЛОГ ТЕОРЕМЫ КРОНЕКЕРА — КАПЕЛЛИ ДЛЯ СИСТЕМ НЕКОММУТАТИВНЫХ ЛИНЕЙНЫХ УРАВНЕНИЙ, ПОРОЖДАЮЩИХ ЛИНЕЙНЫЕ ЯЗЫКИ
О. И, Егорушкин, И, В. Колбасина, К. В. Сафонов
Продолжается исследование систем некоммутативных полиномиальных уравнений, которые интерпретируются как грамматики формальных языков. Такие системы решаются в виде формальных степенных рядов (ФСР), выражающих нетерминальные символы через терминальные символы алфавита и рассматриваемых как формальные языки. Всякому ФСР поставлен в соответствие его коммутативный образ, который получается в предположении, что все символы обозначают коммутативные переменные, действительные или комплексные. Рассматриваются уравнения, которые линейны по нетерминальным символам с полиномиальными коэффициентами от терминальных символов, а значит, эти системы порождают линейные формальные языки. Совместность системы некоммутативных полиномиальных уравнений не связана напрямую с совместностью её коммутативного образа, и потому в качестве аналога теоремы Кронекера—Капелли удаётся получить лишь достаточное условие несовместности некоммутативной системы.
Ключевые слова: системы линейных уравнений, некоммутативные переменные, формальный степенной ряд, коммутативный образ.
Теория формальных языков имеет фундаментальное значение для программирования и разработки информационных технологий. Она является основой разработки алгоритмов для поиска в Интернете, работы новостных агрегаторов, машинного перевода текстов, понимания генетического кода в биоинформатике, разработки и анализа языков программирования. Все эти приложения используют взаимосвязи языка (как множества возможных текстов) с грамматикой (сводом формальных правил, определяющих языковые конструкции и их равнозначимость), Более того, всюду нужны быстрые качественные алгоритмы формальных построений грамматики по языку и языка по грамматике и синтаксического анализа конструкций, невозможные без серьёзного теоретического обоснования.
Контекстно-свободные, в частности линейные, грамматики активно используются для решения задач, связанных с разработкой формальных языков и синтаксических анализаторов [1-3]. Одним из основных достоинств контекстно-свободных и линейных грамматик является возможность задания широкого класса языков при сохранении относительной компактности представления [4, 5].
Продолжая исследование, начатое в работах [1, 2], рассмотрим систему линейных уравнений с полиномиальными коэффициентами
ац(х)ггЪц(х) + ... + агп(х)г,пЪгп(х) = ^(х), г =1,...,к,
(1)
Математические основы информатики и программирования
125
которая решается относительно некоммутативных символов г = (г1,...,гп) в виде ФСР, зависящих от некоммутативных символов х = [х\,..., хт), где а^, Ь^, ^ — многочлены, Такие системы имеют приложения в теории формальных языков, поскольку являются грамматиками, порождающими важный класс линейных языков [3, 4].
В рамках теории формальных языков и грамматик символы XI,..., хт называются терминальными и образуют словарь (алфавит) данного языка, тогда как символы г1,... ,гп называются нетерминальными и необходимы для задания грамматических правил. Над всеми символами определены некоммутативное умножение (конкатенация) и коммутативное формальное сложение, а также коммутативная операция умножения на числовые коэффициенты, и потому можно рассматривать символьные многочлены и ФСР с действительными или комплексными коэффициентами. Наконец, мономы от терминальных символов интерпретируются как предложения языка, а каждый ФСР, который является решением системы (1), рассматривается как порождённый грамматикой формальный язык, т, е, формальная сумма всех «правильных» предложений этого языка [3, 4],
Исследовать символьную некоммутативную систему (1) достаточно трудно, поэтому рассмотрим её коммутативный образ [1, 2, 5].
Предположим, следуя [1], что все мономы от XI,... ,хт занумерованы в лексикографическом порядке по возрастанию степеней в последовательность п0,п1,..., играющую роль базиса, тогда каждый ряд в можно единственным образом записать в виде разложения по этому базису с числовыми коэффициентами (в, щ) при мономах щ\
<х
в = 5] (в,щ)щ. (2)
i=0
Теперь поставим в соответствие ФСР (2) его коммутативный образ а (в) — степенной ряд, который получается из в в предположении, что символы х1,...,хт (равно как и ¿1,..., гп) обозначают коммутативные переменные, принимающие значения из поля комплексных чисел [5].
Очевидно, что коммутативным образом системы (1) является система коммутативных уравнений
й(ац(х)) с\(Ьц(х))г1 + ... + а(а^(х)) а(Ьт(х)),гп = а(^(х)), I = 1,..., к. (3)
Назовём рангом матрицы, элементы которой являются многочленами от коммутативных переменных, число линейно независимых столбцов матрицы над полем комплексных чисел.
Для системы коммутативных уравнений (3) рассмотрим её матрицу
(с \(ац (х))с \(ЬЦ (х)),
а также расширенную матрицу (а(а„(х))с\(Ь^(х)) | ^(х)).
Некоммутативным аналогом теоремы Кронекера — Капелли является следующая Теорема 1. Если для коммутативного образа (3) системы некоммутативных линейных уравнений (1) выполнено неравенство
гапк(с\(а^(х))ел(Ь^(х))) < гапк(с\(а^(х))ел(Ь^(х)) | а(^(х))), то исходная система некоммутативных линейных уравнений (1) несовместна.
126
Прикладная дискретная математика. Приложение
Замечание 1. В случае равенства рангов рассматриваемых матриц утверждение о совместности исходной некоммутативной системы неверно; нетрудно привести соответствующий пример.
Поскольку ФСР, которые являются компонентами решения системы (1), интерпретируются как формальные языки, теорема 1 позволяет установить случаи, когда линейная грамматика не порождает никакого линейного языка,
ЛИТЕРАТУРА
1. Егорушкин О. И., Колба,сипа, И. В., Сафонов К. В. О совместности систем символьных полиномиальных уравнений и их приложении // Прикладная дискретная математика. Приложение. 2016. №9. С. 119-121.
2. Egorushkin О. I., Kolbasina I. V., and Safonov К. V. On solvability of systems of symbolic polynomial equations // Журн. СФУ. Сер. Матем. и физ. 2016. Т. 9. Вып. 2. С. 166-172.
3. Глушков В. М., Цейтлин Г. Е., Ющенко Е. Л. Алгебра. Языки. Программирование. Киев: Наукова думка, 1973.
4. Salomaa A. and Soitolla М. Automata-Theoretic Aspects of Formal Power Series. N.Y.: Springer Verlag, 1978.
5. Семёнов А. Л. Алгоритмические проблемы для степенных рядов и контекстно-свободных грамматик // Докл. АН СССР. 1973. №212. С.50-52.
УДК 004.05 DOI 10.17223/2226308Х/16/32
ОБ АЛГОРИТМАХ ПОИСКА КОМПЬЮТЕРНОЙ ИНФОРМАЦИИ
А, В, Жаркова, А, Г, Мусугалиева
Исследованы алгоритмы поиска подстроки в строке: наивный, Бойера — Мура, Кнута—Морриса — Пратта, Рабина — Карпа, а также применимые для них джокеры (символы подстановки, «совпадающие» с любым символом или их последовательностью). Реализована программа на языке С# для поиска файлов по различным параметрам, которая позволяет также сканировать заданную директорию с целью поиска вредоносных объектов. Проведены вычислительные эксперименты. Общее лучшее время поиска файлов (достаточно найти первое вхождение) оказалось с помощью алгоритма Бойера — Мура, худшее — с помощью алгоритма Рабина — Карпа. Для поиска файлов по небольшим заданным данным и параметрам можно использовать наивный поиск, для средних и больших данных и параметров при малых образцах лучше использовать алгоритм Кнута — Морриса — Пратта, при больших — Бойера — Мура.
Ключевые слова: алгоритм Бойера — Мура, алгоритм Кнут,а, — Морриса — Пратта, алгоритм Рабина — Карпа, кибербезопасность, поиск подстроки в строке, поиск файла, сканирование.
В связи с большим ростом объёма данных существует много проблем с обработкой информации. Устройство может содержать несколько сотен тысяч файлов, среди которых часто требуется найти необходимый. Сейчас функции поиска файлов встроены во многие системы, но если поиск информации является ключевой задачей, например при поиске вредоносных объектов антивирусными программами, требуется знать принципы его организации.