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

Зубенко, Омельчук - Програмування. Поглиблений курс

.pdf
Скачиваний:
58
Добавлен:
07.03.2016
Размер:
5 Мб
Скачать
☆

Розділ І. ЛОГІКО-АЛГЕБРИЧНІ УНІВЕРСАЛІЇ

Якщо (a,b) R , то кажуть, що елемент a перебуває у відношенні R з елементом b . Цей факт також записують aRb . Образом елемента a

за відповідності R

називається сукупність R (a ) ={b B : (a,b) R}.

R визначено на a ,

якщо образ R (a ) ≠ . У протилежному випадку R

не визначено на a .

Образ підмножини X A за відповідності R ви-

значається як R (X ) = R(x) . Прообразом елемента b за відповідно-

x X

сті R називається сукупність R−1 (b)={a A : (a,b) R}. Прообраз під- множини Y B за відповідності R визначається як

R−1 (Y )= R−1(y) . З відношеннями як множинами можна виконува-

y Y

ти всі згадувані теоретико-множинні операції. Однак існують і спе- цифічні операції. Оберненням відношення R A B називається від-

ношення R−1 ={(b,a ): b B & a A & aRb}. За означенням R−1 B A .

Добутком відношень P A B та Q B C називається відношення

def

P oQ = {(a,c ): b B (a A & c C & aPb & bQc )}.

За означенням P oQ A C . Сама операція o називається множен- ням відношень. Наведемо важливі властивості операції множення:

(P oQ )oR = P o(Q oR ) – асоціативність; R oiB = iA oR = R – діагональ;

(P oQ )−1 = (Q−1 oP −1 ) – обернення добутку.

def

Rn = R o...oR називається n -м степенем відношення R .

1442443

n

Нехай є скороченням фрази "тоді й тільки тоді". Довільне від- ношення R на множині A називається:

1) рефлексивним x A xRx iA R ;

2) симетричним x,y A (xRy → yRx ) R−1 = R ;

3)транзитивним x,y,z A (xRy & yRz → xRz ) RR R ;

4)антисиметричним x,y A (xRy & yRx → x = y) R−1 ∩R I .

Із транзитивністю пов'язане таке важливе поняття, як транзити- вне замикання. Транзитивним замиканням відношення R A A

41

ПРОГРАМУВАННЯ

називається найменше транзитивне відношення R∞ A A , що мі- стить R . Має місце

Лема 1.1. 1) R∞ = U∞ Ri ; 2) R∞ збігається з перетином усіх транзи-

i =1

тивних надвідношень R .

 

∞

 

Доведення. Дійсно, U Ri містить R і є транзитивним, оскільки як-

 

i =1

 

що (a,b) Rn та

(b,c ) Rm , то

(a,c ) Rn +m . Будь-яке транзитивне

надвідношення R

має містити

Rn . Це легко довести за індукцією

∞

(див. вправу 22). Отже, Ri – найменше транзитивне надвідношен-

i =1

ня R . Далі, перетин усіх транзитивних надвідношень R є транзитив- ним, а враховуючи, що в даному перетині бере участь і найменше з транзитивних надвідношень R , перетин збігається з ним ■

Наприклад, для R ={(n,n +1): n N } транзитивне замикання R∞ збігається зі стандартним числовим порядком <.

1.2.5. ЕКВІВАЛЕНТНОСТІ Й ПОРЯДКИ

Довільні відношення R на множині A називаються:

1) частковим порядком, якщо R є рефлексивним, транзитивним і антисиметричним;

2) лінійним порядком, коли R є частковим порядком таким,

що x,y A (xRy yRx );

3) еквівалентністю, якщо R є рефлексивним, транзитивним і си- метричним.

Частково впорядковану множину будемо називати чумом, або ґра- тами, а її порядок позначати p . Якщо a p b , то кажуть, що елемент a менший ніж b , а елемент b більший ніж a . Якщо при цьому a ≠ b , то кажуть, що a строго менший ніж b , а b – строго більший ніж a .

Елемент a0 чуму А називається найбільшим (найменшим), якщоa A(a p a0 )( a A(a0 p a)). Найбільший і найменший елементи чуму

називаються його одиницею (1) та нулем (0). Елемент a0

чуму A нази-

вається

максимальним

(мінімальним),

якщо

a A←(a0 p a ) a A←(a p a0 ). Отже, довільний елемент a A або не- порівнянний із максимальним елементом a0 , або менший за нього. Вер-

42

Розділ І. ЛОГІКО-АЛГЕБРИЧНІ УНІВЕРСАЛІЇ

хнім (нижнім) конусом підмножини B A називається сукупність усіх таких елементів a A , що b B(b p a) ( b B(a p b) ). Найменший

(найбільший) елемент верхнього (нижнього) конуса підмножини B на- зивається її верхньою (нижньою) гранню й позначається supB ( inf B ).

Чум можна подавати графічно за допомогою діаграм Гессе. У діаг- рамі Гессе елемент y більший за елемент x , якщо в ній існує шлях

від y до x за стрілками, напрямленими вниз. З урахуванням транзи-

тивності не має сенсу зображати всі стрілки між елементами. Розглянемо приклад чуму й діаграму Гессе для нього. Приклад 1.7. Діаграма Гессе.

Нехай множина A = {1,2,3,4,5,6,7}, а відношення порядку x p y означає y % x = 0 , тобто y ділиться на x без залишку. Тут A – рефлек-

сивний чум, але він не є лінійно впорядкованим (прості числа 3 і 5 непорівнянні).

Діаграма Гессе для чуму A має вигляд:

5

4

6

7

 

2

 

3

 

 

1

 

Тут 1 – найменший елемент в A ; 4, 5, 6 i 7 – максимальні. Найбі- льшого елемента в чумі A немає. Верхня грань sup(2, 3)= 6 , нижня –

inf (2, 3)=1, а верхньої грані sup(2, 5) не існує ■

Довільний чум A називається індуктивним, якщо будь-який його зростаючий ланцюг a1 p a2 p ...an p ... має найменшу верхню грань

∞

 

 

 

a = ai . Відображення f : A → A називається монотонним, якщо для

i =1

 

з умови x p y

випливає f (x )p f (y), і неперервним, як-

всіх x,y Df

що

для

будь-якого

ланцюга елементів a1 p a2 p ...an p ...

∞

∞

 

 

f ( ai

) = f (ai ). З неперервності відображення випливає його моно-

i =1

i =1

 

 

43

ПРОГРАМУВАННЯ

тонність (див. вправу 25). Найменший елемент в А (якщо він існує)

називається його нулем. Елемент a

 

називається нерухомою точкою

відображення f

 

: A → A , якщо f (a) =a . Має місце

 

 

 

 

 

 

 

 

Теорема 1.1 (про нерухому точку). Нехай A – індуктивний чум

із

нулем

ε ,

а

 

 

f : A → A

– неперервне

відображення. Тоді

елемент

a0

∞

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= f i (ε) – найменша нерухома точка відображення f .

 

 

 

 

 

i =0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

∞

 

 

∞

 

∞

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (a0 ) =

 

 

 

 

 

 

 

Доведення.

 

За

означенням

f i +1(ε)

= f i (ε)=

f i (ε) = a0 .

Отже,

a0

є нерухомою точкою f

 

 

 

 

 

i =0

 

i =1

 

i =0

 

 

 

. Те,

що вона найменша,

випливає з

монотонності f

 

(див. вправу 26) ■

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Аналогічна теорема (про нерухому точку) має місце і для n -арних

неперервних

 

 

 

 

відображень

 

 

 

f : An → A

 

 

таких,

що

f (x1,...,xn ) = (f1(x1,...,xn ),..., fn (x1,...,xn )), де відображення

fi

непере-

рвні,

а

порядок

 

на

векторах

 

визначається

 

покомпонентно:

(a1,...,an ) p (a1′,...,an′

) a1 p a1′,...,an p an′

. Найменшою нерухомою точ-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

∞

 

 

 

 

∞

 

 

 

 

кою відображення

 

f

 

 

 

= ( f1(k )(ε,...,ε),..., fn(k )(ε,...,ε)),

 

буде вектор a

0

 

 

 

 

 

 

 

 

 

 

 

(k +1)(x ,...,x

 

 

 

 

k =

0

 

 

 

k =

0

 

 

 

де

f

(0)(x ,...,x

n

) = x

,

f

n

) = f

(f

(k )(x ,...,x

n

),..., f

(k )(x ,...,x

n

))

 

i

1

 

 

i

 

i

1

 

 

 

i

1

1

 

n

1

 

для i =1,n (див. вправу 28).

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

Чум, в якому для кожних двох елементів існують верхня й нижня грані, називається структурою. Структура називається повною (буле- вою алгеброю), якщо верхня й нижня грані існують для будь-якої її під- множини. Прикладами повної структури є булеві алгебри: а) істиннісних значень {0,1} з операціями диз'юнкції та кон'юнкції (взяття верхньої й

нижньої граней sup та inf , відповідно); б) множини, яку ми розглянули

вище. В останньому прикладі нижню й верхню грані двох і довільної кі- лькості множин задають операції перетину й об'єднання. Не випадково

в літературі часто для довільних чумів терми sup(a,b) та inf (a,b) запи-

сують відповідно a b та a ∩b . Для повних структур виконуються всі закони булевої алгебри множин (див. вправу 24).

Фактор-класами еквівалентності R на A називаються сукупності еквівалентних між собою елементів A . Клас еквівалентності, якому

44

Розділ І. ЛОГІКО-АЛГЕБРИЧНІ УНІВЕРСАЛІЇ

належить елемент a , позначається [a]R , або просто [a], для фіксованого R . Сукупність A/R = {[a] : a A} називається фактор-

множиною множини A , а її потужність – індексом R . Процес переходу від довільної множини до її фактор-множини називається факторизацією й відіграє надзвичайно важливу роль у процесах інформаційного моделювання систем.

* Література для CР: множини й відношення – [2, 66, 95, 97, 105, 123]; теорія нерухомої точки – [14, 52, 82, 118, 148].

Контрольні запитання та вправи

1.Дати означення множини.

2.Що таке характеристична й частково характеристична функції?

3.Сформулювати закони булевої алгебри множин.

4.Довести за допомогою діаграм Ейлера – Венна закони 3)–7) булевої алгебри.

5.Довести за допомогою діаграм Ейлера – Венна, що такі три

твердження попарно еквівалентні: а) A B ; б) A ∩ B = A ;

в) A B = B .

6. Спростити вирази:

а) A ∩ B B ;

б) (A ∩ B ∩C ∩ X ) (A ∩C) (B ∩C ) (C ∩ X ),

в)(A ∩ B ∩ X ) (A ∩ B ∩C ∩ X ∩Y ) (A ∩ X ∩ X ) .

7 ** . Нехай A – певна множина. Рівнянням у булевій алгебрі множин B (A)= {2A ; ,∩,\, , } з одним невідомим X називається формула R(A1,...,An ,X ) = (*), де вираз у лівій частині – Ω2 -терм булевої алгебри множин, побудований за допомогою символів операцій алгебри з констант-підмножин A1,...,An A і невідомого X . Наприклад, B C ∩ X = .

З'ясувати, за яких умов рівняння (*) має розв'язок і знайти всі його розв'язки [123].

8.Що таке індексована множина?

9.У чому полягає різниця між сильним і слабким індексуванням?

10.Дати визначення прямої суми множин.

11.Навести приклади застосувань слабкого й сильного індексувань.

12.Чим відрізняються: а) послідовності від підпослідовностей і кортежів; б) кортежі від векторів?

13.Що таке відображення?

45

ПРОГРАМУВАННЯ

14.У чому полягає різниця між відображенням і відповідністю? Проілюструвати прикладами.

15.Яке відношення називається: а) рефлективним; б) симетричним; в) транзитивним; г) антисиметричним; д) частковим порядком; е) лінійним порядком; є) еквівалентністю; ж) структурою, повною структурою? Навести відповідні приклади.

16.Дати означення монотонного й неперервного відображень. Навести відповідні приклади.

17.Що таке нерухома точка відображення?

18.Що таке фактор-множина та індекс еквівалентності?

19.Що таке факторизація множини?

20.Визначимо відношення на словах: u v , якщо слово u є префіксом слова v . Чи буде це відношення: еквівалентністю, лінійним або частковим порядком, структурою на множині всіх слів X * у алфавіті X ?

21.Чи буде сукупність{a,aab,aa,bb,bbc,ab,bbb,d; } чумом?

Якщо так, то побудувати відповідну діаграму Гессе.

22.Нехай R – довільне бінарне відношення. Довести, що будь- яке транзитивне надвідношення R містить Rn , n ≥ 0 .

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

24.Довести закони 1)-7) булевої алгебри множин для: а) алгебри істиннісних значень з операціями кон'юнкції та диз'юнкції й запереченням; б) довільної повної структури з нулем і одиницею, доповнення a елемента a в якій визначається системою рівностей a ∩a = 0 та a a =1.

25 * . Показати, що з неперервності відображення випливає його монотонність.

26 * . Показати, що нерухома точка a0 з доведення теореми 1.1 є найменшою. Скористатися монотонністю відображення f .

27.Нехай A – індуктивний чум із нулем ε . Показати, що декар- товий степінь An є індуктивним чумом із нулем (ε,...,ε).

28 * . Довести теорему про нерухому точку для n -арних непере- рвних відображень.

46

Розділ І. ЛОГІКО-АЛГЕБРИЧНІ УНІВЕРСАЛІЇ

1.3. Функції як обчислювальні процедури

¾Функціїпроцедури

¾Традиційні способи специфікації функцій

¾Алгебричні специфікації

¾Функції як обчислювальні процедури

Ключові слова: функція-процедура, сюр'єкція, ін'єкція, бієкція, графік функції, композиція рангу 1, композиції множення, розгалуження, обхід, ітерація, повторен- ня, недетермінований вибір, детермінований вибір, регулярна функція, перестанов- ка, ототожнення й параметризація аргументів, введення фіктивних аргументів, підстановка (суперпозиція), ітерації, повторення, регулярна n -арна операція, обчис- лювальний простір, обчислювальна процедура, функція керування, обчислення за процедурою, функція як обчислювальна процедура.

Поняття функції належить до найважливіших понять інформатики. Відомі два різні тлумачення даного поняття: процедурне16 й теоретико-множинне. У першому випадку функція (від лат. functio – виконання, звершення) розглядається як спосіб для отримання певного результату за аргументами, у другому – як синонім теоретико-множинного відображення.

Ці два терміни ввійшли в математичну практику не випадково. Вони мають принципово різний смисловий відтінок. Коли говорять про певне відображення f , то цікавляться тільки тим, чи є пара

(a,b) елементом підмножини

f A B ,

тобто чи існує відповідний

зв'язок між елементами a A

та b B

(екстенсіональний підхід).

Питання про природу цього зв'язку, яким чином він забезпечується, вважається непринциповим. У випадку ж функції-процедури f її

теж розглядають як можливість поставити у відповідність елементам множини A певні елементи множини B , але на перший план виходить спосіб реалізації такого зіставлення при визначенні f

(інтенсіональний підхід).

Процедурний підхід сформувався історично першим (термін запровадив Г. Лейбніц). Однак він був майже витіснений теоретико- множинним на початку ХХ ст. у зв'язку з тотальним переходом

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

47

ПРОГРАМУВАННЯ

математики на нову основу. Достатньо послатись на самі назви сучасних класичних математичних дисциплін – функціональний аналіз, теорія функцій комплексних змінних тощо. Сьогодні процедурний підхід поступово повертає свої позиції завдяки бурхливому розвитку конструктивної математики та інформатики. Поняття функції-процедури є центральним у теорії алгоритмів і програмології, мовах програмування тощо.

Даний підрозділ присвячено функціям як процедурам. Ключовими будуть засоби подання таких функцій.

1.3.1. ФУНКЦІЇ-ПРОЦЕДУРИ

Нехай U – довільна множина.

Функція f – це процедура, яка може бути застосована до одного або кі-

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

– послідовності дій, яке завершується побудовою результату функції.

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

Увага! Надалі нас будуть цікавити в основному детерміновані фу- нкції. Випадки, коли це не так, будуть спеціально зазначатись ►

Існує тісний взаємозв'язок між функціями й алгоритмами. Можна розглядати загальне поняття – функцію та його конкретизацію – алго- ритм. Будь-який алгоритм є функцією-процедурою, а чи буде остання алгоритмом, залежить від способу її визначення. Це обговорювати- меться детально в підрозд. 2.1.4.

Терми f (x ), fx та xf використовуються для запису результату за- стосування функції f до аргументу x . Ураховуючи, що результат та- кого застосування за означенням може бути відсутній, будемо дода- вати до вказаних термів праворуч символ ↓, якщо даний результат

гарантовано існує. З кожною функцією

f пов'язані дві області – ви-

значення Df = {x U : f (x) ↓} і значень

E f = {y U : y = f (x)& x Df } .

Щоб показати цей зв'язок, функцію f подають у вигляді f : Df → E f

48

Розділ І. ЛОГІКО-АЛГЕБРИЧНІ УНІВЕРСАЛІЇ

і називають усюди визначеною на Df . На практиці буває простіше

описати не самі області визначення та значень даної функції, а певні їхні надмножини, наприклад T і R . Щоб підкреслити, що функція f

розглядається над цими загальнішими областями, її записують як f : Т→R і називають частковою, а пару (T ,R ) – типом функції. Будемо вважати вираз f (x ) беззмістовним (тобто рівним # ) для всіх аргуме- нтів поза областю визначеності функції. Графіком функції f назива-

ється відповідність Γf між множинами Df

і

E f , що складається з

усіх можливих пар вигляду (x, fx ), тобто Γf

=

{(x, fx ): x Df }. Графі-

ки функцій використовуються для їх екстенсіонального опису. Функ-

ції f : A → B та g : C → D називаються еквівалентними (f

g ), якщо

x A C fx = gx (*). Наприклад, функції

f0 : N → N та

f : N → N ,

def

 

def

 

що визначаються термами f0x = x / x та

fx = 1, нееквівалентні. Їх

розмежовує точка x = 0 . Дійсно, f0 0 = # ,

а

f 0 =1. Якщо область ви-

значення Dg функції g є надмножиною області визначення Df фун- кції f (Df Dg ) і виконується умова x Df (fx = gx ), то кажуть, що функція g є еквівалентним накриттям f , або просто накриттям f . В останньому прикладі f є накриттям f0 . Еквівалентні функції

називаються рівними, якщо їхні типи збігаються. Усюди визначена функція f : A → B називається:

1)однозначною (ін'єкцією) x,y A (fx = fy → x = y) ;

2)сюр'єкцією y B x A y = fx ;

3)взаємооднозначною (бієкцією), якщо вона є ін'єкцією та сюр'єкцією.

1.3.2. ТРАДИЦІЙНІ СПОСОБИ СПЕЦИФІКАЦІЇ ФУНКЦІЙ

У програмуванні означення (дескрипції) функцій називають спе- цифікаціями. Розрізняють теоретико-множинні та процедурні специ- фікації. Перші пов'язані з описом графіків функцій, а другі – безпосе- редньо з описом процедур. Зазвичай з опису графіка функції не ви- пливає її специфікація як процедури. Не завжди за ним, наприклад, можна практично віднайти значення функції на тому чи іншому ар- гументі чи зробити це ефективно. Однак наявність такого опису є важливою передумовою для подальшого уточнення функції, тому ро-

49

ПРОГРАМУВАННЯ

зробник інформаційних систем повинен володіти обома способами специфікації – як теоретико-множинним, так і процедурним.

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

Позначатимемо відображення малими грецькими літерами α,β,γ,K. За означенням образ відображення α(x ) завжди є одноелементним,

тому будемо ототожнювати його із цим елементом, а сам елемент на- зивати значенням відображення α на x і позначати, як і у випадку

функцій, αx та

xα . Продовжуючи аналогію з функціями, відобра-

ження α A ×B

також будемо записувати як α : A → B і говорити

про області визначення й значення відображення, а також про ін'єк- тивні, сюр'єктивні та бієктивні відображення. Перші два ще назива-

ють відображеннями в та відображеннями на, відповідно.

Розпочнемо розгляд зі словесного (нематематичного ) способу по- дання відображень. Він може вважатися найбільш універсальним і полягає в тому, що зв'язок між аргументами й результатами відобра- ження формулюється в термінах природної мови. Словесні специфі- кації використовуються насамперед на етапах аналізу вхідних сис- тем, обміну проміжними результатами та інформацією в процесі ро- боти над проектами тощо. Однак за всієї зручності вони мають і сут- тєві недоліки. Існує небезпека неповноти, нечіткості й неоднозначно- сті таких специфікацій. До того ж виникають серйозні проблеми при спробі їхньої процедуризації, тобто при намаганні перейти від слове- сно поданого відображення до еквівалентної йому функції, особливо при автоматизації цих процесів.

Одним із найпростіших і найуживаніших на практиці способів по- дання відображень є табличний. Нехай область визначення відобра-

ження α скінченна й має вигляд Dα = {x1,x2,Kxn }, а Eα = {y1,y2,Kyn },

yi = αxi

– область значень

α . Тоді відображення

α

можна задати у

вигляді таблиць:

 

 

 

 

 

 

 

 

 

 

 

 

 

x1x2...xn

 

 

x

 

x

2

 

…

 

 

x

n

 

 

 

 

 

 

 

 

 

або

 

1

 

 

 

 

 

 

 

 

 

y

 

y

 

 

…

 

 

y

 

 

y1y2....yn

 

 

 

2

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

n

 

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

50