Скачать презентацию Лекция 2 НЕСТРОГОЕ ОПРЕДЕЛЕНИЕ АЛГОРИТМА СВОЙСТВА АЛГОРИТМОВ Скачать презентацию Лекция 2 НЕСТРОГОЕ ОПРЕДЕЛЕНИЕ АЛГОРИТМА СВОЙСТВА АЛГОРИТМОВ

ТОИ Лек 2.ppt

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

Лекция 2 НЕСТРОГОЕ ОПРЕДЕЛЕНИЕ АЛГОРИТМА. СВОЙСТВА АЛГОРИТМОВ Лекция 2 НЕСТРОГОЕ ОПРЕДЕЛЕНИЕ АЛГОРИТМА. СВОЙСТВА АЛГОРИТМОВ

Алгоритм • одно из фундаментальных понятий информатики • Предмет теории алгоритмов - общие подходы Алгоритм • одно из фундаментальных понятий информатики • Предмет теории алгоритмов - общие подходы к решению проблем обработки дискретной информации

Алгоритм Евклида НОД(n, m) • 1. r=m mod n (остаток от деления) • 2. Алгоритм Евклида НОД(n, m) • 1. r=m mod n (остаток от деления) • 2. Замена m: =n, n: = r • 3. Если n<>0, то переход на п. 1 (иначе) остановка: ответ : m

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

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

 • Первый подход (Колмогоров) Алгоритм - это предписание, обладающее следующими свойствами: • Дискретность • Первый подход (Колмогоров) Алгоритм - это предписание, обладающее следующими свойствами: • Дискретность алгоритма • Детерминированность. • Элементарность шагов • Направленность. • Массовость.

Американский ученый Д. Кнут • 1. Конечность. Алгоритм должен заканчиваться через конечное число шагов. Американский ученый Д. Кнут • 1. Конечность. Алгоритм должен заканчиваться через конечное число шагов. • 2. Определенность. Каждый шаг алгоритма должен быть точно определен. • 3. Ввод. Алгоритм имеет некоторое число входных данных. • 4. Выход. Алгоритм имеет одну или несколько выходных величин. • Эффективность. Все шаги алгоритма должны быть достаточно просты, чтобы их можно было выполнить за конечный отрезок времени

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

Свойства алгоритма по Ершову: • • • Дискретность. Точность. Понятность. Результативность. Массовость. Свойства алгоритма по Ершову: • • • Дискретность. Точность. Понятность. Результативность. Массовость.

Второй подход (А. Черч, Д. Гильберт, П. С. Новиков) • Эти ученые определили алгоритм Второй подход (А. Черч, Д. Гильберт, П. С. Новиков) • Эти ученые определили алгоритм через класс вычислимых (общерекурсивных) функций. Они все проблемы разделили на алгоритмически разрешимые и неразрешимые.

Третий подход представляют А. Тьюринг и Э. Л. Пост • Ими были описаны машины, Третий подход представляют А. Тьюринг и Э. Л. Пост • Ими были описаны машины, с помощью которых можно было реализовать любой алгоритм.

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

Исполнитель алгоритма • – субъект или устройство, способные правильно воспринимать описание алгоритма и выполнять Исполнитель алгоритма • – субъект или устройство, способные правильно воспринимать описание алгоритма и выполнять содержащиеся в нем действия. • Совокупность допустимых команд образует систему команд исполнителя (СКИ )

Способы представления алгоритма • Графический • Словесный • На алгоритмическом языке (или языке программирования). Способы представления алгоритма • Графический • Словесный • На алгоритмическом языке (или языке программирования).

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

Основные алгоритмические структуры Основные алгоритмические структуры

Дополнительные конструкции блок-схемы Дополнительные конструкции блок-схемы

Структурный подход • Управляющие структуры • Суперпозиция • Метод нисходящего проектирования • (метод детализации) Структурный подход • Управляющие структуры • Суперпозиция • Метод нисходящего проектирования • (метод детализации)

Структурный подход • Структура - следование Структурный подход • Структура - следование

Структура - ветвление Структура - ветвление

Неполное ветвление Неполное ветвление

Цикл «пока» Цикл «пока»

Цикл «до» Цикл «до»

Структурная теорема n Любую схему алгоритма можно представить в виде композиции вложенных блоков begin Структурная теорема n Любую схему алгоритма можно представить в виде композиции вложенных блоков begin и end, условных операторов if, then, else, циклов с предусловием (while) и может быть дополнительных логических переменных

Структура в структуре Структура в структуре

Структура в структуре Структура в структуре

Сложность алгоритмов Сложность алгоритмов

Критерии эффективности алгоритма • объем памяти компьютера для размещения данных и программы • время Критерии эффективности алгоритма • объем памяти компьютера для размещения данных и программы • время центрального процессора по обработке этих данных

Временная сложность • «эффективным» понимается алгоритм, обеспечивающий наиболее быстрое получение результата, Временная сложность • «эффективным» понимается алгоритм, обеспечивающий наиболее быстрое получение результата,

Методология • Время работы алгоритма удобно выражать в виде функции от одной переменной, характеризующей Методология • Время работы алгоритма удобно выражать в виде функции от одной переменной, характеризующей «размер» конкретной задачи, т. е. объем входных данных, необходимых для ее решения

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

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

Оценка времени Оценка времени

Алгоритм оценки Алгоритм оценки

Поиск максимального элемента Поиск максимального элемента

Подсчет кол-ва операций n n n М 1=1, М 2=n, M 3=n-1 M 4=А Подсчет кол-ва операций n n n М 1=1, М 2=n, M 3=n-1 M 4=А (Амин=0, Амакс=n-1) M 5=n-1

Примеры • Решение системы линейных уравнений • Сортировка массивов • Решение задачи Коши Примеры • Решение системы линейных уравнений • Сортировка массивов • Решение задачи Коши

Рекурсивные алгоритмы • Примеры рекурсий • F(n) = F(n-1) или наоборот F(n)=F(n+1) • • Рекурсивные алгоритмы • Примеры рекурсий • F(n) = F(n-1) или наоборот F(n)=F(n+1) • • n! = n*(n-1)! |Нод(a, a-b), если a>b Нод(a, b)= |Нод(a-b, b), если b>a | a, если a=b

Задача о 8 ферзях Задача о 8 ферзях

Задачи • Тур шахматного коня • Решение физических задач Задачи • Тур шахматного коня • Решение физических задач

Тур шахматного коня Тур шахматного коня

Контрольные вопросы • 1. Чем определяются свойства алгоритмов «дискретность» , «определенность» , «понятность» , Контрольные вопросы • 1. Чем определяются свойства алгоритмов «дискретность» , «определенность» , «понятность» , «результативность» , «массовость» ? • 2. Кто (что) может быть исполнителем алгоритма? • 3. Какова причина в необходимости формализации понятия «алгоритм» ? • 4. Каковы возможные подходы к определению понятия алгоритм? •