Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТА ЛЕКЦIЯ 1-18.doc
Скачиваний:
84
Добавлен:
08.11.2018
Размер:
1.81 Mб
Скачать

1. Програмні алгебри. Примітивні програмні алгебри

Програмна алгебра (P, C) задається парою (B, C), де множина функцій P  основа алгебри, C  множина композицiй (операцiй) над функцiями із P, BP  множина базових функцiй. Примiтивні програмні алгебри (ППА) - це програмнi алгебри функцiй із простими типами даних. До таких функцiй належать, зокрема, квазіарні, Х-арні та п-арні функцiї, заданi на неструктурованих множинах (наприклад, на множині N, на множинi R). Kомпозицiями ППА є операцiї суперпозицiї, циклу і розгалуження.

Операцiї суперпозицiї  це описані вище операцiї S.

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

Операцiя циклу N n-арним функціям g та  ставить у вiдповiднiсть n-арну функцiю f, значення f(x1, ..., xn) якої для кожного набору значень x1, ..., xn визначається як перший елемент аm послідовності

a0=x1, a1=f(a0, x2, ..., xn), a2=f(a1, x2, ..., xn), ..., ak=f(ak-1, x2, ..., xn), ...

такий, що (am, x2,..., xn)=0 та для всiх k<m значення (ak, x2, ..., xn) визначене і 0, якщо такий елемент am iснує. Якщо такий елемент am не iснує, значення f(x1, ..., xn) не визначене.

Операцiя розгалуження N n-арним функцiям g, h і  ставить у вiдповiднiсть n-арну функцiю f, значення f(x1, ..., xn) якої для кожного набору значень x1, ..., xn визначається так:

f(x1, ..., xn) =

Базовими функцiями для випадку n-арних функцiй, заданих на множинi N, будемо вважати функцiї о, s та I, де nm1, а також бінарні функції +, .

2. Програмовані функції

Функцiю назвемо програмованою на N, якщо її можна отримати iз указаних вище базових функцiй за допомогою скiнченної кiлькостi застосувань операцiй суперпозицiї Sn+1, розгалуження N, циклу N.

Із наведених визначень випливають наступні твердження:

1. Якщо функцiї , g, h алгоритмiчно обчислюванi, то функцiя N(, g, h) алгоритмiчно обчислювана.

2. Якщо функцiї та g алгоритмiчно обчислюванi, то функцiя N(, g) алгоритмiчно обчислювана.

3. Кожна програмована на N n-арна функцiя є алгоритмiчно обчислюваною.

Алгебра (N ; N, N, S2, S3, ... ), носiєм N якої є клас усiх програмованих на N n-арних функцiй, а операцiями  операцiї N, N та Sn+1, де n1, називається примiтивною програмною алгеброю програмованих на N n-арних функцiй (ППА-Ar-N).

Дамо індуктивне визначення операторного терма ППА-Ar-N (ОТ ППА-Ar-N). Алфавiт складатиметься iз символiв базових функцiй о, s +,  та I, де nm1, символiв операцiй N, N і Sn+1, де n1, а також допомiжних символiв (, ) та , .

1) кожен символ базової функцiї є ОТ; такі ОТ назвемо атомарними;

2) якщо t0, t1, ..., tn ОТ, то Sn+1(t0, t1, ..., tn)  ОТ;

3) якщо t0, t1 і t2  ОТ, то N(t0, t1, t2)  ОТ;

4) якщо t0 та t1 ОТ, то N(t0, t1)  ОТ.

Кожна програмована на N п-арна функція є значенням деякого ОТ ППА-Ar-N. Проте, як і у випадку ОТ алгебри п-арних ЧРФ, через порушення умов арності не кожен ОТ ППА-Ar-N має певне значення. Зрозуміло, що подання програмованих на N п-арних функцій операторними термами ППА-Ar-N неоднозначне.

Нехай функції  та  трактуються як предикати. Тоді функції nsg(),  і + можна трактувати як предикати , & та  відповідно. Враховуючи, що  можна подати як ,  можливо подати як ()&(), легко отримати функції, які моделюють указані предикати.

Приклад 1. Функції-константи програмовані.

Такі функції отримуються із базових функцій о, s та I за допомогою операцій Sn+1.

Приклад 2. Функції пsg(x1) та sg(x1) програмовані.

Справді, пsg(x1)=, sg(x1)=(.

Приклад 3. Функцiя |x1-x2| програмована.

Справдi, |x1-x2| = ()+().

Приклад 4. Предикати x1>x2, x1x2, x1=x2 та x1x2 програмовані.

Предикат x1>x2 моделюється функцiєю . Предикат x1x2 моделюється функцiєю , предикат x1=x2 можна подати у вигляді (x1x2)&(x2x1), предикат x1x2  у вигляді (x1=x2).

Приклад 5. Функція mod(x1, x2) програмована.

Функцію mod(x1, x2) можна подати операторним термом

N(S3(, S2(s, I), I),).

Приклад 6. Функцiю x1+x2 можна отримати із базових функцій о, s, I, за допомогою операцій Nта Sn+1.

Оскільки x1<x2+x3nsg(((x1+1)))=1, предикат x1<x2+x3 моделюється функцією nsg(((x1+1))), ОТ  якої має вигляд

S3(, 13, S3(, S3(, S2(s, I), I), I)).

Тому x1+x2 можна подати OT S4(N☼(, S2(s, I)), о2, I, I). Отже, функцію + можна не включати до базових програмованих на N п-арних функцiй.

Приклад 7. Аналогічно випадку V-квазіарних функцій, функцію f=N(, g, h) можливо подати у вигляді f=gsg()+hnsg(). Отже, операцiю розгалуження N можна промоделювати, використовуючи базові функції о, s, I, й операції суперпозицiї та циклу.

ЛЕКЦІЯ 6

ПЛАН

  1. Поняття нумерації. Канторові нумерації пар та n-ок натуральних чисел.

  2. Функція Геделя та її основна властивість.

  3. Теорема про представлення операції примітивної рекурсії.

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