- •1.1.1. Поняття множини
- •1.1.2. Елементи множини
- •1.1.3. Рівність множин
- •1.1.4. Задання та запис множин
- •1.1.5. Підмножини. Універсальна множина.
- •1.1.6. Операції над множинами та їхні властивості
- •Доведемо обернене включення:.
- •1.1.7. Потужність множин
- •Література
- •1.2.2. Декартовий (прямий) добуток множин
- •1.2.3. Бінарні відношення
- •1.2.4. Переріз відношення. Фактор-множина
- •1.2.5. Способи задання відношень
- •Література
- •Тема 1.3. Властивості відношень
- •1.3.1. Теоретико-множинні операції над відношеннями
- •1.3.2. Композиція відношень
- •1.3.3. Обернені відношення
- •1.3.4. Рефлексивні, симетричні і транзитивні відношення
- •1.3.5. Відношення еквівалентності
- •1.3.6. Відношення порядку
- •1.3.7. Відображення і функції
- •Література
- •Розділ 2. Теорія графів
- •Тема 2.1. Основні елементи теорії графів
- •2.1.1. Поняття графа
- •2.1.2. Ізоморфізм графів. Підграф. Суграф. Частковий граф
- •2.1.3. Числові характеристики графа
- •2.1.4. Маршрути незамкнені (ланцюги, шляхи) і замкнені (цикли, контури). Повнота. Зв’язність. Сильна зв’язність
- •2.1.5. Способи задання графа
- •Література
- •Тема 2.2. Операції над графами
- •2.2.1. Поняття графа
- •Тема 2.3. Дерева і цикли у графах
- •2.3.1. Компоненти зв’язності
- •Розглянемо незв’язний неорієнтований граф .
- •Отже, наведений на прикладі граф має три компоненти зв’язності.
- •2.3.2. Ранг та цикломатичне число графа
- •Якщо граф – вироджений, тобто має лише вершини, а ребра – відсутні, то і. За теоремою 2.3.2 додавання нового ребра збільшує або, або. Отже, числатаможуть лише зростати.
- •2.3.3. Дерева і ліси
- •Література
- •Тема 2.4. Розфарбування графа
- •2.4.1. Задача про чотири фарби. Правильне розфарбування графа
- •2.5.2. Визначення хроматичного числа. Хроматичний поліном
- •Література
- •Розділ 3. Загальна алгебра
- •Тема 3.1. Групи
- •3.1.1. Поняття алгебраїчної операції
- •3.1.2. Означення і приклади груп
- •Література
- •Тема 3.3. Поля
- •3.3.1. Означення поля. Приклади полів
- •3.3.2. Властивості полів
- •Література
- •Розділ 4.
- •Тема 4.1 булева алгебра
- •4.1.1 Визначення булевої функції
- •4.1.2. Формули логіки булевих функцій
- •4.1.3. Рівносильні перетворення формул
- •Основні правил булевих формул.
- •Правило рівносильних перетворень
- •4.1.4. Двоїстість. Принцип двоїстості.
- •4.1.5. Булева алгебра (алгебра логіки). Повні системи булевих функцій
- •Література
- •Тема 4.2. Нормальні форми
- •4.2.2 Розкладання булевої функції по змінним
- •Література
- •Тема 4.3. Мінімізація формул булевих функцій у класі диз'юнктивних нормальних форм
- •4.3.1. Застосування алгебри булевих функцій до релейно-контактних схем
- •Контрольні питання до теми 4
- •Література
- •Розділ 5.Комбінаторний аналіз
- •Тема 5.1. Основні поняття комбінаторного аналізу
- •5.1.1. Основні правила комбінаторики
- •Розв’язання
- •5.1.2. Розміщення. Розміщення з повтореннями
- •Розв’язання
- •Розв’язання
- •5.1.3. Перестановки. Перестановки з повтореннями
- •Розв’язання
- •Розв’язання
- •5.1.4. Комбінації. Комбінації з повтореннями
- •Розв’язання
- •Розв’язання
- •Розв’язання
- •5.1.6. Біном Ньютона. Трикутник Паскаля. Властивості біноміальних коефіцієнтів
- •Література
- •Розділ 6.Теорія інформації та кодування
- •Тема 6.1. Теоретичні положення
- •1.2. Приклади розв’язання задач
- •6.3. Задачі
- •Література
- •7. Ефективне кодування
- •7.1. Теоретичні положення
- •7.2. Приклади розв’язання задач
- •Задача 7.2.2
- •Задача 7.2.5
- •1010000011001010011001001011110.
- •0001011011011101100110101100001011011.
- •7.3. Задачі
- •Література
4.2.2 Розкладання булевої функції по змінним
Нехай s приймає значення 0 або 1, тобто s{0, 1}.
Уведемопозначення:
xs = x, якщо s = 0, xs = x, якщо s = 1.
Т. е. x0 =x , x1 = x.
Очевидно, що xs = 1, якщо x = s й xs = 0, якщо x s.
Теорема 4.2.4 (про розкладання булевої функції по змінним).
Кожна булева функція f(x1, x2, ... , xn) може бути представлена у вигляді:
f(x1, x2, ... , xn) = f(x1, x2, ... , xm, xm+1, ... , xn) = V x1s1&x2s2&...&xmsm&
f(s1, s2, ... sm, xm+1, ... , xn), (4.1)
mn, де диз'юнкція береться по всіх наборах (s1, s2, ... , sm) (їх 2m).
Наприклад, для m = 2, n = 4 розкладання (4.1) містить у собі чотири (2m = 22 =4) кон’юнкції й має вигляд:
f(x1, x2, x3, x4) = x&x&f(0, 0, x3, x4) V x&x&f(0, 1, x3, x4) V x& x&f(1, 0, x3, x4) V x& x&f(1, 1, x3, x4) = x1&x2&f(0, 0, x3, x4) V x1&x2&f(0, 1, x3, x4) V x1&x2&f(1, 0, x3, x4) V x1&x2&f(1, 1, x3, x4).
Доведення теореми 4.5.
Теорема буде доведена, якщо показати, що рівність (4.1) виконується для довільного набору змінних (y1, y2, ... , ym, ym+1, ... , yn) .
Підставимо цей довільний набір змінних у ліву й праву частини рівності (4.1).
У лівій частині одержимо f (y1, y2, ... , yn) .
Т. к. ys = 1 тільки, коли y = s, те серед 2m кон’юнкцій y1s1&y2s2&...&ymsm у правій частині (4.1) тільки одна звернеться в 1 – та, у якій y1 = s1,…, ym=sm... Всі інші кон’юнкції рівні 0. Тому в правій частині (4.1) одержимо:
y1y1&y2y2&...&ymym&f(y1, y2, ... , ym, ym+1, ... , yn) = f(y1, y2, ... , yn) .
Теорема 4.5 доведена.
Теорема 4.6 (про подання булевої функції формулою в ДДНФ),
Усяка булева функція f(x1, x2, ... , xn), не рівна тотожно 0, може бути представлена формулою в ДДНФ, що визначається однозначно з точністю до перестановки диз'юнктивних членів.
Доведення.
При m = n одержимо важливий наслідок теореми 4.5:
f(x1,x2,...,xn)=Vx1s1&x2s2&...&xnsn, (4.2)
f(s1, s2, ... , sn) = 1
де диз'юнкція береться по всіх наборах (s1, s2, ... , sn), на яких f = 1.
Очевидно, що розкладання (4.2) є не що інше, як ДДНФ формули f, що містить стільки кон’юнкцій, скільки одиниць у таблиці значень f. Отже, ДДНФ для всякої булевої функції єдина з точністю до перестановки її диз'юнктивних членів.
Очевидно також, що для булевої функції f(x1, x2, ... , xn), тотожно рівної 0, розкладання (2) не існує.
У силу викладеного для одержання формули булевої функції f(x1, x2, ... , xn) у ДДНФ можна скористатися наступним алгоритмом.
Алгоритм 4.3. (Алгоритм подання булевої функції, заданою таблицею, формулою в ДДНФ).
Крок 1. Вибираємо в таблиці всі набори змінних s1, s2, ... , sn, для яких значення f дорівнює 1, тобто f (s1, s2, ... , sn) = 1.
Крок 2. Для кожного такого набору (рядка таблиці) становимо кон’юнкцію x1s1&x2s2&...&xnsn, де xisi = xi, якщо si = 1 й xisi =xi, якщо si = 0, i = 1, 2, ... ,n.
Крок 3. Становимо диз'юнкцію всіх отриманих кон’юнкцій. У результаті вийде формула даної функції в ДДНФ.
Приклад 4.15.
Знайдемо формулу в ДДНФ для функції f(x1, x2, x3), заданою таблицею 4.4.
1. Виберемо в таблиці рядка, де f(x1, x2, x3) =1. Це 4-а, 5-а. 6-а й 8-а рядка.
2. Для кожного обраного рядка становимо кон’юнкції за правилом, зазначеному в кроці 2. Одержимо відповідно для чотирьох обраних рядків:
x10&x21&x31 = x1 &x2&x3.
x11&x20&x30 = x1&x2&x3.
x11&x20&x31 = x1&x2&x3 .
x11&x21&x31 = x1&x2&x3 .
3. Становимо диз'юнкцію всіх отриманих кон’юнкцій і знаходимо ДДНФ:
f(x1, x2, x3) = x1&x2&x3V x1&x2&x3 V x1&x2&x3 V x1&x2&x3.
Переконуємося, що це вираження збігається з отриманим раніше в прикладі 4.13 поданням нашої формули в ДДНФ.
Зауваження. Якщо булева функція задана формулою в ДДНФ, то, застосовуючи алгоритм 4.3 у зворотній послідовності, легко можемо одержати таблицю значень цієї функції.
Теорема 4.7 (про подання булевої функції формулою в ДКНФ),
Усяка булева функція f(x1, x2, ... , xn), не рівна тотожно 1, може бути представлена формулою в ДКНФ, що визначається однозначно з точністю до перестановки диз'юнктивних членів.
Доведення.
Розглянемо функцію f(x1, x2, ... , xn). Відповідно до теореми 4.6, якщо вона не дорівнює тотожно 0, існує її формула в ДДНФ. Позначимо цю формулу F1. Очевидно, умова, що функція f(x1, x2, ... , xn) не дорівнює тотожно 0, рівносильно умові, що функція f(x1, x2, ... , xn) не дорівнює тотожно 1. Крім того, за законом де Моргана формула F2 F1 перебуває в ДКНФ (заперечення кон’юнкції є диз'юнкція заперечень). За законом подвійного заперечення
F2 F1 f(x1, x2, ... , xn) f(x1, x2, ... , xn),
що й доводить теорему.
Для одержання формули булевої функції f(x1, x2, ... , xn) у ДКНФ варто скористатися наступним алгоритмом.
Алгоритм 4.4. (Алгоритм подання булевої функції, заданою таблицею, формулою в ДКНФ)
Крок 1. Вибираємо в таблиці всі набори змінних s1, s2, ... , sn, для яких значення f (s1, s2, ... , sn) = 0.
Крок 2. Для кожного такого набору (рядка таблиці) становимо диз'юнкцію
x1 s1Vx2s2V...Vxnsn, де xi si = xi, якщо si = 0 і xi si = xi, якщо si = 1, i = 1, 2, ... , n.
Крок 3. Становимо кон’юнкцію всіх отриманих диз'юнкцій. У результаті вийде ДКНФ.
Приклад 4.16.
Знайдемо формулу в ДКНФ для функції f(x1, x2, x3), заданою таблицею 4.4.
1. Виберемо в таблиці рядки, де f(x1, x2, x3) = 0. Це 1-ий, 2-ий, 3-ий і 7-ий рядки.
2. Для кожного обраного рядка становимо диз'юнкції за правилом, зазначеному в кроці 2. Одержимо відповідно для трьох обраних рядків:
x11Vx21Vx31 = x1Vx2Vx3.
x11Vx21Vx30x1Vx2Vx3.
x11Vx20Vx31 = x1Vx2Vx3.
x10Vx20Vx31 = x1Vx2V x3.
3. Становимо кон’юнкцію всіх отриманих диз'юнкцій і знаходимо ДКНФ:
f(x1, x2, x3) = x1Vx2Vx3)&(x1Vx2Vx3)&(x1Vx2Vx3)&(x1Vx2Vx3).
Це вираження збігається з отриманим раніше в прикладі 4.14 поданням нашої формули в ДКНФ.
Зауваження. Т. к. усього рядків у таблиці функції 2n, те, якщо число диз'юнктивних членів у ДДНФ дорівнює p, а число конъюнктивных членів у ДКНФ дорівнює q, те p+q=2n.
Так, для функції, розглянутої в прикладах 4.15 й 4.16, n = 3, p = 4, q = 4, p + q = 8 = 23.