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

Задача алгоритмизации состоит в составлении записи алгоритмов так, чтобы однозначно и точно следуя предписаниям алгоритма, исполнитель эффективно получал определенный результат. Это накладывает на записи алгоритмов целый ряд обязательных требований (свойств).

Свойства, которым должны удовлетворять алгоритмы, адресуемые заданному исполнителю:

Дискретность алгоритма

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

Например, написанный и нарисованный (для наглядности) на коробке с овсяными хлопьями алгоритм приготовления четырех порций, выглядит так:

1. Взять кастрюлю.

2. Налить в нее 900 мл молока (или воды).

3. Поставить ее на огонь.

4. Довести до кипения.

5. Засыпать 140 г хлопьев.

6. Добавить по вкусу соль и сахар.

7. Варить на слабом огне 5 минут, помешивая.

8. Оставить настаиваться 3-5 минут

Понятность алгоритма

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

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

Определенность или детерминированность алгоритма

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

В описанном выше алгоритме в пункте 6 указано «Добавить по вкусу соль и сахар». Это предписание, понятное для человека, не может быть понятно для вычислительной машины, поэтому такие предписания не могут встречаться и вычислительных алгоритмах.

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

Массовость алгоритма

Алгоритмы должны обеспечивать решение широкого класса задач данного типа. Это свойство алгоритма позволяет использовать различные допустимые значения исходных данных.

Так, алгоритм вычисления по формуле

С=А+В

может применяться для вычисления значений С при любых значениях А и В.

Алгоритм вычисления значения

y=F/D

может применяться для всех действительных значений F и значений D>0.

Решение квадратного уравнения

ах2+bх+с=0

в области действительных чисел может быть найдено по формулам

х1=(-b-√d)/2a, х2=(-b+√d)/2a,

которые верны не для одного, а для многих квадратных уравнений с коэффициентами a, b и с, удовлетворяющих условию

d=b2-4ac> =0

Результативность алгоритма

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

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

Поделитесь своим мнением или задайте вопрос