ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


Машини Тьюрінга. МТ-обчислюваність.

Теорія алгоритмів

МНР. МНР-обчислюваність.

Машина з натуральнозначними регiстрами (скорочено МНР) є iдеалiзованою моделлю комп’ютера. МНР мiстить, взагалі кажучи, нескiнченну кiлькiсть регiстрiв, вмiстом яких є натуральнi числа. Регiстри нумеруємо натуральними числами, починаючи з 0, позначаючи їх R0 , R1 , ..., Rn , ... Вмiст регiстру Rn позначаємо ’Rn .

Послiдовнiсть (’R0, ’R1, ..., ’Rn , ...) вмiстiв регiстрiв МНР назвемо конфiгурацiєю МНР.

МНР може змiнити вмiст регiстрiв згiдно виконуваної нею команди. Скiнченний список команд утворює програму МНР. Команди програми послiдовно нумеруємо натуральними числами, починаючи з 1. Номер команди в програмі називатимемо адресою команди. МНР-програму з командами I1 , I2 ,..., Ik будемо позначати I1I2...Ik. Довжину (кiлькiсть команд) МНР-програми P позначимо |P|.

Команди МНР бувають 4-х типiв.

Тип 1. Обнулення n-го регiстру Z(n): ’Rn :=0.

Тип 2. Збiльшення вмiсту n-го регiстру на 1 S(n): ’Rn :=’Rn+1.

Тип 3. Копіювання вмісту регістру T(m,n): ’Rn :=’Rm

(при цьому ’Rm не змiнюється).

Тип 4. Умовний перехiд J(m,n,q): якщо ’Rn =’Rm , то перейти до виконання q-ї команди, iнакше виконувати наступну за списком команду програми.

Число q в команді J(m,n,q) назвемо адресою переходу.

Команди типiв 1-3 називають арифметичними. Пiсля виконання арифметичної команди МНР повинна виконувати наступну за списком команду програми.

Виконання однiєї команди МНР назвемо кроком МНР.

Зауважимо, що формальними моделями алгоритмів є саме МНР-програми, поняття МНР використовується для опису функціонування МНР-програм.

Виконання програми МНР починає, перебуваючи в деякiй початковiй конфiгурацiї, з виконання 1-ї за списком команди. Наступна для виконання команда програми визначається так, як описано вище. Виконання програми завершується (програма зупиняється), якщо наступна для виконання команда вiдсутня (тобто номер наступної команди перевищує номер останньої команди програми). Конфiгурацiя МНР в момент завершення виконання програми називається фiнальною, вона визначає результат роботи МНР-програми над даною початковою конфiгурацiєю.

Якщо МНР-програма P при роботi над початковою конфiгурацiєю (a0, a1, ...) нiколи не зупиняється, цей факт позначаємо P(a0, a1, ...)­, якщо ж коли-небудь зупиниться, цей факт позначаємо P(a0, a1,...)¯. Якщо МНР-програма P при роботi над початковою конфiгурацiєю (a0, a1, ...)зупиняється iз фiнальною конфiгурацiєю (b0, b1, ...), цей факт позначатимемо так: P(a0, a1, ...)¯(b0, b1, ...).

МНР-програми як моделі алгоритмів є фінітними об’єктами, тому обмежимося розглядом скінченних конфігурацій. Конфiгурацiю вигляду (a0, a1, ..., aп , 0, 0, ...), в якiй ’Rm= 0 для всiх m>n, назвемо скiнченною. Таку конфігурацію позначаємо (a0, a1, ..., an ). Зрозуміло, що якщо МНР-програма P починає роботу над скiнченною початковою конфiгурацiєю, то в процесi виконання P МНР перебуватиме тiльки в скiнченних конфiгурацiях.

МНР-програми P та Q назвемо еквiвалентними, якщо при роботi над однаковими початковими конфiгурацiями вони або обидві зупиняються з однаковими фiнальними конфiгурацiями, або обидвi не зупиняються.

МНР-програма P обчислює часткову n-арну функцiю f:NпN, якщо f(a1, a2, ..., aп)=b Û P(a1, a2, ..., aп)¯(b,...).

Замiсть P(a1, a2 ,...)¯(b,...) надалі будемо писати P(a1 , a2 ,...b.

Функцiю f:NпN називають МНР-обчислюваною, якщо iснує МНР-програма, яка обчислює цю функцiю.

Кожна МНР-програма обчислює безліч функцій, заданих на N, але, зафіксовуючи наперед арність функцій (тобто кількість компонент початкових конфігурацій), отримуємо, що кожна МНР-програма обчислює єдину функцію заданої арності.

Зауважимо, що кожну функцiю, задану на N, можна трактувати як предикат, інтерпретуючи значення 1 та 0 як істиннісні значення “Т” та “F” відповідно. В цьому випадку в ролі предикату виступає його характеристична функція.


 

Еквівалентність формальних моделей алгоритмів. Теза Чорча, її значення.

Розглянемо співвідношення між різними формальними моделями поняття алгоритмічно обчислюваної функції. Обмежимося розглядом п-арних функцiй на множині N.

Теорема 6.8.1. Наступнi класи функцiй спiвпадають:

1) клас ЧРФ;

2) клас програмованих на N п-арних функцiй;

3) клас МНР-обчислюваних функцiй;

4) клас функцiй, обчислюваних за Тьюрiнгом;

5) клас функцiй, обчислюваних за Марковим;

6) клас функцiй, обчислюваних за Постом

Отже, розглянутi нами формалiзми задають один i той же клас п-арнихфункцiйна N. При цьому самi визначення формалiзмiв гарантують ефективну обчислюванiсть описуваних ними функцiй. Тому є всi пiдстави вважати, що такi формалiзми є рiзними математичними уточненнями iнтуїтивного поняття алгоритмiчно обчислюваної функцiї (АОФ). Вперше таке твердження стосовно рекурсивних функцiй було висунуте в 1936 роцi А. Чорчом, тому дiстало назву ”теза Чорча”. Узагальнення тези Чорча на випадок часткових функцiй в цьому ж роцi запропонував С. Клiнi. В такому розширеному виглядi теза Чорча формулюється наступним чином:

Tеза Чорча. Клас ЧРФ співпадає з класом п-арнихАОФ, заданих на множині натуральних чисел.

Поняття АОФ не є строго визначеним математичним поняттям, тому теза Чорча математичному доведенню не пiдлягає. Теза Чорча є природно-науковим фактом, який засвідчує адекватність формальних моделей інтуїтивного поняття АОФ.

Із тези Чорча як наслiдок випливає:

Кодування. Нумерації, ефективні нумерації. Універсальні класи алгоритмів.

Під кодуванням множини А на множині В будемо розуміти ін’єктивне та сюр’єктивне відображення j : АВ таке, що існують алгоритми A та B:

- для кожного аÎА A(а)Îj(а);

- для кожного bÎB B(b)=j -1(b).

Нумерацiєю множини А називають сюр’єктивне функцiональне вiдображення x: NА.

Однозначною нумерацiєю множини А називають бієктивне вiдображення x: NА.

Нумерацiю x: NА називають ефективною, якщо iснують алгоритми A та Bтакі:

- для кожного аÎА A(а)Îx-1(а);

- для кожного nÎN B(п)=x(п).

Нехай À – Х-А-алгоритм, Â – Y-В-алгоритм, j – однозначне кодування X в Y, y – однозначне кодування A в B.

Алгоритми À та Â назвемо еквівалентними з точністю до кодувань j та y, якщо:

– для кожного хÎХ À(х) = y1(Â(j(х)));

– для кожного yÎY Â(y) = y(À(j–1(y))).

Алгоритми À та Â назвемо еквівалентними, якщо À та Â еквівалентні з точністюдо деяких кодуваньj та y.

Клас алгоритмів Àназивають універсальним, якщо кожний алгоритм еквівалентний деякому алгоритму із À.

Таким чином, x: NА - ефективна нумерація Û x-1: АN - кодування А на N.

Введемо однозначні ефективні нумерацiї пар та n-ок натуральних чисел, які називаються канторовими нумераціями.

Всi пари натуральних чисел розташуємо в послiдовнiсть так:

пара (x, y) передує парі (u, v) Û x+y<u+v або (x+y = u+v та x<u).

Номер пари (x, y) в такiй послiдовностi позначають C(x, y) та називають канторовим номером пари (x, y).

Неважко переконатись, що C(x, y) = [(x+y+1)×(x+y)/2]+x

Лiву та праву компоненти пари з номером n позначають вiдповiдно l(n) та r(n). Функцiї l(n) та r(n) називають вiдповiдно лiвою та правою координатними функцiями.

Функцiя C(x, y) задає бiєкцiю N´NN, пара функцiй (l(n), r(n)) задає бiєкцiю NN´N. При цьому функцiї C, l та rзв’язaнi такими тотожностями:

C(l(n), r(n)=n; l(C(x, y))=x; r(C(x, y))=y.

Маючи нумерацiю пар натуральних чисел, можна ввести нумерацiю n-ок натуральних чисел для довiльного n>2:

Cп(x1, x2,..., xп)=Cп-1(C(x1, x2), x3,..., xп)=C(...С(C(x1, x2), x3),...), xп).

Координатнi функцiї Cn1, ..., Cnn вводимо так:

Нехай Cп(x1, x2,..., xп)=m; тоді Cn1(m)=x1; Cn2(m)=x2; ... , Cnn(m)=xn.

Для функцiй Cп, Cn1, ..., Cnn справджуються такi тотожностi:

Cп(Cn1(x), ..., Cnn(x))=x;

Cnk(Cп(x1, x2,..., xп))=xk, 1£k£n.

Теорема 7.1.1. 1) Функцiї C(x, y), l(n) та r(n) є ПРФ.

2) Функцiї Cп, Cn1, ..., Cnn є ПРФ.

Теорія алгоритмів

МНР. МНР-обчислюваність.

Машина з натуральнозначними регiстрами (скорочено МНР) є iдеалiзованою моделлю комп’ютера. МНР мiстить, взагалі кажучи, нескiнченну кiлькiсть регiстрiв, вмiстом яких є натуральнi числа. Регiстри нумеруємо натуральними числами, починаючи з 0, позначаючи їх R0 , R1 , ..., Rn , ... Вмiст регiстру Rn позначаємо ’Rn .

Послiдовнiсть (’R0, ’R1, ..., ’Rn , ...) вмiстiв регiстрiв МНР назвемо конфiгурацiєю МНР.

МНР може змiнити вмiст регiстрiв згiдно виконуваної нею команди. Скiнченний список команд утворює програму МНР. Команди програми послiдовно нумеруємо натуральними числами, починаючи з 1. Номер команди в програмі називатимемо адресою команди. МНР-програму з командами I1 , I2 ,..., Ik будемо позначати I1I2...Ik. Довжину (кiлькiсть команд) МНР-програми P позначимо |P|.

Команди МНР бувають 4-х типiв.

Тип 1. Обнулення n-го регiстру Z(n): ’Rn :=0.

Тип 2. Збiльшення вмiсту n-го регiстру на 1 S(n): ’Rn :=’Rn+1.

Тип 3. Копіювання вмісту регістру T(m,n): ’Rn :=’Rm

(при цьому ’Rm не змiнюється).

Тип 4. Умовний перехiд J(m,n,q): якщо ’Rn =’Rm , то перейти до виконання q-ї команди, iнакше виконувати наступну за списком команду програми.

Число q в команді J(m,n,q) назвемо адресою переходу.

Команди типiв 1-3 називають арифметичними. Пiсля виконання арифметичної команди МНР повинна виконувати наступну за списком команду програми.

Виконання однiєї команди МНР назвемо кроком МНР.

Зауважимо, що формальними моделями алгоритмів є саме МНР-програми, поняття МНР використовується для опису функціонування МНР-програм.

Виконання програми МНР починає, перебуваючи в деякiй початковiй конфiгурацiї, з виконання 1-ї за списком команди. Наступна для виконання команда програми визначається так, як описано вище. Виконання програми завершується (програма зупиняється), якщо наступна для виконання команда вiдсутня (тобто номер наступної команди перевищує номер останньої команди програми). Конфiгурацiя МНР в момент завершення виконання програми називається фiнальною, вона визначає результат роботи МНР-програми над даною початковою конфiгурацiєю.

Якщо МНР-програма P при роботi над початковою конфiгурацiєю (a0, a1, ...) нiколи не зупиняється, цей факт позначаємо P(a0, a1, ...)­, якщо ж коли-небудь зупиниться, цей факт позначаємо P(a0, a1,...)¯. Якщо МНР-програма P при роботi над початковою конфiгурацiєю (a0, a1, ...)зупиняється iз фiнальною конфiгурацiєю (b0, b1, ...), цей факт позначатимемо так: P(a0, a1, ...)¯(b0, b1, ...).

МНР-програми як моделі алгоритмів є фінітними об’єктами, тому обмежимося розглядом скінченних конфігурацій. Конфiгурацiю вигляду (a0, a1, ..., aп , 0, 0, ...), в якiй ’Rm= 0 для всiх m>n, назвемо скiнченною. Таку конфігурацію позначаємо (a0, a1, ..., an ). Зрозуміло, що якщо МНР-програма P починає роботу над скiнченною початковою конфiгурацiєю, то в процесi виконання P МНР перебуватиме тiльки в скiнченних конфiгурацiях.

МНР-програми P та Q назвемо еквiвалентними, якщо при роботi над однаковими початковими конфiгурацiями вони або обидві зупиняються з однаковими фiнальними конфiгурацiями, або обидвi не зупиняються.

МНР-програма P обчислює часткову n-арну функцiю f:NпN, якщо f(a1, a2, ..., aп)=b Û P(a1, a2, ..., aп)¯(b,...).

Замiсть P(a1, a2 ,...)¯(b,...) надалі будемо писати P(a1 , a2 ,...b.

Функцiю f:NпN називають МНР-обчислюваною, якщо iснує МНР-програма, яка обчислює цю функцiю.

Кожна МНР-програма обчислює безліч функцій, заданих на N, але, зафіксовуючи наперед арність функцій (тобто кількість компонент початкових конфігурацій), отримуємо, що кожна МНР-програма обчислює єдину функцію заданої арності.

Зауважимо, що кожну функцiю, задану на N, можна трактувати як предикат, інтерпретуючи значення 1 та 0 як істиннісні значення “Т” та “F” відповідно. В цьому випадку в ролі предикату виступає його характеристична функція.


 

Машини Тьюрінга. МТ-обчислюваність.

Пiд (детермінованою) машиною Тьюрiнга (скорочено МТ) будемо розумiти впорядковану 5-ку (Q,T,d, q0 ,q*), де:

- Q - скiнченна множина внутрiшнiх станiв;

- T - скiнченний алфавiт символiв стрiчки, причому T мiстить спецiальний символ порожньої клiтки l;

- d : Q´TQ´T´{R,L,e} - однозначна функцiя переходiв;

- q0ÎQ - початковий стан;

- q*ÎQ - фiнальний стан.

Функцiю переходiв на практицi задають скiнченною множиною команд одного з 3-х видiв: qa®pbR, qa®pbL та qa®pb, де p, qÎQ, a, bÎT, ®ÏQÈT. При цьому, як правило, не для всiх пар (q,aQ´T iснує команда з лiвою частиною qa. Це означає, що функцiя d не є тотальною. Проте зручніше вважати функцію d тотальною, тому для всiх пар (q,aDd неявно (не додаючи вiдповiднi команди вигляду qa®qa), вводимо довизначення d(q,a)=(q,a,e).

Неформально МТ складається з скiнченної пам’ятi, роздiленої на клiтки нескiнченної з обох бокiв стрiчки та голiвки читання-запису. В кожнiй клiтцi стрiчки мiститься єдиний символ iз T, причому в кожен даний момент стрiчка мiстить скiнченну кiлькiсть символiв, вiдмiнних вiд символа l. Голiвка читання-запису в кожен даний момент оглядає єдину клiтку стрiчки.

Якщо МТ знаходиться в станi q та голiвка читає символ a, то при виконаннi команди qa®pbR (команди qa®pbL, команди qa®pb) МТ переходить в стан p, замiсть символу a записує на стрiчцi символ b та змiщує голiвку на 1 клiтку направо (відповідно на 1 клiтку налiво, залишає голiвку на мiсцi).

Конфiгурацiя, або повний стан МТ - це слово вигляду xqy, де x,yÎT*, qÎQ. Неформально це означає, що на стрiчцi записане слово xy, тобто злiва i справа вiд xy можуть стояти тiльки символи l, МТ знаходиться в станi q, голiвка читає 1-й символ пiдслова y.

Конфiгурацiю вигляду q0x, де 1-й та останнiй символи слова x вiдмiннi вiд l, називають початковою. Конфiгурацiю вигляду xq*y називають фiнальною. Пiсля переходу до фiнального стану, отже, до фiнальної конфiгурацiї, МТ зупиняється.

Нехай МТ знаходиться в конфiгурацiї xcqay, де x,yÎT*, a, cÎT, qÎQ. Пiсля виконання команди qa®pbR (команди qa®pbL, команди qa®pb) МТ перейде до конфiгурацiї xcbpy (вiдповiдно до конфiгурацiї xpcby, конфiгурацiї xcpby).

Кожна МТ задає вербальне вiдображення T* T* таким чином.

МТ М переводить слово uÎT в слово vÎT*, якщо вона з почат-кової конфiгурацiї q0u переходить до фiнальної конфiгурацiї xqy, де qÎF*, xy=avb, a, bÎ{l}* . При цьому перший та останнiй символи слова v вiдмiннi вiд l, або v=e. Цей факт записуємо так: v=M(u).

Якщо МТ M, починаючи роботу з початкової конфiгурацiї q0u, нiколи не зупиниться, кажуть, що M зациклюється при роботi над словом u. Тодi M(u)не визначене.

МТ M1 та M2 еквiвалентнi, якщо вони задають одне і те ж вербальне вiдображення.

МТ M обчислює часткову функцiю f:Nk→N, якщо вона кожне слово вигляду переводить в слово у випадку (x1,...,xkDf , та M( ) невизначене при (x1,...,xkDf .

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

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

 

© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти