Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
глава_5.doc
Скачиваний:
9
Добавлен:
13.03.2015
Размер:
117.25 Кб
Скачать

Примеры

1. Найти СДНФ и СКНФ для следующей функции:

x y | f

0 0 | 0

0 1 | 1

1 0 | 0

1 1 | 0

Решение.Воспользуемся разложениями (7) и (8):

f(x,y)=f(1,1)xyf(1,0)xy’f(0,1)xyf(0,0)xy’=

=0xy0xy’1xy0xy’= xy,(СДНФ)

f(x,y)=(f(1,1)x’y’)(f(1,0)x’y)(f(0,1)xy’)(f(0,0)xy)=

=(0x’y’)(0x’y)(1xy’)(0xy)= )=(x’y’)(x’y)(xy). (СКНФ)

2. Построить СДНФ двойственной функции кf(x,y,z)=x’→yz.

Решение.СпособI. Воспользуемся определением двойственной формулы:

f*(x,y,z)= f ’(x’,y’,z’)=(x’’→yz’)’=(xyz’)’=(x’yz’)’=

=x’’(yz’)’=x(yz)=xyxz.

Способ II. Воспользуемся теоремой двойственности. Исключим тождественными преобразованиями импликацию:

f(x,y,z)=x’→yz=xyz.

Далее, заменим символы конъюнкции и дизъюнкции друг на друга:

f*(x,y,z)=x(yz)=xyxz.

Вопросы и упражнения для самостоятельной работы

Построить СДНФ и СКНФ для функций f1,f2,f3иf4, заданных таблицей

xy z|f1 f2 f3 f4

0 0 0 | 0 1 1 1

0 0 1 | 0 0 1 1

0 1 0 | 1 1 0 1

0 1 1 | 1 1 0 1

1 0 0 | 1 0 1 1

1 0 1 | 1 0 0 1

1 1 0 | 1 1 0 1

1 1 1 | 1 0 0 1

Построить СДНФ и СКНФ для следующих функций:

а) xy, б)xy, в) (xy)↓z, г)x(yz), д)xyyzxz.

Построить двумя способами СКНФ и СДНФ двойственных функций f *для следующих функций:

а) xy, б)xy, в)xyг)xyz, д)x(yz).

§1.3. Важнейшие замкнутые классы булевых функций

Пусть K— некоторый класс (множество) булевых функций.Замыканием классаK называется множество всех тех функций, которые могут быть выражены через функции классаK. Замыкание классаK будем обозначать через [K]. Класс функций называетсязамкнутым, если он совпадает со своим замыканием, т.е . [K] = K.

Рассмотрим важнейшие замкнутые классы булевых функций.

Класс P0. КлассP0– этокласс всех функций, сохраняющих 0, то есть таких функцийf(x1,x2,…,xn), для которыхf(0,0,…,0)=0.

КлассP1. КлассP1– этокласс всех функций, сохраняющих 1, то есть таких функцийf(x1,x2,…,xn), для которыхf(1,1,…,1)=1.

КлассS. КлассS– этокласс всех самодвойственных функций, то есть таких функцийf, которые совпадают со своей двойственной функцией,f *=f.

КлассL. КлассL– этокласс всех линейных функций, то есть функций представимых в виде

f(x1,x2,…,xn) = 01x12x2…nxn,

где 0,1,2, …,n{0,1} – константы.

КлассM. КлассM– этокласс монотонных функций. Функцияf(x1,x2,…,xn) называется монотонной, еслиf(1,2,…,n)f(1,2,…,n) при (1,2,…,n)(1,2,…,n).

Примеры

1. Проверить принадлежность каждому из классовP0,P1,S,L,Mфункцийи .

Решение.Выпишем соответствующие таблицы истинности:

x y |

0 0 | 0 0

0 1 | 1 1

1 0 | 1 1

1 1 | 1 0

P0: Из первой строки видно, что дизъюнкция и сложениесохраняют 0. Следовательно,,P0;

P1: Из последней строки видно, что дизъюнкция сохраняет 1, а сложение– нет. Следовательно,P1, аP1.

S: Для проверки принадлежности к классуSнеобходимо сравнить прямую и двойственную функции.

Способ I. Для дизъюнкции имеемf*=(xy)*= xy. Но

xy xy, следовательноS.

Способ II. Для сложениявоспользуемся таблицей:

xy|*

0 0 | 0 1

0 1 | 1 0

1 0 | 1 0

1 1 | 0 1

Последний столбец для двойственной функции был получен по следующему правилу: столбец функции инвертируется (замены 01), полученные значения записываются в инвертированные строки. Например, строка 0 11 дляпревращается в строку 1 00 для*.

Из полученной таблицы следует, что *, т.е.S.

L: Представим исследуемые функции через 1,и.

Для дизъюнкции имеем:

xy=(xy’)’=((1x)(1y))’=1((1x)(1y))=

=1(1xyxy)= xyxy.

Здесь мы воспользовались законом де Моргана, тождеством x’=1x, дистрибутивностью сложенияотносительнои ассоциативностью(’’привычные’’ правила раскрытия скобок).

Полученное выражение содержит нелинейное слагаемое xy. Отсюда следует, чтоL.

Для сложения по модулю два имеем: f=xy– линейная функция. Значит,L.

M: Вернемся к таблицам истинности обеих функций (см. пунктP0). Необходимо сравнить значения функции для каждой сравнимой пары аргументов. Мы видим, что дизъюнкция монотонна, а— не монотонна. Следовательно,M,M.

2.Найти линейную булеву функциюf(x,y,z), удовлетворяющую условиям:f(1,0,0)=1,f(0,1,0)=1,f(1,1,1)=0 иf(1,1,0)=0.

Решение.Будем искать линейную функцию в виде

f(x,y,z)=01x2y3z.

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

Воспользуемся методом Гаусса, учитывая, что 11=0:

.

Следовательно, 0=0,1=1,2=1 и3=0, т.е.f(x,y,z)=xy.

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