- •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. Пространственно-временные развертки.
Вопросы
Какая задача называется полиномиальной? Привести примеры алгоритмов, имеющих полиномиальную сложность.
Чем отличается полиномиальная задача от полиномиального алгоритма?
Какая задача содержательно относится к классу NP? Привести примеры таких задач.
В чем суть задачи о коммивояжере?
Сформулировать задачу о раскраске графа.
В чем заключается задача об упаковке рюкзака?
Литература
Дж. Макконнелл. Основы современных алгоритмов. 2-е дополненное издание. – М.: Техносфера, 2004. – 368 с.
Гуц А.К. Математическая логика и теория алгоритмов: Учебное пособие. – Омск: Изд-во Наследие. Диалог-Сибирь, 2003. – 108 с.
Деммель Дж. Вычислительная линейная алгебра / Дж.Деммель; пер.с англ. Х.Д.Икрамова. — М.: Мир, 2001. — 430 с.
Бахвалов Н.С. Численные методы / Н.С.Бахвалов, Н.П.Жидков, Г.М.Кобельков. — М.: БИНОМ. Лаборатория знаний, 2006. — 636 с.
Каханер Д. Численные методы и программное обеспечение / Д.Каханер, К.Моулер, С.Нэш; пер. с англ. Х.Д.Икрамова. — М.: Мир, 2001. — 575 с.
Лекция 6. Сложностные классы задач (продолжение) План
Проблема Р=NP
Приближенные методы решения np-задач
1. Проблема Р=NP
После
введения в теорию алгоритмов понятия
сложностных классов Эдмондсом (1965), была
сформулирована основная проблема теории
сложности - Р=NP?,
и высказана гипотеза о несовпадении
этих классов. Словесно проблему можно
сформулировать следующим образом: можно
ли все задачи, решение которых проверяется
с полиномиальной сложностью, решить за
полиномиальное время? Очевидно, любая
задача, принадлежащая классу Р,
принадлежит и классу NP,
т.к. она может быть полиномиально
проверена, при этом задача проверки
решения может состоять просто в повторном
решении. На сегодня отсутствуют
теоретические доказательства как
совпадения этих классов, так и их
несовпадения. Предположение состоит в
том, что
,
т.е. множество задач
Ø.
Это предположение опирается на
существование еще одного класса, а
именно класса NP-полных
задач.
Понятие NP-полноты было введено независимо Куком (1971) и Левиным (1973) и основывается на понятии сводимости одной задачи к другой.
При обсуждении класса NP следует иметь ввиду, что наше мнение, согласно которому их решение требует большого времени, основано на том, что мы просто не нашли эффективных алгоритмов их решения. Может быть, посмотрев на задачу коммивояжера с другой тоски зрения, мы смогли бы разработать полиномиальный алгоритм ее решения.
Термин NP-полная относится к самым сложным задачам в классе NP. Эти задачи выделены тем, что если нам все-таки удастся найти полиномиальный алгоритм решения какой-либо из них, то это будет означать, что все задачи класса NP допускают полиномиальные алгоритмы решения.
Мы показываем, что задача является NP-полной, указывая способ сведения к ней всех остальных задач класса NP. На практике нет необходимости осуществлять редукцию для каждой NP-задачи. Вместо этого, для того. Чтобы доказать NP-полноту некоторой NP-задачи А, достаточно свести к ней какую-то NP-полную задачу В. Редуцировав задачу В к задаче А , мы показываем, что и любая NP-задача может быть сведена к А за два шага, первый из которых – ее редукция к В.
Редукция – настолько мощная вещь, что если любую из NP-полных задач удастся свести к задаче класса Р, то все NP-задачи получат полиномиальное решение. До сих пор ни одна из попыток построить такое сведение не удалась.
В 1971 г. Куком была доказана NP-полнота задачи о КНФ. КНФ представляет собой последовательность (конъюнкцию) булевских выражений, связанных между собой операторами AND, причем каждое выражение является дизъюнкцией логических переменных или их отрицаний. Задача об истинности логического выражения, имеющего вид КНФ, : существует ли у переменных, входящих в выражение, такие значения истинности, подстановка которых делает все выражение истинным. Как число переменных, так и сложность выражения не ограничены, поэтому число комбинаций значений истинности может быть очень велико.
NP-полнота большого числа задач была доказана путем редукции к ним задачи о КНФ.
Определение класса NP-полных задач требует выполнения следующих двух условий: во-первых, задача должна принадлежать классу NP, и во-вторых, к ней полиномиально должны сводиться все задачи из класса NP.
Теорема.
Если существует задача, принадлежащая
классу NPС,
для которой существует полиномиальный
алгоритм решения, то NP=Р.
Схема доказательства состоит в сведении с полиномиальной трудоемкостью любой задачи из класса NP к данной задаче из класса NPС и решении этой задачи за полиномиальное время (по условию теоремы).
В настоящее время доказано существование сотен NP-полных задач, но ни для одной из них пока не удалось найти полиномиального алгоритма решения. Для многих из них предложены приближенные полиномиальные алгоритмы. Сегодня ученые предполагают такое соотношение классов, как показано на рис.
