
- •Дерева. Означення та основні властивості.
- •Кореневе дерево. Упорядковане кореневе дерево, m-арне дерево, повне m-арне дерево.
- •Властивості повного m-арного дерева. Рівень вершини і висота кореневого дерева. Збалансоване дерево.
- •Обхід бінарних дерев (три способи).
- •6.Інфіксна форма запису.
- •7. Префіксна форма запису виразів (прямий польський запис).
- •8. Постфіксна форма запису виразів. (обернений польський запис).
- •9. Бінарне дерево пошуку.
- •10. Дерево прийняття рішень.
- •11. Алгоритм бектрекінг. Приклади: пошук гамільтонових циклів у графі, задача про n ферзів та інші задачі.
- •12. Каркаси графів. Способи їх побудови.
- •13. Задача про мінімальний каркас. Алгоритм Краскала.
- •14. Відношення. Означення відношення із однієї множини в іншу, n-арні відношення. Означення відношення на множині. Бінарні відношення. Властивості відношень. Способи задання бінарних відношень.
- •15. Відношення еквівалентності.
- •16. Відношення часткового порядку.
- •17. Рефлексивне замикання відношення. Симетричне замикання відношення.
- •18. Транзитивне замикання відношення. З’єднувальне відношення.
- •19. Алгоритм Уоршала.
- •20. Постановка проблеми кодування, її значення в інформатиці. Алфавітне і рівномірне кодування. Достатні умови однозначності алфавітного кодування.
- •21. Властивості однозначного алфавітного кодування. Нерівність Крафта-Макміллана.
- •22. Задача оптимального кодування. Метод Фано побудови «економних» кодів.
- •23. Метод Хаффмана побудови оптимального коду.
- •24. Коди, стійкі до перешкод. Загальна теорія.
- •25. Коди, стійкі до перешкод: коди Хемінга.
- •26. Булеві функції. Означення, задання таблицями і формулами, істотні і неістотні змінні.
- •27. Диз’юктивні нормальні форми.
- •28. Кон'юктивні нормальні форми.
- •29. Поліном Жегалкіна
- •30. Алгебри булевих функцій
- •31. Алгебра Жегалкіна
- •35. Клас l. Лема про нелінійну функцію.
- •36. Теорема Поста.
- •37. Постановка задачі мінімізації булевих функцій.
- •38. Методи Квайна та Мак-Класкі.
- •39. Імплікантна таблиці Квайна. Метод Петрика відбору тупікових днф.
- •40. Граматики з фразовою структурою.
- •42. Скінченні автомати з виходом. Способи задання, приклади.
- •43. Скінченні автомати без виходу. Способі задання приклади.
- •44. Машина Тьюрінга.
37. Постановка задачі мінімізації булевих функцій.
Мінімізацією булевої функції називають відшукання найпростішого її подання у вигляді суперпозиції функції якоїсь функціонально повної системи.
Мінімальною ДНФ булевої функції називають її ДНФ, що складається з найменшої можливої кількості букв. При цьому кожну букву враховують стільки разів, скільки вона зустрічається в ДНФ.
Елементарну кон. k називають простою імплікантою булевої функції f, якщо k – імпліканта функції f, а елементарна кон. одержана з k вилученням довільної букви, - не імпліканта. ДНФ, що складається з усіх простих імплікант булевої функції, називають СДНФ цієї функції.
Т. СДНФ Dскор булевої функції f задає цю функцію, тобто f=Dскор.
Т. Мінімальну ДНФ булевої функції f можна одержати з її СДНФ вилученням деяких елмент. кон`юнкцій.
Д. Потрібно довести, що мінімальна ДНФ Dмін довільної булевої функції f являє собою диз. Її простих імплікант. Припустимо, що імпліканта k1 із Dмін не проста. Тоді із k1 можна вилучити хоча б одну букву так, щоб отримана елементарна кон. k2 також була імплікантою функції f. Окрім того, імпліканта k2 набуває значення 1 на всіх тих наборах, на яких набуває значення1 імпліканта k1. Отже у ДНФ Dмін імпліканту k1 можна замінити на k2 й отримати ДНФ D*, яка також подає функцію f. За побудовою D* має менше букв ніж Dмін. Одержали суперечність.
ДНФ Dтуп, яка подає функцію f називають тупиковою ДНФ цієї функції якщо:
кожна елементарна кон з Dтуп – проста імпліканта функції f.
вилучення з формули Dтуп, довільного диз. члена призводить до ДНФ D1* яка не подає f, тобто f≠D
Т. Мінімальна ДНФ булевої функції являє собою її тупикову ДНФ.
38. Методи Квайна та Мак-Класкі.
У методі Квайна до ДДНФ мулевої функції послідовно застосовують такі рівносильності:
Неповне склеювання: ku v ku = k v ku v ku
Поглинання: ku v k = k
k – елементарна кон’юнкція, u – змінна. Склеювання називається неповним, оскільки ku та ku залишаються у правій частині.
Алгоритм Куайна.
Крок 1. Булеву функцію f(x1,…,xn), яку потрібно мінімізувати, записати у ДДНФ, позначити її f0. Виконати і:=0.
Крок 2. Якщо до ДНФ fi не можна застосувати жодного неповного склеювання, то зупинитись: fi – СДНФ. Інакше на однові ДНФ fi побудувати ДНФ fi+1 за таким правилом: у формі fi виконати всі неповні склеювання, які можна застосувати до елементарних кон’юнкції рангу n-i, після цього вилучити всі елементарні кон’юнкції рангу n-i, до яких можна застосувати поглинання.
Крок 3. Виконати і:=і+1 і перейти до кроку 2.
Отже в алгоритмі Куайна, починаючи з ДДНФ f0, будують послідовність ДНФ f0, f1, f2,…, доти, доки не отримають СДНФ.
Алгоритм Куайна обґрунтує така теорема – для будь-якої мулевої функції f результатом застосування алгоритму Куайна до ДДНФ цієї функції є СДНФ функції f.
Алгоритм Мак-Класкі.
Крок 1. Булеву функцію, яку потрібно мінімізувати, записати у досконалій ДНФ.
Крок 2. Упорядкувати змінні та записати їх у кожній елементарній кон’юнкції у вибраному порядку. Після цього зобразити кожну кожну елементарну кон’юнкцію послідовністю з 0, 1, -. На і-тій позиції записати 1, якщо і-та змінна входить до елементарної кон’юнкції без заперечення, 0, якщо входить з запереченням, і риску якщо зовсім не входить.
Крок 3. Розбити двійкові вирази, які відповідають елементарним кон’юнкціям, на класи за кількістю одиниць, і розташувати списки цих класів у порядку зростання к-сті одиниць.
Крок 4. Виконати всі можливі склеювання. Склеювання можна застосовувати лише до елементів списку, які містяться у сусідніх класах. Елементи, які склеюють, знаходять у сусідніх класах за простим порівнянням: ці елементи повинні відрізнятись точно в 1 позиції і в цій позиції не повинна бути риска (-).