ТОИ Лек 2.ppt
- Количество слайдов: 44
Лекция 2 НЕСТРОГОЕ ОПРЕДЕЛЕНИЕ АЛГОРИТМА. СВОЙСТВА АЛГОРИТМОВ
Алгоритм • одно из фундаментальных понятий информатики • Предмет теории алгоритмов - общие подходы к решению проблем обработки дискретной информации
Алгоритм Евклида НОД(n, m) • 1. r=m mod n (остаток от деления) • 2. Замена m: =n, n: = r • 3. Если n<>0, то переход на п. 1 (иначе) остановка: ответ : m
нестрогое определение • алгоритм – точно определенная последовательность действий, обеспечивающая решение задач определенного класса для указанного класса исходных данных.
• Cуществует несколько подходов к определению понятия алгоритма
• Первый подход (Колмогоров) Алгоритм - это предписание, обладающее следующими свойствами: • Дискретность алгоритма • Детерминированность. • Элементарность шагов • Направленность. • Массовость.
Американский ученый Д. Кнут • 1. Конечность. Алгоритм должен заканчиваться через конечное число шагов. • 2. Определенность. Каждый шаг алгоритма должен быть точно определен. • 3. Ввод. Алгоритм имеет некоторое число входных данных. • 4. Выход. Алгоритм имеет одну или несколько выходных величин. • Эффективность. Все шаги алгоритма должны быть достаточно просты, чтобы их можно было выполнить за конечный отрезок времени
По определению А. П. Ершова • алгоритм - это понятное и точное предписание исполнителю совершить последовательность действий, направленных на достижение поставленной цели или на решение поставленной задачи.
Свойства алгоритма по Ершову: • • • Дискретность. Точность. Понятность. Результативность. Массовость.
Второй подход (А. Черч, Д. Гильберт, П. С. Новиков) • Эти ученые определили алгоритм через класс вычислимых (общерекурсивных) функций. Они все проблемы разделили на алгоритмически разрешимые и неразрешимые.
Третий подход представляют А. Тьюринг и Э. Л. Пост • Ими были описаны машины, с помощью которых можно было реализовать любой алгоритм.
Определение • Алгоритм - понятное и точное предписание исполнителю совершить последовательность действий, направленных на достижение поставленной цели
Исполнитель алгоритма • – субъект или устройство, способные правильно воспринимать описание алгоритма и выполнять содержащиеся в нем действия. • Совокупность допустимых команд образует систему команд исполнителя (СКИ )
Способы представления алгоритма • Графический • Словесный • На алгоритмическом языке (или языке программирования).
Графический способ • Блок-схема - это ориентированный граф, указывающий порядок исполнения команд алгоритма; вершины такого графа могут быть одного из трех типов
Основные алгоритмические структуры
Дополнительные конструкции блок-схемы
Структурный подход • Управляющие структуры • Суперпозиция • Метод нисходящего проектирования • (метод детализации)
Структурный подход • Структура - следование
Структура - ветвление
Неполное ветвление
Цикл «пока»
Цикл «до»
Структурная теорема n Любую схему алгоритма можно представить в виде композиции вложенных блоков begin и end, условных операторов if, then, else, циклов с предусловием (while) и может быть дополнительных логических переменных
Структура в структуре
Структура в структуре
Сложность алгоритмов
Критерии эффективности алгоритма • объем памяти компьютера для размещения данных и программы • время центрального процессора по обработке этих данных
Временная сложность • «эффективным» понимается алгоритм, обеспечивающий наиболее быстрое получение результата,
Методология • Время работы алгоритма удобно выражать в виде функции от одной переменной, характеризующей «размер» конкретной задачи, т. е. объем входных данных, необходимых для ее решения
Опр. • Временная сложность алгоритма это функция, которая каждой входной длине слова ставит в соответствие максимальное время, затрачиваемое алгоритмом на ее решение.
Опр. • Полиномиальным называется алгоритм, временная сложность которого выражается некоторой полиномиальной функцией размера задачи. • Алгоритмы, временная сложность которых не поддается подобной оценке, называются экспоненциальными.
Оценка времени
Алгоритм оценки
Поиск максимального элемента
Подсчет кол-ва операций 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) • • n! = n*(n-1)! |Нод(a, a-b), если a>b Нод(a, b)= |Нод(a-b, b), если b>a | a, если a=b
Задача о 8 ферзях
Задачи • Тур шахматного коня • Решение физических задач
Тур шахматного коня
Контрольные вопросы • 1. Чем определяются свойства алгоритмов «дискретность» , «определенность» , «понятность» , «результативность» , «массовость» ? • 2. Кто (что) может быть исполнителем алгоритма? • 3. Какова причина в необходимости формализации понятия «алгоритм» ? • 4. Каковы возможные подходы к определению понятия алгоритм? •


