Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
51 вопрос по инф..doc
Скачиваний:
22
Добавлен:
28.10.2018
Размер:
446.46 Кб
Скачать
  1. Понятие алгоритма. Свойства алгоритма.

Понятие алгоритма относится к числу основных понятий информатики. В течение длительного времени его употребляли только математики, понимая под алгоритмом правило решения задач некоторого класса.

Постоянное расширение области применения вычислительной техники привели к становлению новой самостоятельной науки – теории алгоритмов.

Термин «алгоритм» содержит преобразованное географическое название древнего государства в Средней Азии – Хорезм, родины человека по имени Мухаммед ибн Муса аль-Хорезми, ориентировочные годы жизни которого – 783-850. Его труды, переведенные в XII в. с арабского на латинский язык, познакомили европейцев с десятичной позиционной системой счисления и с правилами выполнения четырех арифметических действий над многозначными числами. Формальный характер этих элементарных операций, которые всеми и всегда выполняются одинаково при полном отвлечении от содержательного смысла операндов, означает, что они могут быть автоматизированы. А имя самого ученого в лат. транскрипции Algorithmi со временем превратилось в общее название однозначно трактуемой процедуры решения задачи, достижения поставленной цели.

Формирование строгого научного определения алгоритма не закончено и в настоящее время. Современное интуитивное представление алгоритма рассматривается ниже.

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

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

Отметим основные свойства, присущие любому алгоритму.

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

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

3. Элементарность шагов алгоритма. Простейшие (основные, натуральные) операции, выполняемые в соответствии с требованиями алгоритма, зависят лишь от характеристик исполнителя, но не от исходных данных и промежуточных результатов. Например, сравнение в ЭВМ двух чисел, выполнение арифметических операций и т.п., но не сравнение двух файлов, потенциальная длина которых не ограничена.

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

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

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

О некоторой ограниченности приведенного интуитивного понятия алгоритма свидетельствует тот факт, что существуют программы для ЭВМ, которые могут заканчиваться без получения результата или даже не заканчиваться при некоторых исходных данных. Пример – функционирование операционной системы компьютера: алгоритмы работы каждого ее компонента, их взаимодействия четко определены, включают конечное число действий, но операционная система не предполагает «самостоятельной» остановки и выдачи результатов. Еще одним примером «бесконечных» алгоритмов являются алгоритмы работы встроенных вычислительных систем, управляющих технологическими процессами с непрерывным циклом. Однако ограниченная трактовка – это как раз то, что требуется для ознакомления с основами алгоритмизации.

Алгоритмы, в соответствии с которыми решение поставленной задачи сводится к четырем арифметическим действиям, называются численными алгоритмами. Они задаются обычно в виде различных формул и схем: нахождение наибольшего общего делителя, наименьшего общего кратного, корней алгебраического уравнения невысокой степени и многого другого. Кроме того, существует множество предписаний, относящихся не к цифровым объектам: обработка текстовой информации и изображений, поиск информации в базах данных по заданным критериям.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]