Скачать презентацию ДИСКРЕТНАЯ МАТЕМАТИКА С 130 -134 Скачать презентацию ДИСКРЕТНАЯ МАТЕМАТИКА С 130 -134

2011 !Л13 ДМ КОБ Миним.ppt

  • Количество слайдов: 74

 • ДИСКРЕТНАЯ МАТЕМАТИКА • ДИСКРЕТНАЯ МАТЕМАТИКА

С. 130 -134, 134 -143 С. 130 -134, 134 -143

ДМ 2. Теория формальных языков и автоматов. • Тема 4. Логические автоматы • Тема ДМ 2. Теория формальных языков и автоматов. • Тема 4. Логические автоматы • Тема 5. Тестирование логических автоматов • Тема 6. Элементы теории кодирования • Тема 7. Автоматы и формальные языки

 • Т 7. Автоматы, и формальные языки • Т 7. Автоматы, и формальные языки

 • Регулярные языки и конечные автоматы • Регулярные языки и конечные автоматы

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

Автоматный язык • Грамматика типа 3 – имеют правила вида А a. B, либо Автоматный язык • Грамматика типа 3 – имеют правила вида А a. B, либо A b, где А, В N; a, b T. • Здесь A, B, a, b – одиночные символы (не цепочки) соответствующих словарей. • A, B - состояния автомата, a, b - входные символы

. • Суммой языков L и L´ называется язык, который обозначается L + L´ . • Суммой языков L и L´ называется язык, который обозначается L + L´ и получается объединением множеств L и L´, т. е. • L + L´ = • Сумма языков состоит из слов, принадлежащих хотя бы одному из языков L и L´. Поэтому L + L´ = L´ + L.

. • Далее конкатенацией (или соединением) слов w и w´ будем называть слово ww´, . • Далее конкатенацией (или соединением) слов w и w´ будем называть слово ww´, полученное приписываем справа слова w´ к слову w. • Например, конкатенацией слов ba и cba будет слово bacba. • Из этих же слов можно получить слово cbaba, которое является конкатенацией cba и ba. • В общем случае конкатенации ww´ и w´w различаются.

 • Произведением языков L и L´ называется язык, который обозначается L·L´ и получается • Произведением языков L и L´ называется язык, который обозначается L·L´ и получается в результате конкатенации всех возможных слов w и w´, где w принадлежит языку L, а w´ – языку L´, • Пример 1. Пусть L = {a, cb}, L´ = {ab, bсb}. Тогда • L·L´ = {aab, abcb, cbab, cbbcb}, • L´·L = {aba, abcb, bcba, bcbcb}. • Слово abcb принадлежит обоим языкам L·L´ и L´·L.

 • Итерацией языка L называется язык, который обозначается L* и получается в результате • Итерацией языка L называется язык, который обозначается L* и получается в результате сложения бесконечного числа языков

 • Пусть имеется алфавит • А = {а 1, а 2, …, аs}. • Пусть имеется алфавит • А = {а 1, а 2, …, аs}. Одноэлементные языки а 1, а 2, …, аs, а также язык, содержащий только пустое слово Λ, будем называть элементарными языками.

 • Регулярным языком называется такой язык, который можно получить из элементарных языков с • Регулярным языком называется такой язык, который можно получить из элементарных языков с помощью конечного числа операций сложения, умножения и итерации.

 • Пусть автомат с начальным состоянием v 1 и заключительным состоянием v 3 • Пусть автомат с начальным состоянием v 1 и заключительным состоянием v 3 задан графом • Язык L можно задать регулярным выражением • b·(a + b)* + a·b*·а·(a + b)* v 2 b a a v 3 v 1 b a+b

 • ТЕОРЕМА КЛИНИ (основная теорема теории автоматов). • Язык L распознается конечным детерминированным • ТЕОРЕМА КЛИНИ (основная теорема теории автоматов). • Язык L распознается конечным детерминированным автоматом тогда и только тогда, когда L – регулярный язык.

Stephen C Kleene-19091994. США. Stephen C Kleene-19091994. США.

Хомский, Аврам Ноам Хомский, Аврам Ноам

 • Это теоретическая основа многих информационных технологий, таких как разработка математического обеспечения вычислительных • Это теоретическая основа многих информационных технологий, таких как разработка математического обеспечения вычислительных систем, проектирование компиляторов и синтаксических анализаторов для языков программирования, создание лингвистических структур для баз данных и знаний

 • Понятие о задании автомата сетью Петри • Понятие о задании автомата сетью Петри

Начальное состояние — маркировка 100; возбуждены переходы t 1 и t 2. Начальное состояние — маркировка 100; возбуждены переходы t 1 и t 2.

Матричное задание СП р 1 1 р 0 2 р 0 3 Шаг 0 Матричное задание СП р 1 1 р 0 2 р 0 3 Шаг 0

Если срабатывает t 1, то фишка забирается из р1 и передается в р2. р Если срабатывает t 1, то фишка забирается из р1 и передается в р2. р 1 р 2 р 3 Шаг 0 0 0 1

Получаем маркировку 010, возбужден только переход t 3; после его срабатывания сеть возвращается к Получаем маркировку 010, возбужден только переход t 3; после его срабатывания сеть возвращается к начальной маркировке 100. р1 р2 р3 Шаг 1 0 0 1 0 1 1 0 0 2

Если срабатывает t 2, то фишки появляются в р2 и р3. Получаем маркировку 011, Если срабатывает t 2, то фишки появляются в р2 и р3. Получаем маркировку 011, при которой возбуждены переходы t 3 и t 4, каждый из которых может сработать. р1 р2 р3 Шаг 1 0 0 1 1 1

Если срабатывает t 4, то сеть возвращается к начальной маркировке р1 р2 р3 Шаг Если срабатывает t 4, то сеть возвращается к начальной маркировке р1 р2 р3 Шаг 1 0 0 1 1 0 0 2

срабатывание t 3 приводит к маркировке 101. р1 р2 р3 Шаг 1 0 0 срабатывание t 3 приводит к маркировке 101. р1 р2 р3 Шаг 1 0 0 1 1 0 1 2

 • Магазинный автомат • Магазинный автомат

Магазин - стек • Стек (англ. stack — стопка) — структура данных с методом Магазин - стек • Стек (англ. stack — стопка) — структура данных с методом доступа к элементам LIFO (англ. Last In — First Out, «последним пришел — первым вышел» ). • Стек - магазин - по аналогии с магазином в огнестрельном оружии (стрельба начнётся с патрона, заряженного последним

Стек Стек

 • Стеки широко используются в вычислительной технике — так для отслеживания точек возврата • Стеки широко используются в вычислительной технике — так для отслеживания точек возврата из подпрограмм стек вызовов, который является неотъемлемой частью архитектуры большинства современных процессоров.

 • Языки программирования высокого уровня используют стек вызовов для передачи параметров при вызове • Языки программирования высокого уровня используют стек вызовов для передачи параметров при вызове процедур.

Стек FIFO First In First Out Стек FIFO First In First Out

 • Лекция 13 • Лекция 13

 • Эквивалентность автоматов. Теорема Мура • Эквивалентность автоматов. Теорема Мура

Автоматы А и В Автоматы А и В

 • Их реакции на входную цепочку aabbabb одинаковы: • Их реакции на входную цепочку aabbabb одинаковы:

 • Эквиваленты ли эти автоматы? • Перебрать все входные цепочки невозможно – их • Эквиваленты ли эти автоматы? • Перебрать все входные цепочки невозможно – их бесконечно много.

 • Поэтому проблема эквивалентности автоматов нетривиальна. • К счастью, существует метод решения этой • Поэтому проблема эквивалентности автоматов нетривиальна. • К счастью, существует метод решения этой проблемы. • Он основан на понятии прямого произведения автоматов.

Теорема Мура. Теорема Мура.

Теорема Мура. Два конечных автомата с одинаковым входным алфавитом эквивалентны тогда и только тогда, Теорема Мура. Два конечных автомата с одинаковым входным алфавитом эквивалентны тогда и только тогда, когда для любого достижимого состояния в их прямом произведении А × В функции выходов одинаковы:

Два конечных автомата с одинаковым входным алфавитом эквивалентны тогда и только тогда, когда для Два конечных автомата с одинаковым входным алфавитом эквивалентны тогда и только тогда, когда для любого достижимого состояния в их прямом произведении А × В функции выходов одинаковы:

Параллельно работающие на одном входе автоматы Параллельно работающие на одном входе автоматы

Граф прямого произведения автоматов А и В - автомат А × В Граф прямого произведения автоматов А и В - автомат А × В

Удалим недостижимые состояния Удалим недостижимые состояния

Видно, что для каждого состояния выполняется выдача пар одинаковых выходных сигналов. Следовательно, автоматы А Видно, что для каждого состояния выполняется выдача пар одинаковых выходных сигналов. Следовательно, автоматы А и В эквивалентны.

Минимизация автоматов Минимизация автоматов

 • Минимизация конечных автоматов • Разные автоматы могут функционировать одинаково, даже если у • Минимизация конечных автоматов • Разные автоматы могут функционировать одинаково, даже если у них разное число состояний. • Важной задачей теории автоматов является нахождение минимального автомата, реализующего заданное автоматное отображение.

№ y(t) π 0 Функции переходов и выходов ψ z(t) y(t+1) а b 1 № y(t) π 0 Функции переходов и выходов ψ z(t) y(t+1) а b 1 3 6 1 0 2 4 8 0 1 3 1 4 1 0 4 7 9 0 1 5 9 1 1 0 6 3 5 1 0 7 4 3 0 1 8 4 2 1 0 9 5 7 1 0

Начальное разбиение – это один блок, включающий все состояния: 0= {А 0 <1, 2, Начальное разбиение – это один блок, включающий все состояния: 0= {А 0 <1, 2, 3, 4, 5, 6, 7, 8, 9>}.

 • Строим 1 – те состояния, которые не различаются цепочкой длины 1 – • Строим 1 – те состояния, которые не различаются цепочкой длины 1 – то есть символом либо а, либо b. • Видим, что состояния разбиваются на два блока – в первом реакции 1, 0, во втором – 0, 1: 1= {А 1=<1, 3, 5, 6, 8, 9>; В 1=<2, 4, 7>}

№ y(t) π 0 Функции переходов и выходов ψ z(t) y(t+1) Разбиение а b № y(t) π 0 Функции переходов и выходов ψ z(t) y(t+1) Разбиение а b π 1 1 3 6 1 0 А 1 2 4 8 0 1 В 1 3 1 4 1 0 А 1 4 7 9 0 1 В 1 5 9 1 1 0 А 1 6 3 5 1 0 А 1 7 4 3 0 1 В 1 8 4 2 1 0 А 1 9 5 7 1 0 А 1

 • Теперь смотрим, в какие блоки переходит автомат из блоков 1 под воздействием • Теперь смотрим, в какие блоки переходит автомат из блоков 1 под воздействием символов а, либо b.

Итак, в первой строчке под воздействием «а» осуществляется переход в состояние 3 – это Итак, в первой строчке под воздействием «а» осуществляется переход в состояние 3 – это блок А 1, под воздействием «b» осуществляется переход в состояние 6, это тоже блок А 1. Так и записываем. π 1= {А 1 = <1, 3, 5, 6, 8, 9>; В 1=<2, 4, 7>}. № y(t) Функции переходов и выходов y(t+1) π1 y(t+1) ψ z(t) а b а b π 2 1 3 6 1 0 А 1 А 2 2 4 8 0 1 3 1 4 1 0 4 7 9 0 1 5 9 1 1 0 6 3 5 1 0 7 4 3 0 1 8 4 2 1 0 9 5 7 1 0

Во второй строчке под воздействием «а» осуществляется переход в состояние 4 – это блок Во второй строчке под воздействием «а» осуществляется переход в состояние 4 – это блок В 1, под воздействием «b» осуществляется переход в состояние 6, это блок А 1. π 1= {А 1 = <1, 3, 5, 6, 8, 9>; В 1=<2, 4, 7>}. № y(t) Функции переходов и выходов y(t+1) π1 y(t+1) ψ z(t) а b а b π 2 1 3 6 1 0 А 1 А 2 2 4 8 0 1 В 1 А 1 В 2 3 1 4 1 0 4 7 9 0 1 5 9 1 1 0 6 3 5 1 0 7 4 3 0 1 8 4 2 1 0 9 5 7 1 0

В третьей строчке под воздействием «а» осуществляется переход в состояние 1 – это блок В третьей строчке под воздействием «а» осуществляется переход в состояние 1 – это блок А 1, под воздействием «b» осуществляется переход в состояние 4, это блок В 1. π 1= {А 1 = <1, 3, 5, 6, 8, 9>; В 1=<2, 4, 7>}. № y(t) Функции переходов и выходов y(t+1) π1 y(t+1) ψ z(t) а b а b π 2 1 3 6 1 0 А 1 А 2 2 4 8 0 1 В 1 А 1 В 2 3 1 4 1 0 А 1 В 1 С 2 4 7 9 0 1 5 9 1 1 0 6 3 5 1 0 7 4 3 0 1 8 4 2 1 0 9 5 7 1 0

В четвёртой строчке под воздействием «а» осуществляется переход в состояние 7 – это блок В четвёртой строчке под воздействием «а» осуществляется переход в состояние 7 – это блок В 1, под воздействием «b» осуществляется переход в состояние 9, это блок А 1. Действуя аналогично, получаем всю таблицу № y(t) y(t+1) π 1= {А 1 = <1, 3, 5, 6, 8, 9>; В 1=<2, 4, 7>}. Функции переходов и выходов π1 y(t+1) ψ z(t) а b а b π 2 1 3 6 1 0 А 1 А 2 2 4 8 0 1 В 1 А 1 В 2 3 1 4 1 0 А 1 В 1 С 2 4 7 9 0 1 В 1 А 1 В 2 5 9 1 1 0 А 1 А 2 6 3 5 1 0 А 1 А 2 7 4 3 0 1 В 1 А 1 В 2 8 4 2 1 0 В 1 D 2 9 5 7 1 0 А 1 В 1 С 2

Получили π2 = {А 2 = <1, 5, 6>; В 2=<2, 4, 7>; С Получили π2 = {А 2 = <1, 5, 6>; В 2=<2, 4, 7>; С 2=<3, 9>; D 2=<8>}. № y(t) Функции переходов и выходов y(t+1) π1 π y(t+1) ψ z(t) 2 а b а b 1 3 6 1 0 А 1 А 2 2 4 8 0 1 В 1 А 1 В 2 3 1 4 1 0 А 1 В 1 С 2 4 7 9 0 1 В 1 А 1 В 2 5 9 1 1 0 А 1 А 2 6 3 5 1 0 А 1 А 2 7 4 3 0 1 В 1 А 1 В 2 8 4 2 1 0 В 1 D 2 9 5 7 1 0 А 1 В 1 С 2

Строим π3. При его построении уже не нужно анализировать, в какой блок π2 переходит Строим π3. При его построении уже не нужно анализировать, в какой блок π2 переходит автомат из состояния 8, поскольку оно единственное в π2 и дальше дробиться не будет. π2 = {А 2 = <1, 5, 6>; В 2=<2, 4, 7>; С 2=<3, 9>; D 2=<8>}. № y(t) Функции переходов и выходов y(t+1) π2 y(t+1) ψ z(t) а b а b π3 1 3 6 1 0 С 2 А 3 2 4 8 0 1 В 2 D 2 В 3 3 1 4 1 0 А 2 В 2 D 3 4 7 9 0 1 В 2 С 2 5 9 1 1 0 С 2 А 3 6 3 5 1 0 С 2 А 3 7 4 3 0 1 В 2 С 2 8 4 2 1 0 В 2 Е 3 9 5 7 1 0 А 2 В 2 D 3

Получаем разбиение π3= {А 3 = <1, 5, 6>; В 3=<2>; С 3=<4, 7>; Получаем разбиение π3= {А 3 = <1, 5, 6>; В 3=<2>; С 3=<4, 7>; D 3=<3, 9>; Е 3=<8>}. π2 = {А 2 = <1, 5, 6>; № Функции переходов π2 В 2=<2, 4, 7>; С 2=<3, 9>; D 2=<8>}. y(t) и выходов y(t+1) ψ z(t) а b а b π3 1 3 6 1 0 С 2 А 3 2 4 8 0 1 В 2 D 2 В 3 3 1 4 1 0 А 2 В 2 D 3 4 7 9 0 1 В 2 С 2 5 9 1 1 0 С 2 А 3 6 3 5 1 0 С 2 А 3 7 4 3 0 1 В 2 С 2 8 4 2 1 0 В 2 Е 3 9 5 7 1 0 А 2 В 2 D 3

Строим π4 № y(t) Функции переходов и выходов y(t+1) π3 y(t+1) ψ z(t) а Строим π4 № y(t) Функции переходов и выходов y(t+1) π3 y(t+1) ψ z(t) а b а b 1 3 6 1 0 D 3 А 4 2 4 8 0 1 С 3 Е 3 В 4 3 1 4 1 0 А 3 С 4 4 7 9 0 1 С 3 D 4 5 9 1 1 0 D 3 А 4 6 3 5 1 0 D 3 А 4 7 4 3 0 1 С 3 D 4 8 4 2 1 0 С 3 В 3 Е 4 9 5 7 1 0 А 3 С 4

Получаем разбиение π4= {А 4 = <1, 5, 6>; В 4=<2>; С 4=<4, 7>; Получаем разбиение π4= {А 4 = <1, 5, 6>; В 4=<2>; С 4=<4, 7>; D 4=<3, 9>; Е 4=<8>}. Поскольку π4 = π3, искомое разбиение найдено. Минимальный автомат имеет 5 состояний, а его функции переходов и выходов определяются так (берём за основу разбиение π3): (А 3, а)= D 3, ψ (А 3, а)=1 и так далее.

 • Рассмотрим особенности нахождения классов эквивалентности для автомата Мили • Рассмотрим особенности нахождения классов эквивалентности для автомата Мили

Первый шаг • Находясь в состояниях 1, 2, 3 и 6, автомат преобразует входной Первый шаг • Находясь в состояниях 1, 2, 3 и 6, автомат преобразует входной символ a в выходной символ a, а в состояниях 4 и 5 преобразует а в b. • По входному символу b классы А 1 и В 1 не разбиваются. № a b 1 a, 2 b, 5 2 a, 5 b, 4 3 a, 1 b, 5 4 b, 6 a, 1 5 b, 3 a, 1 6 a, 1 b, 4

 • Поэтому на первом этапе множество состояний V расщепляется по входному символу а • Поэтому на первом этапе множество состояний V расщепляется по входному символу а на два класса: 1 А 1 = {1, 2, 3, 6} и В 1 = {4, 5}.

Второй шаг • Класс В 1 не разбивается, т. к. из состояний 4 и 5 Второй шаг • Класс В 1 не разбивается, т. к. из состояний 4 и 5 под действием входного сигнала а автомат переходит в состояния 6 и 3, которые принадлежат одному классу А 1, а под действием сигнала b – в состояние 1, которое тоже принадлежат классу А 1. № a b 1 a, 2 b, 5 2 a, 5 b, 4 3 a, 1 b, 5 4 b, 6 a, 1 5 b, 3 a, 1 6 a, 1 b, 4

Второй шаг • Класс А 1 разбивается по символу а на два класса: А Второй шаг • Класс А 1 разбивается по символу а на два класса: А 2 = {1, 3, 6} и В 2 = {2}. Действительно, под действием входного символа а из состояний 1, 3 и 6 автомат переходит в состояния 2 и 1, которые принадлежат классу А 1, а из состояния 2 – в состояние 5, которое классу А 1 не принадлежит. № a b 1 a, 2 b, 5 2 a, 5 b, 4 3 a, 1 b, 5 4 b, 6 a, 1 5 b, 3 a, 1 6 a, 1 b, 4

Второй шаг • Поэтому группа состояний 1, 3 и 6 после разбиения класса А Второй шаг • Поэтому группа состояний 1, 3 и 6 после разбиения класса А 1 не может попасть в один новый класс вместе с состоянием 2. • Класс А 2 далее не разбивается, поскольку под действием символа b автомат из состояний 1, 3 и 6 попадает в состояния 5 и 4, которые принадлежат одному классу C 2. № a b 1 a, 2 b, 5 2 a, 5 b, 4 3 a, 1 b, 5 4 b, 6 a, 1 5 b, 3 a, 1 6 a, 1 b, 4

Второй шаг Таким образом, по окончании второго этапа получаем разбиение на три класса: № Второй шаг Таким образом, по окончании второго этапа получаем разбиение на три класса: № a b π1 π2 1 2/a 5/b А 1 А 2 2 5/a 4/b А 1 В 2 3 1/a 5/b А 1 А 2 2={А 2 = <1, 3, 6>; 4 6/b 1/a В 1 С 2 5 3/b 1/a В 1 С 2 6 1/a 4/b А 1 А 2 В 2 = <2>; С 2 = <4, 5>}.

 • М =< К, Σ, π, s, F, S, ε > • K • М =< К, Σ, π, s, F, S, ε > • K — конечное множество состояний автомата; • Σ — допустимый входной алфавит, из которого формируются строки, считываемые автоматом; • s— единственно допустимое начальное состояние автомата; • π -функция переходов из состояний в другие состояния; • F— множество конечных состояний, причём допустимо F=Ø, и F=K, • S — алфавит памяти (магазина), • ε— нулевой символ памяти. • Память работает как стек, то есть для чтения доступен последний записанный в неё элемент

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