Введение в теорию алгоритмов

Содержание

Слайд 2

История

История

Слайд 3

Определения

Определения

Слайд 4

Модели алгоритмов

Модели алгоритмов

Слайд 5

Модели алгоритмических преобразований

Модели алгоритмических преобразований

Слайд 6

Формализация

Формализация

Слайд 7

КА как модель алгоритма

КА как модель алгоритма

Слайд 8

Регулярные выражения

Регулярные выражения

Слайд 11

Регулярные языки

Регулярные языки

Слайд 13

Утверждение

Утверждение

Слайд 14

В регулярных выражениях опускают лишние скобки с
учётом того, что наивысшее предпочтение

В регулярных выражениях опускают лишние скобки с учётом того, что наивысшее предпочтение
(priority) имеет
операция итерации (повторения), затем идёт конкатенация,
и лишь затем - объединение.
Сокращение p+ для обозначения pp* (т.е. все итерации
кроме пустой цепочки).
Примеры регулярных выражений и обозначаемых ими
регулярных множеств:
а) a(e+a)+b – обозначает множество {a, b, aa};
б) a(a+b)* – обозначает множество всевозможных
цепочек, состоящих из a и b, начинающихся с a, например,
a(a+b)^3=a(a+b)(a+b)(a+b)=aaaa или abbb или abba…;
в)(a+b)*(a+b)(a+b)*–обозначает множество всех непустых цепочек, состоящих из a и b, то есть множество {a, b}+;
г) ((0+1)(0+1)(0+1))* – обозначает множество всех цепочек,
состоящих из нулей и единиц, длины которых делятся на 3.

Слайд 15

Примеры и задачи на усвоение

  Совпадают ли  множества, соответствующие
двум данным РВ:
а) a*b                    и          b

Примеры и задачи на усвоение Совпадают ли множества, соответствующие двум данным РВ:
+ aa*b;
б) b(b+ab)*a         и          b(b*ab)*b*a;
в) b(ab+b)*           и          bb*a(bb*a)*.
Возьмём п. а) и посмотрим, какие множества
соответствуют первому и второму РВ соответственно:
a*b ={ b , ab , aab , …, anb , …}
b + aa*b ={ b , ab , aab , …, anb , …},
т.е. имеем с помощью РВ разные записи одного и
того же РМ.

Слайд 16

продолжение

 

продолжение

Слайд 17

Структура компилятора

Структура компилятора

Слайд 18

Лексический анализ

Лексический анализ

Слайд 19

Читающие (распознающие) автоматы

Читающие (распознающие) автоматы

Слайд 23

ДКА и НДКА

Различают детерминированные (ДКА) и недетерминированные (НДКА) конечные автоматы.
КА называется недетерминированным 
 (НДКА),

ДКА и НДКА Различают детерминированные (ДКА) и недетерминированные (НДКА) конечные автоматы. КА
если в диаграмме его состояний из одной вершины исходит несколько дуг с одинаковыми символами.  Если таких вершин нет, то это ДКА.

Слайд 26

Теорема Клини. Две задачи КА

Теорема Клини содержит два утверждения: 1. Каждое регулярное

Теорема Клини. Две задачи КА Теорема Клини содержит два утверждения: 1. Каждое
выражение определяет регулярный язык 2. Каждый регулярный язык может быть задан некоторым R- выражением. Задача синтеза состоит в построении конечного автомата, распознающего язык, заданный некоторым регулярным выражением.
Задача анализа состоит в том, чтобы по диаграмме конечного автомата К записать R-выражение, для которого соответствующий ему R-язык совпадает с языком, распознаваемым автоматом К.

Слайд 27

Простейшие примеры синтеза КА

Простейшие примеры синтеза КА

Слайд 28

Преобразование регулярного выражения в КА

Преобразование регулярного выражения в КА

Слайд 35

Преобразование КА в регулярное выражение

Преобразование КА в регулярное выражение

Слайд 37

Пример

Пример

Слайд 39

Обратное преобразование в НДКА

Преобразование в ДКА

L(M)=(1*+01)*00(0+1)* 0 0 10 23

Q0

Обратное преобразование в НДКА Преобразование в ДКА L(M)=(1*+01)*00(0+1)* 0 0 10 23
= {q0, q1, q2, q3} Q1 = {q0, q1, q2, q3,{q1, 2}}. Состояния q1 и q2 не достижимы из начального состояния q0 и могут быть исключены. Получим исходный КА рис.2.2. с состояниями Q1= {q0, q3,{q1, 2}}

Слайд 40

Конечные автоматы с выходом

Конечные автоматы с выходом

Слайд 42

Записывающие КА

Записывающие КА

Слайд 43

Пример

Пример
Имя файла: Введение-в-теорию-алгоритмов.pptx
Количество просмотров: 41
Количество скачиваний: 0