- •Н.А. Ююкин
- •Введение
- •1. Элементы комбинаторики
- •1.1. Простейшие комбинаторные конфигурации
- •Основные правила комбинаторики
- •Выборки элементов без повторений
- •Выборки элементов с повторениями
- •Латинские прямоугольники, конечные проективные плоскости и блок-схемы
- •1.2.1. Латинские прямоугольники
- •1.2.2. Конечные проективные плоскости
- •1.2.3. Блок-схемы
- •Формула включений и исключений
- •1.3.1. Объединение комбинаторных конфигураций
- •1.3.2. Принцип включения и исключения
- •1.3.3. Число булевых функций, существенно зависящих от всех своих переменных
- •1.3.4. Решето Эратосфена
- •1.4. Рекуррентные уравнения
- •1.4.1. Определение рекуррентного уравнения
- •1.4.2. Решение линейного однородного рекуррентного уравнения
- •1 (2).4.3. Решение линейного неоднородного рекуррентного уравнения
- •1.5. Производящие функции
- •1.5.1. Общие сведения о производящих функциях
- •1.5.2. Производящая функция для биноминальных коэффициентов
- •1.5.3. Производящая функция для чисел Фибоначчи
- •1.6.1. Определение z– преобразования
- •1.6.2. Обратное преобразование
- •В правой части этого равенства стоит контурный интеграл в z-плоскости по любому замкнутому контуру в области сходимости, охватывающему начало координат.
- •1.6.3. СвойстваZ-преобразования
- •1.6.4. Использование z-преобразований для решения рекуррентных уравнений
- •1.6.5. Таблица односторонних z-преобразований
- •1.7.Трансверсали и перманенты
- •1.7.1. Множества и мультимножества
- •1.7.2. Трансверсали
- •1.7.3. Пермамент матрицы
- •1.7.4. Число трансверсалей
- •1.8. Матрицы Адамара
- •1.8.1. Определение матрицы Адамара и ее свойства
- •1.8.2. Эквивалентные преобразования матриц Адамара
- •1.8.3. Построение матриц Адамара
- •2. Теория автоматов
- •2.1. Понятие конечного автомата
- •2.1.1. Общие сведения о конечных автоматах
- •2.1.2. Абстрактное определение конечного автомата
- •2.2. Эквивалентности в автоматах
- •2.2.1. Основные определения
- •2.2.2. Покрытия и морфизмы
- •2.2.3. Эквивалентные состояния автоматов
- •2.3. Процедура минимизации конечных автоматов
- •2.4. Автоматные функции и эксперименты с автоматами
- •2.4.2. Моделирование автоматной функции с помощью схемы из функциональных элементов и задержки
- •2.4.3. Эксперименты с автоматами
- •2.5. Автоматные языки
- •2.5.1. Представление о формальных языках
- •2.5.2. Алфавит, слово, язык
- •2.5.3. Классификация грамматик и языков
- •2.5.4. Понятие формальной грамматики
- •2.5.5. Автоматные грамматики.
- •2.6. Модификации конечных автоматов
- •2.6.1. Не полностью описанные (частичные) автоматы
- •2.6.2. Понятия недетерминированного и вероятностного автомата
- •2.7. Процедура минимизации не полностью описанного автомата
- •2.7.1. Совместимые состояния
- •2.7.2. Техника определения совместимых состояний.
- •2.7.3. Построение минимального автомата
- •3. Введение в нечеткую математику
- •3.1. Нечёткие множества
- •3.2. Нечеткие отношения
- •3.3. Нечеткая логика
- •Заключение
- •Библиографический список
- •Оглавление
- •1. Элементы комбинаторики 7
- •2. Теория автоматов 58
- •3. Введение в нечеткую математику 106
2.2.3. Эквивалентные состояния автоматов
Пусть дан автомат . Требуется построить новый автомат, который:
1) покрывает (возможно, даже, эквивалентен ему)
2) имеет наименьшее число состояний среди всех автоматов, покрывающих . Считается, что функцииφиψвсюду определены.
Далее следует определить эквивалентные друг другу состояния автомата . Затем следует склеить все эквивалентные состояния в одно.
Определение. Состояния автоматовиназываютсяr-эквивалентными, если для любой входной строки длиныr () имеет место . В этом случае используется запись . Если это не так, то используется запись . Если для любогоr,то говорят, что состоянияиэквивалентныи записывают.
Отношения Er и Eпредставляют собой отношения эквивалентности. Классы эквивалентности отношенияE1являются множествами всех пар состояний, перерабатывающих каждый входной символ в фиксированный выходной символ. То есть запись означает, что
.
В этом равенстве легко убедиться по таблице состояний.
Например, для автомата, заданного таблицей состояний:
Текущее состояние |
φ | |||
0 |
1 |
0 |
1 | |
0 |
1 | |||
1 |
0 | |||
0 |
1 |
В данном случае имеем . Таким образом, отношение эквивалентностисостоит из следующих элементов:
Дополнение отношения обозначается как. Тогда записьозначает, что. Таким образом:
Задача минимизации сводится к определению попарно эквивалентных состояний и последующему их склеиванию. При этом, оказывается эффективнее всего выявить в начале неэквивалентные состояния.
Вводятся функции φ*иψ*
Определение:Функция, задаваемая выражением
указывает на то, что –есть конечное состояние, в которое переходит автомат, начав работу из состоянияs0и считав строкудлиныr.
Определение: Функция, задаваемая выражением
указывает на то, что - есть последний символ выходной строки, которую печатает автомат, начав работу из состоянияs0и считав строкудлиныr.
Например, для первого автомата, изображенного на рисунке () при имеем:
.
2.3. Процедура минимизации конечных автоматов
Процедура минимизация основана на рассмотрении отношений эквивалентности между упорядоченными парами состояний конечного автомата.
Рассмотрим таблицу состояний автомата.
Текущее состояние | ||||||
1 |
0 |
0 | ||||
0 |
1 |
1 | ||||
1 |
0 |
0 | ||||
0 |
1 |
1 | ||||
1 |
0 |
0 | ||||
0 |
1 |
1 | ||||
1 |
0 |
0 | ||||
1 |
0 |
0 | ||||
0 |
1 |
1 |
Рис. 1. Таблица состояний автомата, подлежащего минимизации.
Начнем с нахождения отношений и. В соответствии с функцией, находим первое разбиение
. (1)
Оно разбивает состояния автомата на два класса эквивалентности и(здесь вместопишется 1, вместопишется 2 и т.д.). Так как отношениерефлексивно и симметрично, то его всегда можно восстановить по множеству тех пар, для которых выполняется условие, Обозначим его через. Обозначим, в общем случае, черезмножество упорядоченных пар, со свойствами. Для разбиенияимеем:
={(1,3)(1,5)(1,7)(1,8)(3,5)(3,7)(3,8)(5,7)(5,8)(7,8,)(2,4)(2,6)(2,9)(4,6)(4,9)(6,9)},
={(1,2)(1,4)(1,6)(1,9)(2,3)(3,4)(3,6)(3,9)(2,5)(4,5)(5,6)(5,9)(2,7)(4,7)(6,7)(7,9)(2,8)(4,8)(6,8)(8,9)}.
Так как и– классы эквивалентности относительноE1, имеемs1E1s3,s1E1s5иs1s2,s1s4и т.д.
Множество состоит из элементов множестваи ещё пар (2,9), (4,9) и (6,9). Например,a3переводит (2,9) в (4,7), а эта последняя парапринадлежитG(). Добавление этих пар кG() определяет новое разбиение на классы эквивалентности:
(2)
Определим теперь множество . Оно состоит из элементов множества и еще двух пар (2,6) и (4,6).
Например, переводит (2,6) в (4,9), а эта последняя пара принадлежит .При разбиенииπ3имеем следующие классы эквивалентности:
(3)
Дальнейший перебор показываетπ5=π4иE4=E.
Конструкция покрывающего автомата теперь несложна. Каждый класс эквивалентности последнего разбиения становится состоянием нового автомата. Например,обозначается через,черези т.д. Получается автомат с 5-ю состояниями, покрывающий первоначальный автомат с 9-ю состояниями. Так как выходы для каждого начального состояния в фиксированном классе эквивалентности не зависит от этого состояния при односимвольных входах, то в таблице состояний нового автомата выход прямо считывается с таблицы состояний первоначального автомата. Чтобы построить функцию перехода в следующее состояние, выберем по состояниюsiв каждом классе, и если элементaAпереводитsiв неоторое состояние из, положим φ(si,a) =. Заметим, что это предписание однозначно: всеsпереходят в состояния изпосле считывания изaA.
Результат этой процедуры, примененной к автомату с рис. 1, показан на рис. 2. Получен минимальный автомат.
Текущее состояние |
Следующее состояние |
Выход | ||||
|
|
|
|
| ||
|
|
|
1 |
0 |
0 | |
|
|
|
0 |
1 |
1 | |
|
|
|
1 |
0 |
0 | |
|
|
|
0 |
1 |
1 | |
|
|
|
0 |
1 |
1 |
Рис. 2. Минимальный автомат, покрывающий автомат с рис. 1.
Практически необязательно перечислять все пары из G(Ei) иG().На каждом шаге достаточно смотреть, переводит ли некоторый входaiAпару (si,sj) в разные классы эквивалентности. Если да, то на следующем шагеsiиsjследует развести по разным классам.
Пример.
Рассмотрим автомат с пятью состояниями:
-
Текущеесостояние
Следующее состояние
Выход
0
1
0
1
s0
s1
s2
1
0
s1
s4
s2
0
0
s2
s3
s0
1
0
s3
s4
s0
0
0
s4
s4
s4
0
0
Имеем:
s0E1s2, s1E1s3, s1E1s4, s3E1s4.
Это приводит к разбиению
.
Вход 1 переводит s3вs0, т.е. ν(s3,1) =s0; кроме того, ν(s4,1) =s4. Однакоs0s4, такчтоs3s4 (ибоΨ(s3,10) = 1 и Ψ(s4,10) = 0).
Следующее разбиение π2состоит из классов эквивалентности
.
Дальнейшего измельчения не просходит, ибо ν переводит каждый элемент класса эквивалентности в тот же класс. Итак, состояния s0иs2можно склеить в одно состояние, а состоянияs1иs3– в состояние. Состояниеs4 получает первое обозначениеs2. Новый минимальный автомат, покрывающий исходный автомат:
-
Следующее состояние
Выход
0 1
0 1
1
0
0
0
0
0