ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 17.04.2019

Просмотров: 2338

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

21 

 

 

Рис. 2.4. Запис чисел 3 і 5 на стрічці машини Поста. 

Система  запису  чисел,  що  використовується  в  машині  Посту  є 

непозиційною.  

Складемо  програму  для  додавання  до  довільного  числа  одиниці. 

Припустимо, що на стрічці записано тільки одне число і каретка знаходиться 
над однією з клітин, в якій знаходиться мітка, що належить цьому числу:  

 

 

Рис. 2.5. Збільшення числа на одиницю. 

Для  рішення  задачі  можна  перемістити  каретку  вліво  (або  вправо)  до 

першої порожньої клітинки, а потім нанести мітку див. рис. 2.5-2.7.  

Програма, що додає до числа мітку справа, має вигляд:  
 

 

Рис. 2.6. Текст програми, що додає мітку справа. 

 
Програма, що додає  до числа мітку зліва, має вигляд:  

 

Рис. 2.7. Текст програми, що додає мітку зліва. 


background image

22 

 

Різниця тільки в напрямку руху каретки в першій команді. 
Машину Посту можна розглядати як спрощену модель ЕОМ. Справді, як 

ЕОМ, так і машина Посту мають: 

• 

неподільні  носії  інформації  (клітини  –  біти),  які  можуть  бути 
заповненими або незаповненими; 

• 

обмежений набір елементарних дій – команд, кожна з яких виконується 
за один такт (крок). 

Обидві  машини  працюють  на  основі  програми.  Проте  в  машині  Посту 

інформація  розташовується  лінійно  і  читається  поспіль,  а  в  ЕОМ  можна 
читати  інформацію  за  адресою;  набір  команд  ЕОМ  значно  ширше  і 
виразніше, ніж команди машини Посту, і т.д. 

Приклад.  
Віднімання натуральних чисел  P — Q. 
Будемо  представляти  натуральне  (ціле  невід’ємне)  число  P  набором  з 

P+1 одиниць і розділять числа нулем. Початкове положення каретки помічено 
символом «v» 
            v 
    00111110111000 
        P           Q 

Додавання двох чисел є тривіальним — достатньо поставити 1 між ними 

і стерти два останніх правих символи у Q.  

Програма  віднімання  складається  з  послідовного  затирання  крайніх 

лівих міток у Q і правих у P: 
 
1. 0           – 

витираємо лівий символ у Q 

2. → 
3. ? 4, 5 
4. Stop      – 

стоп, якщо затерли Q=0 

5. ← 
6. ? 5, 7     – 

цикл пошуку P 

7. 0           – 

витираємо правий символ у P 

8. → 
9. ? 8, 1     – 

шукаємо Q 

 


background image

23 

 

Відмітимо,  що  номер  команди  переходу  не  вказується,  якщо  перехід 

відбувається на наступний по порядку рядок (для наочності тексту). В 6-ому 
рядку можливе за циклювання, якщо Q > P (можна добавити перевірку) 

Обґрунтування  цієї  гіпотези  відбувається  сьогодні  не  шляхом  строго 

мате-автоматичного доведення, а на шляху експерименту. Дійсно, всякий раз, 
коли вказується алгоритм, його можна перевести в форму програми машини 
Посту, яка призводить до того ж результату. 

 
 
2.5  

Питання для самоконтролю  

 

1)  

Поняття загальної та конкретної проблеми по Посту. 

2)  

Простір символів і примітивні операції в машині Поста.  

3)  

Поняття фінітного 1-процесу в машині Поста. 

4)  

Способи завдання проблем і формулювання 1.  

5)  

Гіпотеза Поста. 


background image

24 

 

3. 

МАШИНА ТЬЮРІНГА ТА ПРОБЛЕМИ, ЯКІ НЕ 

РОЗВ’ЯЗУЮТЬСЯ АЛГОРИТМІЧНО 

 
3.1. Машина Тьюринга 

 
Алан Тьюринг (Turing) в 1936 році опублікував у працях Лондонського 

математичного  товариства  статтю,  яка  нарівні  з  роботами  Посту  і  Черча, 
лежить в основі сучасної теорії алгоритмів. 

Модель  обчислень,  в  якій  кожен  алгоритм  розбивався  на  послідовність 

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

Машина  Тьюринга  –  це  математична  побудова,  математичний  апарат 

(аналогічний,  наприклад,  апарату  диференціальних  рівнянь),  створений  для 
вирішення  певних  завдань.  Цей  математичний  апарат  був  названий 
"

машиною"  з  тієї  причини,  що  за  описом  його  складових  частин  і 

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

У кожній машині Тьюринга є дві частини: 

1) 

необмежена в обидві сторони стрічка, розділена на клітинки;  

2) 

автомат (каретка для зчитування / запису, керована програмою).  

З кожною

 

машиною

 

Тьюринга

 

пов'язані два

 

кінцевих

 

алфавіту:

  

алфавіт вхідних символів A = {a0, a1, ..., am}   

алфавіт станів Q = {q0, q1, ..., qp}. 

(З різними машинами Тьюринга можуть бути пов'язані різні алфавіти A і 

Q.)  

Стан q0 називається пасивним. Вважається, що якщо машина потрапила 

в цей стан, то вона закінчила свою роботу.  

Стан  q1  називається  початковим.  Перебуваючи  в  цьому  стані,  машина 

починає свою роботу. 


background image

25 

 

Вхідне  слово  розміщується  на  стрічці  по  одній  літери  в  розташованих 

підряд  клітинках.  Ліворуч  і  праворуч  від  вхідного  слова  знаходяться  тільки 
порожні  клітинки  (в  алфавіт  А  завжди  входить  порожня  буква  а0  –  ознака 
того, що клітинка порожня). 

Автомат  може  рухатися  вздовж  стрічки  вліво  або  вправо,  читати  вміст 

комірок і записувати в клітинку літери. Автомат кожного разу "бачить" тільки 
одну клітинку.  

Залежно від того, яку літеру  він бачить, а також залежно від свого стану 

qj 

автомат може виконувати наступні дії: 

• 

записати нову букву в клітинку, що оглядається; 

• 

виконати  зрушення  по  стрічці  на  одну  клітинку  вправо  /  вліво  або 
залишитися нерухомим; 

• 

перейти в новий стан.  

Тобто  у  машини  Тьюринга  є  три  види  операцій.  Щоразу  для  чергової 

пари  (qj,  ai)  машина  Тьюринга  виконує  команду,  що  складається  з  трьох 
операцій з певними параметрами. 

Програми для машин Тьюринга записуються у вигляді таблиці, де перші 

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

Щоб  задати  конкретну  машину  Тьюринга,  потрібно  описати  для  неї 

наступні складові: 

• 

Зовнішній  алфавіт.  Кінцева  безліч  (наприклад,  А),  елементи  якої 

називаються  літерами    (символами).  Одна  з  літер  цього  алфавіту 
(

наприклад, а0) повинна являти собою порожній символ. 

• 

Внутрішній  алфавіт.  Кінцева  безліч  станів  каретки  (автомата). 

Один  зі  станів  (наприклад,  q1)  повинний  бути  початковим  (що  запускає 

програму).  Ще  один  зі  станів  (q0)  повинний  бути  кінцевим  (завершальним 

програму) – стан зупинки. 

• 

Таблиця переходів. Опис поведінки автомата (голівки) в залежності 

від стану і символу, що зчитується.