Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Гусева Дискретная математика для информатиков и економистов 2010.pdf
Скачиваний:
1150
Добавлен:
16.08.2013
Размер:
4.08 Mб
Скачать

СДНФ = a b c + a b c + a b c +a b c ;

СКНФ = (a + b + c) (a + b + c) ( a + b + c) ( a + b + c) .

2.8.Минимизация булевых функций. Метод Квайна – МакКласки

2.8.1. Законы алгебры Буля

В математической логике определяется специальная алгебра, алгебра Буля, содержащая операции логического умножения, логического сложения и отрицания { ,+, - }, которые позволяет производить тождественные преобразования логических выражений. К этим законам относятся

Закон идемпотентности (одинаковости):

a + a = a,

a a = a.

Закон коммутативности:

 

a + b = b + a,

a b = b a.

Закон ассоциативности:

a + (b + c) = (a + b) + c, a (b c) = (a b) c.

Законы дистрибутивности:

-дистрибутивность конъюнкции относительно дизъюнкции:

а(b + c) = a b + a c.

-дистрибутивность дизъюнкции относительно конъюнкции:

а + b c = (a + b) (a + c).

Закон двойного отрицания:

a = a .

Законы де Моргана:

a + b = a b , a b = a + b .

Законы поглощения:

a + a b = a, a (a + b) = a.

Законы, определяющие действия с логическими константами 0 и 1:

67

a + 0 = a

a + 1 = 1

a 0 = 0

a 1 = a

0 = 1

 

 

 

 

+ a =1

 

a

1 = 0

 

 

 

 

 

 

a a = 0

 

 

Правомерность всех рассмотренных выше законов может быть легко доказана, например, с использованием таблиц истинности.

Дополнительные законы алгебры Буля являются следствиями из основных законов и очень полезны при упрощении записи логических функций.

Закон склеивания:

1)a b + a b = b .

Доказательство этого тождества проводится с использованием первого закона дистрибутивности:

a b+ a b =b (a+a) = b 1 = b .

2)(a + b) ( a + b) = b .

Доказательство этого тождества проводится с использованием второго закона дистрибутивности:

(a + b) ( a + b) = a a + b = b .

Закон Блейка–Порецкого:

a + a b = a + b , a + a b = a + b .

Применяя законы действия с логическими константами, идемпотентности и склеивания, данное тождество можно доказать следующим образом:

a+ a b = a 1 + a b = a (b + b) + a b =

= a b + a b + a b = a b + a b + a b + a b = a+b.

Закон свертки логического выражения:

a b+a c+ b c = a b+ a c .

Данное тождество можно доказать, последовательно используя законы работы с логическими константами, дистрибутивности, идемпотентности и склеивания:

a b+ a c + b c =

= a b (c + c) + a c (b + b) + b c (a + a) =

68

=a b c + a b c + a b c + a b c + a b c + a b c =

=(a b c + a b c )+( a b c + a b с) + (a b с+ a b c) =

=a b + a c + a c = a b + a c.

2.8.2. Упрощение логических функций

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

Задача 2.11. Упростить СДНФ функции (a b) c.

Решение. Представим функцию в совершенной дизъюнктивной форме и упростим ее с помощью законов алгебры логики:

СДНФ = a b c + a b c + a b c + a b c + a b c = b c + b c +a b c =

= c +a b c = c +a b.

Задача 2.12. Упростить СДНФ функции (ab) c.

Решение. Представим функцию в совершенной дизъюнктивной форме и упростим ее с помощью законов алгебры логики:

СДНФ = a b c + a b c + a b c = b c + a c .

Задача 2.13. Упростить СДНФ функции (a b) c .

Решение. Представим функцию в совершенной дизъюнктивной форме и упростим ее с помощью законов алгебры логики:

СДНФ = a b c + a b c .

Дальнейшее упрощение невозможно.

Задача 2.14. Упростить СДНФ функции (a b) c .

Решение. Представим функцию в совершенной дизъюнктивной форме и упростим ее с помощью законов алгебры логики:

СДНФ = a b c + a b c + a b c + a b c + a b c + a b c =

= a c + a = a +c.

Задача 2.15. Упростить СДНФ функции a b + a b .

69

Решение. Представим функцию в совершенной дизъюнктивной форме и упростим ее с помощью законов алгебры логики:

СДНФ = a b c + a b c + a b c +a b c = a b + a b .

2.8.3. Метод Квайна – МакКласки

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

1.Представить наборы (конституенты), на которых функция истинна, в виде двоичных эквивалентов;

2.Упорядочить двоичные эквиваленты по ярусам (по числу единиц двоечных эквивалентов) и провести склейку (применить правило склеивания к соответствующим конституентам) наборов в соседних ярусах, получая максимальные интервалы до тех пор, пока это возможно; пометить каждый набор, участвовавший в склейке. Склеиваются только те наборы или интервалы, различие в которых заключается только в значении одного разряда: 001 и 000, 001-

и101-, и т.д.

3.Построить таблицу Квайна, столбцы которой соответствуют двоичным наборам истинности функции, а строки – максимальным интервалам. Если i-й набор покрывается j-м интервалом, то ставим 1 на пересечении соответствующих строки и столбца, в противном случае ставим 0 или ничего;

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

Рассмотрим функцию F1, которая истинна на наборах {1, 3, 5, 7, 11, 13, 15}. Совершенная дизъюнктивная нормальная форма данной функции равна:

СДНФ = x1 x2 x3 x4 + x1 x2 x3 x4 + x1 x2 x3 x4 + +x1 x2 x3 x4 + x1 x2 x3 x4 + x1 x2 x3 x4 + x1 x2 x3 x4 .

Двоичные эквиваленты истинных наборов:

70

1

0001

3

0011

5

0101

7

0111

11

1011

13

1101

15

1111

Упорядочим двоичные наборы по ярусам и проведем склейки, до тех пор, пока это возможно (табл. 2.7).

Таблица 2.7

 

 

Склеивание элементов

0001

√ √

 

00-1

0--1

0011

√ √

 

0-01

--11

0101

√ √

 

-011

-1-1

0111

√ √ √

 

0-11 √ √

 

1101

√ √

 

-101

 

1011

√ √

01-1

√ √

 

1111

√ √ √

11-1

 

 

 

-111

√ √

 

 

 

1-11

 

Затем строим таблицу Квайна (табл. 2.8), в которой наборы 0001, 1101 и 1011 покрываются единственно возможным образом, следовательно, покрывающие их минимальные интервалы называются обязательными и образуют ядро покрытия, так как должны входить в любое покрытие.

В табл. 2.8 соответствующие единицы подчеркнуты, интервалы {0- -1,- -11, -1-1} образуют не только ядро покрытие, но и покрывают всю таблицу Квайна.

Таким образом, мы получили минимальную форму исследуемой функции в виде:

МДНФ = {0 - - 1, - - 1 1, -1-1} = x1 x4 + x3 x4 + x2 x4.

71

Таблица 2.8

 

 

 

Таблица Квайна

 

 

 

 

0001

 

 

 

 

 

 

 

 

0011

0101

0111

 

1011

1101

1111

0--1

1

1

1

1

 

 

 

 

--11

 

1

 

1

 

1

 

1

-1-1

 

 

1

1

 

 

1

1

Задача 2.16. Найти МДНФ функции

f1 = ( x1 x2 ) (x1 x3 ) x4 .

Решение. Построим таблицу истинности для f1.

x x x x

4

(

x

 

x

) (x

x

) x

4

1

2

3

1

2

1

3

 

0 0 0 0

 

0

 

 

 

 

 

 

 

0 0 0 1

 

1

 

 

 

 

 

 

 

0 0 1 0

 

1

 

 

 

 

 

 

 

0 0 1 1

 

1

 

 

 

 

 

 

 

0 1 0 0

 

1

 

 

 

 

 

 

 

0 1 0 1

 

0

 

 

 

 

 

 

 

0 1 1 0

 

0

 

 

 

 

 

 

 

0 1 1 1

 

1

 

 

 

 

 

 

 

1 0 0 0

 

0

 

 

 

 

 

 

 

1 0 0 1

 

1

 

 

 

 

 

 

 

1 0 1 0

 

1

 

 

 

 

 

 

 

1 0 1 1

 

1

 

 

 

 

 

 

 

1 1 0 0

 

0

 

 

 

 

 

 

 

1 1 0 1

 

1

 

 

 

 

 

 

 

1 1 1 0

 

0

 

 

 

 

 

 

 

1 1 1 1

 

1

 

 

 

 

 

 

 

Совершенная ДНФ исследуемой функции имеет вид:

СДНФ = x1 x2 x3 x4 + x1 x2 x3 x 4 + x1 x2 x3 x4 + +x1 x2 x3 x4 + x1 x 2 x3 x4 + x1 x2 x3 x4 + x1 x2 x3 x4 +

+x1 x2 x3 x4 + x1 x2 x3 x4 + x1 x2 x3 x4 .

Упорядочим двоичные наборы по ярусам и проведем склейку

(табл. 2.9).

72

Таблица 2.9

 

Склейка для задачи 2.16

0001

√√

00-1

-0-1

0010

√√

-001

-01-

0100

 

001-

--11

0011

√√√√

-010

1--1

1010

√√

0-11

 

1001 √√√

-011 √√√

 

0111 √√

101-

 

1011

√√√√

10-1 √√

 

1101

√√

1-01

 

1111 √√√

-111

 

 

 

1-11 √√

 

 

 

11-1

 

В первом столбике присутствует набор, который не участвовал ни в одной склейке – он сам является максимальным интервалом 0100. В третьем столбике к нему добавляется еще четыре макси-

мальных интервала: {-0-1, -01-, --11, 1--1}.

Строим таблицу Квайна (табл. 2.10).

Таблица 2.10

Таблица Квайна для задачи 2.16

 

0001

0010

0100

0011

1010

1001

0111

1011

1101

1111

0100

 

 

1

 

 

 

 

 

 

 

-0-1

1

 

 

 

 

1

 

1

1

 

-01-

 

1

 

1

1

 

 

1

 

 

--11

 

 

 

1

 

 

1

1

 

1

1--1

 

 

 

 

 

1

 

1

1

1

Определим ядро покрытия, в которое войдут обязательные интервалы: {0100, -0-1, -01-, --11}. В данном случае, ядро покрытия покрывает и всю таблицу в целом.

Минимальная дизъюнктивная нормальная форма f1 имеет вид:

МДНФ = x1 x2 x3 x4 + x2 x4 + x2 x3 + x3 x4.

73

Задача 2.17. Найти МДНФ функции f2(x1 x2 x3), которая принимает единичные значения на наборах 0,2,3,6 и 7.

Решение. Построим таблицу истинности для f2.

 

 

 

 

 

 

x1 x2 x3

 

 

f2

 

 

 

 

 

 

 

 

 

0 0 0

 

 

1

 

 

 

 

 

 

 

 

 

0 0 1

 

 

0

 

 

 

 

 

 

 

 

 

0 1 0

 

 

1

 

 

 

 

 

 

 

 

 

0 1 1

 

 

1

 

 

 

 

 

 

 

 

 

1 0 0

 

 

0

 

 

 

 

 

 

 

 

 

1 0 1

 

 

0

 

 

 

 

 

 

 

 

 

1 1 0

 

 

1

 

 

 

 

 

 

 

 

 

1 1 1

 

 

1

 

 

 

СДНФ =

 

 

 

 

 

+

 

x2

 

+

 

x2 x3 + x1 x2

 

+ x1 x2 x3 .

x1

x2

x3

x1

x3

x1

x3

Упорядочим двоичные наборы по ярусам и проведем склейку

(табл. 2.11).

Таблица 2.11

Склейка для задачи 2.17

000

√√

0-0

--0

010

√√

-00

 

100

√√

-10

 

110

√√√

1-0

 

111

11-

 

 

В результате склейки у нас получилось всего два максимальных интервала: {11-, --0}. Без построения таблицы Квайна очевидно, что они образуют минимальное покрытие, так как удаление любого из этих интервалов приведет к потери наборов, на которых функция f2(x1 x2 x3) истинна. МДНФ = x1 x2 + x3.

2.9.Функционально полные системы логических функций

Рассмотрим понятия полноты, или функциональной полноты, для системы логических функций.

74

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]