«Алгоритмы и исполнители»


Люди ежедневно пользуются разнообразными правилами, инструкциями, рецептами, которые состоят из определенной последовательности команд. Некоторые из них настолько вошли в нашу жизнь, что мы выполняем их, почти не задумываясь. Иногда говорят, автоматически. Например, для приготовления яичницы с n яиц нужно действовать таким образом:

Такая запись последовательности указаний называют алгоритмом.

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

Алгоритм разрабатывается для решения некоторой задачи. При этом:

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

Свойства алгоритма: дискретность, определенность, понятность, конечность, результативность, массовость, эффективность.

Дискретность (латинской discretus — разделенный, разрывной) алгоритма означает, что выполнение алгоритма сводится к выполнению отдельных действий (шагов) в определенной последовательности. Причем, каждая команда алгоритма выполняется за конечный промежуток времени.

Определенность (однозначность) означает, что алгоритм однозначно определяет порядок действий исполнителя, результат этих действий и не нуждается в дополнительном толковании. Алгоритм не может содержать команды, которые исполнитель может воспринимать неоднозначно. Например, «Взять 2-3 ложки сахара», «Немного подогреть молоко», «Выключить свет через несколько минут» и т.п... Кроме того, в алгоритмах недопустимые ситуации, когда после выполнения очередного указания исполнителю непонятно, какое указание он должен выполнять следующей.

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

Результативность алгоритма означает, что после окончания выполнения алгоритма обязательно:

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

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



-->