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

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

.pdf
Скачиваний:
52
Добавлен:
07.03.2016
Размер:
4.72 Mб
Скачать

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

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

Інший відомий спосіб подання відображень геометричний. Він полягає в розташуванні за певним правилом (масштабом) усіх елеме- нтів областей визначення та значень на двох перпендикулярних пря- мих, які перетинаються в точці O і називаються осями абсцис (вісь OX ) і ординат (вісь OY ). При цьому аргументи розташовуються на

першій осі, а результати на другій. Тоді кожній парі (x,αx ) відо-

браження α відповідає точка на квадратній площині, якій належать осі OX та OY (рис. 1.3).

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

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

Y

αx

O

x

X

Рис. 1.3

51

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

 

 

 

0

 

 

1

 

 

 

 

 

 

0

 

1

 

 

0

 

 

1

 

 

0

1

0

1

 

0

1

 

 

0

 

1

0

1 0

1 0

1 0

1 0

1

0

1

0

1

0

1

0 1 2 3 4 5 6 7 8 9 A B C D E F

Рис. 1.4

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

1.3.3. АЛГЕБРИЧНІ СПЕЦИФІКАЦІЇ

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

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

52

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

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

бражень. Композицією рангу 1 над множиною A будемо називати будь-

яку операцію вигляду K : A ×...× A × (A A) ×...×(A A) (A A). Звичайні n -арні операції на A належать до композицій рангу 0. Дві композиції

рангу 1 уже зустрічалися вище множення ( o) та обернення ( 1 )17.

Зазначимо, що результат обернення є відображенням тільки для сюр'єктивних відображень. Нехай p предикат на A ,

α : A A ,β : A B , γ : A C довільні відображення.

Обмеженням відображення β

за предикатом p називається відо-

 

def

 

браження

β ↓p = β ∩ p(A)×B .

Якщо p(a) =1, то результатом обме-

ження β ↓p

на елементі a буде значення βa , якщо ж p(a) = 0 , то зна-

чення не визначене.

Розгалуженням за предикатом p відображень β, γ називається

ві-

дображення (p → β|γ) = β ↓p γ ↓¬p .

Таким чином, якщо p(a) =1,

то

результатом розгалуження (p → β|γ)

на елементі a буде значення βa ,

якщо ж p(a) = 0 , то значення γa .

 

 

Обходом за предикатом p відображення β називається відобра- ження (p → β) = β ↓p i¬p . За межами області істинності предиката p обхід (p → β) діє як одиничне відображення.

Звуженням відображення β за предикатом p на B називається відображення β ↑p : A B таке, що β ↑p = β I A × p(B) .

Позначимо через αp* замикання відображення α відносно преди-

ката p на A , тобто αp* = ((α ↓p ) p )* .

Ітерацією за предикатом p відображення α називається відобра-

def

ження { p → α} = ((αp )* oα) ¬p . За означенням { p → α}(a) = b , якщо

існує m 0 , за якого послідовність b0 = a, bi = f (bi 1) , i =1,m , є такою,

m 1

що bm = b і виконується умова & p (bi )& ¬p (b).

i =0

17 Обернення не зберігає процедурність.

53

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

Приклад 1.8. Функція Gcd = {q (p → α|β)}opr1 обчислює найбі- льший спільний дільник двох натуральних чисел, де α(n,m) = (n m,m) ,

β(n,m) = (n,m n), p(n,m) = m < n та q(n,m) = n m для всіх n,m N .

Про коректність функції Gcd див. прикл. 1.10

Повторенням за предикатом p відображення α називається відо-

def

браження [p → α] = α{ p → α} .

Недетермінованим вибором відображень α1,...,αn : A A за пре-

дикатами

 

p1,..., pn називається відповідність (p1 → α1 ||

|| pn → αn )

def

n

 

αi p .

 

=

U

 

 

 

 

i =1

i

 

 

 

 

Предикат

pi

іноді називають охороною відображення αi . Якщо

охорони p1,..., pn

 

попарно не перетинаються, то результат недетермі-

нованого вибору (p1 → β1 || || pn → βn ) буде теж відображенням.

Приклад 1.9. Нехай sign(x ) = (x < 0 → −1||x = 0 0||x > 0 1) та

± x = (x > 0 x || x>0 → − x ). Тоді перший вибір є відображенням,

а другий ні ■

Нехай p1,..., pn довільні охорони, деякі з яких виділені як заклю- чні. Детермінованим вибором відображень α1,...,αn : A A за охоро- нами p1,..., pn називається відображення

(p1 → α1 | … | pn → αn )

def

n i 1

¬pk (a)& pi (a )→ γi |#) ,

=

( &

 

 

i =1 k =1

 

де γi = αi , якщо охорона pi є заключною, і γi = αi ...αn , якщо ні. Якщо

всі умови на певному елементі одночасно хибні, то значення вибору на ньому не визначене.

Наведені композиції разом із множенням і логічними зв'язками на- зиваються регулярними18. Як уже зазначалось, вони зберігають фун- кціональність аргументів. Функції, що отримують за їхньою допомо- гою, теж називаються регулярними. Процедури обчислення значень регулярних функцій формулюються досить просто. Наприклад, щоб знайти результат добутку fg на елементі a , достатньо за правилом g

знайти результат g(a) і до нього застосувати правило функції f . Щоб

18 Обернення не є регулярною композицією

54

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

знайти результат b ітерації {p f } на елементі a , необхідно спочатку перевірити предикат p на a . Якщо він виконується, то необхідно об- числити за правилом f значення a1 = fa , у протилежному випадку покласти b = a ; потім перевірити предикат p на a1 . Якщо він вико- нується, то необхідно обчислити за правилом f значення a2 = fa1 , у протилежному випадку покласти b = a1 тощо. Даний процес побудо- ви послідовності a0 = a , a1 = fa0 , a2 = fa1 ,або завершиться на яко- мусь n -му кроці, n 0 , з результатом b = an , або буде продовжуватись

до нескінченності з беззмістовним результатом. Аналогічно формулю- ються правила й для решти композицій.

Нехай A довільна множина. Відображення вигляду An A на- зиваються n -арними операціями. Визначимо регулярну алгебру n -арних операцій.

Нехай α = (i1,i2,...,in ) – довільна перестановка чисел (1,2,...,n). Компо- зиція перестановки аргументів довільній операції f : An A ставить у

відповідність операцію f α : An A таку, що f α(a ,...,a ) = f (a ,...,a ).

 

 

 

 

1

n

i

i

Композиція ототожнення

аргументів

 

 

 

1

n

 

 

довільній

 

операції

f : An A ставить у відповідність операцію f τ : An A таку, що

f τ(a ,a

2,

...,a

) = f (a ,a ...,a

n

) .

 

 

 

1

n

1 1

 

 

 

 

Композиція параметризації аргументів параметру a A й операції f : An A ставить у відповідність операцію fa : An 1 A таку, що

fa (a2,...,an ) = f (a,a2,,...,an ).

 

Композиція введення

фіктивних аргументів

довільній операції

f : An A ставить у відповідність операцію f φ : An +1 A таку, що

f φ(a ,a

2

...,a ,a

) = f (a

2

,...,a

).

1

n n +1

 

n +1

 

Композиція підстановки (суперпозиції) операції

f : Am A й операці-

ям g1,...,gm : An A ставить у відповідність операцію

S(f ,g1,...,gm ): An A :S(f ,g1,...,gm )(a1,...,an ) = f (g1(a1,...,an ),...,gm (a1,...,an )).

Нехай prn : An

A ,

1 i n

функція проектування за i -м ком-

i

 

 

 

 

 

 

 

 

понентом, тобто prn (a ,...,a ) = a

i

для < a ,...,a

n

> An .

Підстановку

S (g,g1, prn2..., prnm )

i 1

n

 

1

 

 

умовимось позначати коротко: S(g,g1).

 

55

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

Позначимо через

fB* замикання операції

f

: An A

за першим

 

 

 

 

 

 

 

B A , тобто fB* =

 

 

компонентом відносно підмножини

U f n , де

 

 

 

 

 

 

 

 

 

 

 

 

 

n =0

 

 

f 0 = En +1 = {(< a,a

2

,...,a

n

>,b) An × A : a = b} ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f n (a ,...,a

n

) = f

B×A

n 1 (f n 1(a ,...,a ),a

2

...,a ),

n > 0 .

1

 

 

 

 

 

1

n

 

n

 

 

 

Композиція ітерації предикату

p на

An

та операції

 

f : An A

 

 

 

 

 

 

 

 

 

 

 

 

*

¬p(An )

 

ставить у відповідність операцію {p f }= ((f p(An )) )

 

 

. За озна-

ченням { p f }(a1,...,an ) = b , якщо існує m 0 , за якого послідовність

b0 = a1, bi

= f (bi 1,a2,...,an ), i =

1,m

, є такою,

що bm = b і виконується

m 1

p (bi ,a2,...,an )& ¬p (b,a2,...,an ).

 

умова &

 

i =0

 

 

 

 

Композиція повторення предикату p на

An і операції f : An A

ставить у відповідність операцію [p f ]= S({ p f }, f ).

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

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

операції. Нехай F = {f1..., fn } та P = {p1..., pm } довільні сукупності

операцій і предикатів на An . Операції, отримані з елементів F UP за допомогою регулярних композицій, називаються регулярними n -арними операціями над базисом F UP .

Регулярні n -арні операції над достатньо простими базисами є уні- версальними алгоритмічними системами (див. вправу 15).

Для подання регулярних операцій використовують регулярні терми у спрощеній префіксній та інфіксній формах. Наприклад, похідну регулярну операцію S(×,2,sin(x)) записують у вигляді

звичайного інфіксного терму 2sin x , операцію [x > 0 S(ln,x /2)|0] –

як [x > 0 lnx /2|0] тощо.

Неявні засоби специфікують відображення (відповідності) за до- помогою спеціальних формул ПЧП чи формул числень вищих поряд-

56

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

ків, які описують зв'язок між аргументами й значеннями відображень у певній алгебрі. Такі формули називаються рівняннями або систе- мами рівнянь. Це можуть бути як звичайні рівняння з предметними змінними, так і (що важливіше для застосувань) функціональні, у яких невідомими є не предметні змінні, а функціональні зі значення- ми відображеннями чи відповідностями. Наприклад, звичайне рів- няння xy =1 із невідомим y визначає відображення-гіперболу, а рів-

няння y2 x2 =1 відносно y двозначну відповідність y = ± x2 +1 .

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

У теорії найбільш вивчені канонічні функціональні рівняння вигляду f = Φ(f ), де Φ певна композиція на множині відображень. Напри-

клад, функціональне рівняння f (x )= (x >100 x 10| f (f (x +11))), де

x пробігає цілі числа, а f – функціональна змінна типу Z Z , має кіль- ка розв'язків, найменшим серед яких (відносно теоретико-множинного включення) є відображення Fp (x ) = (x >100 x 10|91), відоме як 91-

ша функція Мак-Картні. Найменшим розв'язком іншого рівняння f (n ) = (n = 0 1,n × f (n 1)), де n пробігає натуральні числа, а f фу-

нкціональна змінна типу N N , – є функція-факторіал n !.

Як ще один приклад розглянемо канонічну систему рівнянь у

регулярній

алгебрі відповідностей:

(*) xi = Ri (x1,...,xn ),i =

1,n

,

де

Ri (x1,...,xn )

регулярні вирази відносно невідомих відповідностей

x1,...,xn і,

можливо, деяких заданих відповідностей, побудовані за

допомогою

чотирьох композицій:

множення o, об'єднання

 

(частковий випадок недетермінованого вибору двох відповідностей

f g = (1 f ||1 g)), ітерації *

за тотожно-істинним предикатом і

суперпозиції. Сукупність B(A × A) усіх відповідностей на множині A є

чумом відносно звичайного

теоретико-множинного

включення:

f1 p f2 xf1y xf2y . Найменшою верхньою гранню

зростаючого

ланцюга відповідностей є їхнє множинне об'єднання, а нулем

порожня відповідність ε . Композиції f

o f

2

, f

1

f

2

та f *

неперервні

1

 

 

 

 

 

за кожним з аргументів (див. вправу

 

16).

 

Ураховуючи, що

57

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

суперпозиція неперервних відображень неперервна, до системи (*) можна застосувати теорему про нерухому точку (див. підрозд. 1.2.5) і отримати таку теорему.

Теорема 1.2. Система рівнянь (*) має найменший розв'язок

 

 

 

 

 

означенням Ri(0)(x1,...,xn ) = xi ,

( R1(k )(ε,...,ε),..., Rn(k )(ε,...,ε))

,

де за

k =

0

 

k =

0

 

 

 

 

 

 

 

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

 

) = R (R(k )(x ,...,x

 

),...,R(k )(x ,...,x

 

)) для i =

 

.

n

n

n

1,n

i

1

i

1 1

n

1

 

 

 

Наслідок. Розв'язки лінійних функціональних рівнянь з одним

невідомим x вигляду

x = f o x g та

x = x o f g є регулярними

відносно коефіцієнтів f

і g .

 

Доведення. З теореми 3.1 випливає,

що найменший розв'язок x0

першого рівняння збігається з

 

 

R(k )(ε) , де

 

 

k =0

 

 

R(x) = f o x g,R(k )(x) = f k o x f k 1 og ... f og g =

k 1

x0 =

= f k o x ( f i og) . Тоді

f k og = ( f k )og = f * og .

i =0

 

k =0

k =0

Аналогічно для другого рівняння отримуємо найменший розв'язок x0 = g o f *

1.3.4. ФУНКЦІЇ ЯК ОБЧИСЛЮВАЛЬНІ ПРОЦЕДУРИ

Повернемось до означення функції та спробуємо його формалізувати. Як випливає з означення, для уточнення поняття функції необхідно (і достатньо) уточнити поняття процедури й обчислення. Розпочнемо з обчислень.

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

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

58

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

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

Нехай

< Γ,< > –

довільна лінійно впорядкована сукупність,

яку

будемо

трактувати

як часовий простір19. Позначимо τ+ та

τ

безпосередньо наступний і попередній моменти часу відносно моменту τ . Вважається, що в часовому просторі немає найменшого й найбільшого елементів.

Інформаційну складову процесів обчислень подають стани. На да- ному етапі нас не буде цікавити їхня структура. Нехай S довільна множина станів.

Двійка Π = Γ,S називається обчислювальним простором, а пари (τ,s) Γ ×S конфігураціями простору.

 

Нехай

τ,τ1,τ2 Γ .

Покладемо

+

 

Γτ = {τ Γ|τ ≤ τ

} , Γτ = Γτ \ {τ} ,

Γ= Γ \ Γ ,

[τ ,τ

] = {τ : τ

≤ τ ≤ τ

2

} . Абстрактним процесом в обчислю-

τ

τ

1 2

1

 

 

 

 

 

 

вальному просторі Π із початком у момент часу τ

називається дові-

льне відображення вигляду

p : Γτ S ,

а абстрактним процесом на

інтервалі

[τ1,τ2 ] – довільне

 

 

відображення вигляду

p : [τ1,τ2 ] S .

Стани pτ ( pτ1 ),

pς , τ < ς

( τ1 < ς < τ2 ) та pτ2 називаються початковим,

проміжними й заключним станами процесу p .

 

 

 

Візьмемо довільну функцію f : S S та її аргумент s . Якщо процес

p

розпочинається у стані s і його заключний стан збігається з fs , то

кажуть, що він подає значення функції

f на аргументі s . Зафіксуємо

певний момент часу τ0 як початковий. Сукупність процесів Ξ , що роз- починаються в момент τ0 : 1) подає функцію f , якщо для кожного її ар-

гументу з області визначення ця сукупність містить процес, який подає її значення на даному аргументі; 2) строго подає f , якщо вона подає f

і не містить "зайвих" процесів (тих, що не подають значення f ).

Тепер серед усіх абстрактних процесів у обчислювальному просторі Π виділимо процеси-обчислення та їхні сукупності. Для цього зафік-

суємо певну сукупність ={ fi : S S | i 0} елементарних операцій

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

19 У деяких випадках часовий простір може мати складнішу структуру.

59

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

ментарних перетворень його поточного стану. Покладемо її як таку,

що має вигляд δ :

Γ ×S 2 20.

Нехай Π = Γ,S

довільний обчислювальний простір.

Обчислювальною процедурою над простором Π із сукупністю елементарних перетворень і функцією керування δ називається трійка

P = Π, ,δ .

Кожна обчислювальна процедура породжує певну сукупність обчи- слювальних процесів у просторі Π. Нехай τ Γ та s S довільні мо- мент часу і стан. Обчислення p : Γτ S за процедурою P із початком

у момент часу τ і початковим станом

 

s0 визначається рекурентно:

pτ = s

і для всіх ς > τ

pς = f

ς

(pς), де f

ς

δ(ς, pς). Функція керування

0

 

 

 

 

за поточним моментом часу ς і станом pςу попередній момент часу

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

обчислення p у момент часу ς переходить від попереднього стану

pςдо наступного стану pς і позначатимемо цей факт pςP pς .

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

недетермінованих процедур); б) рівно один (у випадку детермінова-

них процедур); в) жодного (обчислення зупиняється).

Обчислення p за процедурою P на інтервалі [τ1,τ2 ] визначається як обмеження відповідного обчислення p за процедурою P із почат- ком у момент τ1 на часовий інтервал [τ1,τ2 ] . Казатимемо, що обчис- лення p у цьому разі розпочинається станом pτ1 і закінчується ста- ном pτ2 , і позначатимемо цей факт pτ1 P pτ2 .

Зазвичай інтерес становлять не всі можливі обчислення в процеду- рі, а насамперед ті, що розпочинаються в певний фіксований момент часу з певних виділених вхідних станів і закінчуються певними виді- леними вихідними станами. Тому введемо поняття ініціальної обчис- лювальної процедури P(S0,Sfin,τ0 ) над простором Π як четвірки

20 У загальному випадку функція керування може задавати й перетворення часового компонента (при цьому в процесі обчислень можливі стрибки в часовому просторі як уперед, так і назад) [42].

60

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]