- •Русаков Алексей Михайлович
- •Лекции по дисциплине «Дискретная математика»
- •Введение.
- •Теория множеств.
- •Понятие множества. Операции над множествами.
- •Определение.
- •Определение.
- •Определение.
- •Пример.
- •Свойства операций сложения и пересечения множеств.
- •Определение.
- •Замечание.
- •Примеры.
- •Счётные множества. Теорема Кантора.
- •Определение.
- •Примеры счётных множеств.
- •Замечания.
- •Теорема.
- •Доказательство:
- •Задачи для самостоятельного решения.
- •Решите задачи № 1.30 1.39 с использованием диаграммы Эйлера-Венна.
- •Бинарные отношения в теории графов.
- •Например:
- •Матрицы смежности и инцидентности.
- •Пример.
- •Маршруты, цепи и простые цепи.
- •Определение
- •Расстояние и протяжённость в графе.
- •Деревья.
- •Примеры:
- •Например:
- •Помеченные графы. Перечисление помеченных деревьев.
- •Пример:
- •Теорема Келли.
- •Задача о кратчайшем соединении.
- •Задача о кратчайших путях.
- •Эйлеровы цепи, критерий Эйлеровости. Задача о Кёнигсбергских мостах.
- •Доказательство:
- •Достаточность.
- •Индуктивный переход.
- •Гамильтовы циклы.
- •Пример:
- •Примеры задач и упражнений.
- •Решение.
- •Задачи для самостоятельного решения.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение группы.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение и способы описания формальных грамматик.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Теория автоматов.
- •Основные понятия теории автоматов.
- •Определение.
- •Способы задания автоматов. Таблица переходов.
- •Определение.
- •Определение.
- •Способы задания автоматов. Граф автомата.
- •Определение.
- •Способы задания автоматов. Матрица переходов и выходов. Определение.
- •Машины Тьюринга и конечные автоматы. Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Машины Тьюринга с двумя выходами.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Автоматы с магазинной памятью и бесконтекстные языки.
- •Определение.
- •Определение.
- •Модель дискретного преобразователя Глушкова в. М. Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Понятие об абстрактном автомате и индуцируемом им отображении. Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Определение.
- •Автоматные отображения и события. Определение.
- •Определение.
- •Определение.
- •Определение.
- •Теорема.
- •Регулярные языки и конечные автоматы. Определение.
- •Определение.
- •Определение.
- •Определение.
- •Правила подчинения мест в регулярных выражениях.
- •Определение.
- •Определение.
- •Правила построения основного алгоритма синтеза конечных автоматов.
- •Пример.
- •Автомат Мили.
- •Определение.
- •Определение.
- •Автомат Мура.
- •Определение.
- •Определение.
- •Теория булевых функций.
- •Связь булевых функций и схем из функциональных элементов и контактных схем. Определение.
- •Замечания.
- •Теорема.
- •Доказательство:
- •Замечание.
- •Теорема. (Формулы разложения Клода Шеннона.)
- •Доказательство:
- •Замечания.
- •Основные свойства булевых функций. Замечание.
- •Определение.
- •Примеры задач и упражнений. Пример 1
- •Доказательство
- •Задачи для самостоятельного решения.
- •Элементы комбинаторики.
- •Основные понятия комбинаторики. Определение.
- •Определение.
- •Доказательство.
- •Теорема – правило включения-исключения.
- •Доказательство.
- •Доказательство.
- •8.2. Формулировка задания.
- •Определение.
- •Пример.
- •Переходы можно представить также с помощью таблицы и схематически:
- •Определение.
- •Последовательность выполнения.
- •Методический пример.
- •Контрольная распечатка.
- •Замечания.
- •Отчет по практической работе.
- •Контрольные вопросы
- •Варианты заданий.
- •Домашняя работа №1. По всей теории
- •Домашняя работа №2. Способы задания графов
- •8.03.2. Правила регулярного выражения.
- •Установка необходимого программного обеспечения.
- •Замечания.
- •Методический пример.
- •Контрольная распечатка.
- •Отчет по практической работе.
- •Контрольные вопросы.
- •Варианты заданий.
- •Дополнительные материалы.
- •Биография Георга Кантора (основатель теории множеств).
- •Город Калининград (Кёнигсберг).
- •Список литературы.
Определение.
Выводимость. Если имеется последовательность цепочек Х0, Х1 ,..., Хn, в которой каждая следующая цепочка непосредственно выводима из предыдущей, то цепочка Хn выводима из цепочки Х0. Последовательность цепочек Х0, Х1, ..., Хn называется выводом Хn изХ0—в грамматике G.
Существенно, что порождающая грамматика не есть алгоритм, поскольку правила подстановки представляют собой не последовательность предписаний, а совокупность решений. Это означает, что, во-первых, правило вида а → b понимается в грамматике как «а можно заменить на b» (но можно и не заменять); в алгоритме же а → b означало бы «а следует заменить на b» (нельзя не заменять); во-вторых, порядок применения правил в грамматике произволен: любое правило, в принципе, разрешается применять после любого.
Определение.
Язык, порожденный грамматикой это Совокупность всех терминальных цепочек, т. е. цепочек, состоящих только из терминальных символов, выводимых из начального символа в грамматике G, называется языком, порожденным грамматикой G, и обозначается L(G).
Следовательно, применение грамматики – это построение полных выводов, последние цепочки которых и образуют язык, порожденный грамматикой.
Определение.
Две различные грамматики могут порождать один и тот же язык, то есть одно и то же множество терминальных цепочек. Такие грамматики называются эквивалентными грамматиками.
Пусть алфавит символов (непустое конечное множество), из которых строятся цепочки языка L, представляет собой алфавит терминальных символов VТ. Очевидно, что L ≤ VТ *.
Определение формальной грамматики требует наличия еще одного алфавита VN – непустого конечного множества нетерминальных символов (VN ∧ VТ = 0). Объединение этих алфавитов назовем словарем формального языка L: V = VN ∨ VТ.
Условимся обозначать элементы алфавита VТ строчными латинскими буквами, элементы множества VN – прописными латинскими буквами, элементы словаря V*, (цепочки символов словаря) – греческими буквами.
Определим также множество упорядоченных пар (полутуэвских соотношений) следующим образом:
П = {(α, β) | α ∈ V* VN V* ∧ β ∈ V+}.
Каждая пара (α, β) называется продукцией и обозначается как α → β.
Заметим, что β является элементом усеченной итерации словаря, поэтому среди продукций нет пар вида α → ε, где ε – пустая цепочка.
Определение.
Формальная грамматика G – это совокупность четырех объектов (четвёрка): G = (VT, VN, P, S),
где VТ – алфавит терминальных символов (множество основных понятий языка);
VN – непустое конечное множество нетерминальных символов (вспомогательных понятий – обозначений конкретных классов слов, например, глаголов или предлогов, слогов, букв);
Р – непустое конечное подмножество продукций (П) – полутуэвская система подстановок;
S ∈ VN – множества начальных символов.
Определение.
Языком L(G), порождаемым грамматикой G, будем называть множество цепочек α ∈ VТ , каждая из которых порождается из начального символа S в смысле полутуэвских соотношений Р данной грамматики. Другими словами, L(G) = {α | α ∈ VT* ∧ S ⇒ *α}.
-
Классификация формальных языков по Хомскому.
Н. Хомский определил четыре типа грамматик, на основе которых оцениваются возможности других способов описания языков.
Типы грамматик по Хомскому располагаются по убыванию сложности языка и обозначают: тип 0, тип 1, тип 2 и тип 3.
Соответствующий тип грамматики определяется теми ограничениями, которые налагаются на продукцию Р.
Рис. 3.1. Иерархия грамматик, языков и автоматов.
Определение.
Если никаких ограничений нет, то грамматика принадлежит к типу 0 — грамматика без ограничений.
Определение.
Ограничение, налагаемое на длину цепочек α и β: | α | ≤ | β |, относит грамматики к типу 1. Такие грамматики также называют контекстно-зависимыми, то есть грамматиками непосредственных составляющих (НС-грамматиками).
Определение.
В том случае, когда цепочка α состоит из одного символа, т. е. α ∈ VN, грамматики относят к типу 2. В этом случае их называют бесконтекстными (контекстно-свободными или КС-грамматиками).
Определение.
Регулярными грамматиками (типа 3) называют такие, для которых α ∈ VN , а β ∈ VТVN, либо β ∈ VТ. Иными словами, правые части продукций регулярных грамматик состоят либо из одного терминального и одного нетерминального символов, либо из одного терминального символа.
Нетрудно видеть, что каждая регулярная грамматика является бесконтекстной, а каждая бесконтекстная грамматика является контекстно-зависимой. В свою очередь, каждая контекстно-зависимая грамматика – это грамматика типа 0. Обратное утверждение неверно.
Очевидно, что имеется некоторая иерархия грамматик, которой соответствует иерархия формальных языков, каждый из них может быть порожден некоторой формальной грамматикой. При этом тип языка соответствует типу той грамматики, с помощью которой он может быть порожден.
С другой стороны, типы языков могут быть определены типами абстрактных распознающих устройств (автоматов). При этом язык определяется как множество цепочек, допускаемых распознающим устройством определенного типа. На рис. 3.1 приведена иерархия языков и соответствующие ей иерархии грамматик и автоматов как распознающих устройств. Любое множество, порождаемое автоматическим устройством произвольного вида, порождается некоторой грамматикой типа 0 по Хомскому.
Заметим, что для любого естественного языка, в принципе, возможно построить математическую модель, использующую такую грамматику.
Таким образом, грамматики типа 0 представляют собой порождающие устройства очень общего характера. Формальные языки, с которыми имеют дело автоматно-лингвистические модели (язык программирования, ограниченные естественные языки), как показывает практика, всегда описываются языками типа 1 или 2.
Языки типа 3, которые называют автоматными языками, языками с конечным числом состояний, нашли широкое применение в исследовании электронных схем, а также в ряде других областей (например, исследование цепей Маркова).