Негосударственное образовательное учреждение высшего профессионального образования
«РОССИЙСКИЙ НОВЫЙ УНИВЕРСИТЕТ»
Воскресенский филиал
Кафедра прикладной информатики и естественнонаучных дисциплин
Контрольная работа
По теории алгоритмов
IV-вариант
Выполнил:
студента 2 курса на базе среднего профессионального (профильного) образования заочной формы обучения группы ИП11 Макарова Юрий Игоревич
Проверил:
старший преподаватель
Березенцева Т.Н.
Воскресенск
2013 г.
1. Определить, какая функция получается при суперпозиции функции g(x)=x+1 с самой собой.
h(x)= g(g(х))=x+2
Ответ: Суперпозиция функции g(х) с самой собой получим функцию h(х) = х + 2.
2. Определить, какая функция возникает примитивной рекурсией из функций g= x и h=xz.
f(0)=g(0)=0;
f(1)=h(0, g(0))=00=0;
f(2)=h(1, f(1))=10=1;
f(3)=h(2, f(2))=21=2;
f(4)=h(3, f(3))=32=9;
…
f(x)=(x-1)(x-2)
Ответ: Примитивная рекурсией из функций g= x и h=xz есть функция f(x)=(x-1)(x-2)
3. Покажите, что функция f(x,y)= 2x+3y является примитивно рекурсивной.
Доказательство.
Функция f(x; y) удовлетворяет соотношениям:
f(x; y + 1) =2 x + 3(y + 1) = 2x + 3y + 3 = s(s(s(2x + 3y))) = s(s(s(f(x; y)))):
Следовательно, функция f(x; y) возникает из примитивно рекурсивных функций
и операцией примитивной рекурсии и поэтому функция f(x; y) = 2x + 3y является примитивно рекурсивной.
Доказано.
4. Доказано. Постройте программу машины Тьюринга, вычисляющую функцию f(x)=x-3
|
Программа МТ выглядит следующим образом:
q11→1Пq1;… q10→0Лq1; q10→0Лq1; q10→0Лq0.
согласно которой для любой начальной конфигурации, когда считывающая головка обозревает одну из единиц, в каждый момент эта единица остается на месте, и головка сдвигается вправо на одну ячейку. Этот процесс продолжается до тех пор, пока головка не выйдет на пустую ячейку. Тогда в головка смещается влево и записывает 0, производит еще 2 такие операции. Машина перейдет в состояние q0.
|
Стоит учесть, что если вводные данные меньше трех машина зацикливается и переходит в состояние q0.
5. Суперпозиция (сложная функция) — это функция, полученная из некоторого множества функций путем подстановки одной функции в другую или отождествления переменных.
Способы получения суперпозиций Рассмотрим две булевы функции: функцию от аргументов и функцию от аргументов .
Тогда мы можем получить новую функцию из имеющихся двумя способами:
· Подстановкой одной функции в качестве некоторого аргумента для другой;
· Отождествлением аргументов функций.
Подстановка одной функции в другую
Подстановкой функции g в функцию f называется замена i-того аргумента функции f значением функции g:
Допускается также не только подстановка одной функции в другую, но и подстановка функции в саму себя.
При подстановке функции вместо -того аргумента функции , результирующая функция будет принимать аргументы, которые можно разделить на следующие блоки:
1. | — аргументы функции до подставленного значения функции |
2. | — используются как аргументы для вычисления значения функции |
3. | — аргументы функции после подставленного значения функции g |
Отождествлением переменных называется подстановка -того аргумента функции вместо -того аргумента:
|
Таким образом, при отождествлении переменных мы получаем функцию с количеством аргументов .
Пример машины Тьюринга
Конкретная машина Тьюринга задаётся перечислением элементов множества букв алфавита A, множества состояний Q и набором правил, по которым работает машина. Они имеют вид: qiaj→qi1aj1dk (если головка находится в состоянии qi, а в обозреваемой ячейке записана буква aj, то головка переходит в состояние qi1, в ячейку вместо ajзаписывается aj1, головка делает движение dk, которое имеет три варианта: на ячейку влево (L), на ячейку вправо (R), остаться на месте (N)). Для каждой возможной конфигурации <qi, aj> имеется ровно одно правило (для недетерминированной машины Тьюринга может быть большее количество правил). Правил нет только для заключительного состояния, попав в которое машина останавливается. Кроме того, необходимо указать конечное и начальное состояния, начальную конфигурацию на ленте и расположение головки машины
Приведу пример МТ для умножения чисел в унарной системе счисления. Машина работает по следующему набору правил:
Набор правил | Набор правил |
q0*→q0*R | q4a→q4aR |
q01→q01R | q4=→q4=R |
q0×→q1×R | q41→q41R |
q11→q2aR | q4*→q51R |
q21→q21L | q5 →q2*L |
q2a→q2aL | q6a→q61R |
q2=→q2=L | q6×→q7×R |
q2×→q3×L | q7a→q7aR |
q31 → q4aR | q71→q2aR |
q3a→q3aL | q7=→q8=L |
q3*→q6*R | q8a→q81L |
q4×→q4×R | q8×→q9×N |
Умножим с помощью МТ 3 на 2 в единичной системе: