Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЯП_шпоры.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.21 Mб
Скачать

Вопрос 6

Определение 1.18. Распознаватель – это специальный алгоритм, который позволяет определить принадлежность цепочки символов некоторому языку.

а1 а2аn Входная лента

Рисунок 1.4 – Схема распознавателя

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

Входная головка в каждый момент обозревает одну ячейку. За один шаг работы распознавателя головка сдвигается на одну ячейку влево (вправо) или остается неподвижной. Распознаватель, не перемещающий входную головку влево, называется односторонним.

Управляющее устройство – это программа управления распознавателем. Она задает конечное множество состояний распознавателя и определяет переходы из состояния в состояние в зависимости от прочитанного символа входной ленты и содержимого вспомогательной памяти.

Вспомогательная память служит для хранения информации, которая зависит от состояния распознавателя. У некоторых типов распознавателей она может отсутствовать.

Определение 1.19. Конфигурация распознавателя есть совокупность трех элементов:

  • состояния управляющего устройства;

  • содержимого входной ленты и положения входной головки;

  • содержимого вспомогательной памяти.

Определение 1.20. Управляющее устройство называется детерминированным, если для каждой конфигурации распознавателя существует не более одного возможного следующего шага, в противном случае управляющее устройство называется недетерминированным.

Определение 1.21. Конфигурация распознавателя называется начальной, если управляющее устройство находится в заданном начальном состоянии, входная головка обозревает самый левый символ на входной ленте и вспомогательная память имеет заранее установленное начальное содержимое.

Определение 1.22. Конфигурация распознавателя называется заключительной, если управляющее устройство находится в одном из заранее выделенных заключительных состояний, а входная головка сошла с правого конца входной ленты. Содержимое вспомогательной памяти удовлетворяет некоторому заранее установленному условию.

Определение 1.23. Входная строка допускается распознавателем, если от начальной конфигурации, в которой цепочка записана на входной ленте, распознаватель может выполнить последовательность шагов, заканчивающуюся заключительной конфигурацией.

Определение 1.24. Множество всех строк, допускаемых распознавателем, называется языком распознавателя.

Классификация распознавателей

Для языков типа 0 распознавателями являются машины Тьюринга.

Распознаватели КЗ-языков называются линейными ограниченными автоматами (машины Тьюринга с конечным объемом ленты).

Распознавателями для КС-языков являются автоматы с магазинной памятью (МП-автоматы).

Для регулярных языков распознавателями служат конечные автоматы (КА).

Вопрос 7

Регулярный язык L в некотором алфавите  представляет собой регулярное множество строк.

Определение 2.1. Регулярное множество есть , либо {}, либо {а} для некоторого а , либо множество, которое можно получить из указанных множеств путем применения к ним конечного числа операций сцепления, объединения и итерации.

В основе метода определения регулярности заданного языка лежит лемма о разрастании языка.

Лемма о разрастании языка. В достаточно длинной строке регулярного языка всегда можно найти непустую подстроку, повторение которой произвольное количество раз порождает новые строки того же самого языка.

Удобным средством формального определения регулярных языков являются регулярные выражения.

Определение 2.2. Регулярные выражения над алфавитом  определяются следующим образом:

1)  - регулярное выражение (обозначает пустое регулярное множество );

2) - регулярное выражение (обозначает регулярное множество {}, состоящее из пустой строки);

3) а  - регулярное выражение (обозначает множество {а});

4) если p и q – регулярные выражения, обозначающие множества P и Q, то посредством операций над выражениями определяются выражения следующих трех типов:

а) p|q или p+q – регулярное выражение (обозначает объединение PQ), где символ «|» или «+» называют операцией или (альтернативой);

б) pq или pq – регулярное выражение (обозначает множество PQ = {xy | xP, yQ}), где символ «точка» (возможно умалчиваемый) называют операцией сцепления (конкатенации);

в) p* - регулярное выражение (обозначает множество P*), где символ «*» называют операцией итерации.

Пример 2.2. Примеры регулярных выражений и их значений представлены в таблице 2.1.

Таблица 2.1 – Примеры регулярных выражений

Регулярное

выражение

Значение регулярного выражения

01

единственная строка 01

0|1

две строки: 0 и 1

1*

строки, образованные из единиц, включая пустую строку

(0|1)*

строки, образованные из символов 0 и 1, включая пустую строку

0|1*

строка, состоящая из нуля и любые строки из единиц,

включая пустую

01*

строки, начинающиеся с нуля и любой последующей строки единиц, включая пустую

(0|1)*011

строки, образованные из символов 0 и 1, включая пустую, обязательно оканчивающиеся строкой 011

Соотношение между регулярными языками и регулярными выражениями устанавливает теорема Клини.

Теорема Клини. Каждому регулярному языку из * соответствует регулярное выражение над множеством .