Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Виды и свойства алгоритмов - Курсовая.docx
Скачиваний:
0
Добавлен:
28.12.2019
Размер:
55.7 Кб
Скачать

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Магнитогорский государственный технический университет им. Г.И. Носова»

Кафедра вычислительной техники и прикладной математики

Курсовая работа

по дисциплине: «Теория вычислительных процессов»

на тему: «Виды и свойства алгоритмов. Решение задачи Майхилла (о стрелках)»

Выполнил:

студент группы АВ-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. Теоретический вопрос «Виды и свойства алгоритмов»

  1. Введение

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

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

Говорят, что алгоритм корректен, если для каждого ввода резуль­татом его работы является корректный вывод. Мы говорим, что корректный ал­горитм решает данную вычислительную задачу. Если алгоритм некорректный, то для некоторых вводов он может вообще не завершить свою работу или вы­дать ответ, отличный от ожидаемого. Правда, некорректные алгоритмы иногда могут оказаться полезными, если в них есть возможность контролировать частоту возникновения ошибок. Тем не менее, обычно мы заинтересованы только в корректных алгоритмах.

Алгоритм может быть задан на естественном языке, в виде компьютерной про­граммы или даже воплощен в аппаратном обеспечении. Единственное требова­ние –его спецификация должна предоставлять точное описание вычислительной процедуры, которую требуется выполнить. [1, С. 46-47]

    1. Виды алгоритмов

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

Первый тип связы­вает понятие алгоритма с наиболее традиционными поня­тиями математики – вычислениями и числовыми функция­ми. Наиболее развитая и изученная модель этого типа ­– рекурсивные функции – является исторически первой фор­мализацией понятия алгоритма.

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

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

Впрочем, модели второго и третьего типа довольно близки (их вза­имная сводимость доказывается просто). [2, С. 154-155]

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

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

  • механический алгоритм, или иначе детерминированный, жесткий (например алгоритм работы машины, двигателя и т.п.);

  • гибкий алгоритм, т.е. вероятностный и эвристический;

  • вероятностный (стохастический) алгоритм дает программу решения задачи несколькими путями или способами, приводящими к вероятному достижению результата;

  • эвристический алгоритм (от греческого слова «эврика») – это такой алгоритм, в котором достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. К эвристическим алгоритмам относят, например, инструкции и предписания. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений, основанные на аналогиях, ассоциациях и прошлом опыте решения схожих задач;

  • линейный алгоритм – набор команд (указаний), выполняемых последовательно во времени друг за другом;

  • разветвляющийся алгоритм – алгоритм, содержащий хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов;

  • циклический алгоритм – алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов. [3]