- •«Дискретная математика»
- •Множества и отношения Тема 1. Основные понятия теории множеств Множества и основные операции над ними
- •Кортеж. Декартово произведение
- •Мощность множества
- •Тема 2. Элементы комбинаторики Комбинаторные вычисления
- •Основные понятия комбинаторики
- •Размещения
- •Перестановки
- •Сочетания
- •Определение числа сочетаний с повторениями
- •Бином Ньютона
- •Решение комбинаторных уравнений
- •Метод включений и исключений
- •Рекуррентные соотношения. Возвратные последовательности
- •Тема 3. Отношения на множествах Отношения. Функции. Взаимно однозначные соответствия
- •Отношения эквивалентности и разбиения. Фактор-множества
- •Отношения порядка
- •Тема 4. Элементы теории графов
- •Определение и примеры графов
- •Связность графа
- •Обзор основных задач теории графов
- •Расчет сетевого графика
- •Резервы сетевого графика
- •Сети Петри
- •Маршруты
- •Степени вершин
- •Раскраски графов
- •Планарные графы
- •Изоморфизм графов
- •Алгебра и топология Тема 1. Элементы общей алгебры Операции на множествах
- •Унарные операции алгебры поворотов квадрата
- •Группа подстановок Галуа
- •Алгебра множеств (алгебра Кантора)
- •Алгебраические системы. Решетки
- •Задание множеств конституентами
- •Задание множества а двоичным числом
- •Пересечение множеств № 12 и № 5
- •Тема 2. Булевы функции
- •Табличное задание булевых функций
- •Задание булевой функции
- •Задание булевых функций одной переменной
- •Задание булевых функций двух переменных
- •Аналитическое задание булевых функций
- •Задание булевой функции голосования
- •Полные системы булевых функций
- •Тема 3. Алгебраические системы Определения и примеры
- •Подсистемы
- •Конгруэнции. Фактор-алгебры. Теорема о гомоморфизме
- •Тема 4. Элементы общей топологии
- •Топологические пространства, сходимость к точке и направленности
- •Фильтры и ультрафильтры
- •Булевы решетки подмножеств
- •Атомы и шкалы решеток подмножеств
- •Алгебра логики Тема 1. Алгебра логики высказываний Формулы алгебры логики
- •Функции алгебры логики
- •Эквивалентность формул
- •Дизъюнктивные и конъюнктивные нормальные формы
- •Минимизация булевых функций в классе днф
- •Карты Карно
- •Логические сети Определение и реализация булевых функций
- •Схемы из функциональных элементов
- •Мультиплексоры
- •Программируемые логические матрицы
- •Тема 2. Логика предикатов Предикаты. Кванторы
- •Формулы логики предикатов
- •Правила преобразования формул логики предикатов
- •Тема 3. Элементы теории доказательств Аксиоматическая (формальная) теория. Исчисление предикатов
- •Метод резолюций
- •Хорновские дизъюнкты
- •Унификация. Метод резолюций в логике предикатов
- •Тема 4. Алгоритмы Понятие об алгоритмах. Схемы алгоритмов Понятие об алгоритме и теории алгоритмов
- •Схемы алгоритмов
- •Описание символов, используемых в схемах алгоритмов
- •Неразрешимые алгоритмические проблемы
- •Конечные автоматы и регулярные языки Тема 1. Синтаксис языков Алфавит, слово, язык
- •Классификация грамматик и языков
- •Регулярные языки и регулярные выражения
- •Тема 2. Переключательные функции и способы их задания Понятие о переключательных функциях
- •Некоторая трехзначная переключательная функция двух переменных
- •Трехзначная пф «дизъюнкция а, b »
- •Трехзначная пф «сумма a, b по модулю 3»
- •Трехзначная пф «а плюс 1 по модулю 3 — циклический сдвиг а»
- •Двоичные переключательные функции и способы их задания
- •Одномерная таблица истинности некоторой функции
- •Двухмерная таблица истинности
- •Основные бинарные логические операции
- •Бинарная конъюнкция
- •Бинарная конъюнкция
- •Бинарная дизъюнкция
- •Бинарная инверсия
- •Импликация
- •Эквиваленция
- •Функциональная полнота систем переключательных функций
- •Линейные функции двух переменных
- •Базисы представления переключательных функций
- •Переключательные функции от трех аргументов
- •Векторы переключательных функций
- •Вектор свойств пф
- •Цель минимизации переключательных функций
- •Тема 3. Элементы теории конечных автоматов Основные определения теории конечных автоматов
- •Понятие о технической интерпретации конечных автоматов
- •Синтез комбинационных автоматов в заданном базисе Синтез комбинационных автоматов
- •Синтез переключательной схемы
- •Синтез в базисе и, или, не
- •Синтез методом каскадов
- •Синтез в базисах и-не, или-не
- •Элементарные автоматы памяти на основе комбинационного автомата и задержки
- •Первичная таблица переходов-выходов
- •Синтез автомата-распознавателя последовательности
- •Первичная таблица переходов-выходов распознавателя 0-1-3-2
- •Тема 4. Элементы теории кодирования
- •Проблема кодирования сообщений
- •Расстояние Хемминга
- •Групповые коды
- •Хемминговы коды
Регулярные языки и регулярные выражения
В замкнутом
полукольце
всех языков в алфавите V
рассмотрим подалгебру
, порожденную множеством
, которое состоит из пустого языка,
языка { λ
}, всех языков { a
}, а
∈ V
(каждый из которых содержит
единственную однобуквенную цепочку а
), и замкнутую
относительно итерации. Эта
подалгебра, обозначаемая
, есть полукольцо с
итерацией. Оно играет
важнейшую роль в теории формальных
языков. Его называют полукольцом
регулярных языков.
Далее будет
доказано, что элементы
полукольца
являются в точности
регулярными языками
, т. е. языками, порождаемыми регулярными
грамматиками.
Теорема. Язык в алфавите V регулярен тогда и только тогда, когда он является элементом полукольца .
Таким образом, множество регулярных языков в алфавите V = { a 1 ,..., а n } есть не что иное, как замыкание конечного множества { ∅ , { λ }, { a 1 },..., {а n }} относительно операций объединения, соединения и итерации. Следовательно, как и всякое U -замыкание , оно может быть описано индуктивно, а именно:
1) пустое множество ∅ , множество { λ } (состоящее из одной пустой цепочки) и множество { a } для каждого a ∈ V считаем регулярным языком в алфавите V ;
2) если известно, что Р и Q — регулярные языки в алфавите F , то к множеству регулярных языков в алфавите V следует добавить объединение P ∪ Q и соединение PQ ;
3) если известно, что Р — регулярный язык в алфавите V , то к множеству регулярных языков в алфавите V следует добавить его итерацию Р* ;
4) никаких других регулярных языков, кроме определенных в пп. 1–3, не существует.
Позитивная итерация регулярного языка регулярна.
Алгебраические операции над регулярными языками удобно представлять с помощью так называемых регулярных выражений . Каждое регулярное выражение представляет (или обозначает) некоторый (однозначно определяемый) регулярный язык, причем языки ∅ , { λ } и {а }, где а ∈ V , обозначаются выражениями ∅ , λ и а соответственно, и если регулярное выражение р обозначает регулярный язык Р , а регулярное выражение q обозначает регулярный язык Q , то регулярные выражения ( p + q ), ( pq ) и (р* ) обозначают регулярные множества Р ∪ Q , PQ и Р* соответственно. Таким образом, в регулярных выражениях для обозначения операции объединения языков используют знак «+» (плюс).
Все регулярные выражения , фигурирующие в этих преобразованиях, эквивалентны , т. е. все они обозначают один и тот же регулярный язык. Проблемы распознавания эквивалентности двух произвольных регулярных выражении, автоматизации тождественных преобразований регулярных выражений и поиск самого короткого («оптимального») регулярного выражения, обозначающего данный регулярный язык, весьма трудны и здесь не обсуждаются. В целом соотношение между регулярными выражениями и регулярными языками вполне аналогично соотношению между формулами и булевыми функциями . В частности, если переход от формулы к эквивалентной формуле в теории булевых функций совершается согласно аксиомам булевой алгебры и другим тождествам, выводимым из этих аксиом, то переход от заданного регулярного выражения к эквивалентному регулярному выражению производится согласно аксиомам полукольца и тождествам, выводимым из них.
Зачастую в дальнейшем, если это не повлечет непонимания, мы будем отождествлять регулярный язык с обозначающим его регулярным выражением (любым!), что позволит не вводить новых обозначений и пояснений. Так, для рассмотренного выше примера мы можем написать bbababbb ∈ ( b + а )* b * , что, строго говоря, обозначает факт принадлежности цепочки bbababbb языку, обозначенному регулярным выражением ( b + a )* b *. Разумеется, следует воздерживаться, например, от употребления такой записи: λ ∈ λ , хотя, если подумать, и здесь все понятно: пустая цепочка λ принадлежит языку { λ }, обозначаемому регулярным выражением λ .
Цит. по: Дискретная математика: учебник для вузов / А.И. Белоусов, С.Б. Ткачев; под ред. В.С. Зарубина, А.П. Крищенко. — 3-е изд., стереотип. — М.: Изд-во МГТУ им. Баумана, 2004. — С. 462–470, 486–494. — (Сер. Математика в техническом университете; Вып. XIX).
