- •Лекція 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-ок натуральних чисел.
-
Функція Геделя та її основна властивість.
-
Теорема про представлення операції примітивної рекурсії.