Понятие алгоритма так же фундаментально для информатики, как и понятие информации.
Само слово «алгоритм» происходит от имени выдающегося математика средневекового Востока Мухаммеда аль-Хорезми (Его полное имя Абу Абдуллах (или Абу Джафар) Мухаммад ибн Муса аль-Хорезми. Известно, что он родился до 800 г., а умер после 847 г., жил и работал в Багдаде – крупном научном центре и влиятельной столице Древнего Востока). Им были предложены приемы выполнения арифметических вычислений с многозначными числами (они всем хорошо знакомы из школьной математики). Позже в Европе эти приемы назвали алгоритмами от «Algorithmi» - латинского написания имени аль-Хорезми. |
В наше время понятие алгоритма понимается шире, не ограничиваясь только арифметическими вычислениями. Термин "алгоритм" стал достаточно распространенным не только в информатике, но и в быту.
Под алгоритмом (в быту) понимают описание какой-либо последовательности действий для достижения заданной цели. |
В этом смысле, например, алгоритмами можно назвать инструкцию по использованию кухонного комбайна, кулинарный рецепт, правила перехода улицы и пр.
Для использования понятия алгоритма в информатике требуется более точное определение, чем данное выше.
Ключевыми словами, раскрывающими смысл этого понятия, являются: исполнитель, команда, система команд исполнителя.
Алгоритм представляет собой последовательность команд (еще говорят - инструкций, директив), определяющих действия исполнителя (субъекта или управляемого объекта). Всякий алгоритм составляется в расчете на конкретного исполнителя с учетом его возможностей. Для того, чтобы алгоритм был выполним, нельзя включать в него команды, которые исполнитель не в состоянии выполнить. Нельзя повару поручать работу токаря, какая бы подробная инструкция ему не давалась. У каждого исполнителя имеется свой перечень команд, которые он может исполнить. Такой перечень называется системой команд исполнителя алгоритмов. (СКИ).
Например:
Исполнитель | Система команд исполнителя |
“Черепашка” в среде Лого | ВП, ПР, ЛВ, ПО, ПИШИ, НЦ, КРАСЬ, БЫСТРО, ПОВТОРИ и т.д. |
Операционная система | CLS, CD, DIR, COPY, RENAME, TIME, MD и т.д. |
СОБАКА | “сидеть”, ”лежать”, ”апорт”, ”фас”, ”барьер” и т.д. |
Свойства алгоритмов
Дискретность.
Процесс решения задачи должен быть разбит на последовательность отдельных шагов. Таким образом, формируется упорядоченная совокупность отделенных друг от друга команд (предписаний). Образующаяся структура алгоритма оказывается прерывной (дискретной): только выполнив одну команду, исполнитель сможет приступить к выполнению следующей.Точность (определенность)
Каждая команда алгоритма должна определять однозначное действие исполнителя. Это требование называется точностью алгоритма.Понятность.
Алгоритм, составленный для конкретного исполнителя, должен включать только те команды, которые входят в его систему команд. Это свойство алгоритма называется понятностью. Алгоритм не должен быть рассчитан на принятие каких-либо самостоятельных решений исполнителем, не предусмотренных составителем алгоритма.Конечность (результативность)
Еще одно важное требование, предъявляемое к алгоритму, — это конечность (иногда говорят - результативность) алгоритма. Это значит, что исполнение алгоритма должно завершиться за конечное число шагов.Массовость.
Разработка алгоритмов - процесс интересный, творческий, но непростой, требующий многих умственных усилий и затрат времени. Поэтому предпочтительно разрабатывать алгоритмы, обеспечивающие решение всего класса задач данного типа.
Например, если составляется алгоритм решения уравнения А : Х = С, то он должен быть вариативен, т.е. обеспечивать возможность решения для любых допустимых исходных значений коэффициентов А и С. Про такой алгоритм говорят, что он удовлетворяет требованию массовости.
Свойство массовости не является необходимым свойством алгоритма. Оно скорее определяет качество алгоритма: в то же время свойства точности, понятности и конечности являются необходимыми (иначе это не алгоритм).
Для успешного выполнения любой работы мало иметь ее алгоритм. Всегда требуются еще какие-то исходные данные, с которыми будет работать исполнитель (продукты для приготовления блюда, детали для сбора технического устройства и т.п.). Исполнителю, решающему математическую задачу, требуется исходная числовая информация. Задача всегда формулируется так: дана исходная информация, требуется получить какой-то результат.
Приступая к решению любой задачи, нужно сначала собрать все необходимые для ее решения данные.
Еще пример: для поиска номера телефона нужного вам человека исходными данными являются: фамилия, инициалы человека и телефонная книга (точнее, информация, заключенная в телефонную книгу). Однако этого может оказаться недостаточно. Например, вы ищите телефон А. И. Смирнова и обнаруживаете, что в книге пять строк с фамилией «Смирнов А. И.» Ваши исходные данные оказались неполными для точного решения задачи (вместо одного телефона вы получили пять). Оказалось, что нужно знать еще домашний адрес. Набор: фамилия — инициалы — телефонный справочник — адрес — является полным набором данных в этой ситуации. Только имея полный набор данных, можно точно решить задачу. Обобщая все сказанное, сформулируем определение алгоритма.
Алгоритм — понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящую от исходных данных к искомому результату. |
Если алгоритм обладает перечисленными выше свойствами, то работа по нему будет производиться исполнителем формально (т.е. без всяких элементов творчества с его стороны). На этом основана работа программно-управляемых исполнителей-автоматов, например промышленных роботов. Робот-манипулятор может выполнять работу токаря, если он умеет делать все операции токаря (включать станок, закреплять резец, перемещать резец, замерять изделие и т.д.). От исполнителя не требуется понимание сущности алгоритма, он должен лишь точно выполнять команды, не нарушая их последовательности.
Комментариев нет:
Отправить комментарий