Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Теория автоматов. Учебное пособие

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆

но убедиться (табл. 5.4), рассмотрев с помощью графа переходов авто­мата A
(см. рис. 5.4) выходные последовательности, образующиеся при
3
воздействии на него всех возможных входных последовательностей длины два (X
, Q6, Q9. После второго шага имеем 2-эквивалентное разбиение, состо-
Q
4
ящее из трех классов эквивалентных состояний: V
= {Q2, Q4, Q6}, V3 = {Q9}.
V
2
, Xj2; j = 1, 2, 3), если исходными являются состояния Q2,
j1
= {Q1, Q3, Q5, Q7, Q8},
1
Таблица 5.3
Q
X
i
Q
Q
Q
1
2
α
V
V
2
β
V
γ
V
1
V
2
2
V
1
2
Q
3
V
V
2
V
V
2
V
V
1
i
Q
Q
Q
Q
4
5
6
7
V
V
1
2
V
2
2
V
2
1
V
1
V V
2
V
2
2
V
2
1
Q
8
9
V
V
2
V V
1
V
2
2
V
1
1
Таблица 5.4
Xj1, X
11 11 11 11
j2
11
10
11
11
11
10
11
11
11
10
11
11
11
10
10
10
Q
i
αα αβ αγ βα ββ βγ γα γβ γγ
Q
01
00
00
2
01 01 01
00 00 00
Q
4
Q
6
Q
9
00 00 00
10 10 10 10
После получения классов V1, V2, V3 снова строим таблицу переходов и так далее до тех пор, пока каждый класс в эквивалентном разбиении останется неизменным. Этот процесс иллюстрируется табл. 5.5–5.7, из которых следует, что для 3-эквивалентного разбиения имеем: V
, Q5, Q7, Q8}, V2 = {Q2, Q4}, V3 = {Q9}, V4 = {Q6}.
Q
3
= {Q1,
1
Таблица 5.5
Q
X
j
Q
Q
Q
1
2
α
V
V
2
β
V
γ
V
1
V
2
2
V
1
2
Q
3
V
V
2
V
V
2
V
V
1
i
Q
Q
Q
Q
4
5
6
7
V
V
1
2
V
2
2
V
2
1
V
1
V V
2
V
3
2
V
2
1
Q
8
9
V
V
2
V V
1
V
2
3
V
1
1
-61-

Таблица 5.6
Q
X
j
Q
Q
Q
1
2
α
V
V
2
β
V
γ
V
1
V
2
2
V
1
2
Q
3
V
V
2
V
V
2
V
V
1
i
Q
Q
Q
Q
4
5
6
7
V
V
1
4
V
2
2
V
2
1
V
1
V V
4
V
3
2
V
4
1
Q
8
9
V
V
2
V V
1
V
2
3
V
1
1
Таблица 5.7
Q
X
j
Q
Q
Q
1
2
α
V
V
2
β
V
γ
V
1
V
2
2
V
5
2
Q
3
V
V
2
V
V
2
V
V
5
i
Q
Q
Q
Q
4
5
6
7
V
V
1
4
V
2
2
V
2
1
V
1
V V
4
V
3
2
V
4
1
Q
8
9
V
V
2
V V
5
V
2
3
V
5
5
4-эквивалентное разбиение есть: V1 = {Q1, Q3, Q8}, V2 = {Q2, Q4},
V
= {Q9}, V4 = {Q6}, V5 = {Q5, Q7}.
3
Из табл. 5.6 и 5.7 следует, что 5-эквивалентное разбиение совпа­дает с 4-эквивалентным. Это означает, что в классы эквивалентности входят не k-эквивалентные состояния, а эквивалентные состояния и все состояния одного класса ведут себя как одно состояние, которым его и заменяют.
Граф переходов минимального автомата А переходов автомата A
и его эквивалентному разбиению строят следу-
3
' по заданному графу
3
ющим образом:
1) заменяют обозначение каждого состояния, которое имеется в гра-
фе переходов A
на обозначение класса, к которому относится данное
3
состояние;
2) объединяют все одинаково обозначенные состояния (рассмат­ривая дуги графа как «гибкие связи») и представляют объединенные состояния одним состоянием, имеющим общее обозначение;
3) из каждой группы дуг, имеющих общее исходное и конечное со­стояния (все такие дуги обозначены одинаково), вычеркиваются все, кроме одной. Полученный в результате граф будет графом минималь­ного автомата А
Введем следующие обозначения для состояний автомата A
щих в один класс эквивалентных состояний Q
Q
= {Q9}, Qd = {Q6}, Qe = {Q5, Q7}.
c
'.
3
= {Q1, Q3, Q5}, Qb = {Q2, Q4},
a
, входя-
3
-62-

Qa Q
Q
Q
Q
(,1)
Эквивалентные состояния на рис. 5.4 объединены штриховой ли­нией. Применяя описанную выше процедуру к графу A му на рис. 5.4, получаем граф переходов минимального автомата А показанный на рис. 5.5. Состояния Q стояние Q
соединены двумя дугами, не выходящими за пределы кон-
b,
и Q4 (рис.5.4), объединенные в со-
2
, изображенно-
3
3
тура, образованного штриховой линией. Это означает, что при поступ­лении символа b или g состояние автомата Q в графе переходов минимального автомата А
не изменяется, поэтому
b
’ (рис. 5.5) у состояния Qb
3
имеется петля (b,1)∨(g,1).
(,0)
(,0)
’,
(,1)(,0)
b
(,0)
(,0)
(,1)
(,1)
(,1)
(,1)
(,0)(,1)
c
(,0)
d
(,1)
Рис. 5.5. Граф минимального автомата А3'
e
-63-




Алгебра логики является теоретической основой проектирования современных цифровых автоматов и базируется на символической ло­гике, предложенной математиком Джорджем Булем. Существует мно­жество формальных определений булевых алгебр [18, 19], зависящих от различных подходов к выбранной системе аксиом.
Булева алгебра может быть определена как алгебраическая систе­ма, удовлетворяющая следующим аксиомам [20].
Булевой алгеброй является система, состоящая из множества B = {a, b, c…} и двух типов операторов «+» и «·» (логическая сумма и логическое произведение), для которых справедливы следующие пять соотношений:
a + b = b + a, a · b = b · a, для любых a, b ∈ B (6.1)
(коммутативность);
a + (b · c) = (a + b) · (a + c), a · (b + c) = a · b + a · c,
для любых a, b, c ∈ B (6.2)
(дистрибутивность);
найдутся 1 ∈ B и 0 ∈ B такие, что
a + 0 = a, a · 1 = a для любого a ∈ B (6.3)
(единичные элементы);
найдется
a
∈ B такой, что
-64-

a + a = 1, a · a = 0 для любого a ∈ B (6.4)
(дополнение);
a + b + c + … = max(a, b, c, …); a · b · c + … = min(a, b, c, …); (6.5)
с учетом того, что 1 > 0.
Одним из вариантов булевой алгебры может служить алгебраи­ческая система, в которой множество B содержит всего два элемента B = {0, 1}, которые одновременно являются единичными элементами. При этом соотношение (6.4) можно трактовать как введение дополни­тельной (третьей) логической операции, которую называют «отрица­ние» или «инверсия». Именно такую, самую простую, алгебраическую систему булевой алгебры и принято называть в научно-технической литературе алгеброй логики, переключательной алгеброй, алгеб- рой релейно-контактных схем.


Алгебра логики в качестве аргументов использует логические пе­ременные. Логические переменные и функции от них могут быть либо истинными (равными 1), либо ложными (равными 0). Логические пере­менные принято обозначать строчными латинскими буквами, а логи­ческие функции — прописными латинскими буквами.
В алгебре логики определены отношение эквивалентности (=) и три логические операции [21]: дизъюнкция (называют также логическое сложение, операция ИЛИ); конъюнкция (называют также логическое умножение, операция И); отрицание (называют также инверсия, опе­рация НЕ).
По аналогии с обычной алгеброй операцию ИЛИ обозначают в ви­де «+» или «∨» (знак дизъюнкции); операцию И обозначают «·», или «∧», или «&» (знак конъюнкции); операцию НЕ обозначают чертой над пе-
x
ременными или над значениями переменных, например, «·», как и в обычной алгебре, чаще всего опускают (например, x · y = xy).
, 1, 0. Знак
1)x = x — рефлективность;
2) если x = y, то y = x — симметричность;
3) если x = y и y = z, то x = z — транзитивность.
-65-

1если,0
xx
(6.6)
.0если,1
1если,0
xx
xx
(6.6)
000
(6.7)
.0если,1
1если,0
xx
xx
(6.6)
.111
101
110
000
),max( babac
(6.7)
000
(6.8)
.0если,1
1если,0
xx
xx
(6.6)
.111
101
110
000
),max( babac
(6.7)
.111
001
010
000
),min( babac
(6.8)
.
1пр и,0
a
(6.9)
Из отношения эквивалентности следует принцип подстановки: если x = y, то в любой формуле, содержащей x, можно подставить y и бу­дет получена эквивалентная формула.

Аксиома (6.6) утверждает, что значения логических переменных и функций могут принимать всего два взаимоисключающих значения. Данную аксиому иногда называют «закон исключенного третьего». Сле­дует помнить, что «1» и «0» — это не количественные характеристики, а качественные. Однако принимается, что 1 > 0.
(6.6)
.0если,1
xx
 
),max( babac
 
Аксиома (6.7) определяет операцию дизъюнкции (логического сло­жения). Аксиома справедлива для любого числа слагаемых.
 
),min( babac
  
Аксиома (6.8) определяет операцию конъюнкции (логического ум­ножения). Аксиома справедлива для любого числа сомножителей.
Аксиома (6.9) определяет операцию логического отрицания (ин­версию).
В алгебре логики действует закон двойственности, который оп­ределяет соотношение между логической операцией ИЛИ, логической операцией И и логической операцией НЕ. Суть этого закона такова: если в уравнениях, задающих операцию ИЛИ, все переменные поме-
ac
-66-
a
110
(6.7)
101
.111
010
(6.8)
001
.111
(6.9)
0при,1

нять на инверсные (противоположные) значения и заменить знак ИЛИ на знак И, то получим уравнения, задающие логическую операцию И. И наоборот.

х + 0 = х; (6.10) х · 0 = 0; (6.15) x + 1 = 1; (6.11) x · 1 = х; (6.16) х + х = х; (6.12) х · х = х; (6.17) х +
x
x
= х;
= 1;
(6.13) (6.14)
х ·
x
x
= 0;
x
=
.
(6.18) (6.19)
Теоремы (6.10–6.19) легко доказываются с помощью аксиом (6.6–6.9) и метода подстановки возможных значений аргументов x.

1. Коммутативный закон (переместительный закон):
- относительно логического сложения:
x + y = y + x; (6.20)
- относительно логического умножения:
x · y = y · x. (6.21)
Данный закон гарантирует получение тождественного результата при перестановке местами аргументов.
2. Ассоциативный закон (сочетательный закон):
- относительно логического сложения:
x + y + z = y + (x + z) = (y + x) + z; (6.22, а)
- относительно логического умножения:
x · y · z = y · (x · z) = (y · x) · z. (6.22, б)
Данный закон позволяет при помощи скобок изменять порядок вычислений и гарантирует получение правильного результата, а также утверждает, что вычисление логической функции большого количества аргументов может быть сведено к последовательному ее вычислению суперпозицией функций двух аргументов.
-67-

x + (y · z) = (x + y) · (x + z); (6.23 а)
x · (y + z) = (x · y) + (x · z). (6.23 б)
nn
xxxxxx
......
2121
; (6.24 а)
x · (y + z) = (x · y) + (x · z). (6.23 б)
nn
xxxxxx ......
2121
; (6.24 а)
nn
xxxxxx
......
2121
. (6.24 б)
3. Дистрибутивный закон (распределительный закон):
- относительно логического сложения:
x + (y · z) = (x + y) · (x + z); (6.23, а)
- относительно логического умножения:
x · (y + z) = (x · y) + (x · z). (6.23, б)
Данный закон устанавливает правила раскрытия скобок относи­тельно операций логического сложения и умножения.
4. Законы (правила) де Моргана:
; (6.24, а)
. (6.24, б)
Законы де Моргана определяют правила перехода от логической операции умножения к сложению (6.24, а) и наоборот (6.24, б).
Закон (6.24, а) утверждает, что отрицание конъюнкции есть дизъ­юнкция отрицаний.
Закон (6.24, б) утверждает, что отрицание дизъюнкции есть конъ­юнкция отрицаний.
Законы де Моргана называют также законами двойственности.
Как и в обычной алгебре, в алгебре логики определен порядок вы­полнения логических операций: первой выполняется операция инвер­сии, второй — конъюнкции, третьей — дизъюнкции.


Любая научно-техническая дисциплина использует специфичес­кую терминологию, что позволяет лаконично и однозначно обменивать­ся информацией между специалистами соответствующего профиля.
Рассмотрим основные термины и понятия, наиболее широко ис­пользуемые в алгебре логики.
Логическая (двоичная) переменная характеризует простое вы­сказывание, которое содержит одну законченную мысль. Она обознача­ется буквой, например, х и может принимать значения 0 или 1.
-68-

Логическая функция — это сложное высказывание, состоящее из нескольких простых, связанных между собой соединительными союза­ми. Она записывается аналитически в виде Y = f(x ичная переменная, х
∈ { 0,1}; Y ∈ {0,1 }.
i
, x2, …, xn), где хi — дво-
1
Входной набор — это определенная комбинация значений двоич­ных переменных в логической функции. Максимальное число входных
n
наборов определяется выражением m = 2
, где n — число переменных.
Максимальное число логических функций n переменных определяется
m
выражением N = 2
= 22n.
Таблица истинности — представление логической функции в ви-
n
де таблицы. Таблица истинности содержит (n + k) столбцов и 2
строк, где n — число логических переменных, а k — число логических функций от n переменных.
В таблице истинности перечисляются (записываются) все возмож­ные входные наборы логических переменных и указываются значе­ния логических функций на каждом из входных наборов логических переменных. Для того, чтобы правильно перечислить все возможные входные наборы логических переменных, можно придерживаться сле­дующего правила заполнения таблицы истинности: все логические пе­ременные, определяющие логическую функцию, нумеруются (начиная справа) целыми числами от 0 до n – 1. Каждой логической переменной в таблице истинности, начиная сверху, присваивают чередующиеся
j
группы значений (начиная с 0) через 2
элементов в группе, где j — но-
мер логической переменной (рис. 6.1).
n-12n-2
2
x
x
n-1
n-2
a b … z p q
… … … … … …
j
2
1
2
2
2
x
x
j
x
2
0
2
x
1
0
y
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
Рис. 6.1. Пример заполнения таблицы истинности
для одной логической функции n аргументов
-69-

1 1 0 1 1 1 … … … …
1(x1
, x2, x3, x4) = x1x2x3x4 есть элементарная
4321
xxxx
и f2(x1, x2, x3, x4) =
14321
xxxxx
не являются
4
есть элементарная
14321
xxxxx
не являются
Иными словами, для правильного заполнения таблицы истиннос­ти можно представить каждый входной набор значений логических пе­ременных двоичным n-разрядным числом, и записать все возможные двоичные числа в порядке возрастания их значений, начиная со значе­ния, равного нулю.
В правый крайний столбец (столбцы) таблицы истинности записы­ваются значения логической функции.
Полностью определенная функция — это логическая функция, имеющая определенные значения 0 или 1 на всех входных наборах.
Частично определенная функция — это логическая функция, значения которой определены не на всех входных наборах. На тех вход­ных наборах, где функция не определена, проставляется прочерк (или любой другой символ, отличный от 0 и 1).
Рабочие наборы — это входные наборы, для которых логическая функция определена.
Безразличные наборы — это входные наборы, для которых ло­гическая функция не определена. Частично определенную функцию, в конечном счете, делают полностью определенной (доопределяют), приписав безразличным наборам 0-е или 1-е значения функции. Про­стейший способ доопределения логической функции— произвольный (случайный) выбор значений, равных 0 или 1.
В алгебре логики существуют понятия: элементарная конъюнкция/ дизъюнкция, конституента единицы/нуля, ранг элементарной конъюн­кции/дизъюнкции, соседние элементарные конъюнкции/дизъюнкции.
Элементарные конъюнкция/дизъюнкция — это конъюнкция/ дизъюнкция входных переменных, имеющих или не имеющих отрица­ний. Любой символ переменной в элементарной конъюнкции/дизъюн­кции может встречаться один раз. Например, f
элементарная конъюнкция, а f
=
не являются элементарными конъюнкциями.
, x2, x3, x4) =
2(x1
, x2, x3, x4) = x1x2x3x4 есть
1(x1
и f2(x1, x2, x3, x4) =
Ранг элементарной конъюнкции/дизъюнкции — число вход­ных переменных в элементарной конъюнкции/дизъюнкции. Так,
f
) = x1 — это элементарная конъюнкция первого ранга; f2(x1, х2, х3) =
1(x1
= x
— элементарная конъюнкция третьего ранга.
1х2x3
Конституента единицы (минтерм) — логическая функция от n аргументов, которая принимает значение, равное единице, только на одном наборе аргументов. На остальных наборах функция равна нулю. Минтерм можно также определить как элементарную конъюнкцию
-70-