Скачиваний:
2
Добавлен:
27.08.2024
Размер:
166.19 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

КАФЕДРА № 41

ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

старший преподаватель

Н.Н. Григорьева

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №2

ПОСТРОЕНИЕ КОНЕЧНОГО АВТОМАТА ПО ГРАФ-СХЕМЕ АЛГОРИТМА РАСПОЗНАВАТЕЛЯ

по курсу: Теория автоматов и формальных языков

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР. №

4016

Жовтяк М.О.

подпись, дата

инициалы, фамилия

Санкт-Петербург 2022

  1. Цель работы

Разработка алгоритма распознавания заданной последовательности символов и реализация модели распознавателя

2) Порядок работы

1. Получить индивидуальное задание.

2. Разработать алгоритм распознавания, соответствующий индивидуальному

заданию

3. Разметить граф-схему алгоритма в соответствии с выбранным типом

автомата

4. Построить граф конечного автомата, распознающего заданную

последовательность

5. Промоделировать работу распознающего автомата на нескольких тестовых

последовательностях, позволяющих выявить все возможные исходы

распознавания.

6. Проанализировать полученные результаты, сделать выводы

3) Вариант задания

Вариант №15

Входной алфавит {a, b, c, d, z}

Последовательность: acd

4) Построение графа-распознавателя

В конечном автомате должна осуществляться проверка использования среднего символа последовательности. В данном случае, буква с может встречаться только в заданном контексте – между символами a и d, любая другая ситуация соответствует ошибке.

В выходном алфавите распознавателя должны отразиться три варианта

завершения работы:

  • Not, - где во входной последовательности не встретился проверяемый символ;

  • Ok, - проверяемый символ используется правильно;

  • Error, - проверяемый символ используется некорректно (работа распознавателя при первой же ошибке может быть завершена).

Рисунок 1 – Граф-схема алгоритма распознавателя

Работа построенной схемы:

В начале проверяется, является ли введенный символ = z:

  1. Если да, то на вывод получаем Error, проверка завершается;

  2. Если нет, то выполняется проверка, является ли введенный символ = c:

    1. Если да, то на вывод получаем Error, проверка завершается;

    2. Если нет, то выполняется проверка, является ли введенный символ = a:

      1. Если нет, то выполняется переход к следующему символу и возврат к началу схемы;

      2. Если да, то выполняется переход к следующему символу и проверяется, является ли введенный символ = с:

        1. Если нет, то происходит возврат к началу схему;

        2. Если да, то происходит переход к следующему символу и выполняется проверка, является ли символ = d:

          1. Если нет, то на вывод получаем Error, проверка завершается;

          2. Если да, то выполняется переход к следующему символу и проверка, является ли символ =z:

            1. Если да, то на вывод получаем Ok, проверка завершается;

            2. Если нет, то выполняется проверка, является ли введенный символ = c:

              1. Если да, то на вывод получаем Error, проверка завершается;

              2. Если нет, то выполняется проверка, является ли введенный символ = a:

                1. Если нет, то выполняется переход к следующему символу и возврат к пункту 2.2.2.2.2;

                2. Если да, то выполняется переход к следующему символу и выполняется проверка, является ли введенный символ = c:

                  1. Если нет, то выполняется возврат к пункту 2.2.2.2.2;

                  2. Если да, то выполняется переход к следующему символу и выполняется проверка, является ли введенный символ = d:

2.2.2.2.2.2.2.2.2.1. Если нет, то на вывод получаем Error, проверка завершается;

2.2.2.2.2.2.2.2.2.2. Если да, то выполняется переход к следующему символу и возврат к пункту 2.2.2.2.2.

5) Построение конечного автомата

На основе граф-схемы, представленного на рисунке 1, выполняется построение автомата Мура:

Q0/λ – начало автомата, при вводе z переходит в Q1, при вводе c переходит в Q2, при вводе a переходит в Q4, при вводе b,d переходит сам в себя;

Q1/ Not – вывод Not

Q2/Error – вывод Error;

Q3/OK – вывод Ok;

Q4/λ – при вводе c переход в Q5, при вводе z в Q1, при вводе a, b, d переходит в Q0;

Q5/λ – при вводе d переходит в Q6, при вводе a, c, d, z переходит в Q2;

Q6/λ – при вводе a переходит в Q7, при вводе c переходит в Q2, при вводе z переходит в Q3, при вводе d, b переходит сам в себя;

Q7/λ – при вводе с переходит в Q5, при вводе z переходит в Q3, при вводе a, b, d переходит в Q6.

Таблица 1 – Таблица переходов-выходов автомата Мура

Q0/λ

Q1/Not

Q2/Error

Q3/Ok

Q4/λ

Q5/λ

Q6/λ

Q7/λ

a

Q4

-

-

-

Q0

Q2

Q7

Q6

b

Q0

-

-

-

Q0

Q2

Q6

Q6

c

Q2

-

-

-

Q5

Q2

Q2

Q5

d

Q0

-

-

-

Q0

Q6

Q6

Q6

z

Q1

-

-

-

Q1

Q2

Q3

Q3

Рисунок 2 – Граф автомата Мура

6) Результаты

1. При вводе последовательности, где отсутствует с:

Рисунок 3 – Результат первого вывода

  1. При вводе последовательности, состоящей из одного элемента, где отсутствует с:

Рисунок 4 – Результат второго вывода

  1. При вводе последовательности, где c расположен неправильно – aabcdz:

Рисунок 5 – Результат третьего вывода

  1. При вводе последовательности, где один раз c расположен правильно, но один раз неправильно – aaacdaccz:

Рисунок 6 – Результат четвертого вывода

  1. При вводе последовательности, где с расположен правильно несколько раз - aaacdbbacdbz:

Рисунок 7 – Результат пятого вывода

Вывод:

В ходе лабораторной работы я научился создавать автоматы, строить граф-схемы для распознавания вводимой последовательности на наличие и правильность введения элементов алфавита, на основе чего бы был построен автомат Мура с графом.

7

Соседние файлы в предмете Теория автоматов и формальных языков