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

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

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

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

P,S0,Sfin,τ0 , де P певна процедура над простором Π, S0 S та

Sfin S

виділені підмножини відповідно вхідних і вихідних станів,

τ0 Γ

початковий момент часу. Результативним назвемо обчис-

лення p у процедурі P , що розпочинається в момент часу τ0 із пев- ного початкового стану pτ0 = s0 S0 , закінчується у вихідному стані, а всі його проміжні стани невихідні. Для результативного обчислення p на інтервалі [τ0,τ] останній його стан pτ називається заключним і

є результатом. Результат позначається P* (s0 ) і є єдиним, якщо фу-

нкція керування однозначна. У деяких випадках за результат обчис- лення береться не сам заключний стан, а значення на ньому певного результуючого часткового відображення Val : Sfin B . Також вва-

жають заключними ті скінченні обчислення, на останніх станах яких не визначена функція керування.

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

міжних, а результат позначається P** (s0 ).

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

Ми уточнили поняття процедури й обчислення в ній. Це дозволяє уточнити й поняття функції як процедури.

Функціямипроцедурами називаються ініціальні обчислювальні процедури над простором Π .

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

З кожною функцією-процедурою P(S0,Sfin,τ0 ) пов'язані два її гра- фіки відповідності на вхідних станах P* :S0 S fin та P** :S0 S fin , значення яких на початковому стані s0 S0 складають результати всіх результативних і гіперрезультативних обчислень із початком у момент τ0 на s0 . Про графіки P* та P** кажуть, що їх подає, або об-

числює, функція P .

61

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

Багато прикладів функцій-процедур можна знайти в математиці, зо- крема в алгебрі й геометрії. Наприклад, задачі з планіметрії на побудову за допомогою циркуля й лінійки є фактично задачами на побудову пев- них функцій. Станами тут є сукупності фігур на площині, які можуть бути побудовані за допомогою циркуля й лінійки та операцій виділення довільної точки площини, точок перетину фігур, операцій іменування точок і фігур, а також умовних варіантів подібних операцій. Часовий простір тут дискретний і збігається з натуральними числами. Цікава си- туація виникає у випадку існування кількох розв'язків задачі. Розв'язок може забезпечити недетермінована функція, але її можна детермінізу- вати. Якщо, наприклад, для розв'язку задачі певний Виконавець вико- ристовує дошку й необхідно побудувати два різні розв'язки, то після по- будови першого дошка зазвичай витирається і функція повертається в один із попередніх станів, але не в попередню конфігурацію момент часу інший! Завдяки цьому процес обчислення може бути продовжений детерміновано, як того вимагає побудова другого розв'язку.

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

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

ка НСД(a,b) двох натуральних чисел.

Приклад 1.10 (алгоритм Евкліда). Нехай Π = Γ,S

обчислюваль-

ний

простір

із

натуральним часом

Γ = N ,

множиною станів

S = N + ×N + , N +

= N \{0}. Набір операцій

= {α,β}

і функцію керуван-

ня δ

визначимо

так. Для будь-яких

a,b N + ,

τ ≥ 0 покладемо:

α(a,b) = (a b,b),β(a,b) = (a,b a), δ(τ,(a,b))= (a b (a > b → α|β)).

62

 

 

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

Розглянемо

функцію GCD = Π,

,δ та її

ініціалізований

варіант

GCD (S0,Sfin,0)

із

результуючою

операцією

проектування

pr1 , де

S0 = N + ×N + , Sfin

= iN . Нескладно перевірити, що повне обчислення

функції GCD на будь-якому початковому стані s0 = (a,b) є результа- тивним. Дійсно, безпосередньо з означення GCD і співвідношень:

1)gcd(d,d)= d ,

2)(b > a gcd(a,b)= gcd(a,b a)),

3)(b < a gcd(a,b)= gcd(b,a b))

випливає, що останній стан у обчисленні функції GCD із початковим станом s0 = (a,b) матиме вигляд (d,d) для деякого числа d = gcd(a,b),

тому що рано чи пізно компоненти чергового стану стануть рівними, а операції α та β не змінюють найбільший спільний дільник компо-

нентів стану. Кінцевий результат обчислення формує операція проек- тування pr1 (d,d)= d . Таким чином, GCD*(a,b) = gcd(a,b)

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

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

Функції P та Q називаються еквівалентними ( P Q ), якщо відпо-

відності P * та Q* , які вони обчислюють, еквівалентні. Стан функції P(S0,Sfin,τ0 ) назвемо припустимим, якщо він зустрічається серед станів деякого її результативного обчислення. Покладемо Sacc S підмножину всіх припустимих станів процедури P . Для графіків фу- нкцій стани за межами підмножини Sacc зайві. Нехай P (S0,Sfin ,τ0 )

ініціальна функція над простором Π′ із множиною станів Sacc і об-

меженими на Π′ елементарними операціями, функцією переходу та вхідними й вихідними станами процедури P . Очевидно, що функції P та P еквівалентні. Функція, усі стани якої припустимі, називаєть- ся зведеною. Наприклад, наведена вище функція GCD є зведеною.

63

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

Має місце така теорема.

Теорема 1.3. Клас графіків функцій-процедур замкнений відносно усіх регулярних композицій.

Доведення див. вправу 34

Увага! Надалі в тексті слово "функція" буде вживатися в обох смис- лах і в традиційному теоретико-множинному, і як обчислювальна про- цедура. Яке з них мається на увазі буде видно з контексту. Наприклад, у розд. 3 функції це С- та С++-функції, а у формулі O(log2 n) log2 n

це традиційна логарифмічна функція-відображення ►

* Література для CР: функції-процедури – [1, 51, 65, 77, 80, 129]; рівняння в алгебрі відношень – [52]; обчислювальні процедури – [42, 44, 45, 85]; ігрові числення – [1, 100, 126].

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

1.Що таке функція як процедура на змістовному рівні?

2.Пояснити різницю між функцією як процедурою і як відпо- відністю.

3.Що таке графік функції-процедури?

4.Яка різниця між ін'єкцією й сюр'єкцією?

5.Що таке бієкція?

6.Яка роль графіків у поданні функцій?

7.Перерахувати традиційні способи подання функцій. У чому їхні переваги й недоліки?

8.Дати визначення всіх регулярних композицій: а) для унарних функцій; б) для n -арних функцій.

9.Що таке регулярна: а) функція; б) n -арна операція?

10. Довести регулярність функцій над арифметичним базисом:

а) max (x,y);

б) min(x,y);

в) max (x +y + z,xyz );

г) max2 (x +y + z /2,xyz )+1. При

цьому: 1) дозволяються

базові предикати-порівняння; 2) базові предикати відсутні, але є базова функція sign(x); 3) те саме, що й у 2), але

sign(x) замінити на |x |. У 2)-3) використовується лише

композиція суперпозиції.

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

64

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

нталі (при підрахунку знизу вгору). Дано натуральні числа 1 k,l,m,n 8 . Потрібно з'ясувати:

а) чи є поля (k,l ) і (m,n) одного кольору;

б) чи загрожує ферзь на полі (k,l ) полю (m,n); в) чи загрожує кінь на полі (k,l ) полю (m,n).

Розв'язок

оформити у вигляді регулярних функцій

f (k,l,m,n)

над арифметичним базисом (як ходять фігури,

див. у підрозд. 2.1.4).

12 * . З'ясувати, чи містить десяткове подання числа n вхо- дження цифри 3. Знайти кількість таких входжень. Розв'язок оформити у вигляді регулярних предиката й функції над арифметичним базисом.

13 * . Довести, що функція f (n) =

2 +

2 +... + 2

 

є регуляр-

 

 

 

 

 

144424443

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

ною в дійсній арифметиці, доповненій операцією

.

 

 

 

14. Довести: а) регулярність степеневої функції an

у натураль-

ній арифметиці; б) * будь-який регулярний терм для функції

an є циклічним, тобто містить ітерацію або повторення.

 

 

15 ** . Композиція мінімізації μ n -арній функції

f (x ,...,x

n

)

 

 

 

 

 

 

(n 1)-арну

 

1

 

 

ставить

у

відповідність

 

 

функцію

g(x1,...,xn 1) = μ(f (x1,...,xn ) = 0), яка

повертає

 

найменше

значення

a таке, що f (x1,...,xn 1,a) = 0 , і при цьому всі

 

f (x1,...,xn 1,i) для i =

 

визначені. Базови-

значення

0,a 1

ми називаються функції-проекції по i -му компоненту

prn ,

 

 

 

 

 

 

 

 

 

 

 

i

 

n > 0 ,

i =

 

,

тотожний

нуль

0(x) = 0

і

функція

1,n

s(x) = x +1. Функція називається частково-рекурсивною,

якщо вона належить замиканню множини базових функцій відносно композицій суперпозиції, примітивної рекурсії (див. підрозд. 2.6.2) і мінімізації. Показати, що будь-яка ча- стково-рекурсивна функція є регулярною n -арною операці- єю над базисом, що включає всі наведені вище базові фун- кції та предикати порівняння "<" і "=" [15, 94].

16

* . Довести неперервність відповідностей f

o f

2

, f

1

f

2

та

 

1

 

 

 

 

f * за кожним з аргументів.

65

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

17.Що таке обчислювальний простір?

18.Що таке процес у обчислювальному просторі?

19.Що означає: сукупність процесів подає функцію?

20.Дати означення обчислювальної процедури й обчислення за нею.

21.Яка роль функції керування в обчислювальній процедурі?

22.Що таке обчислення й гіперобчислення?

23.Що таке детермінована й недетермінована функції?

24.Що таке зведена функція-процедура?

25.Що означає: дана процедура обчислює певну відповідність на станах?

26.Побудувати функцію для поділу відрізка навпіл за допомо- гою циркуля й лінійки. У цій і зад. 23-26 для нотації функ- цій використовувати українську мову.

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

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

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

30.Нехай x числова змінна і припустимими є операції мно- ження з можливим іменуванням результату й зупинки stop .

Яке значення обчислює така послідовність операцій: а) знайти значення x * x і позначити його x2 ;

б) знайти значення x2 * x2 і позначити його x4 ; в) знайти значення x2 * x4 і позначити його x6 ; г) зупинитись: значення x6 результат?

Написати функцію для даного обчислення.

31. Написати функції для обчислення значень степенів. Припу- стимі операції ті самі, що й у вправі 23. Дію "знайти зна- чення a і позначити його v " будемо формально записувати як v a . Бажана послідовність операцій із мінімальною кі- лькістю множень:

а) x10 ;

д) a5 та a19 ;

з) a4 та a20 ;

к) a28 .

б) x12 ;

е) a15 ;

и) a5 та a13 ;

 

в) x16 ;

є) a21 ;

і) a2 , a5 , a17 ;

 

г) x32 ;

ж) a64 ;

й) a4 , a12 , a28 ;

 

66

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

32. Сформулюємо поняття копії та реалізації функцій. Нехай Π1 = Γ,S1 і Π2 = Γ,S2 довільні обчислювальні простори,

P1 = Π1, 1,δ1 та P2 = Π2, 2,δ2 довільні процедури від- повідно над Π1 та Π2 , ϕ : S1 S2 певне відображення (фу-

нкції кодування). Кажуть, що функція P2 є ϕ-копією (просто копією) функції P1 , а функція P1 ϕ-реалізацією процедури P2 (просто реалізацією), якщо для будь-якого стану s S1 і

часової константи τ Γ виконується умова: (*) для будь-якого елементарного перетворення f δ1(τ,s) у сукупності δ2(τ,ϕs)

є таке перетворення g , що ϕf (s) = g(ϕs) . Функція P2 назива- ється дублікатом функції P1 , якщо вона є ϕ-копією P1 для певного бієктивного відображення ϕ.

Показати: 1) для кожного обчислення(τ0,s0 ) P1 (τn ,sn ) процедури P1 в її ϕ-копії P2 існує обчислення вигляду

(τ0,ϕs0 ) P2 (τn ,ϕsn ) ; 2) * переходячи від окремих станів до

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

33 ** . Нехай Σ* вільна півгрупа над алфавітом Σ. Покладемо

(Σ) сукупність усіх операцій

 

appa (u) = app(a,u) ,

a Σ .

Функції над простором Π =

Γ,Σ*

із сукупністю елементар-

них операцій (Σ) називаються вільними. Показати, що для

будь-якої функції існує її вільна реалізація [42].

 

 

 

 

 

 

34 ** . Дано довільні функції P (S

0

,S ,τ

0

)

та

P (S ,S

2

,τ

0

)

над

 

1

 

 

1

 

 

 

2

1

 

 

 

простором Π і предикати p1 та

p2 на множині станів S .

Побудувати функції з графіками: 1)

P *P

*

, 2)

(p P * |P * );

 

 

 

 

 

 

 

1

2

 

 

 

1

 

2

3) (p P * ); 4)

{ p P * } ; 5) (p P * || p

2

P * ) [42].

 

 

1

1

1

 

1

 

 

 

 

2

 

 

 

 

 

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

67

структурної індукції

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

1.4. Алгебричні системи

¾Поняття алгебричної системи

¾Моделі систем

¾Багатосортні Ω - системи

¾Деякі прикладні багатосортні Ω - системи

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

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

вільна мова, дерево виведення, LL (k )-граматика, автомат із магазинною па- м'яттю (МП-автомат), розширена БНФ, синтаксична діаграма.

Алгебричні системи й багатосортні Ω -системи є центральними по- няттями першого розділу. Вони уточнюють інтерпретації ПЧП і дозво- ляють розглянути деякі загальні їхні властивості.

1.4.1. ПОНЯТТЯ АЛГЕБРИЧНОЇ СИСТЕМИ

Нехай A довільна множина. Нагадаємо, що n -арною операцією на А (m -арним предикатом на А) називається відображення вигля-

ду F : An A (предикат вигляду P : Am Bool ). Якщо DF An

( DP Am ), то операція (предикат) називається частковою (частко- вим). Число n (m ) визначає тип операції (предиката). Щоб підкресли-

ти тип операції, будемо писати Fn . Результат операції Fn на векторі (a1,....,an ) позначається термами F (a1,....,an ), (a1,....,an )F , а у випа- дку унарної операції термами Fa , aF .

68

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

0 -арні операції на A називаються константами. Область визна-

чення константи становить порожній вектор ε : F 0 ε = a для певного виділеного елемента a A .

Алгебричною системою називається трійка A = (A;ΩF ;ΩP ), де A

носій системи, ΩF = {F1n1 ,F2n2 ,} – сукупність основних операцій,

ΩP = {P1m1 ,P2m2 ,K}– сукупність основних предикатів на A .

Ураховуючи, що тип Bool є стандартною частиною кожної алгебрич- ної системи, його опускають при визначенні систем. Типом τ алгебрич-

ної системи називається пара τ = (n1,n2,K;m1,m2,K), утворена з типів її

основних операцій і предикатів. Алгебрична система називається: 1) ал-

геброю, якщо ΩP = ; 2) реляційною системою, якщо ΩF = . Алгебра й реляційні системи подаються у вигляді відповідних пар.

Згадувана натуральна арифметика = (N ,Bool;+,,×,/,0,1;=,<) є ал- гебричною системою типу (2,2,2,2,0,0;2,2). Cистема опуклих замкне- них багатокутників A = (V ;) є алгеброю типу 2, а система кругів B = (C; ) реляційною системою типу 2. Одним із найпростіших кла-

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

Кожну алгебричну систему A можна подати у вигляді певної реля-

ційної системи A% , якщо операції замінити предикатами, що відповіда- ють їхнім графікам. Наприклад, натуральну арифметику подає реля-

ційна система N% = (N;P12,P12,P12,P12,P51,P61;=,<), де P12 (x,y) z (x +y = z),

P51 (x ) x = 0(x ) тощо.

Підсистеми. Зупинимось тепер на важливому в практичному сен- сі питанні: яка мінімальна інформація є необхідною й достатньою для опису носія алгебри? Непорожня підмножина B A системи

A = (A;ΩF ;ΩP ) називається замкненою в A , якщо вона замкнена від-

носно кожної основної операції системи, тобто якщо результат кожної такої операції на елементах із B теж належить A . Система

B = (B;Ω′F ;Ω′P ), де Ω′F і Ω′P сукупності основних операцій і предика- тів системи A , обмежених на замкнену підмножину B , називається

69

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

підсистемою системи A . Щоб не ускладнювати позначення, будемо там, де це можливо, сукупності основних операцій і предикатів під- систем і систем позначати однаково ΩF та ΩP , відповідно. Якщо A

є алгеброю, то в цьому випадку говорять про підалгебру алгебри A . Алгебра A5 = ({a1,a2,a4,a3,a5};λ), де операція λ задана графом

 

a1

 

a5

 

a 2

a 4

a3

,

 

 

не має власних підалгебр, тобто таких, що не збігаються із самою ал- геброю, а алгебра N + = ({1,2,...};+) має зліченну кількість власних під- алгебр, наприклад вигляду ({k,k +1,...};+), k >1.

Сукупність непорожніх власних підсистем даної системи має важливу властивість вона замкнена відносно перетину систем (вправа 2.7). Перетин усіх непорожніх власних підсистем системи A є найменшою (головною) підсистемою A . Якщо взяти арифметику ці-

лих чисел Z10 , то головною її підсистемою є {0}, а алгебра N + = ({1,2,...};+) не має головної підалгебри.

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

тин B* усіх систем із є найменшою підсистемою A , що містить усі елементи B . Система B* = (B*;ΩF ;ΩP ) називається підсистемою

системи A , породженою множиною B , множина B* замкненням множини B відносно операцій із ΩF , а елементи множини B – твір-

ними елементами замкнення B .

Якщо B* = A , то множина B називається множиною твірних сис- теми A . Система може мати не одну множину твірних. Наприклад, в алгебрі A5 кожен елемент ai сам є твірним алгебри. Якщо в алгебрі

A5 вибрати за твірний елемент a1 , то решту її елементів можна зада- ти термами a2 = λ(a1), a3 = λ(λ(a1)), a4 = λ(λ(λ(a1 ))), a5 = λ(λ(λ(λ(a1)))).

70