WikiDer > Алгоритм построения Глушкова - Википедия
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
В Информатика теория - особенно формальная теория языка - в Алгоритм построения Глушкова, изобретенный Виктор Михайлович Глушков, преобразует данный регулярное выражение в эквивалент недетерминированный конечный автомат (NFA). Таким образом, он образует мост между регулярными выражениями и недетерминированными конечными автоматами: два абстрактных представления одного и того же класса формальные языки.
Регулярное выражение можно использовать для удобного описания шаблона расширенного поиска в операции «найти и заменить» обработка текста полезность. Алгоритм Глушкова можно использовать для преобразовать в NFA, которая, к тому же, мала по своей природе, поскольку количество ее состояний равно количеству символов регулярного выражения плюс один. Следовательно, NFA можно сделать детерминированной с помощью конструкция электростанции а затем быть минимизированный чтобы получить оптимальный автомат, соответствующий заданному регулярному выражению. Последний формат лучше всего подходит для исполнения на компьютере.
С другой, более теоретической точки зрения, алгоритм Глушкова является частью доказательства того, что NFA и регулярные выражения принимают одни и те же языки; это обычные языки. Обратное алгоритму Глушкова имеет вид Алгоритм Клини, который преобразует конечный автомат в регулярное выражение. Автомат, полученный конструкцией Глушкова, совпадает с автоматом, полученным Алгоритм построения Томпсонапосле удаления его ε-переходов.
Строительство
Учитывая регулярное выражение е, алгоритм построения Глушкова создает недетерминированный автомат, принимающий язык принят е.[1][2]:59—61 Конструкция состоит из четырех этапов:
Шаг 1
Линеаризация выражения. Каждая буква алфавита, встречающаяся в выражении е переименовывается, так что каждая буква встречается не более одного раза в новом выражении . Конструкция Глушкова существенно опирается на то, что представляет местный язык . Позволять А будь старым алфавитом и пусть B будь новым.
Шаг 2а
Вычисление множеств , , и . Первый, , это набор букв, который встречается как первая буква слова . Второй, , это набор букв, которыми можно закончить букву . Последний, , - это набор пар букв, которые могут встречаться в словах , т.е. это набор множителей длины два из слов . Эти наборы математически определены
- ,
- ,
- .
Они вычисляются индукцией по структуре выражения, как описано ниже.
Шаг 2b
Расчет множества который содержит пустое слово, если это слово принадлежит , а в противном случае - пустое множество. Формально это, куда обозначает пустое слово.
Шаг 3
Расчет местный язык,[требуется разъяснение] как определено , , , и . По определению, местный язык, определяемый наборами п, D, и F это набор слов, которые начинаются с буквы п, заканчивается буквой D, а множители длины 2 принадлежат F; то есть это язык:
- ,
потенциально с пустым словом.
Вычисление автомата для локального языка, обозначаемое этим линеаризованным выражением, формально известно как конструкция Глушкова. Построение автомата может быть выполнено с использованием классических операций построения: конкатенации, пересечения и итерации автомата.
Шаг 4
Стирая очертания, придавая каждой букве B письмо А это было.
Пример
Учитывать[2]:60—61 регулярное выражение.
- Линеаризованная версия
- .
- Наборы п, D, и F первых букв, последних букв и множителей длины 2 для линейного выражения соответственно равны
- .
- Автомат местного языка
- .
- Получите автомат для удалив индексы.
Вычисление набора букв
Вычисление множеств п, D, F, и Λ выполняется индуктивно по регулярное выражение . Необходимо указать значения для ∅, ε (символы для пустого языка и одноэлементного языка, содержащего пустое слово), буквы и результаты операций .
- За Λ, надо
- ,
- ,
- за каждую букву а,
- ,
- , и
- .
- За п, надо
- ,
- за каждую букву а,
- ,
- , и
- .
Те же формулы используются и для D, за исключением товара, где
- .
- Для набора множителей длины 2 имеем
- за каждую букву а,
- ,
- , и
- .
Наиболее затратными операциями являются произведения множеств для вычисления F.
Характеристики
Полученный автомат недетерминирован и имеет столько состояний, сколько букв в регулярном выражении плюс один. Кроме того, было показано[3]:215[4] что автомат Глушкова такой же, как Автомат Томпсона при удалении ε-переходов.
Приложения и детерминированные выражения
Вычисление автомата по выражению происходит часто; он систематически использовался в функциях поиска, в частности Unix grep команда. По аналогии, XMLв спецификации также используются такие конструкции; для большей эффективности регулярные выражения определенного вида, называемые детерминированные выражения, были изучены.[4][5]
Смотрите также
Примечания и ссылки
- ^ В.М. Глушкова (1961). «Абстрактная теория автоматов». Российские математические обзоры (на русском). 16: 1–53. Дои:10.1070 / rm1961v016n05abeh004112.
- ^ а б Жан-Эрик Пин (ноябрь 2016 г.). Математические основы теории автоматов (PDF). Париж.
- ^ Жак Сакарович (февраль 2003 г.). Éléments de théorie des automates. Париж: Vuibert. ISBN 978-2711748075.
- ^ а б Жак Сакарович (2009). Элементы теории автоматов. Кембридж: Издательство Кембриджского университета. ISBN 9780521844253.
- ^ Брюггеманн-Кляйн, Анна (1993). «Регулярные выражения в конечных автоматах». Теоретическая информатика. 12 (2): 197–213. Дои:10.1016/0304-3975(93)90287-4.