Главная Обратная связь

Дисциплины:






Признаки классификации алгоритмов , алгоритмы Маркова



Алгоритм – точная конечная последовательность команд, приводящая от исходных данных к искомому результату за конечное число шагов. (Слово происходит от имени великого математика IX в. Мухаммеда ибн Мусы аль-Хорезми.)

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

Классификация алгоритмов

Все алгоритмы могут быть разделены на:

· линейные;

· разветвляющиеся;

· циклические или повторяющиеся;

· вспомогательные.

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

Линейный алгоритм

Описывает команды, следующие в определенной последовательности одна за другой и выполняемые только один раз.

Разветвляющийся алгоритм

Позволяет описать действия, которые выполняются в зависимости от условия. В простей­шем случае, это ответ на вопрос «Да» или «Нет». Во всех языках программирования эта возможность реализована при помощи оператора ветвления If...[Else]...EndIf.

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

Циклический алгоритм

Циклический алгоритм может иметь несколько вариантов.

«Для» (For) служит для проведения определенного количества итераций (повторов).

«Пока» (While|Until) выполняется до тех пор, пока соблюдается определенное условие.

«Неопределенный цикл» (Do) выполняется бесконечно или пока внутри его тела не выполнится команда принудительного завершения цикла. Чаще всего задается с условием.

В некоторых языках программирования могут использоваться специализированные циклы: для обхода всех элементов набора объектов (For Each) или для просмотра всех записей в таблице базы данных (Scan).

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

Вспомогательный алгоритм (подпрограмма)

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



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

Нормальный алгоритм Маркова

Нормальный алгоритм Маркова — это система последовательных применений подстановок, которые реализуют определенные процедуры получения новых слов из базовых, построенных из символов некоторого алфавита. Как и машина Тьюринга, нормальные алгоритмы не выполняют самих вычислений: они лишь выполняют преобразование слов путем замены букв по заданным правилам.

 

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

 

Создатель теории нормальных алгоритмов А. А. Марков выдвинул гипотезу, которая получила название принцип нормализации Маркова:

 

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

Подобно тезисам Тьюринга и Черча, принцип нормализации Маркова не может быть доказан математическими средствами.

23 ВОПРОС





sdamzavas.net - 2018 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...