- •Комбинаторика.
- •§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 Семестр
§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 переводит состояние
в
,
а
переводит в состояние
.
Другими словами:
и
.
Поэтому
,
т.к.
и
.
Аналогично:
,
откуда следует:
.
Таким
образом,
разбивает
на классы эквивалентности:
,
,
,
.
Дальнейший
перебор показывает, что
.
Таким образом,
и
,
а остальные пары состояний неэквивалентны.
