logo
Информатика учебник

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

Слово "АЛГОРИТМ", как известно, происходит от видоизменённого имени древнего гениального арабского учёного Аль Хорезми. Поначалу дадим нестрогое, простейшее определение понятия "алгоритм":

АЛГОРИТМ – это некая система предписаний (инструкций), обязательно ведущих к достижению некоторого желаемого результата.

Если как следует призадуматься над этой фразой, то мы всю жизнь от рождения и до последнего часа живём в мире алгоритмов.

Иногда алгоритм предельно прост и выполняется рефлекторно. Например, человек прикоснулся к раскалённому предмету. Он сразу отдёргивает руку и дует на неё или подставляет под холодную воду. Рука спасена.

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

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

Приведём несколько "академичный" пример алгоритма. Допустим, проводится тестирование. Вместе с вопросом испытуемому предлагается ряд ответов, из которых только один правильный. Алгоритм поведения человека в данном случае сильно зависит от степени его подготовки. Если он хорошо представляет себе проблему, то сразу указывает верный ответ. Если – не очень, то обычно применяется следующий алгоритм: исходя от противного, отбрасываются заведомо негодные ответы, в сузившемся круге поиска легче догадаться, что правильно, а что – нет. Наконец, крайний случай – не готов! Тогда алгоритма просто нет – наугад!

И таких примеров из обычной повседневной жизни можно привести великое множество.

Теперь уточним определение алгоритма:

АЛГОРИТМэто конечная последовательность простейших формул и логических правил, чётко и недвусмысленно определяющих весь ход решения какой-либо задачи, который состоит в упорядоченном выполнении различных операций над данными с целью получения искомого ответа (результата) за к о н е ч н о е число шагов.

Алгоритм должен обладать следующими обязательными свойствами (характеристиками). К основным свойствам алгоритма относятся:

  1. Понятность. Элементы алгоритма (формулы, логические предписания) должны однозначно распознаваться (быть понятыми) "исполнителем" (человеком или устройством).

  2. Дискретность. Описываемый алгоритмом процесс и сам алгоритм могут быть разбиты на отдельные самостоятельные или взаимосвязанные элементарные этапы, возможность выполнения которых на ЭВМ у пользователя не вызывает сомнений.

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

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

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

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

Отсутствие или неполнота любого из этих свойств лишает алгоритм совершенства и возможности его успешной автоматической реализации.