Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЕМА 3_АЛГОРИТМІЧНІ СИСТЕМИ+++.doc
Скачиваний:
24
Добавлен:
05.12.2018
Размер:
634.88 Кб
Скачать

3.4. Машини Поста

Ідея машини полягає у тому, що:

1) алгоритмічні процеси є послідовністю досить простих «механічних» операцій;

2) на результат не впливає, хто виконує алгоритм і скільки разів, — він завжди один і той самий;

3) отже, алгоритмічні процеси може виконувати машина.

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

В гіпотетичній (умовній) машині Поста (1936 р.) інформацію представляють у двійковому алфавіті А = {1,0}. Вона має інформаційну стрічку необмеженої довжини — пам’ять машини. Стрічка по­ділена на окремі комірки. В кожній комірці можна розмістити 0 або 1.

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

Машина має керуючий пристрій, який у кожний момент часу перебуває у певному стані. Таких станів є скінченна множина. Один із таких станів є заключним і керує завершенням роботи машини.

q j

Керуючий пристрій знаходиться у стані q, «зчитувальна головка» оглядає j-ту комірку.

Машина може виконувати певний перелік правил (або наказів). Машина Поста може виконувати 6 типів наказів:

1. Записати у розглядувану комірку 1 та перейти до i-го наказу.

2. Записати у розглядувану комірку 0 та перейти до i-го наказу.

3. Зсунути стрічку праворуч на 1 комірку та перейти до i-го наказу.

4. Зсунути стрічку ліворуч на 1 комірку та перейти до i-го наказу.

5. Якщо у розглядуваній комірці записано 1, то перейти до i-го наказу, а якщо 0 — то перейти до j-го наказу.

6. Зупинка. Закінчення роботи алгоритму.

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

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

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

Нехай алфавіт машини Тьюринга А = (S0, S1, ..., Sn), де S0 = ; сукупність станів — це множина Q = {q0, q1, ..., qm},

де q0 — заключний стан;

А — зовнішній алфавіт машини;

Q — внутрішній алфавіт.

У кожний момент часу машина має певну послідовність станів комірок та 1 стан керуючого пристрою, а зчитувальна головка знаходиться навпроти якоїсь комірки. Сукупність усіх елементів, що визначають стан машини, називають конфігурацією машини.

Наприклад:

qi

S0

Sj

Sj

Sj

...

Sj

Sj

Sj

S0

1 2 3 ... ... ... k ... ... ... ... r-1 r

Конфігурація машини у вигляді слова:

... S0 Sj1 Sj2 Sj3 ... qj Sjk ... Sjr-1 Sjr S0 ... ,

де S0 — пуста комірка,

Sj1 — стан (зміст) першої непустої лівої комірки;

Sjk — стан комірки, що розглядається у даний момент часу;

r — кількість зайнятих комірок;

qi — стан керуючого пристрою; i = 0,1 … m.

Якщо машина перебуває у стані qі , має доступ до комірки із символом sk , переходить у стан qj , замінюючи символ sk на sm, a стрічка пересувається ліворуч на одну комірку, то це означає, що вона виконує команду

qi sk  qj sm Л або qi sk qi sm Л.

Замість Л можуть стояти П або С:

де Л — рух стрічки ліворуч;

П — рух стрічки праворуч;

С — стрічка не рухається.

Отже, перехід від однієї до іншої конфігурації здійснюється за допомогою команди. Загальний вигляд команди

qi sk  qj sm T ,

де T = Л, П, С.

Сукупність усіх команд машини називають її програмою.

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

Програму машини Тьюринга можна задати у вигляді таблиці.

Наприклад, задано таблицю:

А

Q

0

1

*

S0

q2

q2 0 Л

q1

q0C

q1

q2

q0

останов

Машина Тьюринга, представлена цією таблицею, здійснює перетворення слова 1*0 у слово 0*1. Наведемо алгоритм переносу 0 разом зі зміною конфігурацій після виконання кожної команди.

Нехай початкова конфігурація машини має вигляд: s0 q2 1* 0 s0. Тоді:

q1 1  q2 0 Л s0 0 q2 * 0 s0

q2 *  q1 * Л s0 0 * q1 0 s0

q1 0  q1 1 Л s0 0 * 1 q2 s0

q2 s0  q0 s0 C s0 0 * 1 q0 s0 — заключна

конфігурація машини.

З часом з’явилися різні модифікації машини Тьюринга залежно від кількості використовуваних стрічок пам’яті, кількості станів керуючого пристрою. Так, існує машина Тьюринга з двома виходами. Якщо додати у керуючий пристрій певний стан q*, то: якщо керуючий пристрій переходить у стан q0 для заданого вхідного слова Х, то машина допускає Х; якщо керуючий пристрій переходить у стан q*, то машина забороняє стан Х.

Багатострічкова машина Тьюринга має декілька стрічок, поділених на комірки. В кожній комірці може знаходитись один із символів зовнішнього алфавіту А. Керуючий пристрій може знаходитись в одному зі станів Q = {q0, q1 ... qm}, де q0 — заключний стан. Конфігурація машини вважається заданою, якщо відомий стан керуючого пристрою, стан всіх комірок, всіх стрічок та вказані комірки, що доступні на даний момент зчитувальним головкам. Конфігурація складається з К слів, якщо машина має К стрічок пам’яті.