
- •2. Общие требования к алгоритму
- •3. Формальное представление алгоритма. Машина Тьюринга
- •4. Алгоритмически неразрешимые проблемы: их существование и примеры
- •Вопросы
- •2. Теория возмущений и числа обусловленности задачи
- •3. Влияние ошибок округления на алгоритмы
- •4. Программирование численных алгоритмов
- •Вопросы
- •Основные характеристики алгоритма при его анализе. Вычислительная сложность алгоритма
- •Классы входных данных
- •Сложность алгоритма по памяти
- •2. Классы входных данных
- •3. Сложность алгоритма по памяти
- •Вопросы
- •Лекция 4. Оценка вычислительной сложности алгоритма План
- •Предварительные шаги для оценки вычислительной сложности алгоритма
- •Скорость роста алгоритма
- •Анализ подходов, связанных с поиском информации
- •1. Предварительные шаги для оценки вычислительной сложности алгоритма
- •2. Скорость роста алгоритма
- •3. Анализ подходов, связанных с поиском информации
- •Вопросы
- •Класс р - задачи с полиномиальной сложностью
- •Класс np - полиномиально проверяемые задачи
- •1. Класс р - задачи с полиномиальной сложностью
- •2. Класс np - полиномиально проверяемые задачи
- •Вопросы
- •Лекция 6. Сложностные классы задач (продолжение) План
- •Приближенные методы решения np-задач
- •2. Приближенные методы решения np-задач
- •Вопросы
- •Лекция 7. Численные алгоритмы План
- •Вычисление значений многочлена
- •Решение системы линейных алгебраических уравнений
- •1. Вычисление значений многочлена
- •2. Решение системы линейных алгебраических уравнений
- •Вопросы
- •Цели анализа последовательных алгоритмов
- •Основы построения графа алгоритма
- •Допустимые преобразования алгоритма
- •2. Основы построения графа алгоритма
- •Последовательность операций
- •3. Допустимые преобразования алгоритма
- •Вопросы
- •Свойства вершин ориентированного ациклического графа
- •Свойства топологической сортировки графа
- •Топологические уровни графа алгоритма
- •1. Свойства вершин ориентированного ациклического графа
- •2. Свойства топологической сортировки графа
- •3. Топологические уровни графа алгоритма
- •Вопросы
- •Лекция 10. Топологические сортировки сложных графов План
- •Особенности и рекомендации построения топологических сортировок графов алгоритмов, содержащих условные операции
- •Построение топологической сортировки графа по топологическим сортировкам подграфов его разбиения
- •1. Особенности и рекомендации построения топологических сортировок графов алгоритмов, содержащих условные операции
- •2. Построение топологической сортировки графа по топологическим сортировкам подграфов его разбиения
- •Вопросы
- •Операция элементарного гомоморфизма
- •Гомоморфная свертка. Понятие гомоморфного образа, прообраза. Связь топологических сортировок графа и его гомоморфной свертки
- •Использование гомоморфной свертки для упрощения процесса исследования структуры алгоритма
- •1. Операция элементарного гомоморфизма
- •2. Гомоморфная свертка. Понятие гомоморфного образа, прообраза. Связь топологических сортировок графа и его гомоморфной свертки
- •3. Использование гомоморфной свертки для упрощения процесса исследования структуры алгоритма
- •Вопросы
- •Лекция 12. Внутренний параллелизм алгоритма План
- •Понятие внутреннего параллелизма алгоритма и его использование
- •О выборе расположения вершин графа алгоритма
- •Особенности алгоритма решения системы линейных алгебраических уравнений
- •1. Понятие внутреннего параллелизма алгоритма и его использование
- •2. О выборе расположения вершин графа алгоритма
- •3. Особенности алгоритма решения системы линейных алгебраических уравнений
- •Вопросы
- •Лекция 13. Временные развертки План
- •Основная проблема анализа алгоритма с использованием соответствующего графа
- •Вектор временной развертки, обобщенной временной развертки
- •Время реализации алгоритма
- •1. Основная проблема анализа алгоритма с использованием соответствующего графа
- •2. Вектор временной развертки, обобщенной временной развертки
- •3. Время реализации алгоритма
- •Вопросы
- •Лекция 14. Векторные свойства временных разверток План
- •Линейность временных разверток
- •Характеристики множества обобщеных временных разверток
- •Свойства временных разверток при фиксированном векторе задержек
- •1. Линейность временных разверток
- •2. Характеристики множества обобщеных временных разверток
- •3. Свойства временных разверток при фиксированном векторе задержек
- •Лекция 15. Векторные свойства временных разверток (продолжение) План
- •Ориентированная задержка цикла. Уравновешенный цикл.
- •Пространственно-временные развертки
- •1. Ориентированная задержка цикла. Уравновешенный цикл
- •2. Условие совпадения множеств и с точностью до параллельного переноса
- •3. Пространственно-временные развертки.
4. Алгоритмически неразрешимые проблемы: их существование и примеры
Существуют ли какие-нибудь проблемы, для которых невозможно придумать алгоритмы их решения? Утверждение о существовании алгоритмически неразрешимых проблем является весьма сильным – мы констатируем, что мы не только сейчас не знаем соответствующего алгоритма, но мы не сможем никогда принципиально его найти.
Сегодня при доказательстве алгоритмической неразрешимости некоторой задачи принято сводить ее к ставшей классической задаче – «задаче останова» машины Тьюринга.
Имеет место следующая теорема [Макконнелл].
Теорема. Не существует алгоритма (машины Тьюринга), позволяющего по описанию произвольного алгоритма и его исходных данных, при этом и алгоритм и данные заданы символами на ленте машины Тьюринга, определить, останавливается ли этот алгоритм на этих данных или работает бесконечно.
Таким образом, фундаметально алгоритмическая неразрешимость связана с бесконечностью выполняемых алгоритмом действий.
Примеры алгоритмически неразрешимых проблем.
Пример
1. Распределение
девяток в записи числа
.
Определим функцию
,
где
-
количество девяток подряд в десятичной
записи числа
,
а
-
номер самой левой после запятой девятки
из
девяток подряд. Поскольку
,
то
.
Задача состоит в вычислении функции
для
произвольного
.
Поскольку число является иррациональным, мы не знаем распределение девяток, равно как и любых других цифр. Вычисление связано с вычислением последующих цифр в разложении числа до тех пор, пока мы не обнаружим девяток подряд. У нас нет общего метода вычисления , для некоторых вычисления могут продолжаться бесконечно – мы даже не знаем в принципе (по природе числа ) существует ли решение для всех значений .
Пример
2.
Вычисление совершенных чисел.
Совершенные числа – это числа, которые
равны сумме своих делителей, за исключением
самого числа, например: 28=1+2+4+7+14. Определим
функцию
=
-ое
по счету совершенное число. Задача:
вычислить
для произвольного
.
Нет общего метода вычисления совершенных
чисел, неизвестно даже, конечно или
счетно множество совершенных чисел.
Пример
3. Десятая
проблема Гильберта.
Пусть задан
- многочлен степени
с целыми коэффициентами. Существует ли
алгоритм, который определяет имеет ли
уравнение
решение в целых числах. Ю.В.Матиясевич
показал, что такого алгоритма не
существует, т.е. отсутствует общий метод
определения целых корней уравнения
по его целочисленным коэффициентам.
Пример 4. Проблема останова машины Тьюринга.
Пример 5. Проблема эквивалентности алгоритмов. По двум произвольным заданным алгоритмам, например, по двум машинам Тьюринга, определить, будут ли они выдавать одинаковые выходные результаты для любых входных данных.
Пример 6. Проблема тотальности. По записи произвольного заданного алгоритма определить, будет ли он останавливаться на всех возможных наборах исходных данных. Другая формулировка этой задачи: является ли частичный алгоритм А всюду определенным алгоритмом?
В теории алгоритмов проблемы, для которых может быть предложен частичный алгоритм их решения, частичный в том смысле, что он возможно, но не обязательно, за конечное количество шагов находит решение проблемы, называются частично разрешимыми проблемами. Например, проблема останова является частично разрешимой проблемой, а проблема эквивалентности и тотальности не являются таковыми.