Скачать презентацию Понятие алгоритма Пушникова Марина Юрьевна История Слово Скачать презентацию Понятие алгоритма Пушникова Марина Юрьевна История Слово

Лекция 10 Понятие алгоритма.ppt

  • Количество слайдов: 14

Понятие алгоритма Пушникова Марина Юрьевна Понятие алгоритма Пушникова Марина Юрьевна

История Слово «алгоритм» происходит от имени среднеазиатского математика IX века Аль Хорезми, который первым История Слово «алгоритм» происходит от имени среднеазиатского математика IX века Аль Хорезми, который первым сформулировал правила выполнения 4 -х арифметических действий Самый древний алгоритм – это алгоритм Евклида (III век до н. э. ) Начальная точка – теорема о неполноте символических логик, доказанная Куртом Гёделем в 1931 году Гёдель доказал, что существуют математические проблемы, которые не могут быть решены алгоритмами определенного класса Родоначальники теории алгоритмов Алан Тьюринг, Алонзо Чёрч, Эмиль Пост в 30 -е годы первыми предложили формальное описание алгоритма

Понятие алгоритма Марков А. А. «Алгоритм – это точное предписание, определяющее вычислительный процесс, ведущий Понятие алгоритма Марков А. А. «Алгоритм – это точное предписание, определяющее вычислительный процесс, ведущий к искомому результату» Колмогоров А. Н. «Алгоритм – это всякая система вычислений, выполняемых по строго определенным правилам, которая после какого-либо числа шагов заведомо приводит к решению поставленной задачи» Лем С. «Алгоритм – это раз и навсегда составленная программа, в которой все заранее предусмотрено. Т. е. алгоритм – это точное, воспроизводимое, поддающееся исполнению предписание, определяющее – шаг за шагом – каким путем надлежит решать данную задачу»

Некорректность определений Словесная формулировка Не указан исполнитель Не оговорены вычислительные возможности алгоритма Применим к Некорректность определений Словесная формулировка Не указан исполнитель Не оговорены вычислительные возможности алгоритма Применим к задаче в заранее заданной форме Разделы теории алгоритмов 1. 2. 3. Классическая теория алгоритмов Теория асимптотического анализа алгоритмов Теория практического анализа вычислительных алгоритмов

Основные задачи и направления теории алгоритмов 1. Формализация понятия «алгоритм» и исследование формальных алгоритмических Основные задачи и направления теории алгоритмов 1. Формализация понятия «алгоритм» и исследование формальных алгоритмических систем 2. Доказательство алгоритмической неразрешимости задач 3. Формальное доказательство правильности алгоритмов 4. Классификация задач, определение и исследование сложностных классов 5. Доказательство теоретических нижних оценок сложности задач

Основные задачи и направления теории алгоритмов 6. Получение методов разработки эффективных алгоритмов 7. Исследование Основные задачи и направления теории алгоритмов 6. Получение методов разработки эффективных алгоритмов 7. Исследование и анализ рекурсивных алгоритмов 8. Получение явных функций трудоемкости алгоритма 9. Разработка классификации алгоритмов 10. Исследование ёмкостной (по ресурсу памяти) сложности алгоритма 11. Разработка критериев, сравнительной оценки ресурсной эффективности алгоритмов

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

Основные свойства алгоритмов Массовость. Алгоритм должен быть пригоден для решения всех задач данного типа Основные свойства алгоритмов Массовость. Алгоритм должен быть пригоден для решения всех задач данного типа Результативность. Алгоритм должен приводить к получению результата за конечное число шагов Определенность. Предписания алгоритма должны быть четкими и понятными Дискретность. Алгоритм должен быть разбит на отдельные элементарные этапы

Конкретизации понятия алгоритм Поскольку определить, что такое алгоритм, невозможно, то были предложены и успешно Конкретизации понятия алгоритм Поскольку определить, что такое алгоритм, невозможно, то были предложены и успешно используются конкретизации понятия алгоритма. Наиболее известны следующие: 1. -нотация 2. Рекурсивные функции 3. Машины Тьюринга 4. Нормальные алгорифмы Маркова

Тезис Чёрча Задачи, которые не могут быть решены алгоритмически, называются алгоритмически неразрешимыми Классы решаемых Тезис Чёрча Задачи, которые не могут быть решены алгоритмически, называются алгоритмически неразрешимыми Классы решаемых задач в различных моделях алгоритмов совпадают Тезис Чёрча (1936 год). Класс задач, решаемых в любой формальной алгоритмической модели, совпадает с классом задач, которые могут быть решены интуитивно алгоритмическими методами Тезис Чёрча доказать нельзя, т. к. интуитивного понятия алгоритма нет

Схемы алгоритмов Логическая схема алгоритма (А. А. Ляпунов) – это выражение, состоящее из символов Схемы алгоритмов Логическая схема алгоритма (А. А. Ляпунов) – это выражение, состоящее из символов операторов, логических условий, следующих в определенном порядке, а также нумерованных стрелок, расставленных особым образом Матричная схема алгоритма – это квадратная матрица, элементы которой указывают условия передачи управления от i-го оператора строки к j-му оператору столбца Граф-схема алгоритма – это ориентированный граф, который содержит вершины 4 -х типов: операторные, обозначаемые прямоугольниками; условные, обозначаемые ромбами; начальную вершину и конечную вершину

ГОСТ 19. 701 -90 «Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила ГОСТ 19. 701 -90 «Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения» Наименование о обозначение Функции Символ отображает данные, носитель данных не определен. Используется для обозначения операций ввода и вывода данных Символ отображает функцию обработки Процесс данных любого вида. Используется для обозначения операций присваивания Предопределенн Символ отображает процесс, который ый процесс определен в другом месте. Используется для обозначения неэлементарных блоков Данные

Подготовка Решение Граница цикла Соединитель Терминатор Отображает модификацию команды с целью воздействия на некоторую Подготовка Решение Граница цикла Соединитель Терминатор Отображает модификацию команды с целью воздействия на некоторую функцию. Используется для обозначения заголовка цикла Отображает функцию переключательного типа. Используется для обозначения оператора условного перехода Отображает начало и конец цикла Отображает выход и вход из другой части этой схемы. Используется для обрыва линии и продолжения ее в другом месте Отображает выход и вход. Используется для начала и окончания алгоритма

Линия Отображает поток данных или управления. Используется для соединения символов в алгоритме Параллельные Отображает Линия Отображает поток данных или управления. Используется для соединения символов в алгоритме Параллельные Отображает синхронизацию действия параллельных операций Пунктирная линия Комментарий двух Отображает альтернативную связь между символами. Используется для обведения участка при записи комментариев Используется для пояснительных записей с целью объяснений и примечаний