Добавлен: 23.10.2018
Просмотров: 3505
Скачиваний: 99
Лабораторная работа № 4
Группа а
Тема: Представление алгоритмов с помощью машины Тьюринга
Цель работы: Освоить методы анализа работы машин Тьюринга и их разработки для реализации заданного алгоритма.
Требования к выполнению работы
Задание состоит из двух частей:
-
Задана машина Тьюринга и ее начальная конфигурация. Написать алгоритм, состоящий из последовательности команд, реализуемых машиной, и конфигураций машины после выполнения каждой команды алгоритма.
-
Разработать машину Тьюринга, реализующую заданную программу. Для этого:
-
Дать словесное описание алгоритма;
-
Определить внешний алфавит А, если он не задан (набор входных символов);
-
Определить внутренний алфавит Q (перечень состояний);
-
Определить заключительное состояние машины;
-
Составить программу машины в виде таблицы переходов или последовательности команд;
-
Проверить функционирование машины, написав алгоритм обработки различных входных последовательностей;
-
Проверить функционирование машины для тех же входных последовательностей с помощью эмулятора машины Тьюринга.
-
Варианты заданий.
Часть 1
-
Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3, q4, q5, q6, q7}и со следующей функциональной программой:
Q A |
q1 |
q2 |
q3 |
q4 |
q5 |
q6 |
q7 |
а0 |
q4а0П |
q6а0 П |
q6а0 П |
q01С |
q4 а0 П |
q0а0С |
q6а0 П |
1 |
q21Л |
q31Л |
q11Л |
q5а0С |
q5а0С |
q7а0 С |
q7а0 С |
Начальная конфигурация: а) 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} и со следующей функциональной программой:
Q A |
q1 |
q2 |
q3 |
q4 |
а0 |
q1а0П |
q3 а0П |
q3а0Л |
q1а0Л |
1 |
q3а0Л |
q21Л |
q4 а0П |
q41П |
* |
q0 а0С |
q3*Л |
- |
q4*П |
Начальная конфигурация: а) q1111*11; б) q111*11.
-
Дана машина Тьюринга с внешним алфавитом А = {s0, 1, , }, алфавитом внутренних состояний Q = {q0, q1, q2, q3, q4} и со следующей функциональной программой:
Q A |
q1 |
q2 |
q3 |
q4 |
s0 |
q4s0П |
q3s0Л |
q1s0П |
q0s0Л |
1 |
q2С |
q1С |
q11П |
q11Л |
|
q1Л |
q2П |
q31Л |
q4 s0П |
|
q1Л |
q2П |
q3s0Л |
q41П |
Начальная конфигурация: 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} и со следующей функциональной программой:
Q A |
q1 |
q2 |
q3 |
q4 |
q5 |
q6 |
q7 |
q8 |
q9 |
Q10 |
s0 |
q4s0П |
q6s0П |
q8s0П |
q0s0С |
q4s0П |
q01С |
q6s0П |
q101С |
q8s0П |
q01С |
1 |
q21Л |
q31С |
q11Л |
q5s0С |
|
q7s0С |
|
q9s0С |
|
q101П |
Начальная конфигурация: а) q111111; б) q11111.
-
Дана машина Тьюринга с внешним алфавитом А = {а0, 1, *}, алфавитом внутренних состояний Q = {q0, q1, q2, q3} и со следующей функциональной программой:
Q A |
q1 |
q2 |
q3 |
а0 |
- |
q31П |
q1а0Л |
1 |
q2 а0Л |
q21Л |
q31П |
* |
q0 а0С |
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} и со следующей функциональной программой:
Q A |
q1 |
q2 |
q3 |
а0 |
q2а0П |
q2 а0П |
q0а0С |
1 |
q11П |
q31П |
q31П |
Начальная конфигурация: q111а0а01.
-
Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3} и со следующей функциональной программой:
Q A |
q1 |
q2 |
q3 |
а0 |
q1а0П |
q3а0Л |
q0а0С |
1 |
q21П |
q1а0П |
q21Л |
Начальная конфигурация: 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} и со следующей функциональной программой:
Q A |
q1 |
q2 |
q3 |
q4 |
а0 |
q2а0П |
q3а0Л |
q11Л |
q0а0С |
1 |
q21П |
q4а0П |
q01С |
q2а0П |
Начальная конфигурация: q1111а01а01.
-
Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1} и со следующей функциональной программой:
Q A |
q0 |
q1 |
а0 |
|
q01П |
1 |
q2а0Л |
q11П |
Начальная конфигурация: 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П, q41q5 s0С,. 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} и со следующей функциональной программой:
Q A |
q1 |
q2 |
q3 |
q4 |
s0 |
q1s0Л |
q0аC |
q0bC |
q0cC |
a |
q2s0Л |
q2aЛ |
q3aЛ |
q4aЛ |
b |
q3s0Л |
q2bЛ |
q3bЛ |
q4bЛ |
c |
q4s0Л |
q2cЛ |
q3cЛ |
q4cЛ |
Начальная конфигурация: 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} и со следующей функциональной программой:
Q A |
q1 |
q2 |
q3 |
а0 |
- |
q31П |
q1а0Л |
1 |
q2 а0Л |
q21Л |
q31П |
* |
q0 а0С |
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.