- •Розділ 7 Основи теорії кодування План викладення матеріалу
- •7.1. Алфавітне й рівномірне кодування
- •7.2. Достатні умови однозначності декодування. Властивості роздільних кодів
- •7.3. Оптимальне кодування
- •7.4. Коди, стійкі до перешкод. Коди Хемінга
- •8.2. Алгебри булевих функцій
- •8.3. Спеціальні форми зображення булевих функцій в алгебрах Буля і Жегалкіна
- •8.3.1. Диз'юнктивні нормальні форми
- •8.3.2. Кон'юнктивні нормальні форми
- •8.3.3. Поліном Жегалкіна
- •8.4. Повнота і замкненість
- •8.4.1. Функціонально повні системи
- •8.4.2. Замкнені класи
- •8.4.4. Послаблена функціональна повнота
- •8.4.5. Передповні класи
- •8.5. Мінімізація булевих функцій
- •8.5.1. Основні результати
- •8.5.2. Методи побудови скороченої днф
- •8.5.3. Побудова тупикових днф
- •8.5.4. Властивості скороченої днф
- •8.5.5.Метод карт Карно побудови мінімальних днф
- •8.6. Реалізація булевих функцій схемами з функціональних елементів
- •Комп'ютерні проекти
- •Література
- •9.2. Формальні породжувальні граматики
- •9.3. Типи граматик (ієрархія Хомські)
- •9.4. Дерева виведення
- •9.5. Форми Бекуса-Наура
- •9.6. Скінченні автомати з виходом
- •9.7. Скінченні автомати без виходу
- •9.8. Подання мов
- •Комп'ютерні проекти
- •Література
- •Розділ 10
- •План викладення матеріалу
- •10.1. Основні вимоги до алгоритмів
- •10.2. Машини Тьюрінга
- •10.3. Обчислення числових функцій на машинах Тьюрінга
8.2. Алгебри булевих функцій
Нехай функція задана формулою F1 а функція ƒ2 - формулою F2. Підстановка F1та наприклад, у диз'юнкцію x1˅x2 дає формулу F1˅F2. Якщо взяти формулу Ф1, рівносильну F1 (тобто Ф1 також реалізує ) і , рівносильну , то отримаємо формулу Ф1∨Ф2, рівносильну F1∨F2.
Отже, диз'юнкцію можна розглядати як двомісну операцію на множині всіх булевих функцій. Ця операція кожній парі функцій f1та f2, незалежно від вигляду формул, якими ці функції зображені, однозначно ставить у відповідність функцію f1∨f2. Аналогічно й інші булеві функції можна розглядати як операції на множині Р2 усіх булевих функцій. Наприклад, заперечення є одномісною операцією, кон'юнкція та диз'юнкція - двомісними.
Множину Р2 булевих функцій разом із уведеною на ній системою операцій називають алгеброю булевих функцій.
Розглянемо дві алгебри. Алгебру (Р2; ̅ , ∧, ∨), операціями якої є заперечення, кон'юнкція та диз'юнкція, називають алгеброю Буля.
Алгебру (Р2;∧, ⊕), операціями якої є кон'юнкція й додавання за mod2, називають алгеброю Жегалкіна.
Формули алгебри Буля та алгебри Жегалкіна будують із знаків операцій відповідної алгебри, круглих дужок, символів змінних і констант 0 та 1.
Порядок виконання операцій у разі відсутності дужок у булевій алгебрі такий: заперечення, кон'юнкція, диз'юнкція. В алгебрі Жегалкіна спочатку виконують кон'юнкцію, а потім - додавання за mod2. У разі наявності дужок спочатку повинні виконувати операції всередині них. У булевій алгебрі роль дужок у разі заперечення складних виразів відіграє сам символ заперечення.
Приклад 8.5. Замість можна написати , а замість (xy)⊕(yz) записуютьxy⊕yz. ▲
Однією з найважливіших задач є виявлення основних еквіваленгностей, які є в алгебрах, що розглядаються. Ці еквівалентності називають законами відповідної алгебри.
Закони алгебри Буля.
Закони асоціативності
Закони комутативності
Дистрибутивний закон для кон’юнкції відносно диз’юнкції
Дистрибутивний закон для диз'юнкції відносно кон’юнкції
Закон подвійного заперечення
Закони де Моргана
Закони ідемпотентності
Закони поглинання
Співвідношення для констант
Закон виключеного третього
Закон протиріччя
Закони алгебри Жегалкіна.
Закони асоціативності
Закони комутативності
Дистрибутивний закон для кон’юнкції відносно додавання за mod2
Співвідношення для констант
.
Закон ідемпотентності для кон’юнкції
.
Закон зведення подібних членів у разі додавання за тоді
Правильність цих еквівалентностей доводять за допомогою таблиць.
Наведені еквівалентності залишаються правильними й у разі підстановки замість змінних довільних булевих функцій (тобто формул, які ці функції задають). Важливо лише виконувати таке правило підстановки формули замість змінної: під час підстановки формули F замість змінної х усі входження змінної х у дану еквівалентність повинні бути одночасно замінені формулою F. Наприклад, з отримаємо .
Закони алгебр Буля та Жегалкіна дають змогу доводити нові еквівалентності вже без таблиць, на основі тотожних перетворень.
Приклад 8.6. Доведемо, що
а) ;
б) .
Двічі використовуючи закони дистрибутивності, одержимо:
а) ;
б) .▲
Приклад 8.7. Доведемо, що . Використовуючи закони де Моргана, подвійного заперечення та асоціативності, можемо записати
. ▲
Наведемо еквівалентності, які дозволяють перетворити будь-яку формулу булевої алгебри у рівносильну їй формулу алгебри Жегалкіна та навпаки:
Зазначимо, що за допомогою законів алгебр Буля та Жегалкіна можна спрощувати різні формули в цих алгебрах.
Приклад 8.8. Перетворимо у рівносильну формулу алгебри Жегалкіна. Отриману формулу спростимо.
.▲
Виразимо х→у тах~у через операції алгебри Буля. Оскільки х~у=(х→у)(у→х), то достатньо виразитих→у. Порівняємо таблицю для х→у з таблицею для x∨y. Скориставшись тим, що в обох таблицях є єдиний набір, для якого значення функції дорівнює нулю, отримаємо еквівалентність .
Розглянемо тепер ще одне важливе поняття. Функціюf*(х1,..., xn) називають двоїстою до функції f(х1,..., xn), якщо . Візьмемо заперечення над обома частинами рівності і підставимо замість . Отримаємо , тобто функція f двоїста до f*: (f)*=f. Отже, відношення двоїстості між функціями симетричне. Пару двоїстих функцій складають, наприклад, кон'юнкція та диз'юнкція. Таблицю для двоїстої функції у разі вибраного порядку наборів отримують із таблиці для функції інвертуванням (тобто заміною 0 на 1 і 1 на 0) стовпчика функції і перевертанням цього стовпчика.
Розглянемо тепер ще одне важливе поняття. Функціюf*(х1,..., xn) називають двоїстою до функції f(х1,..., xn), якщо . Візьмемо заперечення над обома частинами рівності і підставимо замість . Отримаємо , тобто функція f двоїста до f*: (f)*=f. Отже, відношення двоїстості між функціями симетричне. Пару двоїстих функцій складають, наприклад, кон'юнкція та диз'юнкція. Таблицю для двоїстої функції у разі вибраного порядку наборів отримуєть із таблиці для функції інвертуванням (тобто заміною 0 на 1 і 1 на 0) стовпчика функції і перевертанням цього стовпчика.
Із означення двоїстості зрозуміло, що для довільної функції двоїсту функцію визначають однозначно. Зокрема, може з'ясуватись, що функція є двоїстою до самої себе. У цьому випадку її називають самодвоїстою. Наприклад, заперечення та функціяx⊕y⊕z- самодвоїсті функції.
Нехай функція задана формулою F. Який вигляд має формула F*, яка виражає двоїсту функцію? Відповідь на це запитання дає наступна теорема.
Теорема 8.2. Якщо
то
Доведення.
.▲
З теореми випливає таке твердження.
Принцип двоїстості. Якщо у формулі F яка реалізує функцію f, усі символи функцій замінити, відповідно, на символи двоїстих функцій, то отримана формула F* реалізує функцію f*, двоїсту до f.
В алгебрі Буля принцип двоїстості має простіший вигляд.
Принцип двоїстості в алгебрі Буля. Якщо у формулі F, яка реалізує функцію f, усі кон'юнкції замінити на диз'юнкції, диз'юнкції - на кон'юнкції, 1 замінити на 0, 0 - на 1, то отримана формула F* реалізує функцію f* ,двоїсту до f.
Приклад 8.9. Знайдемо функцію, двоїсту до
За принципом двоїстості матимемо
Зазначимо, що у разі використання принципу двоїстості потрібно враховувати пріоритет операцій, отже, у разі потреби розставляти дужки. Так, у формулі спочатку виконували кон'юнкціїху та ; отже, у формулі, яка реалізує двоїсту функцію, спочатку треба виконувати диз'юнкції х у та , для чого потрібно ввести дужки. ▲
Якщо функції рівні, то і двоїсті їм функції також рівні. Це дає змогу за допомогою принципу двоїстості отримати нові еквівалентності. Для цього потрібно від еквівалентності F1=F2 за допомогою вказаних замін перейти до еквівалентності .