
- •Лекція 1 план
- •Зміст дисципліни "Теорія алгоритмів", її зв’язок із іншими дисциплінами
- •2. Поняття алгоритму. Основні властивості алгоритмів
- •3. Відносні алгоритми
- •4. Поняття числення, його зв’язок із поняттям алгоритму
- •5. Поняття формальної системи
- •1. Кодування. Універсальні класи алгоритмів
- •2. Формалізація поняття алгоритму
- •1. Машини Тьюрінга. Обчислюваність за Тьюрінгом
- •2. Нормальні алгоритми Маркова. Обчислюваність за Марковим
- •3. Система Поста. Обчислюваність за Постом
- •2. Алгебри чрф та прф
- •1. Програмні алгебри. Примітивні програмні алгебри
- •2. Програмовані функції
- •1. Поняття нумерації. Канторові нумерації пар та n-ок натуральних чисел
- •2. Функція Геделя та її основна властивість
- •3.Теорема про представлення операції примітивної рекурсії
- •1. Еквівалентність формальних моделей алгоритмів
- •2. Теза Чорча, її обгрунтування. Значення тези Чорча та її використання
- •2. Геделеві нумерації чрф
- •2. Еквівалентні визначення рпм
- •3. Властивості прм, рм і рпм
- •2. Властивості прп, рп та чрп
- •1. Нумеровані сукупності чрф. Теорема Райса і її значення
- •2. Теорема Райса − Шапіро
- •3. Продуктивні і креативні множини, їх властивості
- •Прості множини
- •Теорія алгоритмів Конспект лекцій
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,
де nm1,
а також бінарні функції +,
.
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, де n1, називається примiтивною програмною алгеброю програмованих на N n-арних функцiй (ППА-Ar-N).
Дамо
індуктивне визначення операторного
терма ППА-Ar-N
(ОТ ППА-Ar-N).
Алфавiт складатиметься iз символiв
базових функцiй о,
s
+,
та I
,
де nm1,
символiв операцiй N,
N☼
і Sn+1,
де n1,
а також допом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+x3
nsg(((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
ПЛАН
-
Поняття нумерації. Канторові нумерації пар та n-ок натуральних чисел.
-
Функція Геделя та її основна властивість.
-
Теорема про представлення операції примітивної рекурсії.