
- •Н.А. Ююкин
- •Введение
- •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иs1
s2,s1
s4и
т.д.
Множество состоит
из элементов множества
и
ещё пар (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в
каждом классе
,
и если элементa
Aпереводитsiв
неоторое состояние из
,
положим φ(si,a) =
.
Заметим, что это предписание однозначно:
всеs
переходят
в состояния из
после
считывания изa
A.
Результат этой процедуры, примененной к автомату с рис. 1, показан на рис. 2. Получен минимальный автомат.
Текущее состояние |
Следующее состояние |
Выход | ||||
|
|
|
|
|
| |
|
|
|
|
1 |
0 |
0 |
|
|
|
|
0 |
1 |
1 |
|
|
|
|
1 |
0 |
0 |
|
|
|
|
0 |
1 |
1 |
|
|
|
|
0 |
1 |
1 |
Рис. 2. Минимальный автомат, покрывающий автомат с рис. 1.
Практически
необязательно перечислять все пары из
G(Ei)
иG().На
каждом шаге достаточно смотреть,
переводит ли некоторый входai
Aпару (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,
такчтоs3
s4
(ибоΨ(s3,10)
= 1 и Ψ(s4,10)
= 0).
Следующее разбиение π2состоит из классов эквивалентности
.
Дальнейшего
измельчения не просходит, ибо ν переводит
каждый элемент класса эквивалентности
в тот же класс. Итак, состояния s0иs2можно склеить в
одно состояние,
а состоянияs1иs3– в состояние
.
Состояниеs4 получает
первое обозначениеs2.
Новый минимальный автомат, покрывающий
исходный автомат:
-
Следующее состояние
Выход
0 1
0 1
1
0
0
0
0
0