Приклад 1.

Нормальні алгоритми Маркова. Обчислюваність за Марковим

Пiд нормальним алгоритмом (скорочено НА) в алфавiтi T розумiють упорядковану послiдовнiсть продукцiй (правил) вигляду a®b або a®×b, де a, bÎT* та × , ®ÏT. Продукцiї вигляду a®×b називають ф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ю a®b або a®×b таку, що a - пiдслово xn. Застосуємо цю продукцiю до xn , тобто замiнимо в xn найлiвiше входження a на b. Отримане слово позначимо xn+1. Якщо застосована на (n+1)-му етапi продукцiя нефiнальна, тобто a®b, то переходимо до (n+2)-го етапу. Якщо ця продукцiя фiнальна, тобто a®×b, то п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 yÎT*, iнакше результат роботи A над х не визначений.

НА A i B еквiвалентнi вiдносно алфавiту T, якщо для всiх xÎT* A(x) та B(x) одночасно визначенi або не визначенi, та у випадку визначеностi A(x)=B(x).

Відомо, що для кожного НА над алфавітом Т існує еквiвалентний йому вiдносно T НА в алфавіті Т È{s} з єдиним допоміжним символом sÏТ. Відомо також, що вербальне відображення, яке кожне слово xÎT* переводить у слово хх, не може бути заданим жодним НА в алфавіті Т. У той же час маємо НА, який кожне xÎT* переводить у слово (тут #ÏТ):

##a®a#а## для всіх aÎТ

#ab®b#a для всіх a, bÎТ

®а для всіх aÎТ

##®×e

e®##

НА A обчислює часткову функцiю f:NkN, якщо він кожне слово вигляду переводить у слово у випадку (x1,...,xkDf та A( ) не визначене при (x1 ,...,xkDf .

Функцiя називається обчислюваною за Марковим, або НА-обчислюваною, якщо iснує НА, який її обчислює.

Зауважимо, що кожний НА обчислює безліч функцій натуральних аргументів та значень, але, зафіксовуючи наперед арність функцій, дістаємо, що кожний НА обчислює єдину функцію заданої арності.

Приклад 2. НА для функцiї f(x, y)=x+y:

#®e

Приклад 3. НА для функцiї f(x, y)=x-y:

|#|®#

#|®#|

#®e

Приклад 4. НА для функцiї f(x)=x/2:

#||®|#

#|®#|

#®×e

e®#