Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
практика на теорию алгоритмов.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
715.78 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«СЕВЕРО-КАВКАЗКАЯ ГОСУДАРСТВЕННАЯ ГУМАНИТАРНО-ТЕХНОЛОГИЧЕСКАЯ АКАДЕМИЯ»

СРЕДНЕПРОФЕССИОНАЛЬНЫЙ КОЛЛЕДЖ

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

По дисциплине «Теория алгоритмов»

Черкесск, 2013

Рецензенты: М.В. Шаповалов, доцент РИПКРО, к.п.н.

Л.А. Моисеенко, преподаватель СПК СКГГТА

З.С. Шовкарова

Теория алгоритмов / Методические указания. – Черкесск,СКГГТА, 2013.–79 с.

Методические указания по дисциплине «Теория алгоритмов» содержат теоретический материал изучение, которого позволит студенту рассмотреть основные приемы составления алгоритмов для машины Тьюринга, НАМ, машины Поста и типовые задания для решения задач.

Методические указания адресованы студентам специальности «Программирование в компьютерных системах», рекомендуются для использования в среднеспециальных учебных заведениях соответствующего профиля.

Содержание

Глава 1. Машина Тьюринга 4

1. Теоретические сведения 4

1.1 Краткое описание машины Тьюринга 4

1.2 Программа для машины Тьюринга 6

1.3 Правила выполнения программы 6

1.4 Соглашения для сокращения записи 8

2. Практическая часть: Примеры на составление программ для мт 9

Практическая работа №1: Перемещение автомата, замена символов, анализ символов. 11

Практическая работа №2 Сравнение символов, стирание слова, удаление символа из слова. 16

Практическая работа №3: Сжатие слова, вставка символа в слово. 20

Практическая работа № 4: Раздвижка слова, формирование слова на новом месте, фиксирование места на ленте. 24

Глава 2. Нормальные алгоритмы Маркова 31

1. Теоретические сведения 31

1.1 Краткое описание нормальных алгоритмов Маркова 31

1.2 Правила выполнения НАМ 32

2.Практическая часть: Примеры на составление нам 34

Практическая работа №5: Вставка и удаление символов, перестановка символов 34

Практическая работа №6: Использование спецзнака, фиксация спецзнаком заменяемого символа. 39

Практическая работа № 7: Перемещение спецзнака, смена спецзнака. 44

Практическая работа № 8: Перенос символа через слово, использование нескольких спецзнаков. 48

Глава 3. Задачи теоретического характера 57

Практическая работа №9. Применимость алгоритма 57

Практическая работа №10 Самоприменимость алгоритма 60

Практическая работа № 11 Эквивалентность алгоритмов. 64

Практическая работа № 12. Композиция алгоритмов. 68

Глава 4. Машина Поста. 72

Практическая работа №13. Работа с массивами 72

Практическая работа №14 Ориентация на ленте 75

Практическая работа 15. Действия над заданным на ленте множеством меток 76

Практическая работа 16. Сравнение 79

Литература 81

Глава 1. Машина Тьюринга

1. Теоретические сведения

В главе рассматриваются задачи на составление алгоритмов для машины Тьюринга. Приводится краткое описание этой машины, на примерах объясняются основные приёмы составления таких алгоритмов и предлагаются задачи для самостоятельного решения.

1.1 Краткое описание машины Тьюринга

Структура машины Тьюринга Машина Тьюринга (МТ) состоит из двух частей - ленты и автомата (см. слева):

Лента используется для хранения информации. Она бесконечна в обе стороны и разбита на клетки, которые никак не нумеруются и не именуются. В каждой клетке может быть записан один символ или ничего не записано. Содержимое клетки может меняться - в неё можно записать другой символ или стереть находящийся там символ.

Договоримся пустое содержимое клетки называть символом «пусто» и обозначать знаком Л («лямбда»). В связи с этим изображение ленты, показанное на рисунке справа, такое же, как и на рисунке слева. Данное соглашение удобно тем, что операцию стирания символа в некоторой клетке можно рассматривать как запись в эту клетку символа Л, поэтому вместо длинной фразы «записать символ в клетку или стереть находящийся там символ» можно говорить просто «записать символ в клетку».

Автомат - это активная часть МТ. В каждый момент он размещается под одной из клеток ленты и видит её содержимое; это видимая клетка, а находящийся в ней символ - видимый символ; содержимое соседних и других клеток автомат не видит. Кроме того, в каждый момент автомат находится в одном из состояний, которые будем обозначать буквой q с номерами: q1, q2 и т.п. Находясь в некотором состоянии, автомат выполняет какую-то определённую операцию (например, перемещается направо по ленте, заменяя все символы b на а), находясь в другом состоянии - другую операцию.

Пару из видимого символа (S) и текущего состояния автомата (q) будем называть конфигурацией и обозначать <S, q>.

Автомат может выполнять три элементарных действия: 1) записывать в видимую клетку новый символ (менять содержимое других клеток автомат не может); 2) сдвигаться на одну клетку влево или вправо («перепрыгивать» сразу через несколько клеток автомат не может); 3) переходить в новое состояние. Ничего другого делать автомат не умеет, поэтому все более сложные операции так или иначе должны быть сведены к этим трём элементарным действиям.

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

  1. записывает некоторый символ S' в видимую клетку (в частности, может быть записан тот же символ, что и был в ней, тогда содержимое этой клетки не меняется);

  2. сдвигается на одну клетку влево (обозначение - L, от left), либо на одну клетку вправо (обозначение - R, от right), либо остается неподвижным (обозна­чение - N).

  3. переходит в некоторое состояние q' (в частности, может остаться в преж­нем состоянии).

Формально действия одного такта будем записывать в виде тройки: S' [L,R,N], q'

где конструкция с квадратными скобками означает возможность записи в этом месте любой из букв L, R или N. Например, такт *,L,q8 означает запись симво­ла * в видимую клетку, сдвиг на одну клетку влево и переход в состояние q8.