Файл: Laboratornaya_rabota4_2017-2018.doc

ВУЗ: Не указан

Категория: Методичка

Дисциплина: Теория алгоритмов

Добавлен: 21.10.2018

Просмотров: 969

Скачиваний: 39

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Лабораторная работа № 4

Группа а

Тема: Представление алгоритмов с помощью машины Тьюринга

Цель работы: Освоить методы анализа работы машин Тьюринга и их разработки для реализации заданного алгоритма.

Требования к выполнению работы

Задание состоит из двух частей:

  1. Задана машина Тьюринга и ее начальная конфигурация. Написать алгоритм, состоящий из последовательности команд, реализуемых машиной, и конфигураций машины после выполнения каждой команды алгоритма.

  2. Разработать машину Тьюринга, реализующую заданную программу. Для этого:

    1. Дать словесное описание алгоритма;

    2. Определить внешний алфавит А, если он не задан (набор входных символов);

    3. Определить внутренний алфавит Q (перечень состояний);

    4. Определить заключительное состояние машины;

    5. Составить программу машины в виде таблицы переходов или последовательности команд;

    6. Проверить функционирование машины, написав алгоритм обработки различных входных последовательностей;

    7. Проверить функционирование машины для тех же входных последовательностей с помощью эмулятора машины Тьюринга.


Варианты заданий.

Часть 1

  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 П

q0

q4 а0 П

q0а0С

q6а0 П

1

q2

q3

q1

q5а0С

q5а0С

q7а0 С

q7а0 С


Начальная конфигурация: а) q111111; б) q1111.

  1. Дана машина Тьюринга с внешним алфавитом А = {а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.

  1. Дана машина Тьюринга с внешним алфавитом А = {а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Л

q2

q4 а0П

q4

*

q0 а0С

q3

-

q4


Начальная конфигурация: а) q1111*11; б) q111*11.

  1. Дана машина Тьюринга с внешним алфавитом А = {s0, 1, , }, алфавитом внутренних состояний Q = {q0, q1, q2, q3, q4} и со следующей функциональной программой:

Q

A

q1

q2

q3

q4

s0

q4s0П

q3s0Л

q1s0П

q0s0Л

1

q2С

q1С

q1

q1

q1Л

q2П

q3

q4 s0П

q1Л

q2П

q3s0Л

q4


Начальная конфигурация: q1111*11

  1. Дана машина Тьюринга с внешним алфавитом А = {а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 С

Начальная конфигурация: а) q10111 а0 а01111.

  1. Дана машина Тьюринга с внешним алфавитом А = {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П

q0

q6s0П

q10

q8s0П

q0

1

q2

q3

q1

q5s0С


q7s0С


q9s0С


q10


Начальная конфигурация: а) q111111; б) q11111.

  1. Дана машина Тьюринга с внешним алфавитом А = {а0, 1, *}, алфавитом внутренних состояний Q = {q0, q1, q2, q3} и со следующей функциональной программой:

Q

A

q1

q2

q3

а0

-

q3

q1а0Л

1

q2 а0Л

q2

q3

*

q0 а0С

q2

q3



Начальная конфигурация: а) q1111*111; б) q11*11.

  1. Дана машина Тьюринга с внешним алфавитом А = {а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

  1. Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3} и со следующей функциональной программой:

Q

A

q1

q2

q3

а0

q2а0П

q2 а0П

q0а0С

1

q1

q3

q3


Начальная конфигурация: q111а0а01.

  1. Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3} и со следующей функциональной программой:

Q

A

q1

q2

q3

а0

q1а0П

q3а0Л

q0а0С

1

q2

q1а0П

q2


Начальная конфигурация: q11111а01.

  1. Дана машина Тьюринга с внешним алфавитом А = {а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.

  1. Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3, q4} и со следующей функциональной программой:

Q

A

q1

q2

q3

q4

а0

q2а0П

q3а0Л

q1

q0а0С

1

q2

q4а0П

q0

q2а0П


Начальная конфигурация: q1111а01а01.

  1. Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1} и со следующей функциональной программой:


Q

A

q0

q1

а0


q0

1

q2а0Л

q1


Начальная конфигурация: q101 q10а011.

  1. Дана машина Тьюринга с внешним алфавитом А = {а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С, q101q10

Начальная конфигурация: q1111 , б) 1111111111.

  1. Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3,}и со следующей функциональной программой: q11q11П, q1а0q2а0П, q2а0q2а0П, q21q31П, q3а0q0а0С, q31q3

Начальная конфигурация: q10001.

  1. Дана машина Тьюринга с внешним алфавитом А = {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.

  1. Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1, q2, q3,}и со следующей функциональной программой: q1а0q1а0П, q11q21П, q2а0q3а0Л, q21q1 а0П, q3а0q0а0С, q31q2

Начальная конфигурация: q10001.

  1. Дана машина Тьюринга с внешним алфавитом А = {а0, 1}, алфавитом внутренних состояний Q = {q0, q1}и со следующей функциональной программой: q1а0q01Л, q11q11П, q01q2а0Л

Начальная конфигурация: 11q1а01111.

  1. Дана машина Тьюринга с внешним алфавитом А = {а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.

  1. Дана машина Тьюринга с внешним алфавитом А = {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.

  1. Дана машина Тьюринга с внешним алфавитом А = {а0, 1, *}, алфавитом внутренних состояний Q = {q0, q1, q2, q3} и со следующей функциональной программой:

Q

A

q1

q2

q3

а0

-

q3

q1а0Л

1

q2 а0Л

q2

q3

*

q0 а0С

q2

q3


Начальная конфигурация: а) q111*111*1*1.



Часть 2

  1. A={a,b,c}. Заменить на a каждый второй символ в слове P.

  2. Дана конечная совокупность единиц, вписанных в ячейки, взятые подряд без пропусков. Постройте функциональную схему такой машины Тьюринга, которая записывала бы в десятичной системе число этих единиц, т. е. пересчитывала бы набор единиц (дешифратор).

  3. Пусть P имеет вид Q>R, где Q и R – непустые слова из символов 0 и 1. Трактуя Q и R как записи двоичных чисел (возможно, с незначащими нулями), выдать в качестве ответа слово 1, если число Q больше числа R, и слово 0 иначе.

  4. A={a,b}. Если в P символов a больше, чем символов b, то выдать ответ a, если символов a меньше символов b, то выдать ответ b, а иначе в качестве ответа выдать пустое слово.

  5. На ленте записано выражение x+y, где x и y – числа в двоичной системе счисления. Получить результат операции.

  6. A={0,1}. Считая непустое слово P записью числа в двоичной системе, получить двоичное число, равное учетверенному числу P (например: 101 10100).

  7. A={a,b,c}. Если P – слово чётной длины (0, 2, 4, …), то выдать ответ a, иначе – пустое слово.

  8. Реализовать функцию f=x - 4.

  9. A={a,b,c}. Пусть P имеет нечётную длину. Оставить в P только средний символ.

  10. Определить, имеется ли во входном тексте слово «каракатица».

  11. Используя программу счетчика, вычитающего единицу из десятичной записи натурального числа, составьте программу машины Тьюринга, которая бы по десятичной записи числа п выписывала бы на ленту n палочек (шифратор).

  12. A={a,b}. Заменить в P каждое вхождение a на bb.

  13. Считая слово P записью числа в единичной системе, определить, является ли это число степенью 3 (1, 3, 9, 27, …). Ответ: пустое слово, если является, или слово из одной палочки иначе.

  14. A={ | }. Считая слово P записью числа в единичной системе счисления, получить запись этого числа в троичной системе.

  15. Во входном тексте подсчитать количество слов.

  16. A={0,1,2}. Считая непустое слово P записью положительного числа в троичной системе счисления, уменьшить это число на 1.

  17. A={0,1,2}. Считая непустое слово P записью числа в троичной системе счисления, получить запись этого числа в единичной системе.

  18. A={f, r, 2, 5, c, d}. Определить, является ли слово P записью числа в шестнадцатеричной системе счисления.

  19. На ленту подряд вписаны два конечных набора из m и n единиц, разделенные звездочкой. Причем в левом наборе единиц не меньше, чем в правом (m > n). Составьте программу машины Тьюринга, которая в левом наборе оставляла бы ровно столько единиц, на сколько единиц в левом наборе больше, чем в правом, а все остальные единицы стирала бы (вычитание единиц).

  20. Постройте машину Тьюринга, осуществляющую перевод слова 001x10 в слово 01x00, где 1х = 1...1 (х единиц). Причем в начальном положении машина должна находиться в состоянии q1 и обозревать правую ячейку, эту же ячейку она должна обозревать и в момент остановки.

  21. A={a,b,0,1}. Определить, является ли слово P записью числа в двоичной системе счисления (непустым словом, состоящем только из цифр 0 и 1). Ответ: слово 1 (да) или слово 0.