Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Машини Тьюрінга
Машина Тьюрінга - це математична модель пристрою, який породжує обчислювальні процеси. Використовується для теоретичного уточнення поняття алгоритму та його дослідження. Названа за ім'ям англійського математика А.Тьюрінга (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 (може бути аj=аi); символ 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 (біля комірки, над якою перебуває головка, вказано внутрішній стан машини). Отже, програма і початкова конфігурація повністю визначають роботу машини над словом, яке є на стрічці у початковій конфігурації. Тому машину Тьюрінга вважають заданою, якщо відома її програма. Якщо в роботі машини Тьюрінга в деякий момент t виконається команда, права частина котрої містить q0, то в такий момент роботу машини вважають завершеною і кажуть, що машина є застосовною до слова на стрічці у початковій конфігурації. Справді, q1 не зустрічається у лівій частині жодної команди, цим і пояснюється назва q0 - " заключний стан". Результатом роботи машини у такому випадку вважають слово, яке буде записане на стрічці в заключній конфігурації, тобто в конфігурації з внутрішнім станом q0. Якщо ж у роботі машини в жодний момент часу не зустрічається заключний стан, то процес обчислень буде нескінченним. У такому випадку кажуть, що машина є незастосовною до слова на стрічці у початковій конфігурації. Зазначимо, що q 0∈ Q для кожної машини Тьюрінга. Приклад 10.1. Побудуємо машину Тьюрінга T1, яка застосовна до всіх слів в алфавіті {a, b} і довільне слово х1х2...хп, де хi∈ {а, b}, i =1,..., n, перетворює у слово x 2... хnх 1. Як зовнішній алфавіт машини візьмемо множину А ={Λ, а, b }, а команди визначимо так:
Ці команди можна записати у вигляді таблиці, яку називають ункціональною схемою Тьюрінга (табл. 10.1). Таблиця 10.1
У таблиці прочерком відзначена неістотна команда, тобто команда, яка не зустрінеться під час роботи цієї машини. Розглянемо роботу машини Т1 над словом abb; конфігурації, які у цьому разі виникають, зображено на рис. 10.2. ▲
q 1 q 2
q 2 q 2
q 0 Рис. 10.2 Приклад 10.2. Побудуємо машину Тьюрінга Т2 яка є застосовною до всіх слів в алфавіті { а, b } і знімає копію слова на стрічці, тобто зі слова х1...хп у початковій конфігурації отримаємо слово х1...хп Λ х1...хп у заключній конфігурації. Цю машину можна побудувати так. Нехай задано деяке слово в алфавіті { а, b }, що складається з п букв (n ≥ 1). Робота машини буде складатись з n циклів. Для i ≤ n на початок і -го циклу конфігурацію зображено нарис. 10.3.
q 1 Рис. 10.3 Отже, скопійовано (i -l) букв заданого слова і головка зчитує букву xi. Черговий цикл здійснюватиметься в три етапи. Перши етап. Запам'ятовування букви хi (при цьому вона позначається, тобто фактично замінюється іншою буквою) і пересування головки вправо. Другий етап. Пошук правої крайньої порожньої комірки, в яку записується хi. Третій етап. Повернення головки вліво до позначеної букви, стирання позначки (тобто відновлення букви хi) і пересування головки на одну клітку вправо. Перший етап реалізують такі команди.
Другий етап.
Третій етап.
Таблиця 10.2
Зовнішнім алфавітом машини Т2є множина A ={Λ, а, b, а', b' }, множина внутрішніх станів Q={q0, q1, …, q6} Нарешті, запишемо команди у вигляді функціональної схеми Тьюрінга (табл. 10.2). Звернемо увагу, що алфавіт зовнішніх символів А в цьому прикладі окрім порожньої букви Λ та букв аib, уяких записують слово для копіювання, містить ще додаткові букви а', b' які використовують у проміжних обчисленнях. ▲
|