Компьютерный практикум по машине Тьюринга (с использованием Алго2000) Введение. Данный компьютерный практикум по машине Тьюринга предлагается изучать в 10– 11-х классах в рамках темы «Алгоритм. Исполнители алгоритма» в профильном обучении информатике, на факультативных занятиях или в системе дополнительного образования. Данный практикум является продолжением теоретического курса, следовательно к моменту работы с компьютером они должны знать и понимать: определения понятий (универсальный исполнитель, машина Тьюринга, внутренний и внешний алфавит для описания машины Тьюринга), допустимые действия машины Тьюринга, как изображается машина Тьюринга, функциональную схему машины Тьюринга.Учащиеся должны уметь:изображать в виде последовательности рисунков, как изменяется информация на ленте при работе машины Тьюринга, описанной функциональной схемой, по функциональной схеме машины Тьюринга определять, для решения какой задачи она предназначена. Целямипредложенного практикума являютсязнакомствос программой «АЛГО2000», отработка навыков работы с универсальным исполнителем: машиной Тьюринга. В результате практикума учащиеся должны уметь:использовать программу Алго2000 при работе с машиной Тьюринга. Программно-дидактическое обеспечение практикума: ПК, программа Алго2000. В данном практикуме предлагается небольшое число заданий, в связи с тем, что он рассчитан на 2 учебных часа. Компоновку заданий по часам рекомендуется произвести учителю самостоятельно, ориентируясь на подготовку учеников и отведенное время для практикума. В ходе практикума все задания могут быть разбиты на группы по сложности и в зависимости от уровня подготовки учащихся. Если учащиеся класса имеют примерно одинаковый уровень, то рекомендуется дать каждому ученику для работы все задания. В ходе выполнения практикума рекомендуется организовать повторение теоретического курса. Это будет способствовать актуализации знаний учащихся и активации внимания к занятию. Так же предлагается сначала объяснить, как работать с программой АЛГО2000, а затем переходить к решению задач. Практикум Занятие №1 Тема: «Решение задач на МТ с использованием программы «Алго2000» Цель: знакомство с программой «АЛГО2000», отработка навыков работы с универсальным исполнителем: машиной Тьюринга. Ход занятия. 1. Повторение. Дайте определение понятию: универсальный исполнитель, Какой алфавит для описания машины Тьюринга называетсявнутренним, а какой внешним? Какие действия может выполнять автомат машины Тьюринга? Чем одна машина Тьюринга отличается от другой? 2. Изложение нового материала. Конечно, удобнее было бы использовать для работы с МТ компьютер. Для этого создано много различных программ. Мы с вами будем использовать программу «Алго2000». Интерфейс программы Строка меню Панель инструментов Поле задания условия задачи Информационная лента Задание алфавита Таблица МТ Поле комментарий к решению задачи Строка состояния Информационная лента 1. Через проектор продемонстрировать интерфейс программы. и 2. Пояснить назначение всех частей программы на небольших примерах. Работу программы мы рассмотрим на примере задачи №1. Задача №1. На ленте МТ - конечный набор единиц. Напишите программу, которая заменяет единицы звездочками. Головка - левее первой единицы. Решение: Зададим внешний алфавит: 1*. Построим таблицу МТ. В состоянии q0 машина ищет начало числа и заменяет «1» на «*», а в состоянии q1 ищет конец числа, заменяя по пути все единицы на знак “*”.При достижении конца последовательности она останавливается. Зададим на информационной ленте последовательность, состоящую из «1». Например, 11111. Для выполнения нажмем клавишу F8(пошаговое)или F9(полное). 3. Решение задач. Задача №2. На ленте МТ - конечный набор единиц: _11111_. Напишите программу, которая ставит * вместо первой и последней единицы, остальные стирает. Головка - левее первой цифры. Решение: В состоянии q0 машина ищет начало числа и заменяет «1» на «*», а в состоянии q1 ищет конец числа. В состоянии q2последнюю 1 и заменяет на знак “*” и останавливается. Задача №3.Напишите программу, моделирующую работу машины Тьюринга, которая увеличивает заданное число на 2.Головка - левее первой цифры. Решение: Для решения этой задачи предлагается выполнить следующие действия: 1. Перегнать автомат под последнюю цифру числа. 2. Если это цифра от 0 до 7, то заменить её цифрой на 2 больше и остановиться; 3. Еслижеэтоцифра 8, тогда заменить её на 0 и сдвинутьавтомат к предыдущей цифре, после чего увеличить ее на 1; 4. Если же это цифра 9, тогда заменить её на 1 и сдвинуть автомат к предыдущей цифре, послечего увеличить ее на 1; Задача №4.Дано число n в восьмеричной системе счисления. Разработать машину Тьюринга, которая увеличивала бы заданное число n на 1. Автомат в состоянии q0 обозревает некую цифру входного слова. Решение: В состоянии q0 машина ищет правый конец числа, в состоянии q1 — увеличивает значение на 1 и останавливается (кроме числа 7). При нахождении 7 – меняет значение на «0» и возвращается в состояние q1, но при этом уже рассматривает значение находящееся левее. 4. Итог занятия Оценить работу класса и назвать учащихся, отличившихся на уроке. 5. Домашнее задание Придумать задачу для машины Тьюринга. Занятие №2 Тема: «Решение задач на МТ с использованием программы «Алго2000» Цель: отработка навыков работы с универсальным исполнителем: машиной Тьюринга ис программой «АЛГО2000». Ход занятия. 1. Повторение. Приведите пример, когда формальный исполнитель имитирует другого формального исполнителя. Какого формального исполнителя называют универсальным? Что такое машина Тьюринга? 2. Решение задач. Задача №5.Дано натуральное число n > 1. Уменьшить заданное число n на 1, при этом в выходном слове старшая цифра не должна быть 0. Головка - под левой цифрой. Решение: Состояние q1 — уменьшаем младшую (очередную) цифру на 1. Если она больше 1, то после уменьшения — сразу останов, если же младшая цифра равна 0, то вместо нее пишем 9, смещаемся влево и вновь выполняем вычитание. Если уменьшаемая цифра равна 1, то вместо нее пишем 0 и переходим в состояние q2. Задача №6.На ленте машины Тьюринга содержится последовательность символов “+”. Напишите программу для машины Тьюринга, которая каждый второй символ “+” заменит на “–”. Замена начинается с правого конца последовательности. Автомат в состоянии q0 обозревает один из символов указанной последовательности. Решение: В состоянии q0 машина ищет правый конец числа, в состоянии q1 — пропускает знак “+”, при достижении конца последовательности — останавливается. В состоянии q2 машина знак “+” заменяет на знак “–”, при достижении конца последовательности она останавливается. Задача №7.На ленте машины Тьюринга находится число, записанное в десятичной системе счисления. Умножить это число на 2. Автомат в состоянии q0обозревает крайнюю левую цифру числа. Решение: состояние q0 — поиск правой (младшей) цифры числа; состояние q1 — умножение очередной цифры числа на 2 без прибавления 1 переноса; состояние q2 — умножение очередной цифры числа на 2 с прибавлением 1 переноса. Задача №8. Из одного числа вычесть другое, если числа записаны в десятичной системе счисления. Автомат в состоянии q0 обозревает крайнюю правую цифру числа. Решение: q0 - вычитание единицы q1 - переход к первому числу q2 - вычитание единицы из первого числа q3 - сдвиг каретки вправо до пробела q4 - удаляем лишние символы если мы дошли до знака минус в состоянии q0, то второе число исчерпано 3. Проверка д/з Набрать решение домашнего задания. 4. Итог занятия Оценить работу класса и назвать учащихся, отличившихся на уроке. Отдельно оценить д/з. 5. Домашнее задание 1. Удалить из слова его второй символ, если такой есть. 2. Удвоить слово, поставив между ним и его копией знак =. Рекомендуемая литература 1. В.Н. Пильщиков, В.Г. Абрамов, А.А. Вылиток, И.В. Горячая «Машина Тьюринга и алгоритмы Маркова. Решение задач» (Учебно-методическое пособие) 2. Газета «Информатика», издательский дом «1 сентября», № 1, 2007 г. 3. Газета «Информатика», издательский дом «1 сентября», № 18, 2007 г. 4. Майер Р.В. Машины Поста и Тьюринга (komp-model.narod.ru) 5. К.Ю. Поляков, Е.А. Еремин "Элементы теории алгоритмов". Журнал "Информатика" №1, 2012 г.