Алгоритмы: основные понятия Свойства алгоритмов Этапы разработки Основные типы задач Анализ эффективности алгоритмов Основные классы алгоритмов 1 ©Павловская.

Презентация:



Advertisements
Похожие презентации
Что такое граф? Составные элементы графа? Граф, который имеет направленные линии?
Advertisements

Тема Алгоритмы Виды алгоритмов Свойства алгоритмов МБОУ «СОШ 46 г.Белгорода», Учитель информатики и ИКТ Голубятникова Т.В.
АЛГОРИТМЫ Итоговый тест. 1. Алгоритм - это 1.правила выполнения определенных действий; 2.ориентированный граф, указывающий порядок выполнения некоторого.
1 вопрос 2 вопрос 3 вопрос 4 вопрос 5 вопрос 6 вопрос 7 вопрос 8 вопрос 9 вопрос 10 вопрос Вопросы для повторения.
АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ АЛГОРИТМЫ И СТРУКТУРЫ ДАННЫХ Лекции для студентов-заочников 2 курса, специальность (Прикладная информатика)
Выполнила: Ученица 10 Б класса МБОУСОШ 22 Хрушкова Елена Учитель: Буткевич И. В. «Алгоритмы»«Алгоритмы»
Алгоритмизация Определите тему урока -Как Вы понимаете понятие «Алгоритм»? -Приведите примеры из жизни - Как алгоритм может быть связан с информатикой?
Алгоритм – описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов.
АЛГОРИТМЫ Умение составлять алгоритмы просто необходимо, если человек хочет поручить обработку информации машине Алгоритм - определенная последовательность.
Тема Алгоритмы Виды алгоритмов Свойства алгоритмов Рустамов Эмиль, 10 А.Школа 717.
Даутова Т.К., Алматы, 2013г.. П редписание исполнителю называется командой. Каждый исполнитель имеет свою систему команд, то есть множество предписаний,
АЛГОРИТМИКА © МОУ СШ Изначально компьютеры были созданы для арифметических вычислений. Но сегодня ЭВМ также используются для изучения явлений природы,
Информатика Саушская средняя школа Разработка Габдрахмановой З. К.
Алгоритмы! Составитель презентации ученица 9б класса Бочкарева Ольга.
Алгоритм – точное и понятное предписание исполнителю выполнить конечную последовательность команд, приводящих от исходных данных к результатам. Свойства.
Анализ вычислительной сложности алгоритмов Теория сложности вычислений.
Этапы решения задач на компьютере.
Лекция. Анализ эффективности нерекурсивных алгоритмов Заикин Олег Сергеевич zaikin.all24.org.
Алгоритм - точная конечная последовательность действий, описывающая процесс преобразования объекта из начального состояния в конечное, записанная с помощью.
Понятие алгоритма и его свойства. Этапы решения задачи с использованием компьютера 1. Постановка задачи; 2. Определение условий; 3. Построение модели.
Транксрипт:

Алгоритмы: основные понятия Свойства алгоритмов Этапы разработки Основные типы задач Анализ эффективности алгоритмов Основные классы алгоритмов 1 ©Павловская Т.А. (СПбГУ ИТМО)

Алгоритмом называют точное предписание, которое задает вычислительный процесс и представляет собой конечную последовательность обычных элементарных действий, четко определяющую процесс преобразования исходных данных в искомый результат. ©Павловская Т.А. (СПб НИУ ИТМО) 2

Свойства алгоритма Каждый алгоритм имеет дело с данными входными, промежуточными и выходными. Конечность ( 1 алгоритм состоит из отдельных элементарных действий, множество различных действий конечно; 2 алгоритм должен заканчиваться за конечное число шагов. ) Дискретность ( конечная последовательность отдельных шагов; каждый шаг выполняется за конечное время ) Детерминированность (определенность) Элементарность (понятность) Результативность Массовость Эффективность ©Павловская Т.А. (СПб НИУ ИТМО) 3

Основные способы записи алгоритмов вербальный символьный графический ©Павловская Т.А. (СПб НИУ ИТМО) 4

Этапы разработки и анализа алгоритмов ©Павловская Т.А. (СПб НИУ ИТМО) 5

Базовые структуры данных Линейные: массив и список строки, битовые массивы одно- ни двунаправленные списки, стек, очередь, очередь с приоритетами Граф ориентированный и неориентированный; взвешенный дерево: связный ациклический граф дерево поиска (бинарное) Множество мультимножество ©Павловская Т.А. (СПб НИУ ИТМО) 6

Важные типы задач сортировка; поиск; обработка строк; задачи из теории графов; комбинаторные задачи; геометрические задачи; численные задачи. ©Павловская Т.А. (СПб НИУ ИТМО) 7

Основы анализа эффективности алгоритмов Временн Ая эффективность является индикатором скорости работы алгоритма оценивается по количеству основных операций, которые должен выполнить алгоритм при обработке входных данных размера n Важен порядок роста времени выполнения алгоритма в зависимости от n Пространственная эффективность показывает, сколько дополнительной оперативной памяти нужно для работы алгоритма Эффективность оценивают в наихудшем, наилучшем и среднем случаях Виды анализа: математический и эмпирический ©Павловская Т.А. (СПб НИУ ИТМО) 8 Когда вы можете измерить и выразить в цифрах то, о чем говорите, вы что-то знаете об изучаемом предмете. Лорд Кельвин ( )

Измерение времени выполнения алгоритма Непосредственное (эмпирический анализ) Определение количества базовых операций, которые должен выполнить алгоритм при обработке входных данных размера n (математический анализ) T(n) с ор * С(n) пусть, например, С(n) = n(n 1)/2 Насколько дольше будет выполняться программа, если удвоить размер входных данных? ©Павловская Т.А. (СПб НИУ ИТМО) 9

Порядок роста При малых размерах входных данных невозможно заметить разницу во времени выполнения между эффективным и неэффективным алгоритмом. Для больших значений n вычисляют порядок роста функции. ©Павловская Т.А. (СПб НИУ ИТМО) 10

Приближенные значения функций, важных для анализа алгоритмов ©Павловская Т.А. (СПб НИУ ИТМО) 11 nlog 2 nnn·log 2 nn2n2 n3n3 2n2n n! , ,3· ,6· , ,6· ,3· ,3· · · · ·

Эффективность алгоритма в разных случаях Cуществует большое количество алгоритмов, время выполнения которых зависит не только от размера входных данных, но и от конкретных особенностей входных данных (пример – поиск). Эффективность измеряют для: наихудшего случая наилучшего случая среднего случая Пример: среднее количество операций сравнения при поиске: ©Павловская Т.А. (СПб НИУ ИТМО) 12

Асимптотические обозначения Нестрогие определения «О большое» О (g(n)) множество всех функций, порядок роста которых при достаточно больших n не превышает некоторую константу, умноженную на значение функции g(n). ©Павловская Т.А. (СПб НИУ ИТМО) 13

Строгое определение Говорят, что функция t(n) принадлежит множеству O(g(n)), что записывается как t(n) O(g(n)) если для всех больших значений n функция t (n) ограничена сверху некоторой константой, умноженной на значение функции g(n), т.е. если существует положительная константа с и неотрицательное целое число n о такое, что t (n) сg(n) для всех n n о. ©Павловская Т.А. (СПб НИУ ИТМО) 14

«Омега» Ω (g(n)) множество всех функций, порядок роста которых при достаточно больших n не меньше некоторой константы, умноженной на значение функции g(n). ©Павловская Т.А. (СПб НИУ ИТМО) 15

«Тэта» Θ(g(n)) множество всех функций, порядок роста которых при достаточно больших n равен некоторой константе, умноженной на значение функции g(n) ©Павловская Т.А. (СПб НИУ ИТМО) 16

Свойства обозначений Если t 1 (n) O(g 1 (n)) и t 2 (n) O(g 2 (n)), то t 1 (n) + t 2 (n) O(max { (g 1 (n)), (g 2 (n)) }) Аналогично для остальных обозначений. Это свойство с точки зрения анализа эффективности означает, что общая эффективность алгоритма, состоящего из двух исполняемых частей, зависит от той части, которая имеет наибольший порядок роста, т.е. от его наименее эффективной части. ©Павловская Т.А. (СПб НИУ ИТМО) 17

Использование пределов для сравнения порядка роста двух функций ©Павловская Т.А. (СПб НИУ ИТМО) 18

Примеры ©Павловская Т.А. (СПб НИУ ИТМО) 19

Основные классы эффективности Константа Логарифмическая Линейная n-log-n Квадратичная Кубическая Экспоненциальная Факториальная ©Павловская Т.А. (СПб НИУ ИТМО) 20

Эмпирический анализ алгоритмов 1. Уяснение цели предстоящего эксперимента. 2. Определение измеряемой метрики М и единиц измерения (количество операций или время работы). 3. Определение характеристик входных данных (их диапазон, размер и т.д.). 4. Создание программы, реализующей алгоритм (или алгоритмы), для проведения эксперимента. 5. Генерация образца входных данных. 6. Выполнение алгоритма (или алгоритмов) над образцом входных данных и запись наблюдаемых данных. 7. Анализ полученных данных. ©Павловская Т.А. (СПб НИУ ИТМО) 21

Различия между математическим и эмпирическим анализом алгоритмов Преимущество математического анализа независимость от конкретных входных данных недостаток ограниченная применимость, в особенности для исследования эффективности в среднем случае. Эмпирический анализ применим к любому алгоритму, но его результаты могут зависеть от конкретных входных данных и использованного для проведения эксперимента компьютера. ©Павловская Т.А. (СПб НИУ ИТМО) 22

Визуализация алгоритмов Визуализация алгоритмов - еще один путь изучения алгоритмов, помимо математического и эмпирического анализа: статическая динамическая (анимация) «Десять заповедей анимации алгоритмов»: 1. Последовательность. 2. Интерактивность. 3. Ясность и краткость. 4. Снисходительность к пользователю и прощение его ошибок. 5. Адаптация к уровню знаний пользователя. 6. Упор на визуальную часть. 7. Удержание интереса пользователя. 8. Символьное и пиктограммное представление. 9. Наличие анализа алгоритма (статистики выполнения) и сравнение с другими алгоритмами для решения той же задачи. 10. Наличие истории выполнения. ©Павловская Т.А. (СПб НИУ ИТМО) 23