
- •Курсовая работа
- •Теоретический вопрос «Виды и свойства алгоритмов»
- •Введение
- •Виды алгоритмов
- •Свойства алгоритмов
- •Дискретность
- •Детерминированность (определенность)
- •Результативность
- •Массовость
- •Допустимость начальных данных
- •Решение задачи Майхилла (о стрелках)
- •Постановка задачи
- •Решение задачи
- •Перечень блоков
- •Функционирование модели
- •Заключение
- •Список использованных источников
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Магнитогорский государственный технический университет им. Г.И. Носова»
Кафедра вычислительной техники и прикладной математики
Курсовая работа
по дисциплине: «Теория вычислительных процессов»
на тему: «Виды и свойства алгоритмов. Решение задачи Майхилла (о стрелках)»
Выполнил: |
студент группы АВ-10 Максимов М.А. |
Проверила: |
к.т.н., доцент Кочержинская Ю.В. |
Магнитогорск 2012
Содержание
1 Теоретический вопрос «Виды и свойства алгоритмов» 3
1.1 Введение 3
1.2 Виды алгоритмов 3
1.3 Свойства алгоритмов 5
2 Решение задачи Майхилла (о стрелках) 8
2.1 Постановка задачи 8
2.2 Решение задачи 8
2.3 Заключение 15
3 Список использованных источников 16
Теоретический вопрос «Виды и свойства алгоритмов»
Введение
Алгоритм – это любая корректно определенная вычислительная процедура, на вход которой подается некоторая величина или набор величин, и результатом выполнения которой является выходная величина или набор значений. Таким образом, алгоритм представляет собой последовательность вычислительных шагов, преобразующих входные величины в выходные.
Алгоритм также можно рассматривать как инструмент, предназначенный для решения корректно поставленной вычислительной задачи. В постановке задачи в общих чертах задаются отношения между входом и выходом. В алгоритме описывается конкретная вычислительная процедура, с помощью которой удается добиться выполнения указанных отношений.
Говорят, что алгоритм корректен, если для каждого ввода результатом его работы является корректный вывод. Мы говорим, что корректный алгоритм решает данную вычислительную задачу. Если алгоритм некорректный, то для некоторых вводов он может вообще не завершить свою работу или выдать ответ, отличный от ожидаемого. Правда, некорректные алгоритмы иногда могут оказаться полезными, если в них есть возможность контролировать частоту возникновения ошибок. Тем не менее, обычно мы заинтересованы только в корректных алгоритмах.
Алгоритм может быть задан на естественном языке, в виде компьютерной программы или даже воплощен в аппаратном обеспечении. Единственное требование –его спецификация должна предоставлять точное описание вычислительной процедуры, которую требуется выполнить. [1, С. 46-47]
Виды алгоритмов
Можно выделить три основных типа универсальных алгоритмических моделей, различающихся исходными соображениями относительно того, что такое алгоритм.
Первый тип связывает понятие алгоритма с наиболее традиционными понятиями математики – вычислениями и числовыми функциями. Наиболее развитая и изученная модель этого типа – рекурсивные функции – является исторически первой формализацией понятия алгоритма.
Второй тип основан на представлении об алгоритме как о некотором детерминированном устройстве, способном выполнять в каждый отдельный момент лишь весьма примитивные операции. Такое представление не оставляет сомнений в однозначности алгоритма и элементарности его шагов. Основной теоретической моделью этого типа является машина Тьюринга.
Третий тип алгоритмических моделей – это преобразования слов в произвольных алфавитах, в которых элементарными операциями являются подстановки, т. е. замены куска слова (подслова) другим словом. Преимущества этого типа – в его максимальной абстрактности и возможности применить понятие алгоритма к объектам произвольной (не обязательно числовой) природы.
Впрочем, модели второго и третьего типа довольно близки (их взаимная сводимость доказывается просто). [2, С. 154-155]
Алгоритм применительно к вычислительной машине – это точное предписание, т.е. набор операций и правил их чередования, при помощи которого, начиная с некоторых исходных данных, можно решить любую задачу фиксированного типа.
Виды алгоритмов как логико-математических средств отражают указанные компоненты человеческой деятельности и тенденции, а сами алгоритмы в зависимости от цели, начальных условий задачи, путей ее решения, определения действий исполнителя подразделяются следующим образом:
механический алгоритм, или иначе детерминированный, жесткий (например алгоритм работы машины, двигателя и т.п.);
гибкий алгоритм, т.е. вероятностный и эвристический;
вероятностный (стохастический) алгоритм дает программу решения задачи несколькими путями или способами, приводящими к вероятному достижению результата;
эвристический алгоритм (от греческого слова «эврика») – это такой алгоритм, в котором достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. К эвристическим алгоритмам относят, например, инструкции и предписания. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений, основанные на аналогиях, ассоциациях и прошлом опыте решения схожих задач;
линейный алгоритм – набор команд (указаний), выполняемых последовательно во времени друг за другом;
разветвляющийся алгоритм – алгоритм, содержащий хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов;
циклический алгоритм – алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов. [3]