Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_1-MT.doc
Скачиваний:
27
Добавлен:
29.04.2019
Размер:
946.18 Кб
Скачать

2.2. Машина Тьюрінга

Формальні визначення алгоритму з'явились в тридцятих-сорокових роках 20 століття. Одним із перших було визначення англійського математика Алана Тьюрінга, який у 1936 році описав схему деякої абстрактної машини і запропонував називати алгоритмами те, що вміє робити така машина. При цьому визначенні, якщо щось не може бути зроблено машиною Тьюрінга, це вже не алгоритм. Інакше кажучи, Тьюрінг формалізував правила виконання дій за допомогою опису роботи деякої конструкції. Машина Тьюрінга (МТ) – математичне поняття, введене для формального уточнення інтуїтивного поняття алгоритму.

Метою створення абстрактної уявлюваної машини було отримання можливості доказу існування або неіснування алгоритмів розв'язання різних задач. Керуючись цією метою, Тьюрінг шукав як умога більш просту, «бідну» алгоритмічну схему, аби тільки вона була універсальною.

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

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

Один зі способів доказу того, що алгоритми обчислення, який можна реалізувати на одній машині, можна реалізувати й на інший, - це імітація першої машини на другій. Імітація полягає в наступному. На вхід другої машини подається опис програми (правил роботи) першої машини D і вхідн дані X, які повинні були надійти на вхід першої машини. Потрібно описати таку програму (правила роботи другої машини), яка б у результаті обчислень на виході видавала б те саме, що й повернула б перша машина, якби одержала на вхід дані X. На машині Тьюрінга можна імітувати всіх інших виконавців, які певним чином реализують процес покрокового обчислення, у якому кожний крок обчислення досить елементарний. На машині Тьюрінга можна імітувати машину Поста, нормальні алгоритми Маркова і будь-яку програму для звичайних комп'ютерів, що перетвориє вхідні дані у вихідні по деякому алгоритму. У свою чергу, на різних абстрактних виконавцях можна імітувати Машину Тьюрінга. Виконавці, для яких це можливо, називаються повними по Тьюрінгу.

Багатство можливостей машини Тьюрінга проявляється в тому, що якщо якісь алгоритми А і В реалізуються машинами Тьюрінга, то можна побудувати машини Тьюрінга, що будуть реалізовувати різні композиції алгоритмів А і В. Наприклад, «Виконати А, потім виконати В» або «Виконати А. Якщо в результаті вийшло слово «так», то виконати В. У противному випадку не виконувати В» або «Виконувати по черзі А, В, поки В не дасть відповідь 0». Очевидно, що такі композиції також є алгоритмами, тому їхня реалізація за допомогою машини Тьюрінга підтверджує, що конструкція Тьюрінга є універсальним виконавцем.

Всякий алгоритм може бути реалізований відповідною машиною Тьюрінга. Всі алгоритми, придумані людством протягом сторіч можуть бути реалізовані машиною Тьюрінга. Кожний алгоритм призначений для якогось конкретного виконавця, у кожного виконавця є своя система команд, є своє коло задач. Тьюрінгом же був побудований універсальний виконавець, що може вирішити будь-яку відому задачу. Цей фундаментальний результат був отриманий у той час, коли універсальних обчислювальних машин ще не існувало. Більше того, сам факт побудови уявлюваного універсального виконавця дозволив висловити припущення про доцільність побудови універсальної обчислювальної машини, яка б могла вирішувати будь-які задачі за умови відповідного кодування вхідних даних і розробки відповідної програми дій виконавця.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]