Формальные модели алгоритма.pptx
- Количество слайдов: 20
Формальные модели алгоритма
Задачи теории алгоритмов • Доказательство алгоритмической разрешимости: – все ли задачи можно решить алгоритмически? • Анализ вычислительной сложности алгоритмов: – все ли алгоритмы одинаково эффективны для данной задачи? – Какой алгоритм наиболее эффективен для данной задачи? • Разработка критериев качества алгоритмов, оценка сходимости алгоритмов, и т. п.
Вычислимость •
Определение алгоритма • Алгоритм - точное предписание (описание последовательности элементарных шагов), которое задаёт вычислительный процесс, начинающийся с произвольного исходного данного (из некоторой совокупности возможных для данного алгоритма исходных данных) и направленный на получение полностью определяемого этим исходным данным результата.
Определение алгоритма • Что такое данные и как они представляются? Как используется память для хранения данных? • Каковы могут быть элементарные шаги? • Каковы механизмы реализации алгоритма?
Классификация моделей алгоритмов • Описание процедуры вычисления (рекурсивные функции, лямбдаисчисления, …) • Описание устройства абстрактной вычислительной машины (машина Тьюринга, машина произвольного доступа, …) • Описание процедуры преобразования слов (нормальные алгоритмы Маркова)
Рекурсивные функции Примитивно рекурсивные функции – функции, получаемые из набора базовых примитивных функций и применением конечного числа операторов суперпозиции и примитивной рекурсии.
Базовые примитивные функции •
Операторы •
Частично рекурсивные функции •
Машина Тьюринга
Задачи, неразрешимые на машине Тьюринга • Проблема останова • Равенство функций, вычисляемых двумя алгоритмами • Равенство результата работы алгоритма 0 на заданном наборе данных • Доказуемость теоремы формальной системы • и пр.
Тезис Чёрча-Тьюринга Классы частично вычислимых по Тьюрингу и частично рекурсивных функций совпадают.
Нормальные алгоритмы Маркова • Работают со словами в некотором алфавите • Для описания алгоритма необходимо задать – Алфавит – Схему алгоритма • Схема алгоритма это конечный упорядоченный набор формул подстановки (пар слов) • Является Тьюринг-полным языком.
Пример НАМ • Алфавит: • Трассировка: {0, 1, |} • Схема: |0 0|| 1 0| 0 • Исходная строка 101 0|01 00||0||| 00|0|||| 000||||| (2) (1) (1) (3)
Понятие сложности задачи • Как оценить эффективность решения алгоритмической задачи? • Для любой ли массовой задачи существует эффективное решение? • Все ли задачи можно решить одинаково эффективно?
Классы сложности вычислений • Сложность задачи – объем Q (ресурсов - вычислений и/или памяти), необходимый для решения задачи с размером входных данных N. Линейная Q(N) ~ N, Квадратичная Q(N) ~ N 2, Полиномиальная Q(N) ~ Nk, Экспоненциальная Q(N)~k. N …
Рост сложности вычислений 1 10 100 O(N) 1 10 100 O(N 2) 1 10000 O(N 3) 1 1000000 O(2 N) 1 1024 ~1030
Классы сложности • Класс P - задачи, для которых известны алгоритмы полиномиальной сложности • Класс NP – задачи, для которых полиномиальное решение не известно, но для которых за полиномиальное время можно проверить решение. • Класс NP-полных задач – любая NP-полная задача может быть сведена к любой другой NP -полной задаче • Класс PSPACE – задачи, требующие полиномиального объема памяти
NP полные задачи • • • Выполнимость булевых формул (SAT) Задача комивояжёра Задача о вершинном покрытии графа Задача о клике Раскраска графа и д. р.


