Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
А Гилл Введение в теорию конечных автоматов.doc
Скачиваний:
14
Добавлен:
01.07.2025
Размер:
39.46 Mб
Скачать

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 заполняются следующим образом. Пусть (ξik)является парой вход-выход, связанной с дугой, которая начинается в состоянии σi, и пусть (ξi1k1) (ξi2k2) ... (ξ) -

последовательность вход-выход в множестве 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.