Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора.Дискретна..docx
Скачиваний:
31
Добавлен:
16.09.2019
Размер:
101.25 Кб
Скачать

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 випадках:

  1. Якщо існує шлях із ai в aj з внутрішніми вершинами в множині {a1,a2,…,ak-1}.

  2. Якщо існує шлях із аі в ак та з ак в а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.