- •Воронежский государственный технический университет
- •(Часть 1) Учебное пособие
- •Глава 1. Становление теории автоматов и ее основные задачи
- •Взаимосвязь теории автоматов и других научно-технических направлений
- •Подходы к определению конечного автомата.
- •Сущность метода "черного ящика".
- •Основные задачи теории автоматов
- •Глава 2. Формальная классификация абстрактных автоматов и их математические модели.
- •2.1 Словесные определения автоматов.
- •2.4.3 Модель совмещенного автомата (с-автомата)
- •2.4.4 Модель микропрограммного автомата
- •Глава 3 Структурные модели первого уровня абстрактных автоматов
- •3.1. Структурная модель автомата Мили
- •3.2. Структурная модель автомата Мура
- •3.3 Структурная модель с - автомата
- •3.4 Структурная модель микропрограммного автомата
- •Глава 4. Способы задания абстрактных и структурных автоматов.
- •Глава 5 Минимизация абстрактных автоматов
- •Глава 6. Математические основы алгебры логики
- •Теоремы алгебры логики
- •6.4.1 Словесная форма представления логических функций
- •6.4.3 Аналитическая форма представления логических функций
- •6.4.4 Геометрическая и кубическая формы представления
- •2.4.3 Модель совмещенного автомата………………25
- •Глава 5 Минимизация абстрактных автоматов……………..58
- •Глава 6. Математические основы алгебры логики……...…70
- •Учебное издание
- •394026 Воронеж, Московский просп.,14
Теоремы алгебры логики
x
+ 0 = x
(6.10)
x
+ 1 = 1
(6.11)
x
+ x
= x
(6.12)
x
+ x = 1
(6.13)
x
= x
(6.14)
x
* 0 = 0
(6.16)
x
* 1 = x
(6.17)
x
* x
= x
(6.18)
x
* x = 0
(6.19)
x
= x
(6.20)
Теоремы (6.10 - 6.20) легко доказываются с помощью аксиом (6.7 - 6.9) и метода подстановки возможных значений аргументов x.
6.2.3 Законы алгебры логики
Коммутативный закон (переместительный закон):
относительно логического сложения
x + y = y + x, (6.21 а)
относительно логического умножения
x * y = y * x . (6.21 б)
Данный закон гарантирует получение тождественного результата при перестановке местами аргументов.
Ассоциативный закон (сочетательный закон):
относительно логического сложения
x + y + z = y + (x + z) = (y + x) + z, (6.22 а)
относительно логического умножения
x * y * z = y * (x * z) = (y * x) * z. (6.22 б)
Данный закон позволяет при помощи скобок изменять порядок вычислений и гарантирует получение правильного результата, а также утверждает, что вычисление логической функции большого количества аргументов может быть сведено к последовательному ее вычислению суперпозицией функций двух аргументов.
Дистрибутивный закон (распределительный закон):
относительно логического сложения
x + (y * z) = (x + y) *( x + z), (6.23 а)
относительно логического умножения
x *(y + z) = (x * y) + ( x * z). (6.23 б)
Данный закон устанавливает правила раскрытия скобок относительно операций логического сложения и умножения.
Законы (правила) де Моргана:
x
74
73
x1+x2+…xn =x1 x2…xn. (6.24 б)
Законы де Моргана определяют правила перехода от логической операции умножения к сложению (6.24 а) и наоборот (6.24 б).
Закон (6.24 а) утверждает, что отрицание конъюнкции, есть дизъюнкция отрицаний.
Закон (6.24 б) утверждает, что отрицание дизъюнкции, есть конъюнкция отрицаний.
Законы де Моргана называют также законами двойственности.
Как и в обычной алгебре в алгебре логики определен порядок выполнения логических операций: первой выполняется операция инверсии; второй - конъюнкции; третьей - дизъюнкции.
6.3 Основные понятия и определения
Любая научно - техническая дисциплина использует специфическую терминологию, что позволяет лаконично и достаточно однозначно обмениваться информацией между специалистами соответствующего профиля.
Р
Xn-1
Xn-2
…...
X0
y
a
b
…...
q
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
Логическая (двоичная) переменная характеризует простое высказывание, которое содержит одну законченную мысль. Она обозначается буквой, например, х и может принимать значения 0 или 1.
Л
76
75
Входной набор — это определенная комбинация значений двоичных переменных в логической функции. Максимальное число входных наборов определяется выражением m = 2n, где n — число переменных. Максимальное число логических функций n переменных определяется выражением N = 2 m = 22ⁿ.
Таблица истинности — представление логической функции в виде таблицы. Таблица истинности содержит (n + k) столбцов и 2n строк, где n — число логических переменных, а k - число логических функций от n переменных.
В таблице истинности перечисляются (записываются) все возможные входные наборы логических переменных и указываются значения логических функций на каждом из входных наборов логических переменных. Для того, чтобы правильно перечислить все возможные входные наборы логических переменных, можно придерживаться следующего правила заполнения таблицы истинности: все логические переменные, определяющие логическую функцию, номеруются (начиная справа) целыми числами от 0 до n-1. Каждой логической переменной в таблице истинности, начиная сверху, присваивают чередующиеся группы значений (начиная с 0) через 2j элементов в группе, где j - номер логической переменной (см.рис.6.1).
2n-1 2n-2 22 21 20
Рис. 6.1 Пример заполнения таблицы истинности для одной логической функции n аргументов
Иными словами, для правильного заполнения таблицы истинности можно представить каждый входной набор значений логических переменных двоичным n-разрядным числом, и записать все возможные двоичные числа в порядке возрастания их значений, начиная со значения, равного нулю.
В правый крайний столбец (столбцы) таблицы истинности записываются значения логической функции.
Полностью определенная функция – это логическая функция, имеющая определенные значения 0 или 1 на всех входных наборах.
Частично определенная функция – это логическая функция, значения которой определены не на всех входных наборах. На тех входных наборах, где функция не определена, проставляется прочерк (или любой другой символ, отличный от 0 и 1).
Рабочие наборы – это входные наборы, для которых логическая функция полностью определена.
Безразличные наборы - это входные наборы, для которых логическая функция не определена. Частично определенную функцию, в конечном счете, делают полностью определенной (доопределяют), приписав безразличным наборам 0-е или 1-е значения функции. Простейший способ доопределения логической функции - произвольный (случайный) выбор значений, равных 0 или 1.
В алгебре логики существуют понятия: элементарная конъюнкция/дизъюнкция, конституента единицы/нуля, ранг элементарной конъюнкции/дизъюнкции, соседние элементарные конъюнкции/дизъюнкции.
Э лементарные конъюнкция/дизъюнкция-это конъюнкция/дизъю нкция входных переменных, имеющих или не имеющих отрицаний. Любой символ переменной в элементарной конъюнкции/дизъюнкции может встречаться один раз. Например, f1 (x1, x2, x3, x4)= x1x2x3x4 есть элементарная конъюнкция, а f2(x1, x2 , x3 , x4)= x1x2 x3x4x1 и f2 (x1, x2 , x3, x4)= x1x2x3x4 не являются элементарной конъюнкцией.
Ранг элементарной конъюнкции/дизъюнкции - число входных переменных в элементарной конъюнкции/дизъюнкции. Так, f1 (x1)= x1- это элементарная конъюнкция первого ранга; f2(x1, х2 , х3)= x1х2x3 — элементарная конъюнкция третьего ранга.
Конституента единицы (минтерм) - логическая функция от n аргументов, которая принимает значение, равное единице, только на одном наборе аргументов. На остальных наборах функция равна нулю. Минтерм можно также определить как элементарную конъюнкцию максимального ранга, на которой значение логической функции равно 1. Логическая сумма всех минтермов равна 1.
Конституента нуля (макстерм) - логическая функция от n аргументов, которая принимает значение, равное нулю, только на одном наборе аргументов. На остальных наборах функция равна единице. Макстерм можно также определить как элементарную дизъюнкцию максимального ранга, на которой значение логической функции равно 0. Логическое произведение всех макстермов равно 0.
С оседние элементарные конъюнкции /дизъюнкции — две элементарные конъюнкции /дизъюнкции одного и того же ранга, если они являются функциями одних и тех же переменных и отличаются только знаком отрицания (инверсии) одной из переменных. Например, конъюнкции х1х2х3x4 и х1 х2 х3 x4 являются соседними, так как они - функции одних и тех же переменных и отличаются знаком инверсии только одной переменной х1.
На основе законов алгебры логики могут быть сформулированы правила преобразования логических выражений .
Правило склеивания для соседних элементарных конъюнкций: логическую сумму двух соседних элементарных конъюнкции некоторого ранга r можно заменить одной элементарной конъюнкцией ранга r-1, являющейся общей частью исходных слагаемых. Это правило является следствием распределительного закона. Например,
78
77
х 1 х2 х3 x4 v х1х2 х3 x4 = х2 х3 x4 , х1 х2 v х1 х2 = х1 .
Правило склеивания для соседних элементарных дизъюнкций: логическое произведение двух соседних элементарных дизъюнкций ранга r можно заменять одной элементарной дизъюнкцией ранга r - 1, являющейся общей частью исходных конъюнкций. Это правило является следствием распределительного закона и применяется для упрощения логических выражений. Например:
(х1 v х2 v х3v x4)( х1v х2vх3v x4)= х2v х3v x4,
(х1v х2) (х1v х2)= х1.
Правило поглощения для элементарных конъюнкций: дизъюнкцию двух элементарных конъюнкций разных рангов, из которых одна является собственной и частью другой, можно заменить конъюнкцией, имеющей меньший ранг. Это правило является следствием распределительного закона. Например,
х1 х2 х3 x4 v х1х2 = х1х2, х1v х1х2 = х1.
Кроме того, справедливы выражения:
х1v х1х2 = х1v х2 , х1v х1х2=х1v х2.
Правило поглощения для элементарных дизъюнкций: логическое произведение двух элементарных дизъюнкций разных рангов, из которых одна является общей частью другой, можно заменить дизъюнкцией, имеющей меньший ранг. Это правило является следствием распределительного закона и находит широкое применение для упрощения логических функций. Например,
(x1 V x2 V x3 V x4)(x1 V x2)=x1 V x2, x1(x1 V x2) = x1.
В алгебре логики существуют две теоремы разложения:
f (x1,x2, ...,xn ) = x1f(1, x2, ..., xn)\/ x1 f(0,x2, ..., xп), (6.25)
f (x1,x2,...,xn)=[x1Vf(0,x2,...,xn)][x1Vf(1,x2,...,n)] (6.26)
и четыре соотношения, позволяющие упрощать логические функции:
x1f(x1,x1,x2 , x3,...,xn)= x1f(1,0,x2 , x3,...,xn), (6.27)
x 1f(x1,x1, x2 , x3,...,xn)= x1f(0,1,x2 , x3,...,xn), (6.28)
x1V f(x1, x1,x2 , x3,...,xn)= x1Vf(1,0,x2 , x3,...,xn), (6.29)
x 1V f(x1,x1,x2 , x3,...,xn)= x1Vf(0,1,x2 , x3,...,xn). (6.30)
И з соотношений (6.27) и (6.29) следует, что в функции f все переменные х1 следует заменить на единицу, а х1 — на нуль. В соотношениях (6.28) и (6.30), наоборот, все переменные х1 нужно заменить на нуль, а переменные х1— на единицу. Рассмотрим примеры использования некоторых соотношений.
Пример 6.1.Упростить логическое выражение
Y= x1(х1х2 v х1х3 v х2х3).
Р е ш е н и е. Воспользовавшись соотношением (6.27), получим
Y=x1(x1х2 v х1х3 v х2х3) = x1(1·х2 v 0·х3 v х2х3)=
=x1(х2 v х2х3)=x1х2.
Пример 6.2.Упростить логическое выражение
Y= x1(х1х2 v х1х3 v х2х3).
Р е ш е н и е. Воспользовавшись соотношением (6.28), получим
Y = x1(x1х2 v х1х3 v х2х3)= x1(0·х2 v 1·х3 v х2х3)=
=
80
79
6.4 Формы представления логических функций
На отдельных этапах анализа и синтеза комбинационных автоматов используются различные формы их представления (задания): словесная, табличная, аналитическая, числовая, геометрическая и кубическая. Задать логическую функцию - значит указать значения, которые принимает функция (т.е. 1, или 0, или неопределенное значение) при всех возможных комбинациях входных наборов.