Булеві функції Лекція 3 Булеві функції 1
Джордж Буль (2. 11. 1815 - 8. 12. 1864) У 1854 р. побачив світ основний твір Буля “Дослідження законів думки, на яких засновані математичні теорії логіки й імовірності”. Ця ґрунтовна книга нині зараховується до математичної класики; у ній детально досліджується та система алгебри, яку сьогодні називають “алгеброю висловлювань”. Булеві функції 2
Джордж Буль Чіткість, з якою підійшов Буль до завдання “алгебраїзації логіки”, і те глибоке розуміння природи математики і сенсу абстрактних математичних структур, які він при цьому виявив, не тільки цілком виправдовують загальноприйнятий термін “структура (або алгебра) Буля”, але і зробили можливим крилатий вислів: „Чисту математику відкрив Буль у праці, яка називається Закони думки” (Б. Рассел, англійський математик і філософ). Буль мав чотирьох доньок, які всі виявилися чудовими людьми (у нашій країні найвідоміша Етель Ліліан Буль, у заміжжі Войнич, автор роману “Овід”). Булеві функції 3
Булеві функції Нехай X = {x 1, x 2, . . . , xn-1, xn} – вихідна множина булевих змінних (аргументів). Вважатимемо, що аргументи визначено на множині E 2 = {0, 1}, і розглядатимемо функції f(x 1, x 2, . . . , xn) такі, що f( 1, 2, . . . , n) E 2 за умови i E 2. У такий спосіб f(x 1, x 2, . . . , xn) розумітимемо як запис функції, що залежить від множини аргументів X. Означення 2. 1. Булева функція n змінних або функція алгебри логіки визначається як відображення Булеві функції 4
Табличне задання булевої функції Із означення функції f(x 1, x 2, . . . , xn) випливає, що для її задання досить вказати значення функції, які відповідають кожному з наборів значень аргументів, тобто задати таблицю (наступний слайд). Якщо існують n змінних, то вони набувають 2 n різних значень. Якщо набір аргументів розглядати як запис числа у двійковій системі числення, то розташування наборів відповідає природному розташуванню двійкових чисел у порядку зростання 0, 1, . . . , 2 n– 1. Булеві функції 5
Таблиця задання булевої функції x 1 . . . xn– 1 xn f(x 1, x 2, . . . , xn– 1, xn) 0 . . . 0 0 f(0, 0, . . . , 0, 0) 0 . . . 0 1 f(0, 0, . . . , 0, 1) 0 . . . 1 0 f(0, 0, . . . , 1, 0) . . . . 1 1 f(1, 1, . . . , 1, 1) Булеві функції 6
Теорема про кількість булевих функцій Теорема 2. 1. Кількість p 2(n) усіх функцій з P 2, що залежать від n змінних x 1, x 2, . . . , xn, дорівнює . Доведення. Якщо зафіксувати n змінних x 1, x 2, . . . , xn, то таблиця задання функції матиме m = 2 n рядків. Таблиці для різних функцій відрізнятимуться тільки значеннями правого стовпчика, а кількість таблиць складатиме 2 m, тобто . Теорему доведено. Булеві функції 7
Істотні та фіктивні змінні Означення 2. 2. Функція f(x 1, x 2, . . . , xi-1, xi+1, . . . , xn) із P 2 істотно залежить від аргументу xi, якщо існують такі значення змінних x 1, x 2, . . . , xi– 1, xi+1, . . . , xn, що f( 1, 2, . . . , i– 1, 0, i+1, . . . , n) f( 1, 2, …, i-1, 1, i+1, . . . , n). У цьому випадку змінна xi називається істотною. Якщо xi не є істотною змінною, то вона називається неістотною або фіктивною. Булеві функції 8
Введення та вилучення фіктивних змінних Нехай для функції f(x 1, x 2, . . . , xn) змінна xi є фіктивною. Візьмемо таблицю для функції f(x 1, x 2, . . . , xn) і згідно з нею побудуємо нову таблицю методом викреслювання всіх рядків, що мають вигляд 1, 2, . . . , i-1, 1, i+1, . . . , n, а також викреслювання стовпчика для аргументу xi. Отримана таблиця визначатиме деяку функцію g(x 1, x 2, . . . , xi-1, xi+1, . . . , xn). Вважатимемо, що її здобуто із f(x 1, x 2, . . . , xn) шляхом вилучення фіктивної змінної xi, а функцію f(x 1, x 2, . . . , xn) – із g(x 1, x 2, . . . , xi– 1, xi+1, . . . , xn) шляхом введення фіктивної змінної xi. Булеві функції 9
Рівність булевих функцій Означення 2. 3. Функції f 1(x 1, x 2, . . . , xn) і f 2(x 1, x 2, . . . , xm) називаються рівними, якщо одну з них можна одержати із другої шляхом додавання або вилучення фіктивних аргументів. Існують два типи функцій, що не мають істотних змінних: функції першого типу тотожно дорівнюють 0, а другого – тотожно дорівнюють 1. Введемо до подальшого розгляду константи 0 та 1 (як функції від порожньої множини змінних). Зауваження. Якщо задано скінченну систему функцій з P 2 = {f 1, . . . , fs}, s 1, то можна вважати, що всі ці функції залежать від тих самих змінних x 1, . . . , xn, тобто мають вигляд f 1(x 1, . . . , xn), . . . , fs(x 1, . . . , xn). Булеві функції 10
Функції системи P 2 (1) 1. n = 0. |p 2(0)| = 2. Маємо дві функції: це константи 0 та 1 (тотожні сталі). Булеві функції 11
Функції системи P 2 (2) 2. n = 1. |p 2(1)| = 4. Функції fi(x) наведено у табличному вигляді (для спрощення таблиць надалі аргументи функцій у них не записуються). x f 1 f 2 f 3 f 4 0 0 0 1 1 1 0 1 Функції f 1(x) = 0 та f 4(x) = 1 – константи. f 2(x) = = x – тотожна функція. Функція f 3(x) називається запереченням x, f 3(x) = . Операція називається операцією інверсії та описується як = 1, = 0. Булеві функції 12
Функції системи P 2 (3) 3. n = 2. |p 2(2)| = 16. Функції fi(x) наведено у таблиці. x 1 0 0 1 x 2 0 1 1 f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 f 10 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 Конста нта 0 Кон'ю нкція Пряма антиім плікаці я Тотож на функці я Оберн ена антиім плікаці я Тотож на функці я Додав ання за модул ем 2 Диз'ю нкція Стрілк а Пірса Рівноз начніст ь f 11 1 0 1 f 12 1 0 1 f 13 1 1 0 f 14 1 1 0 f 15 1 1 1 f 16 1 1 1 0 1 0 1 Запере чення Оберн ена імплік ація Запере чення Імплік ація Штрих Шефф ера Конста нта 1 Для цих функцій, як правило, використовують позначення: f 2 – x 1 x 2 (або x 1 x 2); f 3 – x 1 x 2; f 5 – x 1 x 2; f 7 – x 1 x 2; f 8 – x 1 x 2; f 9 – x 1 x 2; f 10 – x 1 x 2; f 12 – x 1 x 2; f 14 – x 1 x 2; f 15 – x 1 x 2. Булеві функції 13
Функції системи P 2 (4) 4. n=3; |p 2(3)|= 256. 5. n=4; |p 2(4)|= 65536. Булеві функції 14
Основні властивості булевих операцій (1) Властивості булевих операцій використовуються для тотожних перетворень булевих (логічних) виразів. Властивості заперечення = x. Подвійне заперечення логічної (булевої) змінної еквівалентно булевій змінній. Булеві функції 15
Основні властивості булевих операцій (2) Властивості кон'юнкції x 1 x 2 = x 2 x 1 – переставний закон; x 0 = 0 – властивість нульової множини; x 1 = x – властивість незмінності; x x = x – властивість повторення; x = 0 – властивість додатковості; x 1 (x 2 x 3) = (x 1 x 2) x 3 – сполучний закон (дужки можна опустити); (x 1 x 2) ( x 1 2) = x 1 – властивість склеювання. Булеві функції 16
Основні властивості булевих операцій (3) Властивості диз'юнкції x 1 x 2 = x 2 x 1 – переставний закон; x 0 = x – властивість незмінності; x 1 = 1 – властивість універсальної множини; x x = x – властивість повторення; x = 1 – властивість додатковості; x 1 (x 2 x 3) = (x 1 x 2) x 3 – сполучний закон (дужки можна опустити); x 1 x 2 x 1 2 = x 1 – властивість склеювання. Булеві функції 17
Основні властивості булевих операцій (4) Правила де Моргана x 1 x 2 = ; x 1 x 2 = . Правила дозволяють перейти від логічного множення до додавання та навпаки. Булеві функції 18
Основні властивості булевих операцій (5) Розподільна властивість: x 1 (x 2 x 3) = (x 1 x 2) (x 1 x 3) – логічного множення щодо логічного додавання; x 1 (x 2 x 3) = (x 1 x 2) (x 1 x 3) – логічного додавання щодо логічного множення. Булеві функції 19
Основні властивості булевих операцій (6) Властивості імплікації і рівнозначності x 1 x 2 = 1 x 2; x 1 x 2 = (x 1 x 2) (x 2 x 1); x 1 x 2 = ( 1 x 2) (x 1 2); x 1 x 2 = ( 1 2) ( x 1 x 2). Булеві функції 20
Основні властивості булевих операцій (7) Властивості функції додавання за модулем 2 x 1 x 2 = . Властивості функцій штрих Шеффера та стрілка Пірса x 1|x 2 = ; x 1|x 2 = ( 1 2); x 1 x 2 = ; x 1 x 2 = ( 1 2). Булеві функції 21
Булеві функції 22