машина Тьюринга
Лекція 13.Машіна Тьюринга. Обчислюваних (рекурсивні) функції. Універсальні рекурсивні функції.
Спроби формалізувати поняття алгоритму привели до створення машини Тьюринга. як якогось уявного пристрою, що реалізує алгоритм. Будемо вважати, що алгоритм має справу з рахунковим безліччю об'єктів і полягає у виборі одного з них, що задовольняє заданим умовам. Таким чином, алгоритм можна ототожнити з функцією (взагалі кажучи, часткової)



Ще одним кроком в розробляється теорії стала поява рекурсивних функцій. як функцій, що формалізують поняття алгоритму і реалізують інтуїтивне поняття обчислюваності. Незабаром було встановлено, що безліч рекурсивних функцій збігається з безліччю функцій, обчислюваних на машинах Тьюринга. З'являлися потім нові поняття, які претендують на пояснення поняття алгоритму, виявлялися еквівалентними функціям, обчислюваних на машинах Тьюрінга, а значить, і рекурсивним функціям. Підсумком розгорнутої дискусії про те, що таке алгоритм, стало твердження, який називається зараз тезою Черча.
Теза Черча. Поняття алгоритму, або обчислюваності деяким механічним пристроєм, збігається з поняттям обчислюваності на машинах Тьюрінга (а значить, з поняттям рекурсивної функції).
Це твердження не можна вважати математичної теореми. Це є певний природничо-науковий теза, прийнятий більшістю дослідників.
Машина Тьюринга так само, як і кінцевий автомат, є дискретним пристроєм перетворення інформації. Наведемо її точне визначення, а потім інтерпретацію її роботи.
Машиною Тьюринга називається часткове відображення
тут
















Існують різні модифікації машини Тьюринга (машина Посту, машина Мінського і т.д.). Деякі модифікації передбачають на стрічці не символи 0 або 1, а букви деякого кінцевого алфавіту У деяких визначеннях дозволяється не тільки зсув головки машини вліво або вправо, але і залишення на колишній позиції. Однак, різні модифікації машини Тьюринга еквівалентні між собою в тому сенсі, що класи функцій, обчислюваних на цих машинах, збігаються.
Зрозуміло, що ніяке фізичне пристрій не може мати нескінченної стрічки. Тому краще мислити собі стрічку машини Тьюринга як потенційно нескінченну. тобто як кінцеву, до якої при необхідності можна "підклеюють" з одного і з іншого боку шматки скільки завгодно раз.
Визначення машини Тьюринга, дане на початку розділу, незручно для використання. Більш зручним буде запис програми. яка містить в собі всю інформацію про роботу машини (таким чином, завдання машини за допомогою відображення і за допомогою програми еквівалентні між собою). Наведемо складання програми. Для кожного рівності виду де








Приклад. Побудуємо машину Тьюринга, яка, маючи на стрічці два масиви з одиниць, розділені нулями, заповнює ці нулі одиницями і зупиняється у останньої одиниці другого масиву.
Алгоритм дій можна записати словами:
1-й крок: пройти перший масив одиниць, знайти масив з нулів, що йде після нього і замінити перший нуль одиницею;
2-й крок: йти через масив нулів, замінюючи їх одиницями, до тих пір, поки не з'явиться другий масив одиниць;
3-й крок: пройти другий масив одиниць і зупинитися в його кінці.
Машина Тьюринга, яка реалізує цей алгоритм, має наступну програму:


Зважаючи на наявність у машини Тьюринга нескінченної стрічки її обчислювальні можливості значно перевершують можливості кінцевого автомата. Зокрема, так як автомат має кінцеву пам'ять, то вихідна послідовність його завжди періодична, якщо вхідна періодична. На противагу цьому неважко придумати машину Тьюринга, яка, починаючи працювати на порожній стрічці (тобто на стрічці, у всіх осередках якої записані нулі), формуватиме послідовність (масиви з одиниць мають довжини 1, 2, 3.), а ця послідовність періодичної не є.
Будемо називати в цьому розділі натуральними числами цілі невід'ємні числа, тобто дозволимо числу 0 називатися натуральним числом. Таким чином, N безліч натуральних чисел. Як на стрічці позначити натуральне число









Будемо говорити, що машина Тьюринга







Таким чином, якщо, наприклад,

а якщо


Якщо інформація на стрічці не має вид або початкова стан не

Приклад. Машина, задана наступною програмою, обчислює функцію
