- •Глава 1. Основная модель 8
- •Глава 2 21
- •2.1. Введение 21
- •Глава 3 47
- •3.1. Введение 47
- •Глава 4 77
- •4.1. Введение 77
- •Глава 7 157
- •7.1. Введение 157
- •От редактора перевода
- •Предисловие
- •Глава 1. Основная модель
- •1.1. Введение
- •1.2. Многополюсный черный ящик
- •1.3. Дискретность времени
- •1.4. Конечность алфавита
- •1.5. Состояния
- •1.6. Определение основной модели
- •1.7. Примеры конечных автоматов
- •1.8. Определение множества состояний по внутренней структуре
- •1.9. Другая модель
- •1.10. Предсказание поведения автомата
- •Глава 2
- •2.1. Введение
- •2.2. Таблица переходов
- •2.4. Изоморфные автоматы
- •2.5. Граф переходов
- •2.6. Классификация состояний и подавтоматов
- •2.7. Разложение автоматов и расщепляемый автомат
- •2.8. Матрица переходов13
- •2.9. Матрицы переходов высшего порядка
- •2.10. Элементарные пути
- •2.11. Определение минимальных путей и полных контуров
- •2.12. Скелетная матрица
- •2.13. Частичное построение матриц
- •Глава 3 эквивалентность и минимизация автоматов
- •3.1. Введение
- •3.2. Эквивалентность состояний
- •3.5. Эквивалентные разбиения
- •8.6. Разбиение при помощи таблиц Рk
- •3.7. Разбиение при помощи таблицы пар
- •8.8. Матричный метод разбиения
- •3.9. Эквивалентность автоматов
- •8.10. Эквивалентное разбиение множеств автоматов
- •3.11. Минимальная форма
- •3.12. Свойства минимальной формы
- •3.13. Уменьшение числа состояний автомата последовательным объединением
- •3.14. Класс минимальных автоматов
- •Глава 4 эксперименты по распознаванию состояний
- •4.1. Введение
- •4.2. Классификация экспериментов
- •4.3. Диагностические и установочные эксперименты
- •4.4. Диагностические эксперименты для двух состояний
- •4.5. Разновидности диагностической задачи с двумя состояниями
- •4.6. Дерево преемников
- •4.7. Диагностическое дерево
- •4.8. Простые безусловные диагностические эксперименты
- •4.9. Простые условные диагностические эксперименты
- •4.10. Кратные безусловные диагностические эксперименты
- •4.11. Кратные условные диагностические эксперименты
- •4.12. Установочное дерево
- •4.13. Простые безусловные установочные эксперименты
- •4.14. Простые условные установочные эксперименты
- •4.15. Регулярные безусловные установочные эксперименты
- •4.16. Регулярные условные установочные эксперименты
- •4.17. Следствия, связанные с экспериментами по распознаванию состояний
- •Глава 5 эксперименты по распознаванию автоматов
- •5.1. Введение
- •5.2. Общая задача распознавания автомата
- •5.3. Распознавание автоматов известного класса
- •5.4. Задача распознавания повреждений
- •5.5, Сильносвязные автоматы
- •5.6. Некоторые свойства сильносвязных автоматов
- •5.7. Распознавание сильносвязных (n, р, q)-автоматов
- •5.8. Автоматы без потери информации31
- •Глава 6 автоматы с конечной памятью
- •6.1. Введение
- •6.2. Представление систем с конечной памятью
- •6.3. Свойства автоматов с конечной памятью
- •6.4. Определение памяти автомата
- •6.5. Минимальная X-z-функция
- •6.6. Линейные двоичные автоматы37
- •6.7. Временная характеристика линейного двоичного автомата
- •6.8. Распознавание линейного двоичного автомата
- •6.9. Не зависящие от выхода автоматы
- •Глава 7 автоматы с ограничениями на входе
- •7.1. Введение
- •7.2. Совместимость состояний
- •7.3. Квазиэквивалентные автоматы
- •7.4. Определение минимальных форм
- •7.5. Метод уменьшения числа состояний автоматов с ограничениями на входе
6.4. Определение памяти автомата
В этом параграфе мы рассмотрим следующую задачу. Заданы характеристические функции fz и fs автомата (в табличной форме, в виде графа или в матричной форме). Определить, является ли этот автомат автоматом с конечной памятью, и, если является, то, как определить его память?
Рассмотрим автомат М с множеством состояний {σ1, σ2, ..., σn}. Пусть Q(l)k обозначает множество всех последовательностей вход-выход, описываемых путями длины k, которые заканчиваются в состоянии σi. По лемме 6.1, если М является автоматом с памятью µ, то
По теореме 6.1, если М не является автоматом с конечной памятью, то
Следовательно, для определения памяти автомата можно сформулировать следующий алгоритм.
Алгоритм 6.1. Задан автомат М с множеством состояний {σ1, σ2, ..., σn}; требуется найти память автомата М. (1) Полагаем k=1. (2) Составляем последовательность Q(1)k,
Q(2)k, ..., Q(n)k,. (3) (а) Если Q(i)k ∩ Q(j)k ≠ 0 для некоторых i и j ≠ i, то переходим к (4). (б) Если Q(i)k ∩ Q(j)k = 0 для всех i и j ≠ i, то k является памятью М. (4) (а) Если k<n(n—1)/2, то увеличиваем k на 1 и возвращаемся к (2). (б) Если k = n(n—1)/2, то М не является автоматом с конечной памятью.
Выполнение алгоритма 6.1 облегчается
при использовании матриц переходов
высокого порядка, введенных в главе 2.
В клетке (i, j)
матрицы переходов k-го
порядка
записаны
все пути длины k, ведущие
из состояния σi в
состояние σj. Поэтому
клетки j-го столбца матрицы
представляют все пути длины k,
заканчивающиеся в состоянии σj.
Таким образом, последовательности
вход-выход, представленные путями,
перечисленными в столбце матрицы
,
являются элементами множества Q(j)k . По матрице и диаграмме переходов для автомата М может быть построена таблица, в которой j-й столбец содержит элементы Q(j)k; если нет двух столбцов, имеющих общий член, то k должно быть памятью автомата М.
В качестве примера рассмотрим автомат A28, показанный на рис. 6.6. Матрица переходов автомата A28 задана
выражением (6.23), а матрица переходов первого порядка — выражением (6.24).
По (6.24) и (6.23) можно построить таблицу 6.3, в которой перечислены Q(1)1, Q(2)1, Q(3)1, Q(4)1.
Так как последовательности вход-выход (0/1) и (1/1) появляются в двух различных столбцах этой таблицы, память автомата A28 будет превышать 1. Выражение (6.25)
представляет собой матрицу переходов второго порядка для автомата A28.
По (6.25) и (6.23) можно построить таблицу 6.4, в которой перечислены Q(1)2, Q(2)2, Q(3)2, Q(4)2.
Автомат A28 должен иметь память 2, так как никакая последовательность вход-выход не появляется в двух различных столбцах этой таблицы. Если бы автомат A28 не был автоматом с конечной памятью, то этот факт обнаружился бы из таблицы, перечисляющей Q(1)6, Q(2)6, Q(3)6, Q(4)6.
6.5. Минимальная X-z-функция
Если известна память µ конечного автомата М, то автомат может быть охарактеризован уравнением вида
Функцию f, соответствующую выражению (6.26), будем называть x-z-функцией автомата М. Часто x-z-функция содержит целый ряд несущественных переменных и может быть сведена к виду
где 0 ≤ i1 < i2 < ... < iu, 1 ≤ j1 < j2 < ... < jv, а iu = µ и (или) jv = µ. Функция f называется минимальной x-z-функцией М, если u + vг»—минимальное число аргументов хi и zi, необходимых для выражения z, как функции входных воздействий и выходных реакций в форме (6.27). Таким образом, минимальная x-z-функция получается из x-z-функции путем вычеркивания из последней максимально возможного числа аргументов xi и zi. Получение минимальной x-z-функции, или минимизация x-z-функции представляет интерес для целого ряда задач анализа и синтеза, когда для заданного конечного автомата желательна наиболее компактная форма его описания, т. е. форма (6.27).
Задача минимизации x-z-функции может быть сформулирована более точно на языке x-z-таблицы, общая форма которой показана в таблице 6.5.
Таблица разделена на q групп строк, по одной группе для каждого выходного символа в выходном алфавите {ζ1, ζ2, ..., ζq} автомата M c n состояниями. Группу строк, обозначенную в столбце zv символом ζk, будем называть ζk –гpyппой. Столбцы xv-µ, zv-µ, xv-µ+1, zv-µ+1, ..., xv-1, zv-1, xv заполняются следующим образом. Пусть (ξi/ζk)является парой вход-выход, связанной с дугой, которая начинается в состоянии σi, и пусть (ξi1/ζk1) (ξi2/ζk2) ... (ξiµ/ζkµ) -
последовательность вход-выход в множестве
Q(i)µ
(такие последовательности могут быть
получены из таблицы для Q(1)µ,
Q(2)µ, ..., Q(k)µ
построенной для определения µ по
алгоритму 6.1). Тогда последовательность
символов ξl1,
ξk1,
ξl2,
ξk2,
..., ξlµ,
ξkµ,
ξl (записанная
в таком порядке) является строкой ζk
группы. Следуя этим правилам в отношении
всех n состояний, можно
заполнить все клетки таблицы. Если число
последовательностей в Q(i)µ
равно ri
и число,символов вход-входного алфавита
равно р, то число строк в x-z-таблице
равно
.
Таким образом x-z-таблица
является табличным воспроизведением
x-z-функции,
в котором значения zv
перечисляются для каждого из тех
упорядоченных наборов зна-
чений (2µ+l) переменных (xv-µ, zv-µ, xv-µ+1, zv-µ+1, ..., xv-1, zv-1, xv), которые могут встретиться в данном автомате. Например, таблица 6.6 является x-z-таблицей автомата A28, показанного на рис. 6.6.
Из матрицы (6.23) видно, что пара вход-выход (0/0) связана с дугой, которая начинается в состоянии 1. Из таблицы 6.4 видно, что множество Q(1)2 состоит из последовательностей вход-выход (1/1) (1/0) и (0/1) (1/0). Следовательно, 0-группа в x-z-таблице должна содержать строки 1,1,1.0,0 и 0,1,1,0,0. Остальные строки в таблице 6.6 заполняются аналогичным образом. Чтобы облегчить последующее изложение материала, придадим строкам и столбцам этой таблицы порядковые номера.
Задача минимизации x-z-функции на языке x-z-таблицы может быть сформулирована следующим образом: вычеркнуть максимальное число столбцов из таблицы так, чтобы ни одна строка любой одной группы не стала одинаковой ни с какой строкой любой другой группы. Пусть столбцами, которые остались после такого вычеркивания, являются xv-i1, zv-i2, ..., xv-iu, zv-j1, zv-j2, ...,zv-jv. Поскольку v+u обязательно является минимальным числом аргументов и поскольку ни один упорядоченный набор значений u + v переменных не появляется в двух различных ζk-группах x-z-таблицы, мы имеем:
где f—минимальная x-z-функция.
Таким образом, чтобы найти минимальную x-z-функцию, можно воспользоваться следующим алгоритмом.
Алгоритм 6.2. Задана х-z-таблица автомата М. Чтобы определить минимальную x-z-функцию М: (1) Полагаем h = 1. (2) Для каждой комбинации из h столбцов проверяем, делает ли вычеркивание остающихся столбцов строки из различных ζk групп одинаковыми. (3) (а) Если каждая комбинация делает строки в различных ζk-группах одинаковыми, то увеличиваем h на единицу и возвращаемся к (2). (б) Если есть
комбинация, которая не делает строки в различных ζk-группах одинаковыми, то берем эту комбинацию, соответствующую
столбцам xv-i1, xv-i2, ..., xv-iu, zv-j1, zv-j2, ...,zv-jv. Минимальная x-z-функция определяется выражением (6.28).
Выполнение алгоритма 6.2 становится значительно проще, если учесть следующие факты: (1) Каждая рассматриваемая комбинация из h столбцов должна включать либо столбец xv-µ, либо столбец zv-µ. (2) Если две строки, принадлежащие двум различным ζk -группам, отличаются символами в единственном столбце, то этот столбец включается в каждую рассматриваемую комбинацию из h столбцов. (3) Столбец, который содержит один итот же символ в каждой строке, не должен включаться ни в какую рассматриваемую комбинацию из h столбцов. (4) Два одинаковых столбца вместе не должны включаться ни в какую рассматриваемую комбинацию из h столбцов.
Например, в таблице 6.6 можно заметить, что строки 3 и 18 различаются только значением переменной в столбце 2. Строки 1 и 16 различаются только значением переменной в столбце 4, строки 1 и 6 — только в столбце 5. Следовательно, при применении алгоритма 6.2 столбцы 2, 4 и 5 должны включаться в любую рассматриваемую комбинацию из h столбцов. Проверка строк в этих трех столбцах показывает, что нет такой строки в 0-группе, которая была бы одинаковой с какой-либо строкой в 1-группе. Таким образом, для автомата A28 можно записать:
В этом выражении число аргументов минимально.
Минимальная x-z-функция может быть представлена в табличной форме путем вычеркивания из x-z-таблицы найденных по алгоритму 6.2 столбцов и объединения всех одинаковых строк. Получаемая в результате таблица называется минимальной х-z-таблицей. Минимальная x-z-таблица для автомата A28 показана в таблице 6.7.
