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

гос / Theme2

.pdf
Скачиваний:
6
Добавлен:
16.02.2016
Размер:
160.58 Кб
Скачать

Прикладная теория цифровых автоматов. Тема №2

АНАЛИТИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ БУЛЕВЫХ ФУНКЦИЙ. НОРМАЛЬНЫЕ ФОРМЫ БУЛЕВЫХ ФУНКЦИЙ. ФУНКЦИОНАЛЬНО ПОЛНЫЕ СИСТЕМЫ БУЛЕВЫХ ФУНКЦИЙ

Как было отмечено выше, аналитическое представление булевых функций играет особую роль в проектировании цифровых автоматов. Рассмотрим универсальные формы представления, которые дают возможность получить аналитическую форму непосредственно по таблице истинности для

произвольной булевой функции.

Определение 2.1 Конституэнтой единицы (не путать с константой 1!)

называется функция f (x1, x2,..., xn ) , принимающая значение 1 только на одном

двоичном наборе.

Конституэнта единицы записывается как конъюнкция всех (!) переменных

функции в прямом или инверсном виде без повторений.

Пример 2.1 Заданы три функции:

f1(x1, x2 , x3 ) =

 

1x2 x3 ,

f2 (x1, x2 , x3 ) =

 

1x2 x3

 

2 ,

f3 (x1, x2 , x3 ) = x1x3 .

x

x

x

Проанализировать, являются ли эти функции конституэнтами единицы.

Функция

f

является

конституэнтой единицы.

Эта функция равна 1

 

1

 

 

 

 

 

 

 

 

 

только на двоичном наборе 011 (проанализируйте этот факт).

Функция

f2 не является конституэнтой единицы, поскольку переменная

x2 входит в функцию дважды (проанализируйте, чему равна эта функция).

Функция

f3 также не является конституэнтой единицы, поскольку в нее

входят не все переменные (нет переменной x2 ).

 

Определение

 

2.2 Совершенной дизъюнктивной

нормальной формой

(СДНФ) булевой функции называется дизъюнкция конституэнт единицы,

соответствующих единичным значениям функции в таблице истинности.

Пример 2.2 Для функции, заданной таблицей истинности (табл. 2.1),

записать СДНФ.

СДНФ( f )= x1x2 x3 + x1x2 x3 + x1x2 x3 + x1x2 x3

© Р. С. Цвентарный, 2009

1

Прикладная теория цифровых автоматов. Тема №2

Таблица 2.1

x1

x2

x3

f

0

0

0

0

 

 

 

 

0

0

1

1

 

 

 

 

0

1

0

0

 

 

 

 

0

1

1

1

 

 

 

 

1

0

0

1

 

 

 

 

1

0

1

1

 

 

 

 

1

1

0

0

 

 

 

 

1

1

1

0

 

 

 

 

Определение 2.3 Конституэнтой нуля (не путать с константой 0!)

называется функция f (x1, x2 ,..., xn ) , принимающая значение 0 только на одном двоичном наборе.

Конституэнта нуля записывается как дизъюнкция всех (!) переменных функции в прямом или инверсном виде без повторений.

Пример 2.3 Записать конституэнту нуля f (x1, x2 , x3 ) , которая принимает значение 0 только на наборе 101.

f (x1, x2 , x3 ) = x1 + x2 + x3

Определение 2.4 Совершенной конъюнктивной нормальной формой

(СКНФ) булевой функции называется конъюнкция конституэнт нуля,

соответствующих нулевым значениям функции в таблице истинности.

Пример 2.4 Для функции, заданной таблицей истинности (табл. 2.1),

записать СКНФ.

СКНФ( f )= (x1 + x2 + x3 )(x1 + x2 + x3 )(x1 + x2 + x3 )(x1 + x2 + x3 )

Из таблиц истинности для функций дизъюнкции и сложения по модулю 2 (табл. 2.2) видно, что эти функции отличаются лишь при единичных значениях своих аргументов. Учитывая то, что в СДНФ единичное значение может

© Р. С. Цвентарный, 2009

2

Прикладная теория цифровых автоматов. Тема №2

принимать только одна конституэнта единицы, операцию дизъюнкции в СДНФ можно заменить операцией сложения по модулю 2, не нарушая равенство.

Таблица 2.2 – Функции дизъюнкции и сложения по модулю 2

x1

x2

x1 + x2

 

x1 Å x2

 

0

0

0

 

0

 

 

 

 

 

 

 

0

1

1

 

1

 

 

 

 

 

 

 

1

0

1

 

1

 

 

 

 

 

 

 

1

1

1

 

0

 

 

 

 

 

 

 

 

Определение

2.5 Форма представления функции, получаемая путем

замены в СДНФ операции дизъюнкции операцией сложения по модулю 2,

называется совершенной полиномиальной нормальной формой (СПНФ).

Пример 2.5 Для функции, заданной таблицей истинности (табл. 2.1),

записать СПНФ.

СДНФ( f )= x1x2 x3 + x1x2 x3 + x1x2 x3 + x1x2 x3

СПНФ( f )= x1x2 x3 Å x1x2 x3 Å x1x2 x3 Å x1x2 x3

Если в СПНФ заменить все операции инверсии в соответствии с тождеством x = x Å1, то получится канонический полином Жегалкина, с

помощью которого представляются функции в алгебре Жегалкина.

Пример 2.6 Для СПНФ из примера 2.5 получить канонический полином Жегалкина.

(x1 Å1)(x2 Å1)x3 Å (x1 Å1)x2 x3 Å x1(x2 Å1)(x3 Å1) Å x1(x2 Å1)x3 =

= x1x2 x3 Å x1x3 Å x2 x3 Å x3 Å x1x2 x3 Å x2 x3 Å x1x2 x3 Å x1x2 Å x1x3 Å x1 Å Å x1x2 x3 Å x1x3 = x1x3 Å x3 Å x1x2 Å x1

Упрощение выражения после раскрытия скобок выполнено на основе тождества x Å x = 0 . То есть если одно и то же выражение A суммируется по модулю 2 четное число раз, то результат такой суммы равен 0, если нечетное число раз, то результат равен выражению A .

© Р. С. Цвентарный, 2009

3

Прикладная теория цифровых автоматов. Тема №2

Из вышеизложенного можно сделать вывод, что в алгебре Жегалкина

определены: функция «константа 1», операция «конъюнкция» и операция

«сложение по модулю 2».

Валгебре Жегалкина имеют место те же законы, что и в булевой алгебре:

1.Закон коммутативности: x Å y = y Å x; xy = yx .

2.Закон ассоциативности: (x Å y) Å z = x Å ( y Å z);(xy)z = x( yz) .

3.Закон дистрибутивности: x( y Å z) = xy Å xz .

Вбулевой алгебре кроме СДНФ и СКНФ можно получить еще 6

нормальных форм. Три из них получаются путем преобразования СДНФ, три – путем преобразования СКНФ.

Например, для функции, заданной таблицей истинности (табл. 2.1), эти формы получаются следующим образом:

СДНФ( f )= x1x2 x3 + x1x2 x3 + x1x2 x3 + x1x2 x3 =

(базис И/ИЛИ)

= x1x2 x3 × x1x2 x3 × x1x2 x3 × x1x2 x3 =

(базис И-НЕ/И-НЕ, или базис Шеффера)

= (x1 + x2 + x3 )(x1 + x2 + x3 )(x1 + x2 + x3 )(x1 + x2 + x3 ) =

(базис ИЛИ/И-НЕ)

= (x1 + x2 + x3 ) + (x1 + x2 + x3 ) + (x1 + x2 + x3 ) + (x1 + x2 + x3 ) (базис ИЛИ-НЕ/ИЛИ)

СКНФ( f )= (x1 + x2 + x3 )(x1 + x2 + x3 )(x1 + x2 + x3 )(x1 + x2 + x3 ) =

(базис ИЛИ/И)

= (x1 + x2 + x3 ) + (x1 + x2 + x3 ) + (x1 + x2 + x3 ) + (x1 + x2 + x3 ) =

(базис ИЛИ-НЕ/ИЛИ-НЕ, или базис Пирса)

= x1x2 x3 + x1x2 x3 + x1x2 x3 + x1x2 x3 =

(базис И/ИЛИ-НЕ)

= x1x2 x3 × x1x2 x3 × x1x2 x3 × x1x2 x3

(базис И-НЕ/И)

© Р. С. Цвентарный, 2009

4

Прикладная теория цифровых автоматов. Тема №2

Любая булева функция может быть представлена аналитически одной из нормальных форм, рассмотренных выше. Каждая из этих форм использует ограниченное число элементарных булевых функций. К примеру, в СДНФ и СКНФ используются функции «конъюнкция», «дизъюнкция» и «инверсия»

(«отрицание»). Из этого можно сделать вывод о том, что существуют системы булевых функций, с помощью которых можно представить любую сколь угодно сложную булеву функцию. Знание таких систем играет важную роль в проектировании цифровых автоматов.

Определение 2.6 Функционально полной системой булевых функций

(ФПСБФ) называется совокупность таких булевых функцию, что произвольная булева функция f может быть записана в виде формулы через функции этой совокупности.

Например, к ФПСБФ относятся системы: {И, ИЛИ, НЕ}, {И, Å, НЕ}.

Функциональная полнота системы булевых функций основана на понятии замкнутого относительно операции суперпозиции класса функций.

Определение 2.7 Класс булевых функций, функционально замкнутый по операции суперпозиции, есть множество булевых функций, любая суперпозиция которых дает функцию, также принадлежащую этому классу.

Среди функционально замкнутых классов выделяют классы особого типа,

которые называются предполными. Такие классы обладают следующим свойством. Предполный класс S не совпадает с множеством P всех возможных булевых функций, однако если в него включить любую булеву функцию, ему не принадлежащую, то новый замкнутый класс будет совпадать с множеством P .

Исследования показали, что предполных классов пять:

1.Класс функций, хранящих константу 0.

2.Класс функций, хранящих константу 1.

3.Класс самодвойственных функций.

4.Класс монотонных функций.

5.Класс линейных функций.

© Р. С. Цвентарный, 2009

5

Прикладная теория цифровых автоматов. Тема №2

 

 

 

 

Определение 2.8 Булева функция f

хранит константу 0, если для этой

функции справедливо равенство f (0,0,...,0) = 0 .

 

 

 

Определение 2.9 Булева функция f

хранит константу 1, если для этой

функции справедливо равенство f (1,1,...,1) =1.

 

 

 

Следует отметить, что существует

22n −1

функций

n

переменных,

хранящих константу 0, и столько же функций

n переменных, хранящих

константу 1.

 

 

 

 

Определение 2.10 Булевы функции f1(x1, x2 ,..., xn )

и

f2 (x1, x2 ,..., xn )

называются двойственными друг другу, если для них выполняется соотношение:

f1(x1, x2 ,..., xn ) = f2 (x1, x2 ,..., xn )

или

f1(x1, x2 ,..., xn ) = f2 (x1, x2 ,..., xn ) .

Определение 2.11 Булева функция f (x1, x2 ,..., xn ) называется

самодвойственной, если она двойственна сама себе. Иными словами, если назвать наборы α1α2...αn и α1α2...αn противоположными, то самодвойственной называется такая функция, которая на всех (!) парах противоположных наборов принимает противоположные значения.

В таблицах истинности функций лишь 2n−1 наборов не являются противоположными. Остальные наборы им противоположны. Из этого следует,

что существует 22n−1 различных самодвойственных функций n переменных.

На практике по таблице истинности легче установить тот факт, что функция не является самодвойственной, чем обратный факт. Для этого достаточно найти хотя бы одну пару противоположных наборов, на которых функция принимает одинаковые значения. Поиск таких наборов облегчается,

если заметить, что противоположными являются наборы, симметричные относительно середины таблицы истинности, то есть первый и последний по счету наборы, второй и предпоследний и т.д.

© Р. С. Цвентарный, 2009

6

Прикладная теория цифровых автоматов. Тема №2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1

x2

f

 

 

 

x1

 

x2

 

f

 

 

 

 

0

0

1

 

 

 

0

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

1

0

 

 

 

0

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0

1

 

 

 

1

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

0

 

 

 

1

 

1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пример самодвойственной функции

Данная

функция

 

не

является

 

 

 

 

 

 

f (0,1) ¹

 

 

 

 

 

 

 

самодвойственной

f (1,0)

 

 

 

 

Определение 2.12 Пара наборов

α = 12 ,...,αn}

и

β = 1, β2 ,..., βn}

называются сравнимыми по монотонности, если для всех i Î1, n выполняется

условие αi ³ βi i £ βi ). В таком случае говорят, что α ³ β (α £ β ).

Например, наборы α = {0110} и β = {0100} являются сравнимыми по

монотонности, причем α ³ β . В свою очередь, наборы α = {0110} и β ={1100}

не сравнимы по монотонности, поскольку α1 < β1, а α3 > β3 и не выполняется ни соотношение α ³ β , ни соотношение α £ β .

Определение 2.13 Булева функция f называется монотонной, если для всех (!) пар сравнимых по монотонности наборов α и β таких, что α ³ β ,

выполняется соотношение f (α) ³ f (β) .

Как и в случае определения самодвойственности функций, на практике по таблице истинности легче установить тот факт, что функция не является монотонной, чем обратный факт. Для этого достаточно найти хотя бы одну пару сравнимых по монотонности наборов α и β таких, что α ³ β , для которых f (α) < f (β) .

Определение 2.14 Булева функция f называется линейной, если для нее канонический полином Жегалкина, в котором раскрыты все скобки и выполнены все возможные упрощения выражения на основе законов и тождеств алгебры Жегалкина, не содержит операций конъюнкции.

© Р. С. Цвентарный, 2009

7

Прикладная теория цифровых автоматов. Тема №2

Пример 2.7 Определить принадлежность функции «стрелка Пирса»

(функции ИЛИ-НЕ) к пяти предполным классам.

Таблица истинности функции:

x1

x2

f

0

0

1

 

 

 

0

1

0

 

 

 

1

0

0

 

 

 

1

1

0

 

 

 

Функция не хранит константу 0, поскольку

f (0,0) ¹ 0 .

Функция не хранит константу 1, поскольку

f (1,1) ¹ 1.

 

f (0,1) ¹

 

 

Функция не является самодвойственной, поскольку

f (1,0) .

Функция не является монотонной. Это

видно

на паре сравнимых по

монотонности наборов, например α = {00}, β = {10}, β ³ α , для которых

f (β) < f (α) , то есть не выполняется условие определения 2.13.

Для определения линейности функции построим канонический полином Жегалкина. Для этого сначала найдем СДНФ функции: СДНФ( f )= x1x2 . Далее перейдем к СПНФ функции. Поскольку в СДНФ функции отсутствуют операции дизъюнкции, СПНФ и СДНФ будут совпадать. Теперь в СПНФ

заменим все операции инверсии в соответствии с тождеством x = x Å1,

раскроем все скобки и выполним все преобразования, допустимые в алгебре Жегалкина: (x1 Å1)(x2 Å1) = x1x2 Å x1 Å x2 Å1. Поскольку получившийся канонический полином Жегалкина содержит операцию конъюнкции, функция не является линейной.

© Р. С. Цвентарный, 2009

8

Прикладная теория цифровых автоматов. Тема №2

Теорема Поста – Яблонского

Для того чтобы система булевых функций была функционально полной,

необходимо и достаточно, чтобы функции этой системы не содержались полностью ни в одном из пяти предполных классов, то есть среди функций системы присутствовала хотя бы одна функция, не хранящая константу 0, хотя бы одна функция, не хранящая константу 1, хотя бы одна несамодвойственная функция, хотя бы одна немонотонная функция и хотя бы одна нелинейная функция.

В таблице 2.3 приведены результаты определения принадлежности некоторых элементарных булевых функций к пяти предполным классам.

Таблица 2.3 – Принадлежность некоторых элементарных булевых функций к пяти предполным классам

 

 

 

 

 

 

 

Хранит

Хранит

Самодвойств.

Монотонная

Линейная

 

 

 

 

 

 

 

константу 0

константу 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Константа 1

+

+

+

 

 

 

 

 

 

 

 

 

 

 

 

Константа 0

+

+

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1 × x2

+

+

+

 

x1 + x2

+

+

+

 

x1 Å x2

+

+

f (x) = x

+

+

+

+

+

 

 

 

 

 

 

 

 

 

 

 

 

f (x) =

 

 

 

+

+

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x1 + x2

 

 

 

 

 

 

x1 × x2

Как видно из таблицы 2.3, функции стрелка Пирса ( x1 + x2 ) и штрих Шеффера ( x1 × x2 ) сами по себе являются функционально полными. Это означает, что любую сколь угодно сложную булеву функцию можно записать в виде формулы только через функцию ИЛИ-НЕ либо только через функцию И-

НЕ.

© Р. С. Цвентарный, 2009

9

Прикладная теория цифровых автоматов. Тема №2

Кроме того, совокупность функций «константа 1», «сложение по модулю

2» ( x1 Å x2 ) и «конъюнкция» ( x1 × x2 ) также является функционально полной,

поскольку функции этой совокупности отвечают условиям теоремы Поста – Яблонского. Как было отмечено выше, эти функции составляют алгебру Жегалкина.

СПИСОК ЛИТЕРАТУРЫ

1.Самофалов К. Г. и др. Прикладная теория цифровых автоматов. – К. : Вища шк. Головное изд-во, 1987. – 375 с.

2.Савельев А. Я. Прикладная теория цифровых автоматов: Учебник для вузов. – М.: Высш. шк., 1987. – 272 с.: ил.

3.Савельев А. Я. Арифметические и логические основы цифровых автоматов: Учебник. – М.: Высш. шк., 1980. – 255 с.: ил.

4.Поспелов Д. А. Логические методы анализа и синтеза схем. Изд. 3-е,

перераб. и доп. – М.: «Энергия», 1974. – 368 с.: ил.

5.

Цифровые ЭВМ: Практикум / К. Г.

Самофалов, В.

И. Корнейчук,

 

В. П. Тарасенко, В. И. Жабин. Под общ. ред. К. Г. Самофалова. – К.: Выща.

 

шк., 1990. – 215 с.: ил.

 

 

6.

Логические основы и схемотехника

цифровых ЭВМ:

Практикум. /

 

В. И. Жабин, В. В. Ткаченко, А. А. Зайцев, Р. Л. Антонов. –

К.: ВЕК+, 1999.

– 128 с.: ил.

7.Потемкин И. С. Функциональные узлы цифровой автоматики. – М.:

Энергоатомиздат, 1988. – 320 с.: ил.

8.Яблонский С. В., Гаврилов Г. П., Кудрявцев В. Б. Функции алгебры логики и классы Поста. – М.: Наука, 1966. – 119 с.: ил.

© Р. С. Цвентарный, 2009

10

Соседние файлы в папке гос