
Вопросы / Вопрос3
.doc
Вопрос 3.
Алгоритмы. Виды алгоритмов.
Алгоритм - это организованная последовательность действий, допустимых для некоторого исполнителя.
Исполнитель - это субъект или объект, выполняющий действия согласно предписанной ему инструкции. Исполнитель может быть формальным или эвристическим.
Формальный исполнитель выполняет инструкцию, не вникая в ее смысл и не принимая во внимание цель, с которой она составлена. Эвристический исполнитель согласовывается, свои действия с целевыми установками и принимает решение о том, как выполнить то или иное действие, образуясь со смыслом инструкции.
Каждый исполнитель полностью характеризуется своим набором допустимых действий и средой, в которой он существует.
Запись алгоритма состоит из команд, каждая из которых указывает исполнителю, какое допустимое действие должен совершить исполнитель, получив эту команду. Набор всех команд, понимаемых исполнителем, называется системой команд исполнителя (сокращенно СКИ). В записи алгоритма могут присутствовать комментарии, поясняющие человеку, читающему данный алгоритм, для чего предназначено действие в алгоритме.
Среда исполнителя - это совокупность объектов и связей между ними, над которыми данный исполнитель может совершать допустимые для него действия.
Совокупность тех результатов, которые можно получить с помощью данного исполнителя, называется его достижимыми целями.
Если все действия, которые исполнитель выполняет при решении задачи, записать в порядке их исполнения, то получится алгоритм, который называют линейным. Так что можно сказать, что линейный алгоритм – это алгоритм, в котором каждое действие обязательно исполняется, и притом один раз.
Алгоритм, записанный на формальном языке, понятном исполнителю, называется программой.
Формы представления алгоритмов
1. Словесное или словесно-формульное
2. Графическое представление
3. Программа
4. Табличное представление
5. Рисунки, пиктограммы
6. Графы, схемы
7. Блок-схемы
Различные определения алгоритма в явной или неявной форме содержат следующий ряд общих требований:
Детерминированность — определённость. В каждый момент времени следующий шаг работы однозначно определяется состоянием системы. Таким образом, алгоритм выдаёт один и тот же результат (ответ) для одних и тех же исходных данных. В современной трактовке у разных реализаций одного и того же алгоритма должен быть изоморфный граф. С другой стороны, существуют вероятностные алгоритмы, в которых следующий шаг работы зависит от текущего состояния системы и генерируемого случайного числа.
Понятность — алгоритм для исполнителя должен включать только те команды, которые ему (исполнителю) доступны, которые входят в его систему команд.
Завершаемость (конечность) — при корректно заданных исходных данных алгоритм должен завершать работу и выдавать результат за конечное число шагов. С другой стороны, вероятностный алгоритм может и никогда не выдать результат, но вероятность этого равна 0.
Массовость — алгоритм должен быть применим к разным наборам исходных данных.
Важную роль играют рекурсивные алгоритмы (алгоритмы, вызывающие сами себя до тех пор, пока не будет достигнуто некоторое условие возвращения). В последнее время активно разрабатываются параллельные алгоритмы, предназначенные для вычислительных машин, способных выполнять несколько операций одновременно.
Виды алгоритмов
- Циклический алгоритм.
Алгоритм, содержащий типовую конструкцию «цикл»
Тело цикла - описание действий, повторяющихся в цикле
Типы циклов
1.Цикл с известным числом повторений
2.Цикл с неизвестным числом повторений
1)Цикл с постусловием
2)Цикл с предусловием
- Линейный алгоритм
Алгоритм, в котором действия выполняются последовательно одно за другим.
- Разветвляющийся алгоритм
Алгоритм, содержащий структуру ветвления
- Вспомогательный алгоритм
Алгоритм, который можно использовать в других алгоритмах, указав его имя и, если имеются, значения параметров.
Стадии создания алгоритма:
1. Первая стадия – алгоритм должен быть представлен в форме, понятной человеку, который его разрабатывает.
Первая стадия – разработка приближенного алгоритма, ориентированного на создающего его человека:
*Определить цель, для достижения которой будет создан алгоритм.
*Наметить приблизительный план действий для достижения поставленной цели.
2. Вторая стадия – алгоритм должен представлен в форме, понятной тому объекту (в том числе и человеку), который будет выполнять описанные в алгоритме действия. В том случае, если эти действия станет выполнять сам разработчик алгоритма, вторая стадия будет отсутствовать.
Вторая стадия – детализация алгоритма с учетом специфики среды и других объектов:
*Выбирать среду и объекты, посредством которых алгоритм будет реализован.
*Детализировать алгоритм с учетом особенностей выбранной среды.