Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Машина Тьюрінга - це математична модель пристрою, який породжує обчислювальні процеси. Використовується для теоретич­ного уточнення поняття алгоритму та його дослідження. Названа за ім'ям англійського математика А.Тьюрінга (A. Turing), який запровадив її 1936 р. У кожній машині Тьюрінга є три частини (рис. 10.1):

1) стрічка, поділена на комірки;

2) пристрій керування (ПК);

3) головка читання / запису (Г).

Рис. 10.1

З кожною машиною Тьюрінга пов'язані два скінченні алфавіти: алфавіт зовнішніх символів А і алфавіт внутрішніх станів Q={q0, q1,..., qk}. З різними машинами Тьюрінга можуть пов'язу­ватись різні алфавіти.

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

Машина Тьюрінга працює в часі, що вважають дискретним, і його моменти занумеровують 1, 2, З,....У кожний момент часу стрічка містить скінченну кількість комірок. Головка пересувається поздовж стрічки; у кожний момент часу головка перебуває над певною коміркою стрічки. У такому разі кажуть, що головка зчитує букву, яка записана в цій комірці. У наступний момент часу головка залишається над цією ж коміркою (що позначають H), або пересувається на одну комірку вправо (що позначають П), або пересувається на одну комірку вліво (що позначають Л). Якщо у певний момент t головка перебуває над крайньою коміркою і зсувається на відсутню комірку, то автоматично прибудовується нова порожня (тобто з порожньою буквою Λ) комірка, над якою у момент часу t+1 перебуватиме головка. Отже, стрічка є потенці­ально нескінченною в обидва боки, тобто до неї завжди як зліва, так і справа можуть бути додані нові комірки.

Алфавіт внутрішніх станів Q ={q0, q1,..., qk} - це внутрішня пам'ять. Внутрішня пам'ять скінченна (на відміну від нескінченної зовнішньої пам’яті на стрічці). Елемент q0 називають заключним внутрішнім станом, а елемент ^Я початковим внутрішнім станом. Пересування головки поздовж стрічки залежить від букви, яка зчитується, і від внутрішнього стану машини.

Пристрій керування в кожний момент часу t, залежно від букви, яка зчитується у цей момент на стрічці, і внутрішнього стану машини, виконує такі дії:

1) змінює букву аi, яка зчитується в момент t на стрічці на нову букву аj (зокрема, може бути aj=ai);

2) пересуває головку в одному із напрямів Н, П, Л;

3) змінює наявний у момент t внутрішній стан машини qi на новий стан щ у якому машина буде в момент часу t +1 (зокрема, може бути qj=qi).

Таку дію пристрою керування називають командою, і її записують так:

qiai→ ajDqj ,

де qi — внутрішній стан машини в даний момент; аi - буква на стрічці, яка зчитується в цей момент; аj - буква, на яку змінюється буква аi (може бути аji); символ D є або Н, або П, або Л і вказує напрямок пересування головки; qj - внутрішній стан машини у наступний момент часу (може бути qj=qi).

Вирази qiai та ajDqj називають, відповідно, лівою та правою частинами команди. У лівій частині жодної команди q0 не зустрі­чається. Всіх команд, у яких ліві частини попарно різні, скінченна кількість (оскільки множини Q\ { q 0} та А скінченні), і їх сукуп­ність називають програмою машини. Зазначимо, що жодні дві команди не можуть мати однакові ліві частини.

Виконання однієї команди називають кроком. Обчислення (або робота) машини Тьюрінга - це послідовність кроків одного за другим без пропусків, починаючи з першого. Робота машини Тьюрінга повністю визначена заданням у перший (тобто почат­ковий) момент:

1) слова на стрічці, тобто послідовності букв, записаних у комір­ках стрічки (слово одержують читанням цих символів у комірках стрічки зліва направо);

2) положення головки Г;

3) внутрішнього стану машини.

Сукупність цих трьох умов (у даний момент часу t) називають конфігурацією (у даний момент часу t). Зазвичай у початковий момент внутрішнім станом машини є q1 а головка перебуває над першою зліва коміркою стрічки.

Отже, у початковий момент конфігурація така: на стрічці, яка складається із деякої кількості комірок (не менше однієї), у кожній комірці записана одна з букв зовнішнього алфавіту А, головка перебуває над першою зліва коміркою стрічки і внутрішнім станом машини є q1. Наприклад, якщо в початковий момент на стрічці записано слово a 1Λ a 2 a 1 a 1, то початкова конфігурація така:

q1 Λ a 2 a 1 a 1

q1

(біля комірки, над якою перебуває головка, вказано внутрішній стан машини).

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

Якщо в роботі машини Тьюрінга в деякий момент t виконається команда, права частина котрої містить q0, то в такий момент роботу машини вважають завершеною і кажуть, що машина є застосовною до слова на стрічці у початковій конфігурації. Справді, q1 не зустрі­чається у лівій частині жодної команди, цим і пояснюється назва q0 - " заключний стан". Результатом роботи машини у такому випад­ку вважають слово, яке буде записане на стрічці в заключній конфі­гурації, тобто в конфігурації з внутрішнім станом q0.

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

Зазначимо, що q 0Q для кожної машини Тьюрінга.

Приклад 10.1. Побудуємо машину Тьюрінга T1, яка застосовна до всіх слів в алфавіті {a, b} і довільне слово х1х2...хп, де хi∈ {а, b}, i =1,..., n, перетворює у слово x 2... хnх 1.

Як зовнішній алфавіт машини візьмемо множину А ={Λ, а, b }, а команди визначимо так:

Команда   q 1 a→ Λ Пq 2   q 1 b→ Λ Пq 3       Коментар   Перша буква а запам'ятовується переходом у стан q2 і стирається. Перша буква b запам'ятовується переходом у стан q3 і стирається.   Проходження головки через слово х2...хn і запис у його кінці букви х1=а.     Проходження головки через слово х2...хn і запис у його кінці букви х1=b.

 

Ці команди можна записати у вигляді таблиці, яку називають ункціональною схемою Тьюрінга (табл. 10.1).

Таблиця 10.1

  Λ a b
q 1 - Λ П q 2 Λ Пq 3
q 2 aНq 0 aПq 2 bПq 2
q 3 bНq 0 aПq 3 bПq 3

 

У таблиці прочерком відзначена неістотна команда, тобто коман­да, яка не зустрінеться під час роботи цієї машини.

Розглянемо роботу машини Т1 над словом abb; конфігурації, які у цьому разі виникають, зображено на рис. 10.2. ▲

a b b
Λ b b

 

 

q 1 q 2

 

Λ b b
Λ b b Λ

 

 

q 2 q 2

 

Λ b b a

 

 

q 0

Рис. 10.2

Приклад 10.2. Побудуємо машину Тьюрінга Т2 яка є застосов­ною до всіх слів в алфавіті { а, b } і знімає копію слова на стрічці, тобто зі слова х1...хп у початковій конфігурації отримаємо слово х1...хп Λ х1...хп у заключній конфігурації.

Цю машину можна побудувати так. Нехай задано деяке слово в алфавіті { а, b }, що складається з п букв (n ≥ 1). Робота машини буде складатись з n циклів. Для in на початок і -го циклу конфі­гурацію зображено нарис. 10.3.

x 1 x 2 xi- 1 xi xi+ 1 xn Λ x 1 x 2 xi- 1

q 1

Рис. 10.3

Отже, скопійовано (i -l) букв заданого слова і головка зчитує букву xi. Черговий цикл здійснюватиметься в три етапи.

Перши етап. Запам'ятовування букви хi (при цьому вона позна­чається, тобто фактично замінюється іншою буквою) і пересування головки вправо.

Другий етап. Пошук правої крайньої порожньої комірки, в яку записується хi.

Третій етап. Повернення головки вліво до позначеної букви, стирання позначки (тобто відновлення букви хi) і пересування головки на одну клітку вправо.

Перший етап реалізують такі команди.

Команда Коментар
  а'- позначена буква a, q2-стан запам'ятовування букви а.
q 1 b→ b ' Пq 3 b'- позначена буква b, q2- стан запам'ятовування букви b.

Другий етап.

Команда Коментар
Проходження залишку слова у стані q2.
Проходження залишку слова у стані q3.
Проходження головки через Λ між словами; q4-копіюватиметься буква а; q5- копіюватиметься буква b.
Проходження початкової частини копії слова.
Запис букви, яка копіюється.

Третій етап.

 

 

Команда Коментар
Рух головки вліво до позначеної бук­ви, стирання позначки, пересування на одну клітку вправо з'переходом у початковий стан q1. Машина готова до виконання чергового циклу копі­ювання букви.
q 1Λ Λ Η q 0 Команда зупинки, копію слова побу­довано.

 

Таблиця 10.2

  Λ a b a' b'
q 1 Λ Η q 0 a'Пq 2 b'Пq 3 - -
q 2 Λ Пq 4 aПq 2 bПq 2 - -
q 3 Λ Пq 5 aПq 3 bПq 3 - -
q 4 аЛq 6 aПq 4 bПq 4 -  
q 5 bЛq 6 aПq 5 bПq 5 - -
q 6 Λ Лq 6 aЛq 6 bЛq 6 aПq 1 bПq 1

 

Зовнішнім алфавітом машини Т2є множина A ={Λ, а, b, а', b' }, множина внутрішніх станів Q={q0, q1, …, q6} Нарешті, запишемо команди у вигляді функціональної схеми Тьюрінга (табл. 10.2).

Звернемо увагу, що алфавіт зовнішніх символів А в цьому прикладі окрім порожньої букви Λ та букв аib, уяких записують слово для копіювання, містить ще додаткові букви а', b' які викорис­товують у проміжних обчисленнях. ▲






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.