Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
255
Добавлен:
30.03.2015
Размер:
6.2 Mб
Скачать

6. Алгоритмы и машины тьюринга

6.1. Понятие алгоритма

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

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

Каждый встречается с алгоритмами со школьной скамьи. Правила, по которым выполняются арифметические действия, являются простейшими примерами алгоритмов. Сам термин «алгоритм» происходит от имени средневекового узбекского математика Аль-Хорезми, который еще в IX в. сформулировал такие правила.

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

Алгоритм Евклида состоит из следующей системы последовательных указаний: 1) обозревай а и b и переходи к следующему; 2) сравни обозреваемые числа (а = b, или а < b, или а > b) и переходи к следующему; 3) если обозреваемые числа равны, то каждое из них дает искомый результат, если нет – переходи к следующему; 4) если первое обозреваемое число меньше второго, переставь их местами и переходи к следующему; 5) вычитай второе число из первого и обозревай два числа – вычитаемое и остаток; переходи к указанию 2.

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

В наше время понятие алгоритма подверглось глубокому изучению и уточнению, главным образом, в связи с развитием кибернетики. С точки зрения современной практики, алгоритм – это программа, а критерием алгоритмичности процесса является возможность его запрограммировать. Именно благодаря этой реальности алгоритма, а также потому, что подход инженера к математическим методам всегда был конструктивным, понятие алгоритма в технике за короткий срок стало необычайно популярным (быть может, даже больше, чем в самой математике).

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

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

Соседние файлы в папке Основы теории конеч.авт., ЗА 6 сем