
- •Конспекты лекций по дисциплине Теория сложности вычислений
- •6.080200 Прикладная математика
- •Симферополь, 2004
- •Тема 0: Введение
- •Тема 1: Модели вычислений
- •Тема 4. Класс р и неразрешимые полиномиальные задачи
- •Недетерминированные алгоритмы и класс np
- •Теорема 4.1 [1].
- •Тема 5. Клас np
- •Теорема_5.1. (Сoоk s.A., 1971). Задача выполнимости кнф является nр- полной.
- •Начальная информация
- •Здесь - функция смены состояний нмт, - функция, определяющая записываемый на ленту символ, - функция, определяющая движение головки машины, . Введем вспомогательную функцию –
- •Тема 8. Матроиды и greedy алгоритмы
- •Значение функции (е) будем называть весом элемента е е. Задача 8.3 может быть переформулирована так: найти допустимое подмножество s j с наибольшим суммарным весом.
Тема 4. Класс р и неразрешимые полиномиальные задачи
Лекция 1. Сравнительный анализ разных по сложности задач и их решения при повышении быстродействия компьютеров
1) Класс Р. Сравнительный анализ разных по сложности задач и их решения при повышении быстродействия компьютеров [1,2,3,4,5,6,7,8,9]
Временная (пространственная) сложность называется полиномиальной, если имеет вид P(n) , где P(.) - некоторый полином от размера входа задачи n.
Определение 4.1. Классом Р называется множество всех задач, для которых существует алгоритм решения, имеющий полиномиальную сложность.
Алгоритмы с полиномиальной сложностью
называют эффективными
в
отличие
от алгоритмов, для которых временная
или пространственная сложность как
функции размера задачи не могут быть
представлены полиномами. Алгоритмы,
сложность которых оценивается как
(с экспоненциальной сложностью)
эффективными не являются. С учетом,
например, того, что при
справедливо неравенство
,
хотя
,
имеет смысл говорить об асимптотической
сложности алгоритмов. Умножение функции
сложности на константу принципиально
не изменяет эту характеристику сложности
задачи.
Значение разбиения задач на классы сложности становится понятным, если рассмотреть следующие практические соображения.
Пусть решая
некоторую задачу Z
на компьютере
можно было потратить Т
единиц времени бесперебойной работы
(без отказов, выключений и пр.). Переход
на компьютер
с быстродействием в 10 раз большим можно
считать эквивалентным увеличению
времени бесперебойной работы в десять
раз и равным 10Т.
Если наибольшую размерность задачи,
практически решаемой на компьютере
обозначить
,
а на
,
то для произвольной временной сложности
-можно
составить уравнение
,
разрешив
которое относительно
,
можно увидеть, на
сколько может быть увеличена размерность
решаемых задач при переходе на компьютер
с большим на порядок быстродействием.
Например, при
получим:
.
Но
если
,
то
.
Практически это означает, например,
что если удавалось решать некоторую
задачу с матрицей размерности, не
превышающей 100, на компьютере
и эта задача имеет экспоненциальную
сложность, то, применив имеющий в 10
раз более быстродействие компьютер
,
вам удастся увеличить размерность
решаемой задачи всего лишь до 103.
Приведенная ниже таблица (заимствованная из [1]), ярко иллюстрирует значение функции сложности.
Временная сложность задачи |
Наибольшая возможная размерность входа на имеющейся ЭВМ |
Наибольшая возможная размерность входа на ЭВМ в 100 раз более быстрой |
Наибольшая возможная размерность входа на ЭВМ в 1000 раз более быстрой |
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|