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

Таблица 2.6

Таблица истинности булевых функций

 

 

 

 

 

 

 

 

 

 

Значение функции

 

Название функции

на соответствующем наборе

 

переменных x1 , x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,0

 

0,1

1,0

 

1,1

Константа 0

0

 

0

0

 

0

Логическое умножение x1 · x2

0

 

0

0

 

1

 

 

 

 

 

 

 

 

 

0

 

0

1

 

0

Левая ко-импликация x1 x2

 

 

 

 

 

 

 

 

Сохранения первой переменной x1

0

 

0

1

 

1

Правая ко-импликация x1

 

 

x2

0

 

1

0

 

0

 

 

Сохранения второй переменной x2

0

 

1

0

 

1

Сложение по модулю два x1 x2

0

 

1

1

 

0

Логическое сложение x1 + x2

0

 

1

1

 

1

Функция Вебба x1 ° x2

1

 

0

0

 

0

Эквивалентность x1 x2

1

 

0

0

 

1

 

 

 

 

 

 

 

 

 

1

 

0

1

 

0

Отрицание второй переменнойx2

 

 

 

 

 

 

 

 

Импликация (левая) x1x2

1

 

1

0

 

1

 

 

 

 

 

 

 

 

 

1

 

1

0

 

0

Отрицание первой переменной x1

 

 

 

 

 

 

 

 

Импликация (правая) x1 x2

1

 

0

1

 

1

Функция Шеффера x1 x2

1

 

1

1

 

0

Константа 1

1

 

1

1

 

1

2.7. Формы представления логических функций

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

дизъюнктивную нормальную форму (ДНФ);

конъюнктивную нормальную форму (КНФ).

60

Дизъюнктивная нормальная форма (ДНФ) – это сумма произ-

ведений, образованных из переменных и их отрицаний. ДНФ не содержит скобок. Например, формы a bc, abc bc , a, b – дизъюнктивные нормальные формы, a d(b c)– нет.

Конъюнктивная нормальная форма (КНФ) – это произведение сумм, состоящих из переменных и их отрицаний. Например, формы

(a b)c, ab(c b) , c , a, c b– конъюнктивные нормальные формы, a a(bd c) – нет.

2.7.1. Дизъюнктивные нормальные формы

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

Теорема 2.4 (о ДНФ). Всякая логическая функция, отличная

от константы 0, может быть сведена к ДНФ.

Для получения ДНФ необходимо:

1)записать булеву функцию в виде {+, ∙, ¯};

2)с помощью законов де Моргана освободиться от общих отрицаний и по закону двойного отрицания снять двойные черточки;

3)с помощью первого закона дистрибутивности раскрываются все скобки, и проводится поглощение.

Полученная форма удовлетворяет определению ДНФ.

Если ДНФ функции f1(x1, x2, . . . ,xn) от n переменных в каждой своей конъюнкции содержит все n переменных или их отрицания,

то это совершенная дизъюнктивная нормальная форма (СДНФ).

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

с отрицанием xi :

x1 1 x2 2 ...xn n ,

61

где xi i xi при i 1 и xi i xi при i 0.

Например, для функции F(x1, x2, x3) = (x1 x2 ) x3 СДНФ может быть построена по таблице истинности. Построим таблицу

истинности для функции F(x1, x2, x3) = (x1 x2 )

 

x3

:

 

 

 

 

 

 

 

 

 

 

x1 x2 x3

(x1 x2 )

x3

 

 

 

 

 

 

0 0 0

1

 

 

 

 

 

 

 

0 0 1

0

 

 

 

 

 

 

 

0 1 0

1

 

 

 

 

 

 

 

0 1 1

0

 

 

 

 

 

 

 

1 0 0

1

 

 

 

 

 

 

 

1 0 1

1

 

 

 

 

 

 

 

1 1 0

1

 

 

 

 

 

 

 

1 1 1

0

 

 

 

 

 

 

СДНФ(F) = 000 + 010 + 100 + 101 +110 =

= x1 x2 x3 + x1 x2 x3 + x1 x2 x3 + x1 x2 x3 + x1 x2 x3 .

Аналитический вывод для СДНФ состоит из четырех шагов:

1)привести функцию к виду ДНФ;

2)каждую конъюнкцию, где меньше, чем n переменных, умно-

жить на 1 (xi xi ) ;

3)раскрыть скобки с помощью закона дистрибутивности;

4)по закону идемпотентности убрать лишнее.

Для функции F(x1, x2, x3) = (х1 х2) x3 аналитический вывод выглядит следующим образом:

(x1 x2) x3 (x1 x2) x3 x1 x2 x3 x1 x2 x3

x1 x2 1 1 1 x3 x1 x2 (x3 x3) (x1 x1) (x2 x2) 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 x1 x2 x3 x1 x2 x3 x1 x2 x3 x1 x2 x3.

62

Обратите внимание: для константы 0 не существует СДНФ, так как нет ни одного набора переменных, на котором она была бы определена, как истинная!

2.7.2. Конъюнктивные нормальные формы

Теорема 2.5 (о КНФ). Всякая логическая функция, отличная

от константы единицы, может быть сведена к КНФ.

Для получения КНФ необходимо:

1)записать булеву функцию в виде {+, ∙, ¯};

2)с помощью законов де Моргана спустить черту отрицания до отдельных букв и по закону двойного отрицания уничтожить двойные черточки;

3)с помощью второго закона дистрибутивности уничтожить все суммы произведений и провести поглощение.

Полученная форма удовлетворяет определению КНФ.

Если КНФ функции f1(x1, x2, ..., xn) от n переменных в каждой своей дизъюнкции содержит все n переменных либо их отрицания,

то это совершенная конъюнктивная нормальная форма (СКНФ).

Каждая функция имеет одну единственную СКНФ, и она может быть получена из таблицы истинности этой функции путем записи через знак логического умножения всех наборов переменных, на которых эта функция определена, как ложная. Каждый такой набор переменных соответствует дизъюнкции, причем если переменная xi = 1, то xi входит в нее с отрицанием xi, , если xi = 0, то xi входит в нее без отрицания xi:

f&0 (x1 1 x2 2 ... xn n ),

где xi i xi при σi 0 и xiσi xi при σi 1.

Например, для функции F(x1, x2, x3) = (х1 х2) x3 СКНФ по таблице истинности.

Построим таблицу истинности для функции

F(x1, x2, x3) = (х1 х2) x3 :

63

x1 x2 x3

(х1 х2) x3

0 0 0

1

0 0 1

0

0 1 0

1

0 1 1

0

1 0 0

1

1 0 1

1

1 1 0

1

1 1 1

0

СДНФ(F) = 001 011 111 =

(x1 + x2 + x3 ) (x1 + x2 + x3 ) (x1 + x2 + x3 ) .

Аналитический вывод для СКНФ состоит из пяти шагов:

1)привести функцию к виду ДНФ;

2)все конъюнкции через второй закон дистрибутивности преобразовать к виду КНФ;

3)к каждой дизъюнкции, где меньше, чем n переменных, при-

бавить 0 = xi xi ;

4)убрать скобки с помощью второго закона дистрибутивности;

5)по закону идемпотентности убрать лишнее.

Для функции F(x1, x2, x3) = (х1 х2) x3 аналитический вывод СКНФ выглядит следующим образом:

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

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

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

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

Обратите внимание: для константы 1 не существует СКНФ, так как нет ни одного набора переменных, на котором она была бы определена, как ложная!

Задача 2.6. Построить СДНФ и СКНФ для функции (a b) c. Решение. Построим таблицу истинности для функции (a b) c.

64

a b c

( a b) c

0 0 0

1

0 0 1

0

0 1 0

1

0 1 1

0

1 0 0

1

1 0 1

0

1 1 0

1

1 1 1

1

СДНФ = 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.7. Построить СДНФ и СКНФ для функции (ab) c. Решение. Построим таблицу истинности для функции (ab) c.

a b c

(ab) c

0 0 0

0

0 0 1

0

0 1 0

1

0 1 1

0

1 0 0

1

1 0 1

0

1 1 0

1

1 1 1

0

СДНФ = 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. Построить СДНФ и СКНФ для функции (a b) c . Решение.Построим таблицу истинности для функции (a b) c.

а b c

 

 

 

(a b) c

 

 

 

 

0 0 0

0

 

 

0 0 1

1

 

 

0 1 0

0

 

 

0 1 1

0

 

 

1 0 0

0

 

 

1 0 1

0

 

 

1 1 0

0

 

 

1 1 1

1

 

 

65

 

 

 

 

 

 

 

 

 

 

 

СДНФ =

a

 

 

 

b

 

 

c + a b c ;

 

 

 

 

 

 

 

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

 

 

+c)(a+

 

 

+

 

)(

 

+b+c)×

 

b

b

c

a

 

 

 

 

 

 

 

×(

 

 

 

+ b +

 

)(

 

 

 

 

 

+

 

+ c) .

 

 

 

 

 

 

 

 

a

c

a

b

 

 

 

 

 

Задача

2.9. Построить СДНФ

 

 

и СКНФ

для

функции

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

 

 

b) c .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решение.

Построим

 

 

 

таблицу

истинности

для

функции

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

 

 

b) c .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a b c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

a

b) c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 1 1

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СДНФ =

 

 

 

c +

 

b c + a

 

 

 

+ a

 

c + a b

 

+ a b c ;

 

 

 

a

b

a

b

c

b

c

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

Задача 2.10. Построить СДНФ и СКНФ для функции a b + a b . Решение. Построим таблицу истинности для функции

a b + a b .

a b c

 

a b +

a

 

b

 

0 0 0

 

1

 

 

 

 

0 0 1

 

1

 

 

 

 

0 1 0

 

0

 

 

 

 

0 1 1

 

0

 

 

 

 

1 0 0

 

0

 

 

 

 

1 0 1

 

0

 

 

 

 

1 1 0

 

1

 

 

 

 

1 1 1

 

1

 

 

 

 

 

66

 

 

 

 

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