Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / Лекция 1

.docx
Скачиваний:
22
Добавлен:
02.10.2020
Размер:
24.41 Кб
Скачать

АЛГОPИТМ И ЕГО СВОЙСТВА

Разработка алгоритмов является необходимым этапом автоматизации.

Назначение алгоритма – формулирование правил, которые должны быть руководством для достижения необходимого результата

Простота понятия алгоритма – в многочисленности алгоритмов, с которыми мы встречаемся повсюду

Сложность понятия в том, что оно трудно поддается строгому научному определению

Примеры:

  • алгоритм приготовления борща

  • алгоритм вычисления математической функции,

  • алгоритм технологического процесса,

  • алгоритм проектирования ВМ или цеха завода и т.д.

Формальные свойства алгоритмов

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

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

Детерминированность (определённость) – единственность толкования правил выполнения действий в каждый момент времени на каждом шаге работы алгоритма.

Понятность - должен включать только те команды, которые входят в его систему команд и понятны исполнителю алгоритма.

Правильность - способность давать правильные результаты решения поставленных задач для любых допустимых исходных данных.

Конечность (завершаемость) - при корректно заданных исходных данных алгоритм должен завершать работу и выдавать результат за конечное число шагов (должен обязательно завершиться).

Результативность (направленность) - выполнение должно завершиться получением определенных результатов

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

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

Элементарные операции могут быть достаточно сложными:

  • при вычислении функции это может быть, например, нахождение корней уравнения,

  • в проектных или технологических алгоритмах - принятие сложных проектных или технологических решений.

Такое понятие алгоритма называют непосредственным, или интуитивным

Его нельзя считать математически строгим, к нему не применимы математические доказательства, т.к. в нем не формализовано: -понятие элементарной операции -представление последовательности операций

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

Цель формализованного (математического) уточнения понятия алгоритма – изучение его свойств, а не создание практического инструмента для построения алгоритмов

Разработка общего для всех алгоритмов формального описания даёт возможность получить инструментарий для : -сравнения их эффективности -оценки эквивалентности -преобразования и других действий на алгоритмаами

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

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

Теория алгоритмов

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

К. Гёдель А. , Тьюринг, А. , Чёрч И. , Э. Пост., С. Клини, А.А.Марков

Цели и задачи теории алгоритмов

  • формализация понятия «алгоритм» и исследование формальных алгоритмических систем;

  • формальное доказательство алгоритмической неразрешимости ряда задач;

  • классификация алгоритмов в соответствии с классами сложности,

  • Асимптотический анализ сложности алгоритмов;

  • исследование и анализ рекурсивных алгоритмов;

  • получение явных функций трудоемкости в целях сравнительного анализа алгоритмов;

  • разработка критериев сравнительной оценки качества алгоритмов.

В настоящее время теория алгоритмов развивается, по трем направлениям.

  1. Классическая теория алгоритмов:

  • изучает проблемы формулировки задач в терминах формальных языков,

  • вводит понятие задачи разрешения,

  • проводит классификацию задач по классам сложности и др.

I I. Теория асимптотического анализа алгоритмов рассматривает методы получения асимптотических оценок ресурсоемкости или времени выполнения алгоритмов с увеличением объема входных данных.

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

  • трудоёмкости,

  • интервального анализа функций,

  • практических критериев качества алгоритмов,

  • разработки методики выбора рациональных алгоритмов.

Способы формального описания алгоритмов

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

К настоящему времени разработаны теории, ведущие к формализации понятия «алгоритм» - формальные алгоритмические модели.

Такие модели должны быть универсальными, т.е. допускать описание любых алгоритмов.

Выделяют три основных типа универсальных алгоритмических моделей: -теория рекурсивных функций - машина Тьюринга -нормальный алгоритм Маркова

Эти теории иногда называют традиционными теориями алгоритмов.

Первый тип (теория рекурсивных функций) связывает понятие алгоритмов с традиционными понятиями математики!!!!!!!!!!!!!! – является исторически первой формализацией понятия алгоритма.

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

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

Связь теорий осуществляется с помощью основных тезисов теорий.

Тезисы - система понятий, позволяющая говорить о свойствах алгоритмов независимо от того, какая формализация алгоритма выбрана.

Доказано, что в теоретическом отношении все три теории эквивалентности , т.е.:

  • всякий алгоритм, описанный средствами одной модели, может быть описан средствами другой

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

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

  • в одних случаях легче получить результат с помощью алгоритмов одного класса, а в других – с помощью алгоритмов другого класса

  • все известные алгоритмы в интуитивном смысле могут быть представлены алгоритмами в точном смысле и наоборот

  • каждая теория распространяется не на все алгоритмы, а лишь на узкое их семейство

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

Уточнение состоит в том, что для каждого из семи параметров точно описывается класс, в пределах которого этот параметр изменяется.

Выбор этих классов определяет класс алгоритмов.

Применение результатов теории алгоритмов

Можно выделить два аспекта применения теоретических результатов теории алгоритмов:

Теоретический аспект: позволяет ответить на вопрос

– является ли эта задача в принципе алгоритмически разрешимой

– для алгоритмически неразрешимых задач возможно их сведение к задаче останова машины Тьюринга.

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

Практический аспект: методы и методики теории алгоритмов позволяют осуществить:

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

  • получение временных оценок решения сложных задач;

  • получение достоверных оценок невозможности рещения задачи за определенное время (важно для криптографических методов);

  • разработку и совершенствование эффективных алгоритмов решения задач в области обработки информации на основе практического анализа.

Соседние файлы в папке Лекции