
- •Дерева. Означення та основні властивості.
- •Кореневе дерево. Упорядковане кореневе дерево, 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. Машина Тьюрінга.
35. Клас l. Лема про нелінійну функцію.
Булеву функцію f(xn)=f(x1,…,xn) називають лінійною, якщо її поліном Жегалкіна має вигляд f(xn)=C0+С1х1+С2х2+….+Сnxn.
Це поліном першого степеня, або лінійний поліном. Він не має багатомісних кон’юнкцій. Коефіцієнти лінійного полінома утворюють довільний набір значень із n+1 одиниць та нулів.
Т. Клас L лінійних функцій замкнений.
Лінійні: 0, 1, х, х у, ˥х
Нелінійні: x->y, x v y
Н. Повна система булевих функцій повинна мати хоча б одну нелінійну функцію.
Л. Якщо функція f(xn) нелінійна, то кон`юнкцію двох змінних можна подати як суперпозицію констант 0,1 та функцій ˥Х і f(xn).
Д. Нехай функція f не належить L. Тоді поліном Жегалкіна функції f містить кон`юнкції змінних. Виберемо серед них кон`юнкцію з найменшим рангом r≥2, нехай це буде k=xi1xi2…xir r≥2.
Надамо значення xi3=….=xi1=1, а всім змінним xj які не входять у кон. k, надамо значення xj=0. Підстановка цих констант у поліном перетворить кон. k на xi1, xi2, а решту кон. – на 0. При цьому функція f набере вигляду ϕ(xi1,xi2)=xi1xi2+αxi1+βxi2 +γ, де α,β,γ – коефіцієнти, що дорівнюють 0 чи 1залежно від конкретної функції f(xn).
36. Теорема Поста.
Для того, щоб система булевих функцій Q була функціонально повною, необхідно і достатньо, щоб вона містила 1) функцію, яка не зберігає 0; 2) функцію, яка не зберігає 1; 3) несамодвоїсту функцію; 4) немонотонну функцію; 5) нелінійну функцію. Інакше кажучи, для повноти системи Q необхідно і достатньо, щоб для кожного з п`яти замкнених класів T0,T1,S,M,L вона містила функцію, яка цьому класу не належить.
Д. Необхідність випливає з того, що класи T0,T1,S,M,L замкнені.
Достатність. Уведемо для функцій із системи Q такі позначення:
fi – функція, що не зберігає 0
fj – функція, що не зберігає 1
fk – несамодвоїста функція
fm – немонотонна функція
fl – нелінійна функція.
Перший етап: Одержимо константи 0 і 1. Розглянемо функцію fi (не зберігає 0): fi (0..0) = 1. Можливі два випадки:
fi(1…1)= 1, тоді функція ϕ(x)=f(x,…,x) тотожно дорівнює 1, бо ϕ(0)=fi(0…0)=1, ϕ(1)=fi(1….1)=1. Із функції f у цьому разі можна отримати константу 0, оскільки fi(ϕ(x)…..ϕ(x))=fi(1….1)=0.
fi(1…1)=0, тоді функція ϕ(x)=fi(x,….,x) – заперечення: ϕ(x)= ˥x, бо ϕ(0)=fi(0…0)=1, ϕ(1)=fi(1..1)=0. Із несамодвоїстої функції fk та побудованої функції ˥х за лемою про несамодвоїсту функцію одержимо константу. Другу константу отримаємо, використавши ˥х, оскільки ˥0=1, ˥1=0.
Отже в обох випадках ми одержали константи 0 і 1.
Другий етап: Використовуючи константи 0 і 1 та немонотонну функцію fm , за лемою про немонотонну функцію одержимо˥х. Потім за допомогою констант 0,1 функцій ˥х і fi не належить L за лемою про нелінійну функцію отримаємо кон. двох змінних ху. Отже, через функції системи Q ми виразили ˥х та ху. Позаяк система {˥x,xy} повна, то система Q також повна.
Щоб перевірити, чи виконуються для скінченної системи функцій {f1….fq} умови теореми Поста, складають таблицю Поста. ЇЇ рядки позначають функціями системи, а стовпці – назвами 5 основних замкнених класів. У клітках таблиці Поста ставлять знак «+» або «-» залежно від того, чи належить функція відповідному замкненому класу. Для повноти системи функцій необхідно і достатньо, щоб у кожному стовпці таблиці Поста стояв хоча б один знак «-».