
- •Теория алгоритмов
- •Содержание
- •Приложение…………………………………..……………………………..…107 Предисловие
- •§1. Понятие алгоритма. Примеры. Способы задания. Общие свойства. Необходимость математического уточнения понятия алгоритма
- •1.1.Понятие алгоритма
- •Примеры нечисловых алгоритмов
- •1.2. Общие свойства алгоритмов
- •1.3. Способы задания алгоритмов
- •Графическое представление алгоритмов
- •1.4. Необходимость уточнения понятия «алгоритм»
- •Образец решения задачи.
- •Контрольная работа №1
- •§2 Нормальный алгоритм Маркова
- •2.1.Понятие ассоциативного исчисления
- •Нетрудно понять, что
- •2.2. Нормальные алгоритмы Маркова
- •2.3. Вычисление арифметических функций с помощью нормальных алгоритмов
- •Образец решения задачи.
- •Контрольная работа №2
- •13. Задайте нормальный алгоритм Маркова для вычисления функции
- •§3. Машины Тьюринга
- •3.1. Описание машины Тьюринга
- •3.2. Вычисление числовых функций на машинах Тьюринга
- •3.3. Композиция машин Тьюринга
- •Вопросы для самоконтроля.
- •§4. Сведение любого алгоритма к вычислению числовой функции. Геделевская нумерация объектов
- •4.1. Перевод из одного алфавита в другой (кодирование)
- •Отделяя разные буквы пустым сигналом (т. Е. Пустым промежутком), получаем возможность перевода слов с русского алфавита на язык радиосигналов.
- •Возможны и переводы слов вначале на язык цифр, а далее - цифры на язык радиосигналов.
- •4.2. Нумерация пар и n-ок натуральных чисел
- •4.3. Сведение любого алгоритма к числовой функции. Метод Гёделя
- •Вопросы для самоконтроля
- •§5. Примитивно рекурсивные функции
- •Вопросы для самоконтроля
- •§6. Универсальная функция для . Существование вычислимых, но не примитивно рекурсивных функций
- •Вопросы для самоконтроля
- •§7. Частично рекурсивные функции. Тезис Чёрча
- •Вопросы для самоконтроля
- •Образцы решения задач.
- •Контрольная работа №3
- •§8 Рекурсивные и рекурсивно перечислимые множества
- •8.1. Рекурсивные множества
- •8.2. Рекурсивно перечислимые множества
- •§9. Примеры неразрешимых и нерешенных проблем
- •9.1. Неразрешимые проблемы
- •9.2. Нерешенные проблемы
- •Литература.
- •Приложение Формирование понятия «обратная функция» у студентов
- •Литература
Вопросы для самоконтроля.
Опишите особенности основных узлов машины Тьюринга: ленты, считывающей головки, печатающего устройства, лентопротяжного механизма.
Почему внешний алфавит машины должен содержать, по меньшей мере, два символа?
Почему при композиции машин внешние их алфавиты должны совпадать?
Можно ли ленту машины считать конечной, но достаточно длинной, чтобы не затруднять вычисления?
Какую функцию вычисляют композиции машин Т1∙Т4? Т1∙Т5∙Т1∙Т4∙Т2? Т1∙Т3∙Т1∙Т2?
Построить
машины, вычисляющие функции y=(2x
1),
y+x,
f(x)=
-
целая часть от деления на х
на 2.
Введем следующее изменение в работу машины Тьюринга: результатом работы машины считается вся информация, оставшаяся на ленте после остановки машины. При этом положение считывающей головки не учитывается. Построить машины Тьюринга в измененном варианте для вычисления функций: x+1,x+y, ,x∙y.
§4. Сведение любого алгоритма к вычислению числовой функции. Геделевская нумерация объектов
4.1. Перевод из одного алфавита в другой (кодирование)
Рассмотрим для примера русский алфавит. Он содержит 33 буквы. Присоединим сюда же несколько знаков препинания: точку, запятую, вопросительный и восклицательный знаки и некоторые другие. Сопоставим теперь каждому символу полученного алфавита некоторое слово, составленное из двух символов: короткого и длинного радиосигнала, причем так, чтобы равным буквам соответствовали разные слова. Мы получим так называемую, азбуку Морзе – широко известный алфавит радистов.
Отделяя разные буквы пустым сигналом (т. Е. Пустым промежутком), получаем возможность перевода слов с русского алфавита на язык радиосигналов.
Возможны и переводы слов вначале на язык цифр, а далее - цифры на язык радиосигналов.
С переводом слов из одного алфавита в другой встречаемся и в математике, прежде всего с переводом чисел из одной системы счисления в другую. Например, натуральные числа в различных счислениях задаются по-разному:
Современная позиционная десятичная запись чисел {1, 2, 5, 9, 10, 11, 20, …};
Римская система {I,II,V,VI,IX,X,XI,XX,…};
Славянская система {
};
В настоящее
время большинство электронно-вычислительных
машин оперируют с числами в двоичной
системе счисления. Алфавит этого
счисления содержит две буквы 0 и 1.
Запись чисел позиционная. Число 2n
обозначается в виде
.
Для задания любого числа а, в этой
системе необходимо разложить его в
сумму степеней двойки. Например, 15 =
23 + +22+ 21
+ 20. Следовательно, 15 =
1111. а число 25 имеет вид 11001, т.
к. 25 = 1
24
+ 1
23
+ 0
22
+ 0
21
+ 1
20.
Множество натуральных чисел можно задать в виде слов однобуквенного алфавита {I}, как это делалось в §3.
Определение 4.1. Пусть М – совокупность каких-то объектов, А – конечный алфавит. Закодировать совокупность М в алфавите А – это значит, задать однозначное отображение некоторого множество слов в алфавите А на множество М. Слово а в алфавите А, соответствующее объекту аМ называется кодом объекта и записывается как =(а).
В этом определении не требуется, чтобы была взаимно однозначным отображением. Поэтому в принципе один и то же объект из М может иметь несколько кодов при данном кодировании .
Рассмотренные выше примеры переводов слов из одного алфавита в другой являются частными случаями кодирования. Примеры кодирований, связанные с пересчетом объектов, будут даны ниже.