- •Орієнтовні теоретичні питання до іспиту з курсу “Комп’ютерна дискретна математика”
- •1 Семестр 2012-2013 навчального року викл. Кублій л.І.
- •Типи задач, які подано в екзаменаційних білетах (аналогічні задачі розв’язуються на практичних заняттях і подано в домашніх завданнях)
- •Властивості операцій над множинами
- •Основна література.
- •Розміщення з повтореннями
- •Перестановки
- •Сполуки (комбінації)
- •Кількість способів розбиття множини́ на підмножи́ни
- •Сполуки (комбінації) з повтореннями
- •Формула включень і виключень
- •Метод математичної індукції
- •Домашнє завдання до теми “Основи комбінаторики.
- •Декартів добуток множин
- •Потужність множини. Рівнопотужні множини
- •Спеціальні бінарні відношення на множині
- •Замикання відношення
- •Перетворення формул в днф і кнф. Поліноми Жегалкіна
- •4. Метод перетворення вектора значень функції до вектора коефіцієнтів полінома Жегалкіна.
- •Функціональна повнота
- •1 Дослідження повноти системи шляхом зведення до повної системи.
- •3 Лінійність функції
- •4 Критерій Поста
- •5 Виділення базису повної системи: метод Петрика
- •Побудова тупикових, мінімальних, найкоротших днф
- •Ейлерові цикли
- •Префіксна й постфіксна форми запису виразів
Побудова тупикових, мінімальних, найкоротших днф
Тупикові ДНФ, серед яких є і мінімальні, і найкоротші, можна одержати різними методами. Найчастіше використовуваними є метод, який базується на побудові й аналізі імплікантної таблиці Квайна, і метод, який базується на використанні карт Карно.
Теорема. Мінімальну ДНФ функції одержують із скороченої ДНФ цієї функції шляхом вилучення деяких елементарних кон’юнкцій.
Теорема. Для будь-якої функції існує найкоротша ДНФ, яку одержують із скороченої ДНФ цієї функції шляхом вилучення деяких елементарних кон’юнкцій.
Із наведеної
теореми випливає, що не всі найкоротші
ДНФ одержують із скороченої, але така
існує. Так, функція
має скорочену ДНФ
і найкоротші
,
,
— останні дві найкоротші ДНФ не можна
одержати із скороченої шляхом вилучення
деяких елементарних кон’юнкцій.
Отже, для знаходження
мінімальної чи найкоротшої ДНФ можна
із одержаної скороченої ДНФ вилучити
лишні імпліканти. Це можна зробити за
допомогою імплікантної
таблиці Квайна
(ще кажуть: таблиці покриттів). У цій
таблиці мітками рядків є прості
імпліканти, які утворюють скорочену
ДНФ, а мітками колонок — конституенти
одиниці, які утворюють ДДНФ. Враховуючи
те, що проста імпліканта поглинає певну
конституенту одиниці, якщо є її частиною,
то в таблиці треба відмітити, наприклад,
знаком + ті клітинки, які належать рядку
такої простої імпліканти і стовпчику
відповідної конституенти одиниці.
Кількість відміток + у кожному рядку
таблиці буде дорівнювати
,
де n
— кількість аргументів функції, а k —
кількість символів змінних у відповідній
простій імпліканті. Після цього в таблиці
треба вибрати колонки, які містять лише
один знак +; відповідні їм прості
імпліканти називаються базисними
і утворюють ядро
логічної функції.
Ядро обов’язково входить в мінімальну
ДНФ. Далі треба розглянути різні варіанти
вибору сукупностей простих імплікант,
які покриють відмітками решту колонок
таблиці (це будуть імпліканти тупикових
ДНФ), і серед них вибрати ті, які містять
найменшу кількість символів змінних
(якщо будується мінімальна ДНФ) або
найменшу кількість елементарних
кон’юнкцій (якщо будується найкоротша
ДНФ).
Приклад (лек). Для заданої своїми значеннями функції , використовуючи імплікативну таблицю Квайна, побудувати всі можливі тупикові ДНФ і серед них знайти мінімальні й найкоротші.
Розв’язання. Спочатку побудуємо ДДНФ заданої функції:
.
Її скорочена ДНФ (її ми одержали, розглядаючи метод, який базується на діаграмах Хассе) має вигляд:
.
Побудуємо імплікантну таблицю Квайна:
У таблиці є дві
колонки (це дві останні колонки), які
містять лише одну відмітку + тому
базисними імплікантами є
і
.
Вони утворюють ядро даної функції і
обов’язково мають ввійти в мінімальну
ДНФ. Кожна з двох інших імплікант разом
із ядром покривають відмітками решту
колонок таблиці. Отже, одержимо дві
тупикові ДНФ:
,
.
Обидві вони є одночасно і мінімальними, і найкоротшими.
Може бути, що в таблиці немає колонок, які містять лише одну відмітку +, тому базисних імплікант, які б утворювали ядро даної функції, немає.
Домашнє завдання до теми “Скорочена ДНФ. Тупикова ДНФ ”
02.12.11
1.
Використовуючи
метод Блейка, побудувати скорочену ДНФ
за заданою ДНФ:
.
(
)
2.
Використовуючи
метод Нельсона, побудувати скорочену
ДНФ за заданою КНФ:
(
)
3.
Використовуючи
алгоритм Квайна і булів куб (діаграму
Хассе), побудувати скорочену ДНФ для
функції, заданої своїми значеннями:
а)
;
б)
(
,
)
4. Використовуючи імплікантну таблицю Квайна і метод Петрика знайти мінімальні й найкоротші ДНФ для функції: а) ; б) .
Практичне заняття № 15
Карти Карно. Алгебра висловлювань
Карти Карно. При кількості змінних не більшій від чотирьох дуже зручно застосовувати карти Карно (ще кажуть: карти Карнау, діаграми Вейча) для спрощення пошуку тупикових і, зокрема, мінімальних ДНФ.
Оскільки таблиця істинності має рядків, то відповідна карта Карно має клітинок. Карти для однієї (хоч ними не користуються), двох, трьох і чотирьох змінних мають вигляд:
Сукупність прямокутників, які покривають всі одиниці, називається покриттям. Мінімізація логічних функцій за картами Карно полягає в найекономнішому покритті одиниць мінімальною кількістю максимально можливих правильних прямокутників.
За картою легко
знайти просту імпліканту — в неї входять
ті змінні
(
),
які у всіх клітинках сформованого
прямокутника не змінюють свого значення;
якщо цим незмінним значенням є 1, то в
просту імпліканту записується
,
якщо є 0, то записується
.
Скільки прямокутників утворюють покриття
одиниць на карті Карно, стільки ж буде
елементарних кон’юнкцій (імплікант) в
побудованій ДНФ.
Приклад.
Мінімізувати функцію від чотирьох
змінних
за картою Карно.
Розв’язання. Задана функція набуває значення 1 на наборах значень аргументів 0-8,13,15. Карта Карно має вигляд:
За картою, відповідно до виділених прямокутників, одержимо мінімальну ДНФ:
. ◄
► Приклад.
Використовуючи карти Карно, мінімізувати
задану своїми значеннями функцію
.
Розв’язання. Дана функція залежить від трьох змінних і на наборах значень аргументів 0, 1, 2, 5, 6, 7 набуває значення 1. Заповнимо одиницями карту Карно і виділимо всі можливі правильні прямокутники: Заповнимо одиницями карту Карно і виділимо мінімальну кількість усіх максимально можливих правильних прямокутників:
За цими картами одержимо тупикові ДНФ, які є найкоротшими й мінімальними:
,
.
Мінімізація частково визначених функцій. Мінімізацію частково визначених функцій можна виконати, наприклад, за допомогою поєднання методу Квайна, імплікантних таблиць Квайна і методу Петрика або за допомогою карт Карно.
При комплексному застосуванні методу Квайна (чи методу діаграм Хассе), імплікантних таблиць Квайна і методу Петрика процес мінімізації має два етапи: побудова скороченої ДНФ (при цьому замість прочерків ставимо одиниці) і побудова тупикових ДНФ (при цьому замість прочерків ставимо нулі і заголовками колонок імплікантної таблиці Квайна беремо лише ті конституенти ДДНФ, які відповідають одиницям; заголовками рядків — знайдені прості імпліканти скороченої ДНФ).
При побудові мінімальної ДНФ методом карт Карно вважатимемо, що, де треба, на місці прочерків стоять одиниці
П
риклад.
За допомогою карти Карно мінімізувати
частково визначену функцію
.
Задача.
1
1
—
1
—
—
Перевірка істинності висловлювань
У численні
висловлювань у відповідність логічним
зв’я́зкам “і”, “або”, “якщо …, то …”,
“тоді і тільки тоді, коли”, “не”
ставляться пропозиційні
зв’я́зки,
які відповідно позначаються символами
кон’юнкції
,
диз’юнкції
,
імплікації
,
еквівалентності ~ і заперечення
.
Якщо істинності
поставити у відповідність 1, а хибності
— 0, то беручи до уваги значення відповідних
функцій алгебри логіки
,
,
,
,
можна легко знайти таблицю істинності
будь-якої формули (і відповідного
складного висловлювання) числення
висловлювань. При заповненні цієї
таблиці використовують скорочені
позначення І для “істинності”, Х для
“хибності”.
Задача. Записати у вигляді формули і визначити істиннісне значення таких висловлювань:
а) “10 ділиться на 2 і 10 більше 5”
“10 ділиться на 2 і 5 більше 10”
Розв’язання. А=“10 ділиться на 2”, В=“10 більше 5”, С=“5 більше 10”. Матимемо формули:
,
.
Тут висловлювання А і В — істинні, С — хибне. Отже:
,
.
б) “n — парне, тоді і тільки тоді, коли n ділиться на 2”
А=“n — парне”, В=“n ділиться на 2”
б1) “Якщо настане весна, то розтане сніг”
А=“настане весна”, В=“розтане сніг”
Основи криптографії. (7,4)-код Хеммінга
Задача 1. Закодуйте повідомлення за допомогою (7,4)-коду Хеммінга.
Розв’язання.
Код повідомлення має вигляд
,
де
— контрольні розряди (мають номери
степеня двійки),
— розряди повідомлення (мають номери,
відмінні від степеня двійки). Побудова
коду повідомлення:
Одержано
код повідомлення:
.
Задача 2. Під час передачі повідомлення, закодованого за допомогою (7,4)-коду Хеммінга, виникла одна помилка. Одержане повідомлення має вигляд . Знайдіть і виправте помилку; запишіть початкове повідомлення.
Розв’язання.
Занумеруємо розряди одержаного
повідомлення
.
Знайдемо поелементну суму за модулем
2 двійкових векторів, які відповідають
номерам одиниць повідомлення:
;
.
Отже, помилка в 3 розряді.
Значення
цього розряду треба інвертувати.
Правильний вигляд повідомлення:
.
Початкове повідомлення:
.
Домашнє завдання до теми “Карти Карно. Частково визначені функції. Задання графів”
10.12.10
1. Використовуючи карти Карно, для функції: а) ; б) побудувати мінімальні й найкоротші ДНФ, а також скорочені ДНФ.
2.
Для функцій від чотирьох змінних а)
;
б)
;
в)
побудувати мінімальні ДНФ, використовуючи
карти Карно.
3.
Мінімізувати
частково визначену функцію
за допомогою:
а) комплексного
застосування діаграм Хассе, імплікантних
таблиць і методу Петрика; б) карт
Карно. (
)
4.
Дослідити,
на яких
наборах значень висловлювань А,
В,
С
і D
буде істинним висловлювання
.
5. Придумати не менше 2 складних висловлювань, записати їх у вигляді формул і дослідити, у яких випадках вони будуть істинними.
6
.
Для
кожного поданого графа вказати кількість
вершин, кількість ребер, степені вершин;
подати кожен граф матрицею інцидентності,
матрицею суміжності, списком ребер,
фактор-множиною.
7. Визначити, яка матриця суміжності задає орієнтований, а яка неорієнтований графи. Чи можна за першою матрицею побудувати змішаний граф? Зобразити ці графи:
8.
Закодувати повідомлення
за допомогою (7,4)-коду Хеммінга. (
).
9. Під час передачі повідомлення, закодованого за допомогою (7,4)-коду Хеммінга, виникла одна помилка. Одержане повідомлення має вигляд: . Знайти і виправити помилку; записати початкове повідомлення. ( )
Практичне № 16
Графи
З графами пов’язані такі поняття:
Орієнтованими — дуга, шлях, контур,
Неорієнтованими — ребро, ланцюг, цикл.
Шляхом
в орієнтованому графі
називається послідовність дуг
,
,
…,
,
в яких початок кожної наступної дуги є
кінцем попередньої дуги. Шлях називається
простим,
якщо в нього кожна дуга входить не більше
одного разу. Якщо в шляху дуги повторюються,
то шлях називається складними.
Якщо в шляху жодна вершина не повторюється,
то шлях називається елементарним.
Шлях може бути скінченним чи нескінченним.
Якщо
,
,
…,
,
то дана послідовність дуг задає шлях з
вершини
у вершину
.
При цьому вершина
називається початком шляху, а вершина
—
кінцем шляху, решта вершин, які входять
у шлях, називаються проміжними. Кількість
l
дуг, які утворюють шлях, називається
довжиною
шляху. Шлях
нульової довжини містить одну вершину.
Мінімальну довжину може мати тільки
елементарний шлях із однієї вершини в
іншу. Коли розглядають шлях, то також
кажуть, що шлях проходить через вершини
,
,
…,
по ребрах
,
,
…,
.
Через це шлях можна подати і як
послідовність вершин
або записати
.
Часом шлях записують так:
.
Ланцюгом в неорієнтованому графі називається послідовність ребер, у якій кожне ребро має спільну вершину з попереднім і наступним ребром і ці спільні вершини різні. Ланцюг називається простим, якщо всі його ребра різні; складним — у протилежному випадку. Якщо вершини не повторюються, то ланцюг називається елементарним. У ланцюгу напрямок не враховується. Довжина ланцюга дорівнює кількості ребер, які утворюють ланцюг. Ланцюг нульової довжини містить одну вершину. Відстанню між вершинами і є мінімальна довжина ланцюга між цими вершинами.
Приклад. Нехай дано орієнтований граф:
Навести приклади елементарного, простого і складного шляху із а в f. Визначити довжини цих шляхів.
Розв’язання. У
цьому графі шляхи
,
,
,
,
є шляхами із вершини а
у вершину f
(вершина а
є початком, а вершина f
— кінцем). Шляхи відповідно мають довжини
2, 3, 6, 7 і 5. Шляхи A
і B
є простими й елементарними; шляхи C
і D
прості, але не елементарні, бо шлях C
двічі проходить через вершину с,
а шлях D
через вершини b
і с;
шлях E
складний, бо дуга
в ньому повторюється двічі.
Приклад. Нехай дано неорієнтований граф:
Навести приклади елементарного, простого і складного ланцюгів із а в f. Визначити довжини цих ланцюгів. Яка відстань (=1) між цими вершинами?
У цьому графі можна
побудувати, наприклад, такі ланцюги:
,
,
,
,
,
,
які відповідно мають довжини 1, 4, 6, 6, 3 і
5. Ланцюги A, B, E є простими
елементарними, C, F — простими,
але не елементарними, бо вершина b
повторюється, ланцюг D складний, бо
ребро
повторюється.
Будь-якому орієнтованому графу можна поставити у відповідність співвіднесений неорієнтований граф, якщо вважати, що пари вершин , які задають дуги, не впорядковані:
Тому ланцюги можна розглядати і в орієнтованому графі, якщо не враховувати напрямку дуг, тобто розглядати його співвіднесений граф. У загальному можна сказати, що будь-який шлях є ланцюгом; але зворотне твердження справедливе тільки для неорієнтованих графів.
Контуром (ще кажуть: орієнтованим циклом) в орієнтованому графі називається скінченний шлях, у якому початок і кінець збігаються. Контур називається простим, якщо його дуги різні, складним, якщо є хоч би дві однакові дуги. Контур називається елементарним, якщо всі його вершини різні (за винятком початкової і кінцевої, які збігаються). Довжиною контура є кількість його дуг. Якщо довжина контура дорівнює 1, то такий контур утворено петлею.
Приклад. Нехай дано орієнтований граф:
У ньому можна
утворити, наприклад, такі контури:
,
,
,
,
,
,
які відповідно мають довжини 1, 3, 4, 6, 2,
6. Елементарними є контури А, В,
С, Е; контур D є простим, але
не елементарним, бо вершини b і с
в нього входять по 2 рази, контур F є
складним, бо в ньому ребро
повторюється.
Нумерація вершин і дуг у контурі не фіксується. Тому різних нумерацій є стільки, скільки є можливих початків відліку, тобто, скільки є вершин чи дуг у контурі.
Циклом у неорієнтованому графі називається скінченний ланцюг, у якого початок і кінець збігаються. Цикл називається простим, якщо його ребра різні, складним, якщо є хоч би два однакові ребра. Якщо в циклі жодна вершина не повторюється (за винятком початкової і кінцевої, які збігаються), то цикл називається елементарним. У циклі кількість можливих нумерацій вдвічі більша, ніж у контурі, оскільки можна вибрати і початок нумерації, і напрямок.
Будь-який граф без циклів (у тому числі й незв’язний) називається ациклічним.
Серед графів
виділяють графи-цикли. Графом-циклом
(при
)
називається граф із множиною вершин
і множиною ребер
.
Графи-цикли з n
вершинами позначають
Елементарні шлях, ланцюг, контур і цикл є деякими підграфами графа, в якому кожен з них утворюється.
Можна сформулювати твердження, які стосуються неорієнтованих графів.
Твердження 1. Будь-який ланцюг містить елементарний підланцюг з тими ж кінцями.
Твердження 2. Простий, але неелементарний ланцюг містить елементарний ланцюг.
Ці твердження випливають з того, що в неелементарний ланцюг певна вершина входить хоч би двічі і частина ланцюга між цими двома входженнями даної вершини є циклом.
Твердження 3. Простий цикл, який проходить через певну вершину містить елементарний підцикл, який проходить через цю вершину.
Аналогічні твердження можна сформулювати для орієнтованого графа щодо шляху й контура.
Для довільного
неорієнтованого графа розглянемо
відношення Q
між вершинами — “бути зв’язаним
ланцюгом”. Рефлексивність цього
відношення випливає з того, що ланцюг
нульової довжини містить одну вершину
v,
і тому можна стверджувати, що вершина
v
зв’язана ланцюгом сама з собою, тобто
.
Якщо
,
тобто вершина
зв’язана ланцюгом з вершиною
,
і, оскільки в ланцюгу напрямок не
враховується, то вершина
теж зв’язана ланцюгом з вершиною
;
отже,
— тобто відношення Q
симетричне. Якщо
і
,
тобто вершина
зв’язана ланцюгом з вершиною
і вершина
зв’язана ланцюгом з вершиною
,
то і вершина
зв’язана ланцюгом з вершиною
,
тобто
і відношення Q
є транзитивним.
Оскільки відношення між вершинами “бути зв’язаним ланцюгом” є рефлексивним, симетричним і транзитивним, то воно є відношенням еквівалентності. Тому вершини графа можна однозначно розбити на класи еквівалентності — максимально зв’язні підграфи. Підграфи, носіями яких є такі класи вершин, називаються компонентами зв’язності графа (ще кажуть: зв’язними компонентами). При цьому будь-які дві вершини із будь-якої зв’язної компоненти зв’язані хоч би одним ланцюгом, а вершини з різних компонент ланцюгом не зв’язані.
Якщо в скінченному неорієнтованому графі рівно дві вершини мають непарний степінь, то ці вершини зв’язані ланцюгом.
Граф називається зв’язним, якщо він має рівно одну компоненту зв’язності, тобто будь-які дві його вершини можна з’єднати ланцюгом.
У будь-якому графі його компоненти зв’язності є максимальними зв’язними підграфами даного графа.
При розв’язуванні більшості практичних задач досить розглядати тільки зв’язні графи.
Орієнтований граф називається сильно зв’язним, якщо для будь-яких двох вершин і при існує шлях із вершини у вершину , а також шлях із вершини у вершину (ці шляхи не обов’язково мають проходити через ті самі проміжні вершини). Орієнтований граф називається зв’язним (ще кажуть: слабо зв’язним), якщо із вершини у вершину існує ланцюг у співвіднесеному неорієнтованому графі, тобто, якщо його співвіднесений граф зв’язний. Орієнтований граф називається однобічно зв’язним, якщо існує шлях із вершини у вершину , але шляху із вершини у вершину немає.
Сильно зв’язний граф є зв’язним, але зворотне твердження не правильне.
Сильна зв’язність важлива, наприклад, у комунікаційних мережах, щоб кожен користувач міг передати інформацію іншому користувачеві безпосередньо чи через посередників.
Зв’язністю графа
називають мінімальну кількість c
його вершин, вилучення яких разом з
інцидентними їм ребрами робить граф
незв’язним. Це означає, що вилучення
будь-яких (
)
вершини не порушує зв’язності графа,
але існують с
вершин, вилучення яких порушує зв’язність
графа. При цьому граф називають с-зв’язним.
Приклад. Визначити зв’язність графа:
Розв’язання. Цей граф має зв’язність 1, бо вилучення однієї з вершин b, c чи d приведе до його незв’язності.
