Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы теории алгоритмов методические указания..pdf
Скачиваний:
1
Добавлен:
15.11.2022
Размер:
350.01 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ

им. проф. М. А. БОНЧ-БРУЕВИЧА»

Т. Ф. Красовская

ОСНОВЫ ТЕОРИИ АЛГОРИТМОВ

Методические указания

СПбГУТ)))

САНКТ-ПЕТЕРБУРГ

2013

УДК 510.5(077) ББК 2212я73

К78

Рецензент доктор физико-математических наук

заведующий кафедрой ВМ СПбГЭТУ «ЛЭТИ»

Н. А. Бодунов

Рекомендованы к печати редакционно-издательским советом СПбГУТ

Красовская, Т. Ф.

К78 Основы теории алгоритмов : методические указания / Т. Ф. Красовская. – СПб. : Издательство СПбГУТ, 2013. – 28.

Приведены три наиболее распространенных строгих математических определения алгоритма: частично-рекурсивная функция, машина Тьюринга, нормальные алгоритмы; примеры использования этих понятий для разрешения задачи алгоритмической неразрешимости, а также задания на тему «Алгоритмы» и необходимая литература.

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

УДК 510.5(077) ББК 2212я73

©Красовская Т. Ф., 2013

©Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования «Санкт-Петербургский государственный университет телекоммуникаций им. проф. М. А. Бонч-Бруевича», 2013

2

ОСНОВНЫЕ ПОНЯТИЯ ТЕОРИИ АЛГОРИТМОВ

Понятие алгоритма принадлежит к числу основных понятий математики и прошло большой путь развития. Само слово «алгоритм» происходит от имени узбекского математика 13-го века Абу ал Хорезми. Оно претерпело эволюцию: ал Хорезми – ал Горезми – алгоритм.

Вматематике существует много разных вычислительных процессов чисто механического характера, с помощью которых искомые величины целого класса задач вычисляются последовательно из данных исходных величин по определенным правилам. Эти процессы и называются алгоритмами.

Примеры алгоритмов:

1) алгоритмЭвклида(правилоотысканиянаибольшегообщегоделителя), 2) правило отыскания производной многочлена n-й степени,

3) правило отыскания решений квадратного уравнения,

4) правило интегрирования рациональной функции.

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

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

Общие характерные черты понятия алгоритма:

1) дискретность – изначально задается исходная конечная система величин (параметров) и на каждом следующем шаге система величин по-

лучается по определенному закону из системы величин, имевшихся на предыдущем шаге;

2)детерминированность (определенность) – система величин, получаемых на каком-то шаге, однозначно определяется системой величин, полученных на предыдущих шагах;

3)элементарность каждого шага;

4)результативность (направленность) – последовательный процесс построения системы величин должен быть конечным и давать результат, т. е. решение задачи;

5)массовость – начальная система величин может выбираться из некоторого потенциально бесконечного множества, т. е. посредством данного алгоритма можно решать множество однотипных задач.

Интуитивное определение алгоритма, хотя и не строгое, но настолько ясное, что не дает оснований для сомнений в тех случаях, когда речь идет

3

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

В тридцатые годы 20-го века шли интенсивные поиски строгого определения понятия алгоритма. В подходе к решению этой задачи можно выделить несколько основных направлений.

Первое направление связано с уточнением понятия вычислимой функции (Чёрч, Гедель, Клини). В результате был выделен класс так называемых частично-рекурсивных функций, имеющих строгое математическое определение. Такие функции вычислимы, т. е. существует алгоритм для их вычисления; если же функция не принадлежит к этому классу, то не существует алгоритма ее вычисления (не надо его и искать).

Второе направление связано с машинной математикой путем рассмотрения процессов, осуществляемых машиной (Пост, Тьюринг). Впервые это сделали независимо друг от друга Тьюринг и Пост (1937). Это направление часто называют машиной Тьюринга. Программа для такой машины и есть алгоритм вычисления так называемой тьюринговой функции. Если же функция не является тьюринговой, то не существует алгоритма ее вычисления.

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

Четвертое направление – это нервные сети Неймана. Будем рассматривать только числовые функции, т. е. функции, аргументы и значения которых принадлежат множеству натуральных чисел N: {0, 1, 2, 3, . . .}. Область определения числовой функции n аргументов, очевидно, есть декартово произведение n множеств N, т. е. Nn, а область значений такой функции есть N.

Определение. Числовые функции, значения которых можно вычислить посредством некоторого алгоритма, называются вычислимыми функциями. Например, sin x не является числовой вычислимой функцией, так как хотя бы sin 1 даже на интуитивном уровне не вычислить машине точно, сколько знаков ни брать.

4

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]