
- •Курс лекций
- •По дискретной математике
- •(2 Семестр)
- •(Для студентов специальности «Прикладная математика», «Компьютерные системы и сети»)
- •Комбинаторика.
- •§1. Правила комбинаторики. Основные комбинаторные формулы.
- •Размещения.
- •Перестановки.
- •Сочетания.
- •§2. Свойства сочетаний. Бином Ньютона.
- •§3. Числа Фибоначчи. Рекуррентные соотношения.
- •§3. Производящие функции.
- •Теория графов. Введение
- •§1. Основные понятия и определения теории графов.
- •§2. Задачи, послужившие основой теории графов.
- •1. Задача о кенигсбергских мостах.
- •2. Задача о четырех красках.
- •§3. Алгоритмические задачи.
- •1. Задачи о кратчайших путях.
- •Алгоритм решения.
- •Обоснование алгоритма.
- •2. Алгоритм построения Эйлерова цикла.
- •Обоснование алгоритма.
- •3. Потоки на транспортных сетях.
- •Алгоритм Форда - Фалкерсона для нахождения потока наибольшей величины.
- •Обоснование алгоритма.
- •§4. Цикломатическое число графа. Деревья.
- •§5. Эйлерова характеристика. Плоские графы.
- •§6. Теорема о пяти красках.
- •Оценка хроматического числа плоского графа.
- •§7. Графы правильных многогранников.
- •Теория конечных автоматов Введение.
- •§1. Определение автомата Мили. Автомат Мура.
- •§2. Покрытие и эквивалентность. Морфизмы.
- •§3. Эквивалентные состояния автоматов.
- •§4. Процедура минимизации конечных автоматов.
- •§5. Машина Тьюринга.
- •§6. Не полностью описанные автоматы.
- •Алгоритмы и рекурсивные функции. Введение.
- •§1. Основные понятия и определения.
- •§2. Примитивно рекурсивные функции.
- •§3. Частично рекурсивные функции.
- •§4. Машины Тьюринга.
- •Список литературы.
- •2 Семестр
§2. Покрытие и эквивалентность. Морфизмы.
Пусть
- конечный автомат. Тогда по любой входной
строке
длиныr
и по любому начальному состоянию
однозначно определяется строка длиныr
внутренних состояний
,
которая получается последовательным
применением отображения
.
Точнее:
.
Аналогично строка на выходе определяется
последовательным применением отображения
.
Поэтому рассмотрим автомат как устройство,
перерабатывающее пары, состоящие из
состояния
и
в строки
и
.
С помощью функций
и
можно определить функции
,
,
которые строятся по функциям
и
,
заданным в описании автоматаМ.
Пример. Автомат задан диаграммой:
Пусть
входная строка
и начальное состояние
,
тогда
,
.
Увеличение числа внутренних состояний автомата в реальном устройстве приводит к росту количества электронных схем, к уменьшению надежности, к усложнению отладки и т. д. Поэтому число необходимых состояний автомата, предназначенного для выполнения определенных действий, стремятся уменьшить, не ограничивая его возможностей.
Этим
объясняется важность следующей задачи.
Предположим, что входной и выходной
алфавиты фиксированы. Возникает следующий
вопрос. Можно ли заменить автомат
автоматом с меньшим числом внутренних
состояний
,
но с той же функцией, переводящей входы
в выходы?
Определение
1: Говорят,
что автомат
покрывает
автомат
,
если входной и выходной алфавиты у них
общие и существует функция
,
такая что для любого положительного
числа
имеет место условие:
.
Определение
2: Автомат,
который нельзя покрыть меньшим автоматом,
называется минимальным.
Будем писать:
,
если
покрывает
.
Теорема 1: Отношение покрытий рефлексивно и транзитивно.
Доказательство очевидно.
Определение
3: Автоматы
и
называютсяэквивалентными,
если автомат
покрывает
и автомат
покрывает
.
В этом случае пишут:
.
Это
означает, что кроме функции
со свойством, указанным в предыдущем
определении, существует еще функция
со следующим свойством:
при
и
.
Следствие: Отношение эквивалентности автоматов рефлексивно, транзитивно и симметрично.
Пусть
и
– автоматы с общими входными и выходными
алфавитами.
Определение
4: Морфизмом
называется такое отображение
,
что
и
и
.
Если
сюрьективно, то морфизм называетсяэпиморфизмом.
Если
- биекция, то морфизм называетсяизоморфизмом.
Теорема
2: Пусть
эпиморфизм автомата
на
.
Тогда для любой входной строки
и любого начального состояния
входная строка
автомата
совпадает с входной строкой автомата
,
если начальное состояние
равно
.
Доказательство:
Доказательство
можно провести индукцией по числу
с индуктивным шагом:
;
.
Следствие:
Любой эпиморфизм
определяет покрытие автомата
автоматом
.
Изоморфизм автоматов
и
с общим входным и выходным алфавитами
есть биекция
,
такая, что для всякого начального
состояния
и
всякой входной строки
автоматы
и
выдают одну и ту же выходную строку,
проходя через соответствующие
промежуточные состояния.
Пример. Автоматы, представленные следующими ориентированными графами, изоморфны.
§3. Эквивалентные состояния автоматов.
В
этом параграфе мы решим следующую
задачу: по данному описанию автомата
построить новый автомат
,
который покрывает
(возможно, эквивалентен
)
и имеет наименьшее число состояний
среди всех автоматов, покрывающих
.
Существует
эффективный метод решения этой задачи,
если функции
всюду определены. Для этого сначала
определяют эквивалентные состояния
автомата, а затем склеивают все
эквивалентные состояния в одно.
Определение
1: Состояния
и
называются
-эквивалентными,
если для всякой входной строки
длины
имеем:
.
В этом случае будем писать:
.
Если
,
то будем говорить, что состояния
и
эквивалентны,
и писать:
.
Заметим,
что
и
– действительно отношение эквивалентности.
Классы эквивалентности относительно
,
являются множествами всех пар состояний,
перерабатывающих каждый входной символ
в фиксированный выходной символ
.
Это означает, что
.
Обозначим через
отношения эквивалентности
(т.е. множество всех пар эквивалентных
состояний). Обозначим через
дополнение к
,
т.е.
.
Пусть,
например, даны таблицы состояний
автоматов
и
:
Текущее состояние |
ν 0 1 |
ξ 0 1 |
S0 S1 S2 |
S2 S1 S0 S2 S0 S1 |
0 1 1 0 0 1 |
Текущее состояние |
0 1 |
0 1 |
S0 S1 |
S0 S1 S0 S0 |
0 1 1 0 |
G (E1) = {(S0, S2), (S2, S0), (S0, S0), (S1, S1), (S2, S2)},
G (E1) = {(S0, S1), (S1, S0), (S1, S2), (S2, S1)}.
Задача минимизации количества состояний в полностью описанном автомате сводится к определению попарно эквивалентных состояний и последующему их склеиванию.
Оказывается,
что эффективнее всего начать с выявления
неэквивалентных состояний. Чтобы
показать это, определим новые функции
и
.
Определение
2: Положим:
.
Это означает, что
есть последнее состояние автомата,
начавшего работу в состоянии
,
прочитавшего входную строку
длины
.
Положим далее:
.
Это означает, что
есть последний символ выходной строки
автомата, начавшего работать в состоянии
и считавшего ту же входную строку
.
Теорема
1: Если
,
то либо
,
либо для подходящей строки
имеем
.
Доказательство:
Утверждение
означает, что
для подходящей строки
.
При необходимости мы можем укоротить
входную строку так, чтобы входные строки,
отвечающие
и
,
отличались только последними символами.
Пусть это уже сделано. Если после этого
,
то
.
Если же
,
то
.
Но
при условии
.
Таким образом, последние выходные
символы автомата, считавшего
,
различны, если он исходил из начальных
состояний
и
соответственно.
Чтобы выходы отличались, то есть
должно быть выполнено условие:
.
Иначе последний входной символ
даст один и тот же символ на выходе.
Теорема
2: Если
,
но
для всех
,
то
для подходящего элемента
.
Эту
теорему можно переформулировать так:
если
,
то для подходящего элемента
имеем:
.
Эта теорема утверждает, что состояния
и
,
эквивалентные относительно всех входных
последовательностей длины
,
могут стать неэквивалентными относительно
последовательностей длины
только в том случае, когда имеется символ
,
переводящий
и
соответственно в состояния
,
не эквивалентные относительно подходящей
входной последовательности длины
.
Это означает, что на
шаге достаточно исследовать состояния
в
и установить, найдется ли пара
,
переходящая в пару
со свойством
.
В этом случае
.
Если
мы уже определили
,
то
состоит из
и таких упорядоченных пар
,
что для некоторого
имеем:
.
В общем случае нужно исследовать каждый
раз только
.
Таким способом мы сумеем рекуррентно
определить
и, наконец,
- дополнение к
в булевой алгебре подмножеств
.
Доказательство:
Доказательство теоремы проводится
непосредственно. Если пара
лежит в
,
то она лежит в
.
Значит нужно рассмотреть лишь такие
пары
,
что для некоторой строки
имеем
,
а для всех строк
имеем
.
Но в точности те пары, которые переводятся
в
,
-м
входным символом
и стало быть, в
,
некоторым символом
.
Лемма:
Если
,
то
для всех
.
Действительно,
дальнейшие шаги не добавят новых пар
состояний, т.к. согласно теореме 2,
дополнение
состоит из тех пар, которые переводятся
подходящим символом
в дополнение
.
Пример: Пусть задана таблица состояний некоторого автомата.
Текущее состояние |
След. состояние 0 1 |
Выход 0 1 |
S1 |
S1 S2 |
1 0 |
S2 |
S1 S3 |
1 0 |
S3 |
S5 S1 |
1 0 |
S4 |
S4 S2 |
1 0 |
S5 |
S4 S3 |
1 1 |
Для
этого автомата
.
Иными
словами:
.
Первое разбиение на классы эквивалентности:
,
.
Вход 0 переводит
в состояние
,
в
:
,
.
Поэтому вход01
дает Следующие результаты:
и
.
Отсюда
и
.
Аналогично:
и
,
так что имеет место условие:
.
Далее,
входной символ 1 переводит состояние
в
,
а
переводит в состояние
.
Другими словами:
и
.
Поэтому
,
т.к.
и
.
Аналогично:
,
откуда следует:
.
Таким
образом,
разбивает
на классы эквивалентности:
,
,
,
.
Дальнейший
перебор показывает, что
.
Таким образом,
и
,
а остальные пары состояний неэквивалентны.