Программа-минимум семинарских занятий по дискретной математике для групп к3-33х
Машина Тьюринга
Договоренности:
начальный символ (∂) трогать нельзя, он должен быть строго один;
пустых символов (λ) бесконечно много – все незанятые ячейки ленты, и, если такой символ появился, далее слово считается законченным;
во всех задачах (если не оговорено) начальное состояние машины Тьюринга: ∂S0входное слово.
Пусть машина Тьюринга задана внешним алфавитом A={λ, a, b, c, d}, где λ – пустой символ, внутренним алфавитом S={S0, S1, S2, S3, S4, Ω}, где Ω – заключительное состояние и совокупностью команд (программой):
S0∂ ∂RS0;
S0aaRS1;
S0bbRS0;
S2adLΩ;
S0ccRS0;
S1dcLS3;
S3adLS4;
S4bcLS2;
S4cdLΩ;
Рассмотреть применение программы данной машины Тьюринга для переработки исходного слова «bcadc». Начальное состояние машины Тьюринга: S0∂bcadc.
Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая ставит в конце любого слова символ «1».
Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая ставит в конце слова символ, который является первым символом слова.
Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая ставит в конце слова символ, который является последним символом слова. Рассмотреть и сравнить два решения:
идем до конца слова, возвращаемся на шаг назад, запоминаем и копируем символ;
идем по слову, постоянно перезаписывая в память считанный только что символ, пока не дойдем до конца слова, где печатаем последний запомненный символ.
Внешний алфавит унарный. Написать программу машины Тьюринга, которая вычисляет функцию S(x)=x+1. Начальное состояние: , конечное состояние: .
Внешний алфавит унарный. Написать программу машины Тьюринга, которая осуществляет вычисление суммы двух чисел. Начальное состояние: , конечное состояние: .
Внешний алфавит унарный. Дано число n (закодировано (n+1)-ой палочкой). Написать программу машины Тьюринга, которая вычисляет функцию:
результат записать вместо входного слова. Внимание: нуль кодируется одной палочкой.
На ленте записано произвольное двоичное слово. Написать программу машины Тьюринга, которая печатает после слова символ «+», если:
в слове содержится только один нуль;
в слове содержится не менее одного нуля;
в слове содержится ровно два нуля.
Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая заменяет каждый второй нуль на единицу.
Внешний алфавит A={0, 1, 2}. Написать программу машины Тьюринга, которая заменяет все последовательности «102» на «***». Рассмотреть и сравнить два решения:
идем по слову, по ходу меняя состояния, фиксируем нахождение «102», «2» меняем на «*», возвращаемся к «1» заменяем ее и далее исправляем «0», затем перешагиваем через «*» и идем дальше;
идем по слову, по ходу меняя состояния, фиксируем нахождение «102», «2» меняем на «*», назад пока не возвращаемся, идем дальше, когда слово кончится, возвращаемся назад и после каждой встреченной «*», ставим еще «**».
Внешний алфавит унарный. Написать программу машины Тьюринга, которая осуществляет копирование слова после разделителя «*». Начальное состояние: , конечное состояние: .
Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая осуществляет копирование слова в прямом порядке, поставив в конце исходного слова разделитель «*».
Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая осуществляет копирование слова в прямом порядке без всякого разделителя.
Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая осуществляет копирование слова в обратном порядке, поставив в конце слова разделитель «*».
Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая осуществляет копирование слова в обратном порядке без всякого разделителя.
Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая записывает обратную копию вместо исходного слова.
Внешний алфавит A={0, 1}. Написать программу машины Тьюринга, которая ставит в конце слова «+», если оно палиндром, или ставит «-», в противном случае.
Внешний алфавит унарный. Написать программу машины Тьюринга, которая вычисляет функцию псевдоразности двух чисел:
Число n кодируется (n+1)-ой палочкой, т. е. нуль кодируется одной палочкой.
Примеры начальных и конечных состояний:
;
.
Внешний алфавит унарный. Дано число n, которое кодируется (n+1)-ой палочкой, т. е. нуль кодируется одной палочкой. Написать программу машины Тьюринга, которая вычисляет функцию f(n)=2n+2, результат записывается вместо входного слова.
На ленте записано произвольное двоичное слово. Написать программу машины Тьюринга, которая ставит в конце исходного слова:
символ «+», если в слове больше единиц;
символ «-», если в слове больше нулей;
символ «=», если в слове содержится одинаковое количество единиц и нулей.
На ленте записано произвольное двоичное слово. Написать программу машины Тьюринга, которая удваивает все буквы в слове.
На ленте записано произвольное двоичное слово. Написать программу машины Тьюринга, которая упорядочивает слово по возрастанию.