Скачать презентацию Формальные модели алгоритма Задачи теории алгоритмов Скачать презентацию Формальные модели алгоритма Задачи теории алгоритмов

Формальные модели алгоритма.pptx

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

Формальные модели алгоритма Формальные модели алгоритма

Задачи теории алгоритмов • Доказательство алгоритмической разрешимости: – все ли задачи можно решить алгоритмически? Задачи теории алгоритмов • Доказательство алгоритмической разрешимости: – все ли задачи можно решить алгоритмически? • Анализ вычислительной сложности алгоритмов: – все ли алгоритмы одинаково эффективны для данной задачи? – Какой алгоритм наиболее эффективен для данной задачи? • Разработка критериев качества алгоритмов, оценка сходимости алгоритмов, и т. п.

Вычислимость • Вычислимость •

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

Определение алгоритма • Что такое данные и как они представляются? Как используется память для Определение алгоритма • Что такое данные и как они представляются? Как используется память для хранения данных? • Каковы могут быть элементарные шаги? • Каковы механизмы реализации алгоритма?

Классификация моделей алгоритмов • Описание процедуры вычисления (рекурсивные функции, лямбдаисчисления, …) • Описание устройства Классификация моделей алгоритмов • Описание процедуры вычисления (рекурсивные функции, лямбдаисчисления, …) • Описание устройства абстрактной вычислительной машины (машина Тьюринга, машина произвольного доступа, …) • Описание процедуры преобразования слов (нормальные алгоритмы Маркова)

Рекурсивные функции Примитивно рекурсивные функции – функции, получаемые из набора базовых примитивных функций и Рекурсивные функции Примитивно рекурсивные функции – функции, получаемые из набора базовых примитивных функций и применением конечного числа операторов суперпозиции и примитивной рекурсии.

Базовые примитивные функции • Базовые примитивные функции •

Операторы • Операторы •

Частично рекурсивные функции • Частично рекурсивные функции •

Машина Тьюринга Машина Тьюринга

Задачи, неразрешимые на машине Тьюринга • Проблема останова • Равенство функций, вычисляемых двумя алгоритмами Задачи, неразрешимые на машине Тьюринга • Проблема останова • Равенство функций, вычисляемых двумя алгоритмами • Равенство результата работы алгоритма 0 на заданном наборе данных • Доказуемость теоремы формальной системы • и пр.

Тезис Чёрча-Тьюринга Классы частично вычислимых по Тьюрингу и частично рекурсивных функций совпадают. Тезис Чёрча-Тьюринга Классы частично вычислимых по Тьюрингу и частично рекурсивных функций совпадают.

Нормальные алгоритмы Маркова • Работают со словами в некотором алфавите • Для описания алгоритма Нормальные алгоритмы Маркова • Работают со словами в некотором алфавите • Для описания алгоритма необходимо задать – Алфавит – Схему алгоритма • Схема алгоритма это конечный упорядоченный набор формул подстановки (пар слов) • Является Тьюринг-полным языком.

Пример НАМ • Алфавит: • Трассировка: {0, 1, |} • Схема: |0 0|| 1 Пример НАМ • Алфавит: • Трассировка: {0, 1, |} • Схема: |0 0|| 1 0| 0 • Исходная строка 101 0|01 00||0||| 00|0|||| 000||||| (2) (1) (1) (3)

Понятие сложности задачи • Как оценить эффективность решения алгоритмической задачи? • Для любой ли Понятие сложности задачи • Как оценить эффективность решения алгоритмической задачи? • Для любой ли массовой задачи существует эффективное решение? • Все ли задачи можно решить одинаково эффективно?

Классы сложности вычислений • Сложность задачи – объем Q (ресурсов - вычислений и/или памяти), Классы сложности вычислений • Сложность задачи – объем 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 Рост сложности вычислений 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 - задачи, для которых известны алгоритмы полиномиальной сложности • Классы сложности • Класс P - задачи, для которых известны алгоритмы полиномиальной сложности • Класс NP – задачи, для которых полиномиальное решение не известно, но для которых за полиномиальное время можно проверить решение. • Класс NP-полных задач – любая NP-полная задача может быть сведена к любой другой NP -полной задаче • Класс PSPACE – задачи, требующие полиномиального объема памяти

NP полные задачи • • • Выполнимость булевых формул (SAT) Задача комивояжёра Задача о NP полные задачи • • • Выполнимость булевых формул (SAT) Задача комивояжёра Задача о вершинном покрытии графа Задача о клике Раскраска графа и д. р.