Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Розкладання булевої функції по змінним




Нехай s приймає значення 0 або 1, тобто s {0, 1}.

Уведемопозначення:

xs = Ø x, якщо s = 0, xs = x, якщо s = 1.

Т. е. x 0x, x 1 = x.

Очевидно, що xs = 1, якщо x = s й xs = 0, якщо x s.

Теорема 4.2.4 (про розкладання булевої функції по змінним).

Кожна булева функція f (x 1, x 2,..., xn) може бути представлена у вигляді:

f (x 1, x 2,..., xn) = f (x 1, x 2,..., xm, xm +1,..., xn) = V x 1 s 1& x 2 s 2&...& xmsm &

 

f (s 1, s 2,... sm, xm +1,..., xn), (4.1)

 

m n, де диз'юнкція береться по всіх наборах (s 1, s 2,..., sm) (їх 2 m).

Наприклад, для m = 2, n = 4 розкладання (4.1) містить у собі чотири (2 m = 22 =4) кон’юнкції й має вигляд:

f (x 1, x 2, x 3, x 4) = x & x & f (0, 0, x 3, x 4) V x & x & f (0, 1, x 3, x 4) V x & x & f (1, 0, x 3, x 4) V x & x & f (1, 1, x 3, x 4) = Ø x 1x 2& f (0, 0, x 3, x 4) V Ø x 1& x 2& f (0, 1, x 3, x 4) V x 1x 2& f (1, 0, x 3, x 4) V x 1& x 2& f (1, 1, x 3, x 4).

Доведення теореми 4.5.

Теорема буде доведена, якщо показати, що рівність (4.1) виконується для довільного набору змінних (y 1, y 2,..., ym, ym +1,..., yn).

Підставимо цей довільний набір змінних у ліву й праву частини рівності (4.1).

У лівій частині одержимо f (y 1, y 2,..., yn).

Т. к. ys = 1 тільки, коли y = s, те серед 2 m кон’юнкцій y 1 s 1& y 2 s 2&...& ymsm у правій частині (4.1) тільки одна звернеться в 1 – та, у якій y 1 = s 1,…, ym = sm... Всі інші кон’юнкції рівні 0. Тому в правій частині (4.1) одержимо:

y 1 y 1& y 2 y 2&...& ymym & f (y 1, y 2,..., ym, ym +1,..., yn) = f (y 1, y 2,..., yn).

Теорема 4.5 доведена.

Теорема 4.6 (про подання булевої функції формулою в ДДНФ),

Усяка булева функція f (x 1, x 2,..., xn),не рівна тотожно 0, може бути представлена формулою в ДДНФ, що визначається однозначно з точністю до перестановки диз'юнктивних членів.

Доведення.

При m = n одержимо важливий наслідок теореми 4.5:

f (x 1, x 2,..., xn)=V x 1 s 1& x 2 s 2&...& xnsn, (4.2)

f (s 1, s 2,..., sn) = 1

де диз'юнкція береться по всіх наборах (s 1, s 2,..., sn), на яких f = 1.

Очевидно, що розкладання (4.2) є не що інше, як ДДНФ формули f, що містить стільки кон’юнкцій, скільки одиниць у таблиці значень f. Отже, ДДНФ для всякої булевої функції єдина з точністю до перестановки її диз'юнктивних членів.

Очевидно також, що для булевої функції f (x 1, x 2,..., xn), тотожно рівної 0, розкладання (2) не існує.

У силу викладеного для одержання формули булевої функції f (x 1, x 2,..., xn) у ДДНФ можна скористатися наступним алгоритмом.

Алгоритм 4.3. (Алгоритм подання булевої функції, заданою таблицею, формулою в ДДНФ).

Крок 1. Вибираємо в таблиці всі набори змінних s 1, s 2,..., sn, для яких значення f дорівнює 1, тобто f (s 1, s 2,..., sn) = 1.

Крок 2. Для кожного такого набору (рядка таблиці) становимо кон’юнкцію x 1 s 1& x 2 s 2&...& xnsn, де xisi = xi, якщо si = 1 й xisixi, якщо si = 0, i = 1, 2,..., n.

Крок 3. Становимо диз'юнкцію всіх отриманих кон’юнкцій. У результаті вийде формула даної функції в ДДНФ.

Приклад 4.15.

Знайдемо формулу в ДДНФ для функції f (x 1, x 2, x 3), заданою таблицею 4.4.

1. Виберемо в таблиці рядка, де f (x 1, x 2, x 3) =1. Це 4-а, 5-а. 6-а й 8-а рядка.

2. Для кожного обраного рядка становимо кон’юнкції за правилом, зазначеному в кроці 2. Одержимо відповідно для чотирьох обраних рядків:

x 10& x 21& x 31 = Ø x 1 & x 2& x 3.

x 11& x 20& x 30 = x 1x 2x 3.

x 11& x 20& x 31 = x 1x 2& x 3 .

x 11& x 21& x 31 = x 1& x 2& x 3 .

3. Становимо диз'юнкцію всіх отриманих кон’юнкцій і знаходимо ДДНФ:

f (x 1, x 2, x 3) = Ø x 1& x 2& x 3V x 1x 2x 3 V x 1x 2& x 3 V x 1& x 2& x 3.

Переконуємося, що це вираження збігається з отриманим раніше в прикладі 4.13 поданням нашої формули в ДДНФ.

Зауваження. Якщо булева функція задана формулою в ДДНФ, то, застосовуючи алгоритм 4.3 у зворотній послідовності, легко можемо одержати таблицю значень цієї функції.

Теорема 4.7 (про подання булевої функції формулою в ДКНФ),

Усяка булева функція f (x 1, x 2,..., xn),не рівна тотожно 1, може бути представлена формулою в ДКНФ, що визначається однозначно з точністю до перестановки диз'юнктивних членів.

Доведення.

Розглянемо функцію Ø f (x 1, x 2,..., xn). Відповідно до теореми 4.6, якщо вона не дорівнює тотожно 0, існує її формула в ДДНФ. Позначимо цю формулу F 1. Очевидно, умова, що функція Ø f (x 1, x 2,..., xn) не дорівнює тотожно 0, рівносильно умові, що функція f (x 1, x 2,..., xn) не дорівнює тотожно 1. Крім того, за законом де Моргана формула F 2 º Ø F 1 перебуває в ДКНФ (заперечення кон’юнкції є диз'юнкція заперечень). За законом подвійного заперечення

F 2 º Ø F 1 º ØØ f (x 1, x 2,..., xn) º f (x 1, x 2,..., xn),

що й доводить теорему.

Для одержання формули булевої функції f (x 1, x 2,..., xn) у ДКНФ варто скористатися наступним алгоритмом.

Алгоритм 4.4. (Алгоритм подання булевої функції, заданою таблицею, формулою в ДКНФ)

Крок 1. Вибираємо в таблиці всі набори змінних s 1, s 2,..., sn, для яких значення f (s 1, s 2,..., sn) = 0.

Крок 2. Для кожного такого набору (рядка таблиці) становимо диз'юнкцію

x 1 Ø s 1V x 2Ø s 2V...V xn Ø sn, де xi Ø si = xi, якщо si = 0 і xi Ø si = Ø xi, якщо si = 1, i = 1, 2,..., n.

Крок 3. Становимо кон’юнкцію всіх отриманих диз'юнкцій. У результаті вийде ДКНФ.

Приклад 4.16.

Знайдемо формулу в ДКНФ для функції f (x 1, x 2, x 3), заданою таблицею 4.4.

1. Виберемо в таблиці рядки, де f (x 1, x 2, x 3) = 0. Це 1-ий, 2-ий, 3-ий і 7-ий рядки.

2. Для кожного обраного рядка становимо диз'юнкції за правилом, зазначеному в кроці 2. Одержимо відповідно для трьох обраних рядків:

x 11V x 21V x 31 = x 1V x 2V x 3.

x 11V x 21V x 30 = x 1V x 2x 3.

x 11V x 20V x 31 = x 1x 2V x 3.

x 10V x 20V x 31 = Ø x 1x 2V x 3.

3. Становимо кон’юнкцію всіх отриманих диз'юнкцій і знаходимо ДКНФ:

f (x 1, x 2, x 3) = (x 1V x 2V x 3)&(x 1V x 2x 3)&(x 1x 2V x 3)&(Ø x 1x 2V x 3).

Це вираження збігається з отриманим раніше в прикладі 4.14 поданням нашої формули в ДКНФ.

Зауваження. Т. к. усього рядків у таблиці функції 2 n, те, якщо число диз'юнктивних членів у ДДНФ дорівнює p, а число конъюнктивных членів у ДКНФ дорівнює q, те p + q =2 n.

Так, для функції, розглянутої в прикладах 4.15 й 4.16, n = 3, p = 4, q = 4, p + q = 8 = 23.

ЛІТЕРАТУРА

1. Капітонова Ю.В., Кривий С.Л., Летичевський О.А., Луцькиц Г.М., Печорін М.К. Основи дискретної математики. – К.: Наукова думка, 2002. – С.6-15.

2. Кужель О.В. Елементи теорії множин і математичної логіки. – К.: Рад. школа, 1977. – С. 4-24.

3. Новиков Ф.А. Дискретная математика для програмистов. – СПб.: Питер, 2002. – С.19-32.

4. Федосеева Л.И. Дискретная математика: Учеб.-практич. пособие. – Пенза: Изд-во Пенз. технол. ин-та, 1998. – С. 3-30.





Поделиться с друзьями:


Дата добавления: 2014-10-17; Просмотров: 2118; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.