Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Дискретна математика

.pdf
Скачиваний:
139
Добавлен:
17.03.2016
Размер:
3.51 Mб
Скачать

 

 

1

 

2

3 .

.

 

n

 

 

 

 

 

 

 

 

 

 

 

 

x

 

x

2

x

3

.

.

x

 

 

1

 

 

 

 

 

 

n

Приклад 1. Нехай

 

 

 

підстановка на N6:

1

2

 

3

4

5

6

 

 

 

 

 

 

 

 

 

 

 

 

 

5

6

 

3

1

4

2

 

 

 

 

 

 

Тоді (1) = 5, (2) = 6, (3) = 3 і т.д.

Перевагою цього позначення є простота, з якою можуть бути розраховані важкі підстановки.

Припустимо, що

- підстановка на Nn, визначена вище, а

інша підстановка на тій же самій множині.

Тоді підстановка

може бути записана як сукупність пар в порядку, що визначається x1, x2,...xn. Якщо дві

послідовності записати одна над іншою (перша застосована підстановка повинна бути записана першою), то верхній і нижній рядки утворять результуючу підстановку.

Приклад 2. Нехай

 

 

підстановка з прикладу 1 і

 

 

 

1

2

3

4

 

5

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

2

6

1

 

4

 

 

 

 

 

 

5

 

 

 

 

Можна переписати у вигляді

 

5

6

 

3

1

4

2

 

 

 

 

 

 

 

 

 

 

 

 

 

4

5

 

6

3

1

2

 

 

 

 

 

 

 

Тому може бути розраховане наступним чином :

 

 

 

 

 

 

 

 

 

 

1

2

3

4

5

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

6

3

1

4

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

6

3

1

4

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

5

6

3

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

однакові

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2

3

4

5

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

5

6

3

1

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отже, наприклад, (2) = ( (2)) = (6) = 5 і т. д. Звідси робимо висновок, що зображення оберненої (скінченної) підстановки отримується перестановкою рядків, що зображують початкову підстановку. Хоча таке зображення краще в розрахунках, воно потребує багато зайвого місця, особливо в тих випадках, коли багато елементів не міняються в процесі підстановки. Існує більш просте позначення, котре може вживатися безпосередньо для деяких простих підстановок і опосередковано для всіх скінченних.

Визначення. Нехай А = {а1,…,аn}. Підстановку називають циклом (циклічною підстановкою), якщо

 

a

 

a

 

 

.. .

a

 

1

a

 

 

 

1

 

 

2

 

 

 

n

 

n

 

 

a

2

a

3

.. .

a

n

a

 

 

 

 

 

 

 

 

 

 

1

 

Припустимо, що А В і множина В проста. Розширюючи підстановку на всі елементи В, можна визначити підстановку так, що

(x), якщо х А,

: х x, якщо х В\А.

Вцьому випадку підстановка поводить себе подібно підстановці у всіх випадках, коли елементи В не лишаються на місці. Застосування підстановки до А пересуває елементи по колу циклічним чином, і,

якщо відома область А, ми можемо позначити підстановку як (a1, a2,…,аn). Ця підстановка називається

циклом довжини n.

Приклад 3. Розглянемо знову підстановку

 

1

2

3

4

5

6

 

 

 

 

 

 

 

 

 

3

2

6

1

4

 

 

 

5

Підстановка є циклом довжини 5 і може бути записана як (1, 3, 6, 5, 4).

Не всі підстановки є циклами. Наприклад, підстановка в прикладі 1 не є циклом. Нагадаємо, що підстановка має вигляд

1

2

3

4

5

6

 

 

 

 

 

 

 

 

 

5

6

3

1

4

2

 

 

 

Тому (1) = 5, (5) = 4, (4) = 1, звідки робимо висновок, що підстановка містить цикл (1, 5, 4). Починаючи з 2, отримуємо інший цикл – (2, 6). Таким чином, маємо

11

= (1, 5, 4) (2, 6) і = (2, 6) (1, 5, 4).

Вдійсності будь-яка скінченна підстановка може бути зображена як добуток циклів, при цьому цикли можуть міститись в будь-якому порядку. З побудови робимо висновок, що один елемент не може зустрітись більш ніж в одному циклі, тобто цикли не перетинаються.

Теорема 4. Кожна підстановка на скінченній множині А виражається у вигляді добутку циклів, що не перетинаються.

Доведення. Оскільки |A| = n N, то А має таку ж кількість елементів, що й Nn . Тому без втрати загальності ми можемо обмежитись розгляданням підстановки на Nn .У теоремі стверджується, що = 12 r, де кожне i, i = 1,2,…,r, є циклом і цикли не перетинаються. Для доведення теореми наведемо потрібні цикли.

Спочатку знайдемо найменший елемент х1 Nn такий, що (х1) х1 і (х) = х для всіх х, 1 х < х1. Якщо такого х1 не існує, то = I (тобто є тривіальним порожнім добутком циклів). В іншому випадку

розрахуємо х1, (х1), 21), 31) і т. д. Всі ці елементи знаходяться в Nn. Тому елементи в цій послідовності повинні містити повторення. Припустимо, що k1) – перший такий елемент. Покажемо, що k1) = х1.

Припустимо, що це співвідношення не виконується. Тоді l1) = k1) для деякого l, 0<l<k. Отже l-11) = -

1 l1) = -1 k1) = k-11) і т. д.

Тому l-11) = k-11), тобто k-l1) = 01) = х1, що суперечить мінімальності k (тому що k-l < k). Таким чином, k1) = х1 і підстановка 1 = (х1, (х1), 21),…, k-11)) задає цикл всередині .

Якщо всі елементи х Nn такі, що (х) х (будемо називати такі елементи нестаціонарними), містяться в 1, то = 1 – єдиний цикл (який не перетинаєтся). В іншому випадку знайдемо наступний найменший елемент х2 Nn такий, що (х2) х2 і х2 не зустрічається в 1. З х2 будуємо множину різних ступенів : 2 = (х2, (х2), 22),…, m2)). Це цикл довжини не менше 2 і він не перетинаєтся з 1.

Якщо всі нестацівонарні елементи вичерпані, то = 1 2 = 2 1. Очевидно, що множину нестаціонарних елементів, що не входять в ці цикли, можна зменшити, і в кінці кінців ми прийдемо до .

Отже, = 1 2 3 r для деякого r N.

Розглянемо тепер ситуацію з множинами А: |A| = n і B A, |B| = r n, взявши за проблему визначити число бієктивних функцій з А в В чи, що еквівалентно, число ін‘єктивних відображень з В в А.

Число перестановок (без повторів) з n елементів по r позначається nPr і розраховується так же, як і nPn, за винятком того факту, що процес припиняється після заповнення r ящиків. Таким чином,

nPr = n (n–1) … (n–r+1).

Легко бачити, що, продовжуючи процес заповнення ящиків, n – r елементів, що залишилися, можна розмістити по останнім n – r ящикам n-rPn-r способами. Тому і

nPr = (nPn)/ (n-rPn-r) = n! / (n–r)!

При розрахунку nPr ми знаходимо число бієктивних функцій з А в В. Підрахуємо число таких функцій.

Визначення. Нехай А – скінченна множина і B A, |А| = n r = |B|. Множина В називається з‘єднанням (без повторів) з n елементів по r. Число таких з‘єднань позначається Сrn.

Розрахунок Сrn відбувається наступним чином. Покладемо |A| = n. Візьмемо випадкову підмножину B A таку, що |В| = r. Тоді В є шляхом підстановки з n елементів по r. Число ін‘єктивних функцій на А, що мають B своим шляхом, є nPr . Якщо f є такою функцією і g –інша така функція, яка має ту ж саму область значень, то g пов‘язане з f спввідношенням g = f, де – підстановка на В.

Функції g і f визначають одну і ту ж комбінацію, і в дійсності число функцій, що визначають цю комбінацію, рівне числу підстановок на B. Отже, nPr = Сrn rPr, звідки Сrn = (nPr)/(rPr) = n!/r! (n–r)!

Оскільки відносні доповнення єдині і |A\B| = n – r , то звідси робимо висновок, що Сrn= Сn–rn. Розглянемо як функції деякі відомі матаматичні об‘єкти.

Визначення. Послідовністю на множині S називається всюду визначена функція N Z.

Якщо : N Z – задана послідовність і (n) = sn, то звичайно позначають послідовність не , а (sn) чи (s1,s2,…,sn,…). В цьому випадку sn називають n-м членом послідовності.

Особливий інтерес в задачах, пов‘язаних з трансляцією мов програмування, становлять функціонали. Іх особливість полягає в тому, що їх значення належать множині функцій.

Визначення. Нехай дані множини А, В і C. Позначимо через [В C] множину всіх функцій з множини В в множину C. Функція F: А [B C] називається функціоналом.

Приклад 4. Нехай Р – множина програм, тобто текстів програм, які повинні бути оброблені компілятором. Аналогічно нехай I і О – множини відповідно вихідних і вхідних значень, які доступні програмі для вводу і виводу. Тоді компілятор (з відповідної мови) є функціоналом типу P [I O]; для даної р Р він намагається створити машинний код, який при виконанні буде читати i I і видавати о О.

Приклад 5. Нехай всі дані належать R. Тоді якщо f: a [x a + x], то f(2): x 2 + x і f(2)(3) = 5, тоді як f(3): x 3 + x і f(3)(3) = 6 і т. д.

Будемо розглядати функціонали просто як функції, що мають нетривіальні області значень і будемо поводитись з ними відповідним чином.

12

На завершення визначимо функції, які зберігають певні структури. Спочатку знову розглянемо відоме нам співвідношення відношення еквівалентності і розбиття.

Визначення. Нехай Х – множина, на якїй задано відношення еквівалентності . Тоді Х розбивається відношенням на -еквівалентні класи; множина -еквівалентних класів на Х позначається Х/ .

Визначення. Нехай Х і Y – множини, х і y – відношення еквівалентності на них і f: Х Y – всюду визначена функція. Позначимо через f відношення f: X/ х Y/ y таке, що f ={([x], [f(x)]) : x X}, де [x] – клас еквівалентності х. Якщо f – функція то х1 хх2 f([х1]) = f([х2]) і f є відображенням, що зберігає еквівалентність. В цьому випадку говорять, що f: X Y індукує відображення f: X/ х Y/ y.

Наочний спосіб зображення такого відображення наведено на рис. 9.

Якщо розглянути відображення f, погоджене з відношенням еквівалентності, то можна переходить від х1 до у1 чи через х2, використовуючи співвідношення y2 = f(х2) і х1 хх2, чи через y2, використовуючи співвідношення y1 = f(х1) і y2 хy1.

Приклад 6. Нехай Х = {1, 2, 3}, Y = {1, 4, 9} і х і y такі, що X/ х = {{1},{2,3}},

Y/ y = {{1},{4,9}},

і f: X Y таке, що х х2. Тоді

 

f([1]) = [f(1)] = [1] = {1},

 

f([2]) = [4] = {4, 9},

 

f([3]) = [9] = {4, 9}.

 

В цьому випадку {2,3} X/ х 2 х3 [2] = [3] і f ([2]) = f([3]). Тому f є функцією і f зберігає відношення еквівалентності.

Приклад 7. Нехай Х, Y і f є ті ж, що і в прикладі 6, і відношення еквівалентності x і y індукують розбиття {{1},{2,3}} і {{1,4},{9}} відповідно. В цьому випадку індуковані відношення дають

f([2]) = [f(2)] = [4] = {1 ,4},f([3]) = [f(3)] = [9] = {9}.

Через те, що 2 х3, то [2] = [3] в X/ х , але (4, 9) r, оскільки [4] [9] в Y/ r. В порівнянні з рис.9 цей приклад дає відношення, зображені на рис.10. Через те, що не можна з‘єднати сторони прямокутника у всіх випадках, то відношення еквівалентності не зберігаються.

 

x

х

 

 

x1

x2

2

 

3

f

 

f

 

х

 

 

 

f

 

r

f

y1

y

2

 

 

4

 

y

4

r

9

 

 

 

 

 

1

 

рис. 9

 

 

рис 10

13. Решітки

Ґр тк ми називається частково впорядкована множина, в якій два елемента x та y мають точну нижню межу, яка називається перетином (позначається x y), та точну верхню межу, яка називається об’єдн нням (позначається x y). Ґратки називаються повними, якщо будь-яка їх підмножина має точні верхні та нижні межі. Очевидно, що будь-які не порожні повні ґратки мають найменший елемент 0 та найбільший елемент 1. Дійсно, якщо два кожні елементи мають точну верхню межу, то в ґратках є тільки один максимальний елемент, який буде й універсальною верхньою межею, тобто одиницею впорядкованої множини. Аналогічно, існування точної нижньої межі для двох довільних елементів забезпечує існування універсальної нижньої межі – нуля впорядкованої множини.

Лема 8.1. Будь-який ланцюг є ґратками, в яких x y співпадає з найменшим, а x y – з найбільшим із елементів x та y.

Це очевидно, тому що для будь-якого ланцюга або x y, або y x, тому або x y = x, або x y = y.

Наприклад, будь-яку абсолютно впорядковану множину (множину цілих чисел) можна перетворити на ґратки, означивши для будь-яких елементів x та y x y = min(x, y),

x y = max(x, y).

Система підмножин будь-якої множини A (булеан A) – частково впорядкована

множина за включенням множин. Ця система є ґратками, елементами яких є множини, а операціями – звичайні теоретико-множинні операції об‘єднання та перерізу. Впорядкована множина раціональних чисел не є повними ґратками, тому що в ній

немає універсальних меж 0 та 1. У впорядкованій множині дійсних чисел умова повноти буде виконуватись, якщо додати до неї в якості універсальних меж – та + .

Підґр тк ми ґраток L називається підмножина X L така, що якщо a X, b X, то a b X та a b X. Порожня підмножина та будь-яка одноелементна підмножина є підґратками. Підґратки

ґраток самі є ґратками з тими самими операціями об‘єднання та перетину. Взагалі, якщо a£b в ґратках L, то (замкнений) інтервал [a, b], що містить всі елементи xÎL, які задовольняють

13

умові a x b, завжди буде підґратками. Для ланцюга та його елементів a£b можна визначити поняття напіввідкритих інтервалів: (a, b] = {x | a < x b} та [a, b) = {x | a x < b}, а також відкритий інтервал (a,b) = {x | a< x <b}. Якщо ці множини не порожні, то вони також є підґратками.

14. Тр нзитивне т рефлексивне з мик ння

Тр нзитивним з мик нням (чи просто замиканням) відношення на множині R називається нескінченне об‘єднання

n 1 2 ... n ...

n 1

Транзитивне замикання відношення на множині R позначають +. Можна також визначити транзитивне замикання таким чином: ri + rj тоді і тільки тоді, коли ri n rj для деякого n 1. Або ri + rj , якщо існує така послідовність r1, r2,...,rk із нуля і більше елементів множини R, що ri r1, r1 r2, ..., rk-1 rk , rk rj. Транзитивність замикання відношення на множині R є наслідком, очевидно, означення замикання. Приклад. 1. Нехай – відношення на множині N таке, що = {(x, y): y = x + 1}. Тоді + = {(x, y): x < y}.

2. Нехай L – множина станцій Київского метро і a, b та c – послідовно розташовані його станції. Якщо

відношення 1 на L визначене як 1 = {(x, y): x є наступною за у станцією}, то (a, b) і (b, c) 1 і (a,a), (b,b),

(c,c) і (a,c) 12. Отже, 1+ = L L.

На цих прикладах видно, що замикання відношення в загальному випадку не є рефлексивним. Однак іноді зручно зробити його таким. Це можна легко зробити. Приймемо, що еквівалентне відношення I = {(x, x) | xR} на множині R, є нульовим ступенем будь-якого відношення на множині R. Таким чином, 0 = I для будь-якого на множині R.

Визначення. Рефлексивним з мик нням відношення множині R (позначається *) називається множина

* n .

n 0

Можна також визначити рефлексивне замикання таким чином:

1)ri * ri для всіх ri R;

2)ri * rj , якщо ri + rj;

3)в * немає нічого іншого, крім того, що міститься там згідно з 1) і 2).

Замикання відношень пов‘язані між собою очевидним співвідношенням * = + I.

Приклад. Використовуючи відношення , визначене в попередньому прикладі, отримуємо * = {(x,y): x y).

15. Відношення т структури

Вище ми підкреслювали можливість задання множин визначенням властивостей її елементів. Цей зв‘язок двобічний. Звичайно, властивість характерризує елемент множини. Зв‘язок елементів задається відношенням. Останнє задається множиною n-ок, тобто графіком відношення. Цю множину можна також задати властивістю, але мова вже йде про властивість n-ок. Як зазначено вище, цей зв‘язок також двобічний. Властивість n-ок будемо називати предикатом і зображувати формулою. Істинність останньої взаємно однозначно пов‘язана з належністю відношенню відповідної n-ки. Якщо P(x1,...,xn) - предикат або формула на змінних x1,...,xn, то тоді можна побудувати множину n-ок:

{(x1,..., xn): P(x1,...,xn) набуває істинного значення}.

Нех й з д н множин {(x1,...,xn)}. Тоді формулу P(x1,..., xn) можн розв’язати, тобто з’ясув ти істинн вон чи ні, використовуючи н лежність відповідної n-ки до множини {(x1,...,xn)}. Звич йно, P не обов’язково буде предст влено “г рною” формулою. Т ким чином, ці дв підходи еквів лентні.

Визначення. При обробці даних набори з n елементів називають записами; елементи цих наборів називають полями. Записи, що визначають певне відношення, звичайно містяться в одному файлі. Якщо вимагати, щоб декілька файлів містили сукупність записів, що задовільняють деяким відношенням, то ми отримаємо (реляційну) базу даних.

Таким чином, це дає нам перший реальний приклад відношень, які у більшій мірі пов‘язані з розрахунками, а саме, з прикладними задачами. Але короткий аналіз деяких простіших властивостей баз даних не тільки забезпечує основу подальшого математичного дослідження відношень, але і проясняє деякі фактори, розуміння котрих необхідне для ефективного керування системами баз даних.

Сучасна теорія баз даних забезпечує вивчення так званих нормальних форм, однак обгрунтування деяких з них очевидне лише в простих випадках. Ми розглянемо тільки три нормальних форми для таких задач:

-вставити новий набір з n елементів;

-вилучити набір з n елементів;

-модифікувати набір, що містить n елементів. Почнемо з найпростішої нормальної форми.

14

Визначення. Файли в першій нормальній формі (1NF), чи – простіше - нормалізовані файли, мають записи фіксованої довжини, що складаються з елементів, взятих з множин, чиї елементи далі не можуть бути розбиті, і в кожен момент часу цей файл може бути зображений як масив значень m n. Кожен запис, будучи набором з n елементів, може бути записаний як рядок масиву.

Приклад 5.1. Розглянемо відношення FAM1 між батьками і дітьми. Кожен запис містить в вказаному порядку прізвище і імена батька, матері і дітей. Отже, можливі записи:

(Коміренко, Петро, Оксана, (Ольга, Тарас)) FAM1, (Заплюйсвічко, Федір, Лідія, (Любов)) FAM1.

Тепер, якщо ми позначимо через F і М множини батьків і матерів, то, за означенням, маємо: Петро (Коміренко) F, Оксана (Коміренко) М,

Федір (Заплюйсвічко) F, Ліза (Заплюйсвічко) М.

Таким чином, в сім‘ї Коміренко більше однієї дитини, відповідний запис більше, і, отже, порушені умови першої нормальної форми.

З FAM1 ми можемо отримати FAM2, побудувавши його з S, F, M і С, де S – множина прізвищ, а С – множина дітей, шляхом конструювання записів:

(Коміренко, Петро, Оксана, Ольга), (Коміренко, Петро, Оксана, Тарас), (Заплюйсвічко, Федір, Лідія, Любов).

Відношення FAM2 знаходиться в 1NF і може бути представлене за допомогою табл.1.

Прізвище

Батько

Мати

Дитина

Коміренко

Петро

Оксана

Ольга

Коміренко

Петро

Оксана

Тарас

Заплюйсвічко

Федір

Лідія

Любов

Однак не зовсім ясно, що буде, якщо, наприклад, подружжя Простибоженків не має дітей? Якщо ми хочемо мати в файлі запис про них, то необхідно переглянути структуру файлу. Цебто, все належить розпочати зпочатку. Уведемо наступну термінологію.

Визначення. При використанні таблиці для зображення відношення (файлу з n– вимірним наборами/записами, що записується у вигляді рядків) стовпці називаються атpибутами.

Отже, ПРІЗВИЩЕ, БАТЬКО, МАТИ і ДИТИНА є атpибутами різних полів в FAM2. Для отримання доступу до записів у файлі використовується так звані ключі. Більш точно це може бути визначене у термінах атрибутів.

Визначення. Атрибут чи (впорядкована) множина атрибутів, чиї значения однозначно визначають запис в файлі, називаються ключем цього файлу.

Варто зазначитити, що в файлі може бути багато різних ключів.

Кожен ключ відношення/файлу FAM2 повинен містити атрибут ДИТИНА. Розглянемо інший приклад.

Приклад. Кожен власник комп‘ютера змушений придбати до нього запасні частини. Тому ми можемо розглянути файл, структура котрого наведена у табл.2.

Таблиця 2

Компанія

Відділ

Менеджер

―Пріоком‖

Київ

Гудима

ІНКОМ

Київ

Шевчук

―Галичина‖

Львів

Шевчук

―МКС‖

Харків

Простибоженко

―Золотий лев‖

Львів

Простибоженко

―Білайт‖

Київ

Гудима

ХБК

Херсон

Моргенталлер

Атрибут Компанія є ключем в SUP1; вся інша інформація в файлі доступна за допомогою ключа. Таким чином, наприклад, можливо отримати атрибут Відділ за допомогою ключа ―Золотий лев‖ чи ж Менеджер з ―Білайт‖.

Визначення. Якщо запис локалізований за допомогою якогось ключа, то поле, що виділяється з цього запису, називається проекцією. В даному контексті проекцією є Відділ, Менеджер. Будемо також говорити, що ці атрибути залежать від ключа.

На рис 14 представлені у графічному вигляді залежності полів в відношенні SUP1.

Місцезнаходження

Компанія

Менеджер

Приклад 3. Модифікуємо файл SUP1 з метою включення туди інформації про присутність на складі запасних частин і про їх кількість, які окремий продавець бажає продати окремою угодою. Включимо в

15

файл також код поставки, з котрого ми можемо з‘ясувати швидкість і частоту поставок. Для уникнення зайвої деталізації будемо використовувати номер компанії і номер запасної частини (табл.3.).

Таблиця 3

Компанія

Місцезнаходження

Продавець

Запчастина

Кількість

1

Київ

2

1

10

1

Київ

2

2

1

1

Київ

2

3

10

2

Київ

2

2

2

2

Київ

2

4

5

3

Львів

4

2

2

3

Львів

4

3

10

3

Львів

4

4

4

5

Львів

4

1

10

5

Львів

4

3

10

6

Київ

2

1

10

З таблиці 3 визначимо, які перетворення ми можемо робити з SUP2, а які ні:

вставка. Наприклад, ми не можемо додати в файл запис, що компанія 4 (―МКС‖) знаходиться в Харкові, без вказання деталей, які вона може доставляти;

видалення. Якщо Компанія 6 (―Білайт‖) припинила постачання запчастини 1, то ми зобов‘язані вилучити всі записи, які стосуються цієї компанії і мають в полі Запчастина код 1; модифікація. Якщо код продавця для Києва змінився, наприклад, через транспорт, то відповідне поле повинно бути змінене у кожному записі, де є код Київ в полі Місцезнаходження.

16.Норм ліз ція відношень. З практичної точки зору ми повинні розділити інформацію в SUP2

так, щоб по можливості уникнути повторів. Таким чином, ми отримаємо можливість вставки/вилучення частини запису в SUP2. Можливе і розумне розділення наводиться в SUP3 (табл.4). Тоді залишок інформації в SUP2 може міститись в відношенні Запчастина (табл.5).

 

 

Таблиця 4

Компанія

Місцезнаходження

Продавець

 

1

Київ

2

 

2

Київ

2

 

3

Львів

4

 

5

Львів

4

 

6

Київ

2

 

Запчастина

 

Таблиця 5

 

Компанія

Запчастина

Кількість

 

1

1

10

 

1

2

1

 

1

3

10

 

2

2

2

 

2

4

5

 

3

2

2

 

3

3

10

 

3

4

4

 

5

1

10

 

5

3

10

 

6

1

10

Використовуючи цю кофігурацію, можна, наприклад:

а) включити в SUP3 запис, що компанія 4 знаходиться в Харкові (код продавця 3);

б) вилучити посилання на компанію 6 як на продавця запчасти 1, але залишити відповідний запис в

SUP3;

в) змінити код продавця для Києва на 7 шляхом заміни лише трьох рядків відповідним компаніям з кодом 1, а не всіх шести.

Результати цих змін наведені в табл. 6 і табл. 7.

Таблиця 6

Компанія

Місцезнаходження

Продавець

1

Київ

7

2

Київ

7

3

Львів

4

4

Харків

3

16

 

5

 

Львів

4

 

 

6

 

Київ

7

 

Запчастина

 

 

 

Таблиця 7

 

 

Компанія

 

Запчастина

 

Кількість

 

 

1

 

1

 

10

 

 

1

 

2

 

1

 

 

1

 

3

 

10

 

 

2

 

2

 

2

 

 

2

 

4

 

5

 

 

3

 

2

 

2

 

 

3

 

3

 

10

 

 

3

 

4

 

4

 

 

5

 

1

 

10

 

 

5

 

3

 

10

 

 

 

 

 

 

 

 

 

Це вже значно краще. Щоб побачити, в якому напрямку продовжувати дослідження, відокремимо ключі і залежні частини (рис.15). Відзначимо, що відношення Запчастина потребує об‘єднаного ключа.

кккваыва

Компанія

Місцезнаходження

SUP3

Продавець

 

Компанія

Запчастина

Рис. 15

Кількість

 

 

 

Всі не-ключі повністю залежать від ключів. Саме ця обставина пояснює переваги такого рішення перед попереднім. Таким чином, ми виділили властивість нормальної форми, яка виводить нас за рамки 1NF, і обумовлює її подальшу нормалізацію.

Визначення. Файл має другу норм льну форму (2NF), якщо він має форму 1NF і неключові атрибути повністю залежні від ключа.

Приклад 3 (продовження). Файл SUP3 все ще є достатньо незручним в тому розумінні, що для даного запису продавець може бути встановлений за допомогою встановлення запису з відомим значенням ключового поля Компанія чи ж поля Місцезнаходження. Це є причиною того, що в вимозі включити в SUP3 запис, що компанія 4 знаходиться в Харкові (код продавця 3) код продавця для Харкова повинен бути вставлений перед записом кода компанії, а вимога вилучити посилання на компанію 6 як на продавця запчасти 1, але залишити відповідний запис в SUP3, можливо, потребує змінити більше одного запису для модифікації єдиного поля даних, що відноситься до коду продавця. На практиці ми можемо позбавитися цієї проблеми, перебудувавши відношення SUP3 в SUP4 і DEL (табл.8,9).

Відзначимо, що коди продавця, що змінюються таким чином, виключають можливість того, що будьякі інші записи в файлі містять суперечливу інформацію. В відношенні SUP3, наприклад на деякому етапі модифікації SUP2 можна отримати записи вигляду ―Продавець компанії 6 - 2‖ і ―Продавець компанії 1 - 7‖ ,

незважаючи на той факт, що обидві компанії знаходяться у Києві.

 

 

Залежність полів відношень SUP4 і DEL зображена на рис.16.

 

Таблиця 8

 

 

Компанія

 

Місцезнаходження

 

 

 

1

 

Київ

 

 

 

2

 

Київ

 

 

 

3

 

Львів

 

 

 

4

 

Харків

 

 

 

5

 

Львів

 

 

 

6

 

Київ

 

 

 

 

 

 

 

 

Таблиця 9

 

 

Місцезн ходження

 

Продавець

 

 

 

 

Київ

 

7

 

 

 

 

Львів

 

4

 

 

 

 

Харків

 

3

 

 

Всі не-ключі безпосередньо (будемо говорити нетранзитивно) і повністю залежать від ключів. Саме ця обставина пояснює переваги такого рішення перед попереднім. Таким чином, ми виділили властивість нормальної форми, яка виводить нас за рамки 2NF, і обумовлює її подальшу нормалізацію. Варто зазначити, що нетранзитивність відношення залежності є внутрішньою властивістю, з якої і виникає поняття третьої нормальної форми.

17

Визначення. Файл знаходиться в третій норм льній формі (3NF), якщо він є файлом 2NF, і кожен атрибут, що не є ключем, нетранзитивним чином залежить від ключа.

Можливий і інший шлях – кожен атрибут, що не є ключом, залежить тільки від ключа і ні від чого іншого.

 

Компанія

 

 

 

Місцезнаходження

 

 

 

 

 

 

 

 

 

SUP4

 

 

 

 

 

 

 

 

 

 

Компанія

 

 

Продавець

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 16

 

 

 

Існує багато інших «нормальних» форм, але ми не ставимо вивчення файлів своєю метою в

майбутньому. Достатньо лише мати на увазі, що інформація

в файлах є однією з реалізацій математичного

поняття відношення, а напрацьований для відношень математичний апарат, таким чином, може використовуватися для оброблення файлів.

Практичне використання відношень SUP4 і DEL потребує явного зв‘язку атрибуту Місцезнаходження файлу SUP4 з атрибутом Місцезнаходження файлу DEL. Це – відношення еквівалентності (між компонентами різних файлів, що мають одне і те ж ім‘я). Подібні відношення еквівалентності можуть бути використані для визначення внутрішніх зв‘язків і інших структурних даних. В якості ілюстрації розглянемо рис.17. Діаграма на рис. 17a зображає дерево, діаграма на рис. 17b подібна діаграмі структурних даних, а

діаграми на рис.17 c і d описують їх можливі застосування.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

p

 

 

 

 

 

 

 

b

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d

e

y

z

 

 

u

 

 

v

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q

 

r

 

 

 

s

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

3

4

5

c

d

Рис. 17 Відзначимо, що відношення еквівалентності різні, але структурні зв‘язки, які є результатом,

зберігаються. З математичної точки зору це є розбиттям на класи еквівалентності. Отже, ми можемо визначити випадкове представлення цього дерева як елемент множини T = D/E, де

D = {a = (x, a, p), b = (y, b, z), c = (u, c, v), d = (q, d, r), e = (s, e, t)}, E = {(x, b), (y, d), (p, c), (z, e)}.

17. Зн ки і символи

Мов – знакова система будь-якої фізичної природи, що виконує пізнавальні і комунікативні функції в процесі людської діяльності. Мови поділяються на природні (мови повсякденного життя, що служать формою вираження думок і засобом спілкування між людьми) і штучні (мови, створені людьми для вузьких потреб).

Зн к – матеріальний чуттєво сприйманий предмет, подія чи дія, що виступає в пізнанні як покажчик, позначення чи зображення іншого предмета, події чи дії, суб'єктивного утворення. Знаки поділяються на мовні і не мовні, а останні, у свою чергу, - на копії, ознаки, сигнали тощо.

Власне наукою про мову є лінгвістика, що вивчає функції, універсальні характеристики, структуру, історію мови. Варто зазначити, що окремі аспекти мови досліджуються й іншими науками. З розвитком

18

штучного інтелекту виникла нова наука про мову як знакову систему – семіотика, яка включає наступні складові: синтаксис, семантику і прагматику.

Змовними знаками (словами, виразами) пов'язана функція позначення предметів (речей, процесів, властивостей, явищ тощо). Предмети позначаються іменами, що можуть бути: 1) простими (―книга‖) і складними (―комп‘ютеризована система керування‖); 2) власними (―Дніпро‖) і загальними (―комп'ютер‖).

Зіменами пов'язані: значення (предмет, що позначається) і зміст (спосіб, яким ім'я позначає предмет, наприклад ―Тарас Шевченко‖ і ―Автор ―Кобзаря‖ мають те ж значення, але різний зміст. Звичайно говорять про семантичний трикутник

значення

ім'я

зміст

Людині властиво формулювати думки реченнями (розповідними (далі висловлювання), наказовими, запитальними). Речення мають складну структуру, зокрема включають дескриптивні (імена предметів (позначають предмети), предикатори (позначають властивості чи відношення предметів)) і логічні (і, чи, якщо ... то, рівносильно, кожен тощо) терміни.

Синтаксис досліджує правила утворення речень.

Наприклад, ―Студенти вивчають іноземну мову‖ – правильне речення; ―Глокая куздра штеко будланула бокр і курдячит бокренк‖ - не речення; ―Студентами вивчаючи іноземну мову‖ – неправильне речення.

Семантика досліджує співвідношення між словами й об'єктами і поняттями реального світу. Таке зв'язування дає можливість зрозуміти висловлювання. Якщо при цьому те, що стало зрозумілим, відповідає дійсності, то висловлювання - істинне, інакше – хибне.

Наприклад, висловлювання ―НТУУ ―КПІ‖ знаходиться в Лондоні‖ – хибне, хоча має значення; висловлювання ―НТУУ ―КПІ‖ знаходиться в Києві‖ – істинне; речення ―Круглий квадрат солодко наспівує‖ – абсурдне, не має значення.

18. Способи визн чення мов

Найважливіша функція мови комунікативна. У процесі комунікації одна сторона формує мовне утворення, а інша сторона розпізнає його. Природними моделями для передавальної і приймаючої сторони є, відповідно, процес (генератор), що породжує слова мови, і процес (пристрій), що розпізнає слова мови. У першому випадку формальною моделлю визначення мови є граматика, а в другому – автомат. Генератори типу граматик для породження мов ми будемо вивчати в розділі 5, а автомати в ролі розпізнавачів – у розділі 4. У даній лекції ми коротко розглянемо сутність згаданих підходів, що дозволить глибше зрозуміти ідею ще одного підходу до визначення мов, побудованого на основі операційних моделей.

1.1. Граматики виникли в результаті спроби використовувати методи математики при дослідженні природних мов. Широке їхнє застосування в сфері інформатики, керування й обробки даних обумовлені ефективністю застосування граматик при розв‘язанні лінгвістичних проблем у згаданих сферах. Алгоритмічні мови звичайно визначаються граматиками.

Основна ідея граматик полягає в поступовому формуванні структури слів обумовленої мови в спеціальних допоміжних символах алфавіту D з наступною заміною допоміжних символів символами алфавіту E обумовленої мови.

Як процес формування структури слів обумовленої мови, так і процес заміни допоміжних символів символами алфавіту обумовленої мови, виконуються шляхом застосування правил підстановки (виведення) вигляду α→β, де α,β - слова в алфавіті D E. Якщо в граматиці є правило підстановки α→β, то слово γ безпосередньо породжує слово δ, якщо γ = ωα і δ= ωβ , де ω і - довільні слова в алфавіті D E. Рекурсія дозволить визначити породження словом γ слова δ. Залишається тільки визначити з чого розпочинається і чим закінчується процес породження. Для цього скористаємося поняттям початкового символу d0 (слово d0 приймаємо за споконвічно породжене слово, з якого починається породження будь-якого слова обумовленої мови) і термінального слова, що містить тільки символи алфавіту E (процес породження, розпочавшись зі слова d0 закінчується тільки при породженні термінального слова). Обумовлена граматикою мова включає всі термінальні слова, породжувані даною граматикою з початкового символу d0.

Приклад:

Граматика з алфавітами D = {d0,d1}, E = {0,1} і правилами: d 0 → 0d1

19

d1 → 1d1 d1 → ε

Тут 0 і 1 - термінальні символи, d0 і d1 не термінальні символи, причому d0 початковий символ. Позначимо цю граматику G1.

Тоді наступні послідовності слів в алфавіті пов'язані відношенням безпосереднього породження: d 0 (початковий символ), 0d1 (тому що є правило підстановки d0→0d1), 0 (тому що є правило

підстановки d1 → ε);

d 0 (початковий символ), 0d1 (тому що є правило підстановки d0→0d1), 01d1 (тому що є правило підстановки d1 → 1d1), 01 (тому що є правило підстановки d1 → ε);

d 0 (початковий символ), 0d1 (тому що є правило підстановки d0→0d1), 01d1 (тому що є правило підстановки d0→0d1), 011d1 (тому що є правило підстановки d1 → 1d1), 011 (тому що є правило підстановки

d1 → ε).

Звідси робимо висновок, що слова 0, 01, 011 – слова мови, обумовленої (породжуваної) даною граматикою G1. Очевидно, що всі слова мови, породжуваної даною граматикою, складуть множину {0, 01, 011, 0111, ...}.

Тепер спробуємо визначити граматикою мову {ε, 00,0000, 000000, ...}.

Для цього можна обійтися тільки одним допоміжним символом d0 і правилами підстановки: d 0 → 00d0

d0 → ε

Тут 0 - термінальний символ, d0 не термінальний символ, причому d0 - початковий символ. Позначимо цю граматику G2.

Тоді наступні послідовності слів в алфавіті пов'язані відношенням безпосереднього породження: d0 (початковий символ), ε (тому що є правило підстановки d0→ ε);

d0 (початковий символ), 00d0 (тому що є правило підстановки d0→00d0), 00 (тому що є правило підстановки d0→ ε);

d0 (початковий символ), 00d0 (тому що є правило підстановки d0→00d0), 0000d0 (тому що є правило підстановки d0→00d0), 0000 (тому що є правило підстановки d0→ ε);

d0 (початковий символ), 00d0 (тому що є правило підстановки d0→00d0), 0000d0 (тому що є правило підстановки d0→00d0), 000000d0 (тому що є правило підстановки d0→00d0), 000000 (тому що є правило підстановки d0→ ε).

Звідси робимо висновок, що слов ε, 00, 0000, 000000 – слов мови, обумовленої (породжув ної) д ною гр м тикою G2. Очевидно, що всі слов мови, породжув ної д ною гр м тикою скл дуть множину {ε,

00, 0000, 000000, ...}.

1.2. Автомати призначені для задання поведінки деяких систем, у першу чергу комп'ютерів, шляхом визначення їхньої реакції (вихідного сигналу і наступного стану) на різні ситуації (комбінації вхідного сигналу і попереднього стану).

Основна ідея визначення мови автоматом складається в поступовому розпізнаванні структури слів мови, обумовленої автоматом, що переходить у визначені стани з появою тільки очікуваних символів і тільки в очікуваних станах.

При цьому зручно використовувати знайомі нам графічні засоби, що дозволяють стани задати вершинами, а дозволені переходи – ребрами. Наприклад, нехай автомат заданий графом переходів:

0

d1

d0

1

Тут d0 і d1 – стани, 0 і 1 – вхідні символи, перехід зі стану d0 у стан d1 здійснюється при вхідному символі 0 на вході автомата, а перехід зі стану d1 у стан d1 здійснюється при вхідному символі 1 на вході автомата.

Якщо прийняти, що автомат починає розпізнавати вхідну послідовність (послідовність вхідних символів), знаходячись у стані d0 на момент подачі першого символу, а ознакою розпізнавання вхідної послідовності як слова обумовленої мови є його перехід у стан d1 по закінченні слова, то наведений автомат розпізнає наступні слова:

0 – знаходячись у стані d0 автомат під впливом першого і єдиного символу цього слова перейде в стан d1, що і буде ознакою розпізнавання;

20