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

Свойства алгоритмов. Воз­можность автоматизации деятельности человека.

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

алгоритмами.

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

Слово алгоритм происходит от algorithmi — ла­тинской формы написания имени великого матема­тика IX в. аль-Хорезми, который сформулировал правила выполнения арифметических действий. Первоначально под алгоритмами и понимали толь­ко правила выполнения четырех арифметических действий над многозначными числами. В дальней­шем это понятие стали использовать вообще для обозначения последовательности действий, приво­дящих к решению поставленной задачи.

Рассмотрим пример алгоритма для нахождения середины отрезка при помощи циркуля и линейки. Алгоритм деления отрезка АВ пополам:

1) поставить ножку циркуля в точку А;

2) установить раствор циркуля равным длине от­резка АВ;

3) провести окружность;

4) поставить ножку циркуля в точку В;

5) провести окружность;

6) через точки пересечения окружностей прове­сти прямую;

7) отметить точку пересечения этой прямой с от­резком АВ.

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

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

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

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

Совокупность команд, которые могут быть вы­полнены исполнителем, называется системой ко­манд исполнителя.

Еще одно важное требование, предъявляемое к алгоритмам, — результативность (или конеч­ность) алгоритма. Оно означает, что исполнение алгоритма должно закончиться за конечное число шагов.

Приведем еще один пример алгоритма.

Игра Баше (в игре участвуют двое).

Рассмотрим частный случай этой игры. Имеется 15 предметов. Соперники ходят по очереди, за каж­дый ход любой из играющих может взять 1, 2 или 3 предмета. Проигрывает тот, кто вынужден взять последний предмет.

Алгоритм выигрыша для первого игрока имеет следующий вид:

1) взять два предмета;

2) второй и последующий ходы делать так, что­бы количество предметов, взятых вместе с соперни­ком за очередной ход, в сумме составляло 4.

Данный алгоритм приводит к выигрышу для 7, 11, 15, 19,... предметов.

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

Таким образом, выполняя алгоритм, исполни­тель может не вникать в смысл того, что он делает, и вместе с тем получать нужный результат. В таком случае говорят, что исполнитель действует форма­льно, т. е. отвлекается от содержания поставленной задачи и только строго выполняет некоторые пра­вила, инструкции.

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: