Тьюринг. Лабораторная работа 4. Машина Тьюинга. Представление алгоритмов с помощью машины Тьюринга
Скачать 130.5 Kb.
|
Лабораторная работа № 4 Группа а Тема: Представление алгоритмов с помощью машины Тьюринга Цель работы: Освоить методы анализа работы машин Тьюринга и их разработки для реализации заданного алгоритма. Требования к выполнению работы Задание состоит из двух частей: Задана машина Тьюринга и ее начальная конфигурация. Написать алгоритм, состоящий из последовательности команд, реализуемых машиной, и конфигураций машины после выполнения каждой команды алгоритма. Разработать машину Тьюринга, реализующую заданную программу. Для этого: Дать словесное описание алгоритма; Определить внешний алфавит А, если он не задан (набор входных символов); Определить внутренний алфавит Q (перечень состояний); Определить заключительное состояние машины; Составить программу машины в виде таблицы переходов или последовательности команд; Проверить функционирование машины, написав алгоритм обработки различных входных последовательностей; Проверить функционирование машины для тех же входных последовательностей с помощью эмулятора машины Тьюринга. Варианты заданий. Часть 1 Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3, q4, q5, q6, q7}и со следующей функциональной программой:
Начальная конфигурация: а) q111111; б) q1111. Дана машина Тьюринга с внешним алфавитом А = {а0, 1, *}, алфавитом внутренних состояний Q = {q0, q1, q2, q3,}и со следующей функциональной программой: q1 1q2а0Л, q1*q0 а0С, q2а0q3 1П, q21q21Л, q2*q2*Л, q3а0q1 а0Л, q31q31П, q3*q3*П. Начальная конфигурация: q111*111. Дана машина Тьюринга с внешним алфавитом А = {а0, 1, *}, алфавитом внутренних состояний Q = {q0, q1, q2, q3, q4} и со следующей функциональной программой:
Начальная конфигурация: а) q1111*11; б) q111*11. Дана машина Тьюринга с внешним алфавитом А = {s0, 1, , }, алфавитом внутренних состояний Q = {q0, q1, q2, q3, q4} и со следующей функциональной программой:
Начальная конфигурация: q1111*11 Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3, q4, q5, q6, q7}и со следующей функциональной программой: q1 а0q4а0П, q11 q21Л, q2а0q6 а0 П, q21q31Л, q3а0q6а0 П, q4 а0 q01С, q5 а0q4 а0 П, q6а0q0а0С, q7а0q6а0 П, q31q11Л, q41q5а0С, q51q5а0С, q6 1q7а0 С, q71q7а0 С Начальная конфигурация: а) q11а0111 а0 а01111. Дана машина Тьюринга с внешним алфавитом А = {s0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10} и со следующей функциональной программой:
Начальная конфигурация: а) q111111; б) q11111. Дана машина Тьюринга с внешним алфавитом А = {а0, 1, *}, алфавитом внутренних состояний Q = {q0, q1, q2, q3} и со следующей функциональной программой:
Начальная конфигурация: а) q1111*111; б) q11*11. Дана машина Тьюринга с внешним алфавитом А = {а0, 1, *}, алфавитом внутренних состояний Q = {q0, q1, q2, q3,, q4}и со следующей функциональной программой: q1а0q2а0П, q11q3а0Л, q1*q0 а0С, q2а0q3 а0П, q21q21Л, q2*q3*Л, q3а0q3а0Л, q31q4а0П, q4а0q1 а0Л, q41q41П, q4*q4*П Начальная конфигурация: 1111*11*1*11 Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3} и со следующей функциональной программой:
Начальная конфигурация: q111а0а01. Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3} и со следующей функциональной программой:
Начальная конфигурация: q11111а01. Дана машина Тьюринга с внешним алфавитом А = {а0, 1, *}, алфавитом внутренних состояний Q = {q0, q1, q2, q3,, q4}и со следующей функциональной программой: q1s0q4s0П, q11q2аС, q1q1аЛ, q1q2Л, q2s0q3s0Л, q21q1С, q2q2аП, q2q2П, q3s0q1s0Л, q31q11П, q3q31Л, q3q3s0Л, q4s0q0s0Л, q41q11Л, q4q4s0П, q4q41П. Начальная конфигурация: а) 1q1111 , б) q1111. Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3, q4} и со следующей функциональной программой:
Начальная конфигурация: q1111а01а01. Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1} и со следующей функциональной программой:
Начальная конфигурация: q11а01 q11а0а011. Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = { q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10} и со следующей функциональной программой: q1s0q4s0П, q11q21Л, q2s0q6s0П, q21q31С, q3s0q8s0П, q31q11Л, q4s0q0s0П, q41q5s0С,. q5s0q4s0П, q6s0q01С, q61q7s0С, q7s0q6s0П, q8s0q101С, q81q0s0С, q9s0q8s0П, q10s0q01С, q101q101П Начальная конфигурация: q1111 , б) 1111111111. Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3,}и со следующей функциональной программой: q11q11П, q1а0q2а0П, q2а0q2а0П, q21q31П, q3а0q0а0С, q31q31П Начальная конфигурация: q11а01а01а01. Дана машина Тьюринга с внешним алфавитом А = {s0, a, b, c}, алфавитом внутренних состояний Q = {q0, q1, q2, q3, q4} и со следующей функциональной программой:
Начальная конфигурация: q1aabcbbc. Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3,}и со следующей функциональной программой: q1а0q1а0П, q11q21П, q2а0q3а0Л, q21q1 а0П, q3а0q0а0С, q31q21Л Начальная конфигурация: q11а01а01а01. Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1}и со следующей функциональной программой: q1а0q01Л, q11q11П, q01q2а0Л Начальная конфигурация: 11q1а01111. Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3,, q4}и со следующей функциональной программой: q1а0q2а0П, q11q21П, q2а0q3 а0Л, q21q4а0П, q3а0q11Л, q31q0а0С, q4а0q0а0С, q41q2а0П. Начальная конфигурация: q11а011а0111а011. Дана машина Тьюринга с внешним алфавитом А = {s0, a, b, c}, алфавитом внутренних состояний Q = {q0, q1, q2, q3, q4} и со следующей функциональной программой: q1s0q1s0Л, q1aq2s0Л, q1bq3s0Л, q1cq4s0Л, q2s0q0aC, q2aq2aЛ, q2bq2bЛ, q2сq2сЛ, q3s0q0bC, q3aq3aЛ, q3bq3bЛ, q3сq3сЛ, q4s0q0cC, q4aq4aЛ, q4bq4bЛ, q4сq4сЛ. Начальная конфигурация: q1aababcabb. Дана машина Тьюринга с внешним алфавитом А = {а0, 1, *}, алфавитом внутренних состояний Q = {q0, q1, q2, q3} и со следующей функциональной программой:
Начальная конфигурация: а) q111*111*1*1. Часть 2 A={a,b,c}. Заменить на a каждый второй символ в слове P. Дана конечная совокупность единиц, вписанных в ячейки, взятые подряд без пропусков. Постройте функциональную схему такой машины Тьюринга, которая записывала бы в десятичной системе число этих единиц, т. е. пересчитывала бы набор единиц (дешифратор). Пусть P имеет вид Q>R, где Q и R – непустые слова из символов 0 и 1. Трактуя Q и R как записи двоичных чисел (возможно, с незначащими нулями), выдать в качестве ответа слово 1, если число Q больше числа R, и слово 0 иначе. A={a,b}. Если в P символов a больше, чем символов b, то выдать ответ a, если символов a меньше символов b, то выдать ответ b, а иначе в качестве ответа выдать пустое слово. На ленте записано выражение x+y, где x и y – числа в двоичной системе счисления. Получить результат операции. A={0,1}. Считая непустое слово P записью числа в двоичной системе, получить двоичное число, равное учетверенному числу P (например: 101 → 10100). A={a,b,c}. Если P – слово чётной длины (0, 2, 4, …), то выдать ответ a, иначе – пустое слово. Реализовать функцию f=x - 4. A={a,b,c}. Пусть P имеет нечётную длину. Оставить в P только средний символ. Определить, имеется ли во входном тексте слово «каракатица». Используя программу счетчика, вычитающего единицу из десятичной записи натурального числа, составьте программу машины Тьюринга, которая бы по десятичной записи числа п выписывала бы на ленту n палочек (шифратор). A={a,b}. Заменить в P каждое вхождение a на bb. Считая слово P записью числа в единичной системе, определить, является ли это число степенью 3 (1, 3, 9, 27, …). Ответ: пустое слово, если является, или слово из одной палочки иначе. A={ | }. Считая слово P записью числа в единичной системе счисления, получить запись этого числа в троичной системе. Во входном тексте подсчитать количество слов. A={0,1,2}. Считая непустое слово P записью положительного числа в троичной системе счисления, уменьшить это число на 1. A={0,1,2}. Считая непустое слово P записью числа в троичной системе счисления, получить запись этого числа в единичной системе. A={f, r, 2, 5, c, d}. Определить, является ли слово P записью числа в шестнадцатеричной системе счисления. На ленту подряд вписаны два конечных набора из m и n единиц, разделенные звездочкой. Причем в левом наборе единиц не меньше, чем в правом (m > n). Составьте программу машины Тьюринга, которая в левом наборе оставляла бы ровно столько единиц, на сколько единиц в левом наборе больше, чем в правом, а все остальные единицы стирала бы (вычитание единиц). Постройте машину Тьюринга, осуществляющую перевод слова 001x10 в слово 01x00, где 1х = 1...1 (х единиц). Причем в начальном положении машина должна находиться в состоянии q1 и обозревать правую ячейку, эту же ячейку она должна обозревать и в момент остановки. A={a,b,0,1}. Определить, является ли слово P записью числа в двоичной системе счисления (непустым словом, состоящем только из цифр 0 и 1). Ответ: слово 1 (да) или слово 0. |