
- •Лекція 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. Продуктивні і креативні множини, їх властивості
- •Прості множини
- •Теорія алгоритмів Конспект лекцій
2. Нормальні алгоритми Маркова. Обчислюваність за Марковим
Пiд нормальним алгоритмом (скорочено НА) в алфавiтi T розумiють упорядковану послiдовнiсть продукцiй (правил) вигляду або , де , T* та , T. Продукцiї вигляду називають фiнальними.
Кожен НА в алфавiтi T задає деяке вербальне вiдображення T*→T*. Слово, яке є результатом обробки слова x нормальним алгоритмом A, позначимо A(x). Обробка слова x нормальним алгоритмом A проводиться поетапно таким чином.
Покладемо x0=x i скажемо, що x0 отримане iз x пiсля 0 етапiв. Нехай слово xn отримане iз слова x пiсля n етапiв. Тодi (n+1)-й етап виконується так.
Шукаємо першу за порядком продукцiю або таку, що пiдслово xn. Застосуємо цю продукцiю до xn , тобто замiнимо в xn найлiвiше входження на . Отримане слово позначимо xn+1. Якщо застосована на (n+1)-му етапi продукцiя нефiнальна, тобто , то переходимо до (n+2)-го етапу. Якщо ця продукцiя фiнальна, тобто , то пiсля її застосування A спиняється i A(x)=xn+1. Якщо ж на (n+1)-му етапi жодна продукцiя A не застосовна до xn+1, тобто в A немає продукцiї, лiва частина якої - пiдслово слова xn+1, то A спиняється i A(x)=xn.
Якщо в процесi обробки слова x НА A не спиняється нi на якому етапi, то вважаємо, що A(x) не визначене.
Нормальний алгоритм називають нормальним алгоритмом над алфавiтом T, якщо вiн є нормальним алгоритмом у деякому розширеннi T’T. НА над T задає певне вiдображення T*→T*, використовуючи в процесi обробки слiв допомiжнi символи поза алфавiтом T. Зупинка НА A над T при роботі над словом хT* результативна, коли вона вiдбулася на словi yT*, iнакше результат роботи A над х не визначений.
НА A i B еквiвалентнi вiдносно алфавiту T, якщо для всiх xT* A(x) та B(x) одночасно визначенi або не визначенi, та у випадку визначеностi A(x)=B(x).
Відомо, що для кожного НА над алфавітом Т існує еквiвалентний йому вiдносно T НА в алфавіті Т {s} з єдиним допоміжним символом sТ. Відомо також, що вербальне відображення, яке кожне слово xT* переводить у слово хх, не може бути заданим жодним НА в алфавіті Т. У той же час маємо НА, який кожне xT* переводить у слово xх (тут #Т):
Приклад 1.
##aa#а## для всіх aТ
#abb#a для всіх a, bТ
#аа для всіх aТ
##
##
НА
A
обчислює
часткову функцiю f:Nk→N,
якщо він кожне слово вигляду
переводить у слово
у випадку (x1,...,xk)Df
та A(
)
не визначене при (x1
,...,xk)Df
.
Функцiя називається обчислюваною за Марковим, або НА-обчислюваною, якщо iснує НА, який її обчислює.
Зауважимо, що кожний НА обчислює безліч функцій натуральних аргументів та значень, але, зафіксовуючи наперед арність функцій, дістаємо, що кожний НА обчислює єдину функцію заданої арності.
Приклад 2. НА для функцiї f(x, y)=x+y:
#
Приклад 3. НА для функцiї f(x, y)=x-y:
|#|#
#|#|
#
Приклад 4. НА для функцiї f(x)=x/2:
#|||#
#|#|
#
#