
- •Дерева. Означення та основні властивості.
- •Кореневе дерево. Упорядковане кореневе дерево, 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. Машина Тьюрінга.
18. Транзитивне замикання відношення. З’єднувальне відношення.
Побудова транзитивного замикання відношення є складнішою задачею, ніж побудова рефлексивного або симетричного замикання. Шляхом у відношенні R з а в b називають послідовність елементів a, x1,x2,…,xn-1,b множини А таких, що (а, х1)єR, (х1, х2)єR,…, (хn-1,b)єR. Покажемо, що процедура відшукання транзитивного замикання відношення R еквівалентна процедурі визначення, які пари вершин з’єднані шляхом. Зазначимо, що шлях у відношенні R з а в b відповідає шляху з вершини а у вершину b в асоційованому графі GR.
Нехай
R
– відношення
на множині А. З’єднувальним називають
відношення R*,
яке складається з таких пар (а,b),
що існує шлях з а в b
у відношенні R.
Отже, R*=
.
Т-ма. Транзитивне замикання відношення R дорівнює з’єднувальному відношенню R*.
Т-ма. Нехай множина А має n елементів і R – відношення на множині А. Тоді
R*=
=R
З цієї теореми випливає таке матричне зображення для відношення R*:
v MR[2]
v … v MR[n].
Алгоритм, O(n4) операцій для обчислення матриці МR*.
19. Алгоритм Уоршала.
Алгоритм Уоршала ефективно обчислює матрицю W(k) за матрицею W(k-1). Шлях із ai в aj з внутрішніми вершинами в множині {a1,a2,…,ak}. Зазначимо, що W(k-1). Шлях із ai в aj з внутрішніми вершинами в множині {a1, a2,..,ak} існує лише в 2 випадках:
Якщо існує шлях із ai в aj з внутрішніми вершинами в множині {a1,a2,…,ak-1}.
Якщо існує шлях із аі в ак та з ак в аj і кожний з цих шляхів має внутрішні вершини лише в множині {a1,a2,…,ak}.
Алгоритм Уоршала:
Присвоєння початкових значень.
Крок 1. Виконати W:=MR, k:=0.
Ітерація.
Крок 2. Виконати k:=k+1.
Крок 3. Для всіх i<>k таких, що wik=1 і для всіх j виконати операцію wij:=wikvwkj.
Перевірка закінчення.
Крок 4. Якщо k=n, то зупинились. Отримано розв’язок W = MR*. Інакше – перейти до кроку 2.
Результат роботи алгоритму – матриця MR* рефлексивного замикання відношення R.
20. Постановка проблеми кодування, її значення в інформатиці. Алфавітне і рівномірне кодування. Достатні умови однозначності алфавітного кодування.
Нехай
заданий алфавіт А={a1,..,ar},
який складається з скінченної кількості
букв. Скінченну послідовність символів
алфавіту А: α=
називають
словом в алфавіті А, а число l
– довжиною слова α. Довжину слова α
позначають l(α).
Множину
всіх слів в алфавіті А позначають через
А*.
Порожнє слово не містить жодної букви,
його позначають λ, λєА*,
l(λ)=0,
λ не
належить А.
Якщо α=α1α2, то α1 називають початком, або префіксом слова α, а α2 – закінченням, або постфіксом слова α.
Алфавітне кодування.
Алфавітне кодування задають схемою (або таблицею кодів) σ:
а1 ->β1,
a2 ->β2,
…..
ar ->βr,
де
аі
є А, βі
є В*,
і=1,…,r.
Схема σ задає відповідність між буквами
алфавіту А і деякими словами в алфавіті
В. Вона визначає алфавітне кодування
так: кожному слову α=
з S
ставиться у відповідність слово β=
.
Це слово β називають кодом слова α.
Слова β1,…,βr
називають елементарними кодами.
Рівномірне кодування.
Рівномірне кодування з параметрами k та n визначають так. Повідомлення α розбивають на блоки довжини k:
,
де s<=k
(останній блок може бути коротший, у
такому разі спосіб його кодування
спеціально обумовлюється), xiєА,
і=1,…,mk+s.
Блоки довжини k
розглядають як букви деякого алфавіту
(таких блоків є, очевидно, rk,
оскільки, алфавіт А складається з r
букв) і кодують словами в алфавіті В
однакової довжини n
за схемою рівномірного кодування σk,n:
….
Надлишковістю схеми σk,n на символ повідомлення називають величину R=(n-k)/k=n/k -1.