лекції по мат.логике / L10-propos-bul
.pdfБулевi функцi¨
Григорiй Чарльзович Курiнний Листопад, 2010
Çìiñò
1 Булевi функцi¨ та ¨х задання |
1 |
|
1.1 |
Визначення булевих функцiй i формул, що задають булевi функцi¨ . . . . . . . . |
1 |
1.2 |
Задання булево¨ функцi¨ рядком (кортежем, вектором) . . . . . . . . . . . . . . . |
4 |
1.3 |
Справжнi (сутт¹вi) та фiктивнi змiннi . . . . . . . . . . . . . . . . . . . . . . . . |
5 |
1.4 |
Домовленостi про дужки у формулах . . . . . . . . . . . . . . . . . . . . . . . . . |
5 |
1.5 |
Рiвносильнi формули i основнi рiвносильностi. . . . . . . . . . . . . . . . . . . . |
6 |
1.6 |
Полiноми Жегалкiна та лiнiйнi функцi¨ . . . . . . . . . . . . . . . . . . . . . . . . |
7 |
1.7 |
Досконалi форми та задання функцi¨ формулою логiки висловлень . . . . . . . |
9 |
2 Суперпозицiя булевих функцiй. Замкненi класи (вiдносно суперпозицi¨) |
11 |
||
2.1 |
Означення суперпозицi¨ та замкненого класу. Приклади. . . . . . . . . . . . . . . |
11 |
|
2.2 |
Самодво¨стi та монотоннi функцi¨ . . . |
. . . . . . . . . . . . . . . . . . . . . . . . |
12 |
2.3 |
Теорема Поста про 5 замкнених класiв. |
. . . . . . . . . . . . . . . . . . . . . . . |
13 |
3 Застосування булевих функцiй у шифруваннi та у електричних схемах |
15 |
|
3.1 |
Псевдовипадковi послiдовностi бiтiв . . . . . . . . . . . . . . . . . . . . . . . . . . |
15 |
3.2 |
Реле та контакти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
16 |
3.3 |
Побудова релейно контактно¨ схеми iз заданою таблицею роботи . . . . . . . . . |
19 |
1 Булевi функцi¨ та ¨х задання
1.1Визначення булевих функцiй i формул, що задають булевi функцi¨
Функцi¨, у яких i область визначення i область значень двоелементна, називають булевими.
Змiннi в булевих функцiях називають пропозицiйними символами, а в програмуваннi булевими змiнними. 0 та 1 булевi константи.
Елементи як областi визначення так i областi значень звичайно позначають символами 0 та 1. Отже, коли говоримо про булеву функцiю f(x1; x2; : : : ; xn), òî ìà¹òüñÿ íà óâàçi, ùî
x1; x2; : : : ; xn; f(x1; x2; : : : ; xn) 2 f0; 1g:
™ кiлька найпростiших булевих функцiй, що мають позначення. За допомогою цих позна- чень будують формули, якi задають булевi функцi¨. Цi функцi¨ мають таблицi значень. Наше завдання дати таблицi значень для функцiй, що мають сво¨ унiкальнi назви та позначення.
1
Потiм ми повиннi показати, яка буду¹ться формула (над множиною введених позначень для найростiших функцiй) та як буду¹ться таблиця значень функцi¨, яка задана формулою.
Три функцi¨ двох змiнних виникають в логiцi висловлень це функцi¨ не , i та або . Функцiю не називають також запереченням i позначають символом :. Функцiю i називають
такою кон'юнкцi¹ю i позначають символом ^. Функцiю або називають також диз'юнкцi¹ю i позначають символом _.
x |
y |
:x |
x ^ y |
x _ y |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
|
|
|
|
|
В логiцi висловлень виникають ще двi функцi¨ якщо, то i тодi i тiльки тодi . Першу ще називають iмплiкацi¹ю i позначають ), а другу називають також рiвносильнiстю, та еквiва-
ленцi¹ю i позначають символом ,. Цi функцi¨ мають наступнi таблицi значень
x y |
x ) y |
x , y |
|
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
|
|
|
|
Використовуються також двi сталi функцi¨ 0 та 1, додавання x+y та множення xy, i функцi¨штрих Шефера xjy òà ñòðiëêà Ïiðñà x # y. Таблицi значень цих функцiй наведенi нижче.
x y |
0 1 x + y xy xjy x # y |
||||||
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
Формули над множиною функцiональних символiв визнача¹ться iндуктивно.
База iндуктивного означення кожна булева змiнна i стaлi 0 та 1 ¹ формулами. Iндуктивне припущення: Припустимо, що ми зна¹мо, що A; B ¹ формулами.
Iндуктивний прехiд залежить вiд множини фiнкцiональних символiв.
Над множиною :; _; ^ iндуктивним переходом буде: Якщо A; B ¹ формулами, то форму-
лами будуть також |
(:A); (A ^ B); (A _ B): |
|
Над множиною :; _; ^; ); , iндуктивним переходом буде: Якщо A; B ¹ формулами, то формулами будуть також
(:A); (A ^ B); (A _ B); (A ) B); (A , B):
Над множиною :; _; ^; ); ,; j; #; ¢; + iндуктивним переходом буде: Якщо A; B ¹ формулами, то формулами будуть також
(:A); (A ^ B); (A _ B); (A ) B); (A , B); (AB); (A + B); (AjB); (A # B):
Формули над множинаю :; _; ^ i над множиною :; _; ^; ); , називають формулами логiки
висловлень.
ëiâ.Подiбним чином визначаються формули над довiльною множиною функцiональних симво-
2
Кожна формула зада¹ функцiю. Таблиця значень функцiˆ, що задана формулою, визнача- ¹ться iндукцi¹ю за числом крокiв, що потрiбнi для побудови формули.
База iндукцi¨ Якщо формула це просто булева змiнна або булева константа, то значення формули i значення змiнно¨ чи константи це одне i те ж.
Iндуктивне припущення Припуска¹мо, що ми вмi¹мо будувати таблицi значень формул, що побудованi на попереднiх кроках.
Iндуктивний перехiд у визначеннi таблицi значень здiйсню¹ться так. Якщо уже вiдомi значення A(x); B(x) функцiй, що заданi формулами A; B вiд деякого набору змiнних x =
(x1; x2; : : : ; xn), то значення функцiй. що заданi формулами, якi побудованi на наступному кроцi за допомогою формул A; B вiд тих же змiнних визнача¹ться за допомогою таблицi
A B |
:A A ^ B A _ B A ) B A , B A + B AB AjB A # B |
|||||||||
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
Таблицi значень формули логiки висловлень називають таблицями iстиностi формули. Приклад 1. Побудувати таблицю iстиностi формули
f1 = (p ! q) ! ((p _ (q ^ r)) ! (r ^ :p)): |
(1) |
Побудова. Спочатку в першому рядку таблицi випису¹мо пiдформули, що будуються на першому кроцi тобто випису¹мо пропозицiйнi змiннi, що входять до формули тобто p; q; r.
Потiм випису¹мо пiдформули, що будуються на 2 кроцi тобто :p; p ) q; q ^ r: Далi йдуть пiдформули, що будуються на 3 кроцi r^:p; p_(q^r); на четвертому кроцi A = (p_(q^r)) ! (r ^ :p); i,нарештi, сама формула f = (p ! q) ! A, ùî áóäó¹òüñÿ íà 5 êðîöi.
Для зручностi пояснення того, як заповню¹ться таблиця, перенумеру¹мо стовпчики, номери 1,2,3,4,5,6,7,8,9,10 запишему у другий рядок.
Переходимо власне до таблицi. Спочатку заповнюються стовпчики, якi вiдповiдають пропозицiйним змiнним тобто першi три стовпичики. Потрiбно виписати всi можливi набори значень для трьох змiнних наборiв буде 23 = 8. В загальному випадку, коли формула ма¹
n пропозицiйних змiнних, потрiбно виписати 2n наборiв. Ця кiлькiсть одержу¹ться iз ком-
бiнаторних мiркувань, якi зараз проводити не будемо.
Набори (кажуть ще кортежi, вектори) значень змiнних можна виписувати як завгодно, але ¹ стандарт виписати двiйковi записи чисел 0; 1; : : : ; 2n¡1 в загальному випадку, а в нашому
конкретному випадку двiйковi записи чисел 0,1,2,3,4,5,6,7. Нагада¹мо, що
двiйковий запис невiд'¹много цiлого числа n öå òàêà ïîñëiäîâíiñòü
0 òà 1, ùî |
|
amam¡1am¡2 : : : a1a0; |
|
a0 |
+ 2a1 + 4a2 + : : : + am2m = n |
||
|
З цього означення ма¹мо: двiйковим записом числа 0 ¹ 0, двiйковим записом числа 1 ¹ 1, числа 2 ¹ 10, числа 3 ¹ 11, числа 4 ¹ 100, числа 5 ¹ 101, числа 6 ¹ 110, числа 7 ¹ 111. Перед першою одиницею можна дописувати 0.
Далi за таблицями значень найпростiших булевих функцiй послiдовно запису¹мо значення в стовпчики, що вiдповiдають формулам другого рiвня, тобто що будуються на другому кроцi, потiм на третьому i так до кiнця. Одержу¹мо таблицю 1
3
p q r |
:p p ! q q ^ r |
r ^ :p p _ (q ^ r) |
A = (p _ (q ^ r)) ! (r ^ :p) |
f1 = (p ! q) ! A |
|||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
Табл. 1: Побудова таблицi iстиностi формули логiки висловлювань (1)
p q r |
:r p ! r q _ r |
:r ^ q p ^ (q _ r) |
A = (p ^ (q _ r)) ! (:r ^ q) |
f2 = (p ! r) ! A |
|||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
|
|
|
|
|
|
|
|
|
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
Табл. 2: Таблиця iстиностi формули (2) Таблицею iстиностi формули логiки висловлень
f2 = (p ! r) ! ((p ^ (q _ r)) ! (:r ^ p)) |
(2) |
¹ таблиця 2
1.2 Задання булево¨ функцi¨ рядком (кортежем, вектором)
В таблицях 1, 2 першi три стовпчики заповнюються стандартно, завжди однаково. Стовпчики з 4 по 9 ¹ технологiчними, вони важливi для одержання кiнцевого результату, але у вiдповiдi вiдсутнi. Тому iнформацiйним в таблицi значень задано¨ формули ¹ лише останнiй стовпчик. А це дозволя¹ задавати булеву функцiю саме цим стовпчиком,який простiше писати в рядок. Для наведених двох прикладiв (1) i (2) можна писати
f1 = (11111111); |
f2 = (11111010): |
Якщо функцiя задана кортежем довжини 2n, то формула ма¹ n пропозицiйних зиiнних, ¨х
позначення не мають значення.
Iнколи в таблицях значення пiдформул пишуть не в стовпчик, а в рядок, а список пiдформул пишуть у перший стовпчик, тобто мiняють ролями стовпчики та рядки це питання смаку. На паперi зрiчнiше послiдовностi писати в рядок, в обчислювальнiй машинi це не ма¹
4
значення. Ранiше частiше значення пiдформул писали в стовпчик так будемо чинити i в нашому курсi.
Крiм того, iсну¹ i iнший стандарт писати набори змiнний у зворотньому порядку, вiд одиничного до нульового.
1.3 Справжнi (сутт¹вi) та фiктивнi змiннi
У виразi |
|
y2 + 1 |
|
|
f(x; y; z) = x + |
¢ z ¡ x |
|
|
y2 + 1 |
iз шкiльного курсу математики змiннi x; y ¹, але вони скорочуються, вiд них функцiя не залежить. Це так званi фiктивнi змiннi. В булевих функцiях фiктивнi змiннi визначаються так
Для функцi¨ f(x1; x2; : : : ; xn¡1; xn) çìiííà xn назива¹ться фiктивною, коли для будьякого кортежу (x1; x2; : : : ; xn¡1) викону¹ться рiвнiсть
f(x1; x2; : : : ; xn¡1; 0) = f(x1; x2; : : : ; xn¡1; 1):
Для функцi¨ f(x1; x2; : : : ; xn¡1; xn) çìiííà xn назива¹ться справжньою або сутт¹вою, коли iсну¹ кортеж (x1; x2; : : : ; xn¡1) такий, що
f(x1; x2; : : : ; xn¡1; 0) 6= f(x1; x2; : : : ; xn¡1; 1):
Óфункцi¨ f1(p; q; r), що задана формулою (1) з таблицею значень табл. 1 всi змiннi фiктивнi.
Àу функцi¨ f2(p; q; r), що задана формулою (2) з таблицею значень табл. 2, змiнна p ñóòò¹âà,
òîìó ùî |
f(0; 0; 1) = 1; |
f(1; 0; 1) = 0; |
|
||
çìiííà r ñóòò¹âà, òîìó ùî |
|
|
|
f(1; 1; 0) = 0; |
f(1; 1; 1) = 1; |
çìiííà q фiктивна, тому що |
|
|
|
f(0; 1; 0) = f(0; 0; 0) = 1; |
f(0; 1; 1) = f(0; 0; 1) = 1; |
|
f(1; 1; 0) = f(1; 0; 0) = 1; |
f(1; 0; 1) = f(1; 1; 1) = 0: |
1.4 Домовленостi про дужки у формулах
Для обчислювально¨ машини не ма¹ значень кiлькiсть дужок у формулi, а для людини дужки захаращують запис. Тому, подiбно до запису арифметичних виразiв, часто пропускають дужки. Загальних пiдхiд
Дужки у формулi можна не писати тодi i тiльки тодi, коли ¨х можна однозначно вiдновити.
5
Щоб використовуати це загальне правило, ¹ три домовленостi
Домовленiсть про зовнiшнi дужки: Якщо формула не використову¹ться для побудови iнших формул (тобто не ¹ пiдформулою), то зовнiшнi дужки можна не писати. Отже замiсть (p ^ q) можна писати p ^ q:
Домовленiсть про силу знакiв для позначення функцiй, зв'язок. ^ найсильнiший знак, _ слабший, ) ще слабший. Цi знаки роташовються за сво¹ю силою загальноприйнято. Решту символiв можна розташовувати за со¨ми вподобаннями. Так що замiсть (p _ (q ^ r)) можна писати p _ q ^ r.
Третя домовленiсть про лiве групування. Пояснимо прикладом: формула p ) q )
r ) s розумi¹ться як (((p ) q) ) r) ) s): Точно так же розумi¹ться бездужковий запис з використанням iншого функцiонального символа.
1.5 Рiвносильнi формули i основнi рiвносильностi.
Формули, що задають одну i ту ж функцiю називають рiвносильними. Рiвносильнi формули з'¹днують знаком =. Формули, що рiвносильнi 1, називають тавтологiями.
™ таблиця основних рiвносильностей. Наведемо ¨¨.
² p ^ p = p iдемпотентнiсть ^;
² p _ p = p iдемпотентнiсть _;
² p ^ q = q ^ p комутативнiсть ^;
² p _ q = q _ p комутативнiсть _;
² (p _ q) _ r = p _ (q _ r) асоцiативнiсть;
² (p ^ q) ^ r = p ^ (q ^ r) асоцiативнiсть;
² p ! q = :p _ q переписування iмплiкацi¨ через заперечення та диз'юнкцiю;
² (p ^ q) _ r = (p _ q) ^ (q _ r) дистрибутивнiсть;
² (p _ q) ^ r = (p ^ r) _ (q ^ r) дистрибутивнiсть;
² ::p = p подвiйне заперечення;
² :(p _ q) = :p ^ :q закон де Моргана;
² :(p ^ q) = :p _ :q закон де Моргана;
² 1 ^ p = p, 1 _ p = 1, 0 ^ p = 0, 0 _ p = p визначення констант.
² (p ^ q) _ p = p; (p _ q) ^ p = p; поглинання.
Вказанi рiвносильностi доводяться побудовою вiдповiдних таблиць iстиностi. Наведемо приклади використання найпростiших рiвносильнсотей.
x = x _ 0 = x _ (y ^ :y) = (x ^ y) _ (x ^ :y);
:(y ) x)^((y _:x) ) x) = :(:y _x)^(:(y _:x)_x) = (y ^:x)^((:y ^x)_x) = y ^:x^x = 0:
6
1.6 Полiноми Жегалкiна та лiнiйнi функцi¨
Операцi¨ додавання та множення на булевих знаеннях 0,1 вiдбува¹ться за правилами
1 + 1 = 0 = 0 + 0; 1 + 0 = 0 + 1 = 1; 1 ¢ 1 = 1; |
1 ¢ 0 = 0 ¢ 1 = 0 ¢ 0 = 0: |
Для булево¨ мiнно¨ x можна записати x2 = x; x + x = 0; |
x = ¡x: Для того, щоб вiдрiзнити |
додавання в булевих функцiях вiд додавання в числових функцiях, для булевого додавання використовують знак ©. У нас числових функцiй нема¹, тому використову¹мо звичайний знак
+.
Полiномом (або многочленом) Жегалкiна вiд змiнних x1; x2; : : : xn називають вираз
f(x1; x2; : : : ; xn) = |
1;2;:::;n |
aM ¢ xi |
(3) |
|
M |
i2M |
|
||
|
µfX |
g |
Y |
|
äå aM 2 f0; 1g сталi коефiцi¹нти полiнома Жегалкiна, a; Qi2; xi = a;.
Полiном Жегалкiна вважа¹ться нульовим, коли всi коефiцi¹нти дорiвнюють нулю.
Полiноми Жегалкiна вiд трьох змiнних x1; x2; x3 мають вигляд
a0 + a1x1 + a2x2 + a3x3 + a12x1x2 + a13x1x3 + a23x2x3 + a123x1x2x3
Прикладами полiномiв Жегалкiна ¹
1 + x1 + x2x3 + x2x5; x1x2 + x1x2x4:
Ëåìà 1.1 Ненульовий полiном Жегалкiна прийма¹ ненульове значення.
Доведення. Нехай ма¹мо ненульовий полiном Жегалкiна (3), тобто такий, що серед коефiцi¹нтiв aM ¹ одиниця. Для прикладу ввiзьмемо полiном
f(x1; x2; x3; x4; x5) = x1x3 + x1x4x5 + x2x3x4x5:
У сукупностi множин fMjaM = 1g вибира¹мо одну мiнiмальну (не мiститься в iншiй), позна- ча¹мо ¨¨ через N. В нашому випадку
a13 =6 0; a145 =6 0; a2345 =6 0;
i можна взяти N = 1; 3. Перепису¹мо полiном, видiливши один доданок
µfX g |
Y |
Y |
µf |
Xg 6 |
Y |
aM ¢ |
|
xi = xi + |
|
aM ¢ |
xi |
M 1;2;:::;n |
i2M |
i2N |
M |
1;2;:::;n ;M=N |
i2M |
i пiдрахову¹мо тепер цей полiном на булевому векторi ® = (®1; ®2; : : : ; ®n) äå
½ |
0 |
ÿêùî |
k 2= N: |
®k = |
1 |
ÿêùî |
k 2 N |
Серед доданкiв видiлений дорiвню¹ 1, а решта дорiвнюють 0. В нашому прикладi потрiбно взяти x1 = x3 = 1; x2 = x4 = x5 = 0: Вiд такого набору значень змiнних многочлен дорiвню¹
1. Лема 1.1 доведена.
Ëåìà 1.2 Рiзнi полiноми Жегалкiна задають рiзнi функцi¨.
7
Це наслiдок леми 1.1. Дiйсно, використову¹мо метод вiд протилежного якби два рiзнi полiноми задавали одну функцiю, то ¨х рiзниця була б ненульовим полiномом, який зада¹ нульову функцiю. А це суперечить лемi 1.1.
Теорема 1.1 Кожна функцiя може бути задана полiномом Жегалкiна.
Доведення. Теорема ¹ наслiдком леми 1.2. Дiйсно, якщо пiдрахувати кiлькiсть функцiй та кiлькiсть полiномiв Жегалкiна вiд n змiнних, то тих i других 22n . À îñêiëüêè ðiçíi ïîëiíîìè
задають рiзнi функцi¨, то кожна функцiя буде задана якимось полiномом.
Покажемо на прикладi, як знайти полiном Жегалкiна, що зада¹ функцiю iз заданою таблицею значень.
Нехай ма¹мо двi функцi¨
f = (1110 0001); g = (0101 1010):
Оскiльки вектор значень ма¹ довжину 8 = 23; то обидвi функцi¨ вiд 3-х змiнних назвемо ¨х x; y; z: Запису¹мо шуканi полiноми з невiдомими коефiцi¹нтами. Принагiдно скажемо, що
Метод знаходження формули, який поляга¹ в записi цi¹¨ формули з невiдоми коефiцi¹нтами i наступним знаходженням цих коефiцi¹нтiв, називають методом невiдомих коефiцi¹нтiв .
Отже засосу¹мо метод невiдомих коефiцi¹нтiв:
f(x1; x2; x3) = a0 + a1x + a2y + a3z + a12xy + a13xz + a23yz + a123xyz;
g(x1; x2; x3) = b0 + b1x + b2y + b3z + b12xy + b13xz + b23yz + b123xyz:
У многочлени з невiдомими коефiцi¹нтами пiдставля¹мо значення змiнних i одержу¹мо (оскiльки значення функцi¨ нам вiдомi) рiвняння, якi послiдовно дають нам шуканi коефiцi¹нти. Результати запису¹мо в табличку
p |
q |
r |
f |
|
g |
|
|
|
|
|
|
|
|
0 |
0 |
0 |
1 |
a0 = 1 |
0 |
b0 = 0 |
0 |
0 |
1 |
1 |
a3 = 0 |
0 |
b3 = 1 |
0 |
1 |
0 |
0 |
a2 = 0 |
0 |
b2 = 0 |
0 |
1 |
1 |
0 |
a23 = 1 |
0 |
b23 = 0 |
1 |
0 |
0 |
0 |
a1 = 1 |
0 |
b1 = 1 |
1 |
0 |
1 |
0 |
a13 = 0 |
0 |
b13 = 0 |
1 |
1 |
0 |
0 |
a12 = 0 |
0 |
b0 = 0 |
1 |
1 |
1 |
1 |
a123 = 0 |
0 |
b123 = 0 |
Знайшовши коефiцi¹нти, випису¹мо вiдповiдь:
f(x;y; z) = 1 + x + yz; g(x; y; z) = x + z:
Оскiльки полiном Жегалкiна для функцi¨ f мiстить доданок добуток змiнних yz, то функцiя не лiнiйна. А оскiльки полiном Жегалкiна для функцi¨ g не мiстить добуткiв змiнних, то функцiя g ëiíiéíà.
8
1.7Досконалi форми та задання функцi¨ формулою логiки висловлень
Розгляда¹мо булевi функцi¨ та булевi формули вiд n |
¸ 1 |
çìiííèõ x |
; x |
; : : : ; x |
|
: Для зручностi |
|||||||||||||||||||
нинiшньо¨ роботи введемо позначення: |
|
1 |
|
|
|
|
, à |
|
0 1 |
2 |
|
|
n |
|
Таким чином |
||||||||||
x |
|
означа¹ просто |
x |
x |
означа¹ |
:x: |
|||||||||||||||||||
1 |
0 |
1 |
x |
|
x |
|
x |
|
|
|
|
|
|
|
|
|
|
|
|||||||
x1 |
^ x2 |
^ x3 означа¹ |
^ : |
2 ^ |
: Тепер ми можемо розглядати вираз (його також можна |
||||||||||||||||||||
|
®1 |
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
назвати формулою) x |
|
ïðè ® 2 f0; 1g : |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
x® = ½ :x |
ÿêùî |
® = 0: |
|
|
|
|
|
|
|
|
|
(4) |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
x |
ÿêùî |
® = 1; |
|
|
|
|
|
|
|
|
|
|
Формула (4) дозволя¹ для будь-яко¨ послiдовностi ®1; ®2; : : : ; ®n нулiв та одиничок побудувати
формулу |
x1®1 |
^ x2®2 |
^ : : : ^ xn®n : |
(5) |
|
Формула A âiä çìiííèõ x1; x2; : : : ; xn назива¹ться досконалою диз'юнктивною фор-
мою (скорочено ДДНФ), якщо для деяких рiзних формул A1; A2; : : : ; An, кожна з яких ма¹ вигляд (5), можна записати
A = A1 _ A2 _ : : : _ Ak; k ¸ 1:
Формули, що мають вигляд (5), називають кон'юнктами
Можна сказати, що ДДНФ це диз'юнкцiя рiзних кон'юнктiв. Наведемо приклади. Формули
:x1 ^ x2; (:x1 ^ x2) _ (x1 ^ x2) _ (:x1 ^ :x2)
¹ досконалими диз'нктивними формами вiд двох змiнних. А формули
(:x1 ^ x2) _ (x1 ^ x2 ^ x3); (:x1 ^ x2) _ (x1 ^ x2) _ (:x1 ^ x2)
не ¹ ДДНФ, оскiльки кон'юнкти першо¨ формули мають рiзнi кiлькостi змiнних, а серед кон'- юнктiв друго¨ ¹ однаковi.
Подiбно до формули (5), можна побудувати диз'юнкцiю змiнних та ¨х заперечень - кожна змiнна чи ¨¨ заперечення повиннi входити в таку формулу i до того ж тiльки один раз. Кон'юнкцiя таких формул (диз'юнктiв) буде називатися ДКНФ - досконалою кон'юнктивною формою.
Наведемо приклади. Формули
(x1 _ x2) ^ (:x1 _ x2); (:x1 _ x2 _ x3) ^ (x1 _ :x2 _ x3)
¹досконалими кон'юнктивними формами.
Àформули
(x1 _ x2) ^ (:x1 _ x2 _ x3); (:x1 _ x2 _ x3) ^ (x1 _ :x2 _ x3) ^ (:x1 _ x2 _ x3)
не ¹ досконалими кон'юнктивними формами в першiй диз'юнкти мають рiзну кiлькiсть змiнних, а в другiй ¹ однаковi диз'юнкти.
Для подальшо¨ роботи важливим ¹ те, що функцiя, яка задана формулою (5), прийма¹ значення 1 на ¹диному наборi змiнних: xi = ®i; i = 1; 2; : : : ; n:
Теорема 1.2 Будь-яка не тотожно хибна булева функцiя може бути задана ДДНФ. Будьяка не тотожно iстинна булева функцiя може бути задана ДКНФ.
9
Доведення. Нехай f(x1; x2; : : : ; xn) булева функцiя, яка при деяких значеннях змiнних прийма¹ значення 1. Для кожного набору змiнних (®1; ®2; : : : ; ®n), на якому функцiя прийма¹
значення 1, буду¹мо кон'юнкт |
x1®1 |
^ x2®2 ^ : : : ^ xn®n |
|
Диз'юнкцiя побудованих кон'юнктiв дасть нашу функцiю.
Нехай f(x1; x2; : : : ; xn) булева функцiя, яка при деяких значеннях змiнних прийма¹ зна- чення 0. Для кожного набору змiнних (®1; ®2; : : : ; ®n), на якому функцiя прийма¹ значення 1,
áóäó¹ìî äèç'þíêò |
x1:®1 |
_ x2:®2 _ : : : _ xn:®n |
|
Кон'юнкцiя побудованих диз'юнктiв дасть нашу функцiю. Наведемо приклад.
Приклад 1.1 . Привести формулу f до ДДНФ побудувати ДДНФ, що рiвносильна заданiй формулi
à) f = (q ! p) ! (q ^ :r)
Розв'язування. Буду¹мо таблицю значень булевой функцi¨, що задана формулою f. Äàëi
за кожною одиницею буду¹мо вiдповiдний кон'юнкт. Диз'юнкцiя побудованих кон'юнктiв i ¹ потрiбна нам ДДНФ
p |
q |
r |
:r |
q ! p |
q ^ :r |
(q ! p) ! (q ^ :r) |
Кон'юнкти |
Диз'юнкти |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
|
p _ q _ r |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
:p ^ q ^ :r |
p _ q _ :r |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
|
|
0 |
1 |
1 |
0 |
0 |
0 |
1 |
:p ^ q ^ r |
:p _ q _ r |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
|
|
1 |
0 |
1 |
0 |
1 |
0 |
0 |
p ^ q ^ :r |
:p _ q _ :r |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
:p _ :q _ :r |
|
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
Ïîòðiáíîþ ÄÄÍÔ áóäå (:p ^ q ^ :r) _ (:p ^ q ^ r) _ (p ^ q ^ :r):Ïîòðiáíîþ ÄÊÍÔ áóäå
(p _ q _ r) ^ (p _ q _ :r) ^ (:p _ q _ r) ^ (:p _ q _ :r) ^ (:p _ :q _ :r):
á) (p ! q) ! (q ^ :r)
p |
q |
r |
:r |
p ! q |
q ^ :r |
(p ! q) ! (q ^ :r) |
Кон'юнкты |
Диз'юнкти |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
|
p _ q _ r |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
:p ^ q ^ :r |
p _ q _ :r |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
p _ :q _ :r |
|
0 |
1 |
1 |
0 |
1 |
0 |
0 |
p ^ :q:r |
|
1 |
0 |
0 |
1 |
0 |
0 |
1 |
|
|
1 |
0 |
1 |
0 |
0 |
0 |
1 |
p ^ :q ^ r |
|
1 |
1 |
0 |
1 |
1 |
1 |
1 |
p ^ q ^ :r |
:p _ :q::r |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
Ïîòðiáíîþ ÄÄÍÔ áóäå (:p ^ q ^ :r) _ (p ^ :q:r) _ (p ^ :q ^ r) _ (p ^ q ^ :r): Ïîòðiáíîþ ÄÊÍÔ áóäå (p _ q _ r) ^ (p _ q _ :r) ^ (p _ :q _ :r) ^ (:p _ :q::r):
10