Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Булевы функции-metod.doc
Скачиваний:
36
Добавлен:
01.12.2018
Размер:
956.93 Кб
Скачать

Принцип двойственности

Функция f*(x1,…,xn)=называется двойственной к функции f. Из определения следует, что f**=(f*)*=f, т.е. функция f двойственна к f* и наоборот.

  1. (0)*=1, (xy)*=x&y, (x)*=x, (x)*= x.

  1. Пусть F(x1,…,xn)=f(f1(x1,…,xn),…, fm(x1,…,xn)), тогда F*(x1,…,xn)=f*(f1* (x1,…,xn),…, fm* (x1,…,xn))

Из этой леммы следует принцип дойственности:

Если формула A=S[f1,…,fk] реализует функцию f(x1,…,xn), то S[f1*,…,fk*] реализует функцию f*(x1,…,xn).

Двойственная к A формула обозначается A*=S[f1*,…,fK*]. Таким образом, в силу принципа двойственности формула, двойственная к данной, получается заменой в исходной формуле всех функций на двойственные с сохранением ее строения, т.е. порядок выполнения операций остается прежним.

  1. Найдем (xyyzzx)*. В силу принципа двойственности, т.к. & двойственна , и наоборот, имеем (xyyzzx)*=(xy)(yz)(zx)=(yxz)(zx)=xyyzzx.

В силу принципа двойственности из эквивалентности формул A1 и A2 следует эквивалентность двойственных формул A1* и A2*.

Задачи

  1. Используя непосредственно определение двойственности, выяснить, является ли функция g двойственной к функции f:

    1. , ;

    2. , ;

    3. , ;

    4. , ;

    5. , ;

    6. , ;

    7. , ;

    8. , ;

    9. , ;

    10. , .

  2. Используя принцип двойственности, построить формулу, реализующую функцию, двойственную к функции f, и убедиться, что она эквивалентна формуле A:

    1. , A=;

    2. , A=;

    3. , A=;

    4. , A=;

    5. , A=;

    6. , A=;

    7. , A=;

    8. , A=;

    9. , A=;

    10. , A=.

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

Введем новую функцию

Очевидно, что .

Конъюнкции вида и дизъюнкции вида называют элементарными. Число m называется рангом элементарной конъюнкции (дизъюнкции). Дизъюнкция элементарных конъюнкций называется дизъюнктивной нормальной формой или д.н.ф. Конъюнкция элементарных дизъюнкций называется конъюнктивной нормальной формой или к.н.ф.

  1. Всякая булева функция f(x1,…,xn) для любого m, 1mn, представима в виде f(x1,…,xn)= .

Это представление называется разложением булевой функции по первым m переменным. Функцию, получаемую из f, подстановкой на места переменных x1,…,xm констант 1,…,m, называют -компонентой функции f.

Следствие 1. Для любого i, 1in,

f(x1,…,xn)=

Следствие 2. Если f(x1,…,xn)0, то f(x1,…,xn)=.

Это разложение называется совершенной д.н.ф. (с.д.н.ф.).

  1. Всякая булева функция может быть представлена формулой в базисе Б={,,}.

  1. Если f(x1,…,xn)1, то f(x1,…,xn)=.

Это разложение называется совершенной к.н.ф. (с.к.н.ф.).

Рассмотрим алгоритмы построения с.д.н.ф. и с.к.н.ф.

Алгоритм построения с.Д.Н.Ф. По таблице значений функции.

  1. Выбрать строку, в которой функция равна 1.

  2. Построить элементарную конъюнкцию, включая в нее с отрицанием те переменные, которые в этой строке равны 0.

  3. Перейти к следующей строке таблицы, на которой функция равна 1.

  4. После перебора всех строк составить с.д.н.ф. из полученных конъюнкций.