Алгоритм и его свойства.

 

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

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

Заметим, что в информатике чаще используется иное определение, а именно: алгоритм – это упорядоченная последовательность команд, предназначенная для базового вычислителя, выполнение которых приводит к конечному результату за конечное число шагов.

Каждый алгоритм должен задаваться:

- множеством исходных допустимых данных;

- начальным состоянием;

- множеством допустимых промежуточных состояний;

- правилами перехода из одного состояния в другое;

- множеством конечных результатов;

- конечным состоянием.

В зависимости от конкретного задания этих параметров определяются классы алгоритмов. Например: линейные, циклические, сортировки и другие алгоритмы.

Математическое определение алгоритма есть уточнение понятия алгоритма в интуитивном смысле и представляется в виде машины Тьюринга, машины Поста, нормального алгоритма Маркова.

Слово «алгоритм» происходит от латинской формы написания имени арабского математика аль-Хорезми (полное имя - Абу Абдуллах Мухаммад ибн Муса аль-Хорезми (783-850 гг.), жил и работал в Багдаде), который разработал правила четырех арифметических действий над числами в десятичной системе счисления.

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

Свойства алгоритмов:

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

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

3. Массовость предполагает, что алгоритм применим к целому классу однотипных задач, а при решении конкретной задачи из этого класса исходные данные могут меняться в определенных пределах.

4. Конечностьследует понимать в том смысле, что каждый алгоритм должен приводить к конечному результату за конечное число шагов. Алгоритм не допускает зацикливаний.

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

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

7. Понятность. Каждый алгоритм создается в расчете на определенного исполнителя. В качестве исполнителя алгоритма могут быть автоматы, роботы, ЭВМ, человек. Для того чтобы исполнитель мог выполнить алгоритм, он должен понимать каждое его предписание. Совокупность предписаний, которые понятны исполнителю и которые он может выполнить, называют системой команд исполнителя. Для правильного построения алгоритма необходимо знать систему команд исполнителя.

Таким образом, алгоритм - это совокупность правил, сформированных на некотором языке и определяющих процесс переработки допустимых исходных данных в искомые результаты.