Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Алгоритм 2. 1. Построение КА по регулярной грамматике
Вход: регулярная грамматика . Выход: КА . Шаг 1. Пополнить грамматику правилом , где и - новый нетерминал, для каждого правила вида , если в грамматике нет соответствующего ему правила , где . Шаг 2. Начальный символ грамматики принять за начальное состояние КА . Из нетерминалов образовать множество состояний автомата , а из терминалов – множество символов входного алфавита . Шаг 3. Каждое правило преобразовать в функцию переходов , где . Шаг 4. Во множество заключительных состояний включить все вершины, помеченные символами из правил вида , для которых имеются соответствующие правила , где . Шаг 5. Если в грамматике имеется правило , где - начальный символ грамматики, то поместить во множество заключительных состояний. Шаг 6. Если получен НКА, то преобразовать его в ДКА.
Алгоритм 2.2. Преобразование НКА в ДКА
Вход: НКА . Выход: ДКА .
Шаг 1. Пометить первый столбец таблицы переходов ДКА начальным состоянием (множеством начальных состояний) НКА . Шаг 2. Заполняем очередной столбец таблицы переходов , помеченный символами , для этого определяем те состояния , которые могут быть достигнуты из каждого символа строки при каждом входном символе . Поместить каждое найденное множество (в том числе ) в соответствующие позиции столбца таблицы , т.е.:
для некоторого }.
Шаг 3. Для каждого нового множества (кроме ), полученного в столбце таблицы переходов , добавить новый столбец в таблицу, помеченный . Шаг 4. Если в таблице переходов КА есть столбец с незаполненными позициями, то перейти к шагу 2. Шаг 5. Во множество ДКА включить каждое множество, помечающее столбец таблицы переходов и содержащее НКА . Шаг 6. Составить таблицу новых обозначений множеств состояний и определить ДКА в этих обозначениях. Пример 2.1. Дана регулярная грамматика с правилами . Построить по регулярной грамматике КА и преобразовать полученный автомат к детерминированному виду. Решение задачи включает следующую последовательность действий. 1 Построим по регулярной грамматике КА. 1.1 Пополним грамматику правилами и , где - новый нетерминал. 1.2 Начальное состояние конечного автомата . Множество состояний автомата , множество символов входного алфавита . 1.3 Значения сформированной функции переходов даны в таблице 2.1.
Таблица 2.1 – Функция переходов автомата
1.4 Множество заключительных состояний . 1.5 Для начального символа грамматики e-правила отсутствуют. Конечный автомат М - недетерминированный, граф НКА представлен на рисунке 2.1 слева.
Рисунок 2.1 - Граф НКА (слева) и ДКА (справа) для Р- грамматики
2 Построим по НКА ДКА . 2.1 Строим таблицу переходов для ДКА (таблица 2.2).
Таблица 2.2 – Построение функции переходов для ДКА
2.2 Во множество заключительных состояний автомата включим элементы . 2.3 Введем следующие новые обозначения состояний автомата : (A, B) =С, (A, N)= D, (B, N)= E. 2.4 Искомый ДКА определяется следующей пятеркой объектов: , , функция переходов задана таблицей 2.3, , . Граф полученного ДКА представлен на рисунке 2.1 справа.
Таблица 2.3 – Функция переходов для ДКА
Постановка задачи к лабораторной работе № 2 Разработать программное средство, реализующее следующие функции: 1) ввод произвольной формальной грамматики с клавиатуры и проверка ее на принадлежность к классу регулярных грамматик; 2) построение по заданной регулярной грамматике конечного автомата; 3) преобразование недетерминированного конечного автомата к детерминированному конечному автомату; 4) вывод графа результирующего конечного автомата на экран. Варианты индивидуального задания представлены в таблице 2.4.
Таблица 2.4 – Варианты индивидуального задания к лабораторной работе № 2
Продолжение таблицы 2.4 – Варианты индивидуального задания к лабораторной работе № 2
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2019-04-30; просмотров: 1377; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.66.13 (0.017 с.) |