
- •Методическое пособие по дисциплине Теория сложности вычислений
- •6.080200 Прикладная математика
- •Симферополь, 2004
- •Основные понятия теории алгоритмической
- •Сложности решения дискретных задач
- •1.Алгоритм
- •2. Класс p и эффективные вычисления
- •Значение разбиения задач на классы по сложности становится понятным, если рассмотреть следующие практические соображения.
- •3. Недетерминированные алгоритмы и класс np.
- •4. Класс nр - полных задач
- •Теорема 4.1 [1].
- •5. Теорема Кука: первая nр - полная задача
- •Теорема_5.1. (Сoоk s.A., 1971).
- •Введем вспомогательную функцию
- •6. Другие nр- полные задачи.
- •7. Пример доказательства np- полноты задачи методом сведения.
- •8. Список nр- полных задач.
- •9. Матроиды и жадные алгоритмы.
- •Задача 9.2. Дана матрица с целыми неотрицательными
- •Задача 9.3. Дано конечное множество е, семейство его подмножеств ( - булеан множества е) и функция
- •Множество b j не будет содержаться во множестве s, выбранном
- •Содержание
Введем вспомогательную функцию
Пустъ
,
если на шаге t,
находясь в состояний
,
машина
обозревает ячейку с номером s,
в которой записан символ
,и
смена состояния и записи в ячейке
осуществляется в соответствии с
программой, причем при отсутствии
головки над ячейкой s
запись
в этой ячейке не изменяется; в противном
случае
.
где выражение в
квадратных скобках соответствует тому,
что на шаге Т на ленте записаны символы
(пусто)
и 1, причем единица содержится не более
чем в одной ячейке; сомножитель
соответствует нахождению машины на
шаге Т в состоянии
;
последняя конъюнкция обеспечивает
условие наличия в обозреваемой ячейке
символа 1. '
Приведенные выше выражения позволяют заключить, что формула Ф = В & C & D & Е & F & G, является КНФ, если привести проме-жуточные эквивалентные преобразования:
Ф = 1 равносильно тому, что найдется такое допустимое, значение у, при котором машина, начав работу в конфигурации перейдёт в конфигурацию согласно тьюринговской программе полиномиаль-ной проверки.
Если задача z имеет положительный ответ, то для некоторого допустимого у выполнено R(x,y)=1. В этом случае, назначив
значения переменных
на
основе работы машины над начальной
конфигурацией
,
получим набор, на котором Ф=1. Обратно,
если существует набор, обращающий Ф в
единицу, то значения переменных
в этом наборе определяют слово у , такое, что машина переводит в . Следовательно, задача z сведена к задаче выполнимости КНФ.
Очевидно, что длина записи формулы Ф при любом способе ее представления в виде слова над конечным алфавитом ограничена некоторым полиномом от размера входа задачи n, и сведение задачи z к задаче осуществимо за полиномиальное время.
Теорема полностью доказана.
6. Другие nр- полные задачи.
После открытия С. Куком «первой» NР- полной задачи стало воз-можным доказывать NР- полноту других задач, NР- полными оказа-
лись:
задача
выполнимости 3-КНФ
, когда в выражении
каждая
дизъюнкция
может
иметь не более трех членов, например:
задача о вершинном покрытии графа, о существовании гамильтонова цикла в графе, задача коммивояжера в экстремальной постановке, задача целочисленного линейного программирования, задача минимизации дизъюнктивной нормальной формы произвольной булевой функции, задача синтеза бинарного решающего дерева с минимальным числом листьев и многие другие [1].
Важно учитывать, что доказательство NР- полноты всегда произ-водится для любой исходной информации, допустимой для рассматри-
ваемой задачи. При этом вполне возможно, что для некоторых исходных данных задача окажется полиномиально разрешимой: известны разрешимые с полиномиальной сложностью частные случаи для задачи минимизации ДНФ монотонной булевой функции, задачи целочис-ленного линейного программирования и многие другие.
Задача называется NР- трудной, если к ней полиномиально сводится
какая-нибудь NР- полная задача. Класс всех NР- трудных задач обозначают NРН. Задача z NРH по крайней мере так же трудна, как и любая задача из NР, но классу NР может не принадлежать.
Практическое применение теории NР- полных задач позволяет
при изучении каждой новой трудно решаемой задачи определить,
целесообразно ли продолжать отыскивать точный эффективный алго-
ритм
ее решения. Для этого необходимо
установить, принадлежит ли задача классу
NРС или NPH.
Если такая принадлежность имеет место,
то, возможно,
имеет смысл искать её приближенное
решение, опреде-ляемое следующим образом.
Пусть требуется найти экстремум функции
f(x)
при условии х
,
Если
-оптимальное
решение, то
ε - приближенным называют любое решение х , удовлетворяющее неравенству
Практически важным является выделение подклассов задач из NРС. для которых нахождение ε - приближенных решений позволяет понизить сложность настолько, чтобы перевести решаемую задачу в класс Р. Существенной является и возможность работы с какой - либо одной задачей из NРС для изучения общих подходов к решению; часто в качестве таковой выбирают задачу коммивояжера, задачу минимизации ДНФ.
Теория NР - полных задач, как видно из изложенного выше, опе-рирует с задачами вычисления свойств. Поэтому нужно отметить при-менимость теории к дискретным оптимизационным задачам.
Если в оптимизационной задаче среди всех структур данного типа ищется структура, имеющая минимальную «стоимость» (например, среди всех маршрутов отыскивается маршрут минимальной длины, как в задаче коммивояжера), то этой задаче можно сопоставить задачу распоз-навания (вычисления) свойства, в котором в качестве дополнительного параметра фигурирует числовая граница В, а вопрос ставится о сущест-вовании структур данного типа, стоимость которых не превосходит В (например, маршрут длины не более В).
Задача
распознавания не может быть сложнее
соответствующей задачи оптимизации.
Действительно, имея маршрут минимальной
дли-ны и длину этого маршрута, для решения
задачи распознавания свой-ства нужно
только сравнить ее с заданной границей
В. Поэтому если задача вычисления
свойства
,
является NР-
полной,
то и задача,
по крайней мере, столь же сложна.
Если
значения функции f(x)
целочисленные и
при
(в этом случае функция принимает не
более М - m+1
значений на множестве
), то решить оптимизационную задачу
можно путем повторения решения задачи
вычисления свойства, выбирая границу
В из целочисленного отрезка (m,
M). Число
шагов решения оптимизационной задачи
при таком решении будет в
константу
раз больше числа шагов решения задачи
вычисления свойства. Поэтому оптимизационная
целочисленная задача относится к тому
классу сложности, что и соот-ветствующая
задача вычисления свойства.