Задание на лабораторную работу. 1.Описать системой команд, функциональной таблицей и диаграммой переходов работу машины Тьюринга, реализующую заданный вариантом алгоритм
1.Описать системой команд, функциональной таблицей и диаграммой переходов работу машины Тьюринга, реализующую заданный вариантом алгоритм. Начальная и конечная конфигурации стандартны. 2. Проверить модель алгоритма на множестве тестовых примеров. Привести последовательности конфигураций машины Тьюринга, заданной в предыдущем пункте, для различных тестовых исходных слов.
Варианты заданий 1. Реализовать функцию арифметическое вычитание в унарном коде. 2. Реализовать функцию выбор максимального из двух чисел над числами в унарном коде. 3. Реализовать функцию над числами в унарном коде. 4. Реализовать функцию над числами в унарном коде. 5. Реализовать функцию над числами в унарном коде. 6. Реализовать функцию над числами в унарном коде. 7. Реализовать функцию выбор аргумента над числами в унарном коде. 8. Реализовать вычисление предиката X>Y в унарном коде с сохранением (восстановлением) исходных данных. 9. Реализовать вычисление предиката X=Y в унарном коде с сохранением (восстановлением) исходных данных. 10. Реализовать вычисление предиката “x - четное число” в двоичном коде. 11. Реализовать алгоритм в алфавите , меняющий местами первую и последнюю буквы слова. 12. Реализовать алгоритм над алфавитом , меняющий местами первый ноль и последнюю единицу. 13. Реализовать операцию копирование в алфавите , то есть получить из слова слово . 14. Реализовать алгоритм над алфавитом , который выдает единицу, если в исходном слове только парные нули и ноль в противном случае. 15. Реализовать алгоритм в алфавите , который переставляет буквы в слове так, чтобы сначала шли все нули, потом – единицы. 16. Реализовать алгоритм, конструирующий в алфавите слова вида , где - произвольное натуральное число. 17. Реализовать алгоритм, реализующий функцию циклический сдвиг двоичного числа на одну ячейку. 18. Реализовать алгоритм в алфавите , анализирующий последовательность цифр в слове и выдающий «+», если цифры образуют неубывающую последовательность, и «–» в противном случае. 19. Реализовать выделение подстроки, заключенной между двумя символами (первая пара) в алфавите . Если последовательность отсутствует на ленте, стереть все. 20. В слове в алфавите стереть все, кроме . Если такой последовательности нет, все стереть. 21. Реализовать алгоритм над алфавитом , переставляющий буквы в обратном порядке. 22. Реализовать предиката «в слове a в алфавите есть пара букв ‘ yy ’». 23. Реализовать алгоритм в алфавите , производящий в слове a алфавита замену всех вхождений буквы а на букву б. 24. Реализовать алгоритм в алфавите для вычисления логической функции , где x,y,z принимают значение 0 или 1. 25. Реализовать алгоритм в алфавите для вычисления логической функции , где x,y,z принимают значение 0 или 1.
Контрольные вопросы 11. Дать определение машины Тьюринга и ее составляющим. 12. Перечислить и определить способы описания МТ. 13. Какие операции выполняются в каждом такте работы МТ? 14. Дать определение конфигурации МТ. 15. Какие начальные и конечные конфигурации называют стандартными и как они обозначаются? 16. Что такое функция, правильно вычислимая по Тьюрингу? 17. Какие способы композиции МТ существуют, как они применяются и обозначаются? 18. Формулировка тезиса Тьюринга; можно ли его доказать строго? Лабораторная работа № 3
|