Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория алгоритмов. Учебное пособие
.pdf
5.2. Классы сложности
n nn+
этой цели обычно используется число городов. Однако,
в задаче с т городов, кроме номеров этих городов на объем
входной информации влияют также т(т – 1)/2 величин,
определяющих расстояния между городами, и значения
этих величин.
Выбор минимального по сложности алгоритма в конкретных случаях очень часто оказывается весьма трудной
задачей. Поэтому приходится довольствоваться получением нижних и верхних оценок сложности алгоритма, при
этом часто интересуются только поведением алгоритма
при достаточно больших размерах входа, поскольку именно эти входы определяют границы применимости алгоритма. Различия между алгоритмами сложности 310n и 37n
можно сделать несущественными при помощи технологических достижений. С другой стороны, медленно растущие
слагаемые (такие, как 4n в оценке log 4
) будут полностью поглощаться более быстрорастущими слагаемыми
при достаточно больших n.
Поскольку нам известно, что все известные модели
вычисления моделируют друг друга с точностью до полинома, то модели вычисления можно рассматривать чисто
формально, т.е. модель вычисления можно представить
в виде «черного ящика», выполняющего некоторые разные операции. Условно ее обозначим через П.
5.2. Классы сложности
Классами сложности называются множества вычислительных задач почти всюду одинаковых по сложности
вычисления.
В узком смысле классы сложности — это множество
предикатов (функций, получающих на вход слово и возвращающих ответ 0 или 1), использующих для вычисления примерно одинаковое количество ресурсов.
— 171 —

Глава 5. ВВЕДЕНИЕ В ТЕОРИЮ СЛОЖНОСТИ АЛГОРИТМОВ
( )
Ry
( )
( )
( )
( ) ( )
( )
( )
{ }
M
: M: (M f) t DTIMEtn f n Otn=∃ ∧=
( ) ( )
( )
( )
M
Классом сложности Q называется множество предикатов
ния
ния П. Определяются два основных класса задач распознавания: Р — это интуитивное множество задач, разрешимых за реальное (полиномиальное) время на машине П,
и NP — полиномиально проверяемые задачи на машине П.
Отметим, что чаще всего в качестве машины П используется в первом случае детерминированная машина Тьюринга
и в последнем случае — недетерминированная машина
Тьюринга.
нерешенных проблем: как соотносятся множества Р и NР?
ный класс связанно с тезисом теории сложности: реально
выполняемые алгоритмы отождествляются с полиномиальными алгоритмами. Именно этот тезис и дает возможность применять теорию NР-полноты в практическом программировании.
так: фиксируется множество всех алгоритмов определенной формы (может быть весьма разнообразной и не обязательно соответствовать «реальным» вычислениям) и удовлетворяющих тем или иным сложностным ограничениям
(затраты времени, памяти и др.). После этого в рассматриваемый класс зачисляются все алгоритмические задачи
для которых существует хотя бы один алгоритм из этого
множества.
рые нас устраивают, и назовем класс всех функций, вычислимых такими машинами, классом сложности.
вычислимых на П и использующих для вычислеOfn ресурса, где n — длина слова x.
Далее мы рассматриваем в качестве модели вычисле-
Возникает одна из самых знаменитых современных
Выделение полиномиальных алгоритмов в специаль-
Другими словами, классы сложности определяются
По-другому рассмотрим множество всех машин, кото-
вычисляет
— 172 —

5.2. Классы сложности
tn
П
( )
( )
Это одно из центральных определений в теории сложности. Буква D означает детерминированные алгоритмы
(бывают и другие), ТIМЕ означает ровно то, о чем вы подумали. Если у нас есть произвольная функция t(n) от натурального аргумента, то мы образуем класс сложности,
состоящий из таких функции, для которых существует
вычисляющая f машина П, такая что
ходной функцией t(n) с точностью до мультипликативной
кон станты.
Приведенная выше теорема об ускорение справедлива только для не которых специальных функций. Но если
мы хотим достичь ускорения, скажем, в 10 раз, то это можно сделать с любой функцией — например, путем увеличения количества машинных команд. Именно поэтому в правой части определения стоит О — большое.
Теперь определим один из самых важных сложност-
ных классов
P DTIME n
=
0kk
≥
Класс Р — это те функции, которые можно вычислить
на наших ма шинах, и время их вычисления растет полино-
миально с ростом длины входа. Он очень удобен и с практической, и с теоретической точки зрения. С практической
точки зрения, это достаточно хорошая аппроксимация
класса тех функций, которые подаются вычислению за реальное время на реальных компьютерах. С математической точки зрения, это класс бесконечно удобен тем, что
он замкнут относительно суперпозиции.
Бывают аналогичные классы задач, которые можно
распознать за экспоненциальное время
EXPTIME DTIME
Теорема (Фишер-Рабин). Алгебра Тарского не при-
надлежит к классу Р. Время работы любого разрешающего
=
k
0
≥
2
ограничена ис-
k
n
и др.
— 173 —

Глава 5. ВВЕДЕНИЕ В ТЕОРИЮ СЛОЖНОСТИ АЛГОРИТМОВ
2
ε
+⋅ ≤
2
( )
( )
12 1 2 1 2
, ,..., ... , ... , 1,2,...,
n m i i i ik
i
fx x x D D D D l l l i m= ∧ ∧∧ = ∨∨∨ =
( )
( )
( )
( )
{ }
xx x
( )
2
( )
( )
( )
′
V
′
( )
алгоритма для алгебры Тарского не меньше, чем
nε
, где
— некоторая константа.
Алгебра Тарского: рассматривается множество всех фор-
мул исчисления предикатов в сигнатуре 0, 1, , ,
, но-
сителем которой является множество действительных чисел.
Примечание. Какой бы алгоритм мы ни придумали
для разрешения алгебры Тарского, он имеет сложность
не меньшую чем
nε
.
На практике возникают масса задач, для которых ха-
рактерно следующее:
• Все они решаются методом (алгоритмом) перебора;
• Если кто-нибудь даст решение этих задач, то проверять решение следует по мощности полиномиального алгоритма.
Пример 1. Рассмотрим КНФ.
Пусть
i
Требуется проверить, является ли
.
, ,...,
fx x x вы-
12
n
полнимой?
Из курса математической логики нам известно, что
булева формула
ет хотя бы один набор значения
менных
, ,...,
12
, ,...,
fx x x выполнима, если существу-
12
такие, что
n
fx x x = .
n
00 0
, ,..., 1
12
n
00 0
, ,..., 0,1
xx x ∈ пере-
12
n
Поскольку мы мерим сложность алгоритма по самому плохому случаю, то сложность алгоритма имеет поря-
n
док
tnO= .
, т.е. временная сложность данного алгоритма равна
n
M
2
Пример 2. Задача о клике. Кликой графа G называют
подмножество
из
соединены ребром из
V VG
⊆ такое, что любые две вершины
EG .
— 174 —

5.2. Классы сложности
( )
! !
( )
( )
dd d
ss s
dd d
vv v
UU
′
⊆
( ) ( )
suB vuK
′′
∈∈
≤≥
∑∑
Задача заключается в следующем: по заданному графу G
и положительному целому числу
k VG≤ определить,
имеется ли в графе G клика мощности, не менее k .
Эффективного алгоритма для поиска клики заданного размера на данный момент не найдено. Полный перебор
всех возможных подграфов размера k с проверкой того, является ли хотя бы один из них полным, — неэффективен,
поскольку полное число таких подграфов в графе с v вершинами равно биномиальному коэффициенту
!
k
C
v
v
=
k vk
( )
.
−
Пример 3. Задача о рюкзаке. Условие: задано конеч-
ное множество U, размер
su Z+∈ и стоимость
vu Z+∈ .
На формальном языке: пусть B — величина вместимости рюкзака,
ветственно, размер предметов
, ,...,
12
— предметы;
n
, ,...,
12
, ,...,
12
и
n
n
, ,...,
12
— соот-
—
n
степень полезности предметов.
Вопрос. Существует, ли такое подмножество
,
uU uU
.
, ov
Очевидно, что задача о рюкзаке не решается в реальное время. (Код программы смотрите в Приложении 4.)
Пример 4. Задача коммивояжёра — одна из самых
известных задач комбинаторной оптимизации, заключающаяся в отыскании самого выгодного маршрута, проходящего через указанные города по одному разу с последующим возвратом в исходный город. В условиях задачи
указываются критерии выгодности маршрута (кратчайший, самый дешёвый, совокупный критерий и т. п.) и соответствующие матрицы расстояний, стоимости и т. п. Как
правило, указывается, что маршрут должен проходить через каждый город только один раз — в таком случае выбор
осуществляется среди гамильтоновых циклов. (Код программы смотрите в Приложении 3.)
— 175 —

Глава 5. ВВЕДЕНИЕ В ТЕОРИЮ СЛОЖНОСТИ АЛГОРИТМОВ
D
Γ
Y
()
YD
ΓΓ
I
Γ
Подобные задачи часто возникают в экономике, при-
кладной математике, криптографии.
5.3. Введение в теории NP-полноты
Рассматриваем язык предикатов. Относительно этого
языка введем задачу распознавания и показываем, что хорошо известные нами задачи, например, из курса дискретной математики, легко к ним сводятся.
Определяем два основных класса задач распознавания: Р — множество задач, для решения которых существует полиномиальные алгоритмы, и NP — множество
задач, для решения которых существует полиномиально
проверяемые алгоритмы.
Мы вводим классы Р и NР на языке предикатов.
Однако отметим, что эти классы инвариантны относительно других рассмотренных нами моделей вычислений (и вообще относительно любой «разумной» модели
вычислений). Это исключительно важно в теории NРполноты.
Для удобства изложения теория NP-полных задач
обычно строятся для задач распознавания свойств. Такие
задачи имеют только два возможных решения — «да»
или «нет». Иначе говоря, задача распознавания Г состоит
из двух множеств:
— множество всех возможных индивидуальных
задач;
— множество индивидуальных задач с ответом «да»
Γ
Как мы уже отмечали ранее, Г — это массовая задача,
которая содержит несколько параметров, конкретные значения которых неопределенны, а
задача, полученная из массовой задачи Г, когда всем параметрам задачи Г присвоены конкретные значения.
∈
.
— индивидуальная
— 176 —

5.3. Введение в теории NP-полноты
D
Y
Γ
D
Y
Γ
{ }
12
, ,...,
n
C cc c=
( )
cc C∈
BN
{ }
kk k
11
, ,?
+≤
Стандартная форма описания задач, которую мы бу-
дем использовать, состоит из двух частей:
1) описание условия задачи в терминах различных
компонент-множеств, графов, функций, чисел и т.д.
2) в терминах условия формируется вопрос, предпола-
гающий один из двух ответов — «да» или «нет».
Это описание следующим образом определяет мно-
жества
тогда и только тогда, когда она может быть получена
Γ
Γ
и
. Индивидуальная задача принадлежит
из стандартной формы описания подстановкой конкретных
значений во все компоненты условия. Индивидуальная задача принадлежит
тогда и только тогда, когда ответом
на вопрос задачи будет ответ «да».
Пример 1. Сформулируем задачу распознавания, соот-
ветствующую известной из курса дискретной математики
задаче о коммивояжере.
Условие. Заданы: конечное множество
городов, расстояние
,
ij
и граница
,
dc c N
∈ .
∈ для каждой пары городов
ij
+
+
—
Вопрос. Существует ли «маршрут», проходящий через
все города из ,C длина которого не превосходит B?
Другими словами, существует, ли последовательность
, ,...,
cc c элементов C такая, что
12
n
1
n
−
dc c dc c B
( ) ( )
∑
kk k k
ii n
1
i
=
+
Читатель знаком с задачей коммивояжера, но в оптимизационной формулировке (найти «маршрут» минимальной длины). Нетрудно показать, как оптимизационная задача сводится к задаче распознавания.
Отметим важный момент. Так как значение целевой
функции легко оценить, то задача распознавания не может
быть сложнее соответствующей задачи оптимизации. Т.е.,
если для задачи о коммивояжере можно за какое-то время
— 177 —

Глава 5. ВВЕДЕНИЕ В ТЕОРИЮ СЛОЖНОСТИ АЛГОРИТМОВ
∑
[ ]
Le
[ ]
Le
найти маршрут минимальной длины, то совершенно ясно,
как практически за это то же время решить соответствующую задачу распознавания: найти маршрут минимальной
длины, вычислить его длину, и сравнить ее с заданной границей B.
Установим теперь соответствие между задачами распознавания и множеством предикатов с помощью схем кодирования, которые обычно применяются для представления индивидуальной задачи при ее решении на компьютере.
Схема кодирования е задачи Г описывает каждую индивидуальную задачу из Г подходящим словом в некотором фиксированном алфавите ∑.
Таким образом, задача Г и схема кодирования е задачи
Г разбивают слова из
1) слова, не являющиеся кодами индивидуальных за-
дач из Г;
2) слова, являющиеся кодами индивидуальных задач
из Г с отрицательным ответом на вопрос;
3) слова, являющиеся кодами индивидуальных задач
из Г с положительным ответом на вопрос.
Третий класс слов как раз и есть тот язык, который
ставится в соответствие задаче Г при кодировании е и обозначается через
При применении формальной теории NР-полноты
к задачам распознавания будем говорить, что некоторый
результат имеет место для задачи Г при схеме кодирования
е, если этот результат имеет место для языка
Обычно схему кодирования считают «разумной», если
она:
1) достаточно «сжатая» — то есть при кодировании
индивидуальной задачи сохраняется ее естественная краткость;
2) допускает декодирование — то есть по данной
компоненте условия задачи можно указать алгоритм
,
Γ .
*
на три класса:
,
Γ .
— 178 —

5.3. Введение в теории NP-полноты
12
pp
ID∈
[ ]
( )
[ ]
( )
12
length I p x x p length I≤≤
[ ]
( )
( )
{ }
lengthI m B dcc cc C
=++ ∈
yn
qq
с полиномиальным временем работы, который из любого
заданного кода индивидуальной задачи позволяет извлечь
описание этой компоненты.
Отметим, что если ограничиться только «разумными
схемами кодирования», то наши результаты не будут зависеть от способа кодирования. В этом случае теряется связь
с важнейшим формальным параметром «длина входа».
Поэтому необходим и некоторый параметр, через который
можно выразить временную сложность. Будем считать,
что с каждой задачей распознавания связана не зависящая
от схемы кодирования функция :length D N
«полиномиально эквивалентна» длине кода индивидуальной задачи, получаемой при любой разумной схеме кодирования.
Полиномиальная эквивалентность понимается
в следующем смысле: для любой разумной схемы кодирования е задачи Г существуют два полинома
если
кодировании е, то
x — длина слова x.
Hапример, в задаче коммивояжер можно положить
и слово х есть код индивидуальной задачи I при
и
+
→ , которая
Γ
и
такие, что
, где
[ ] [ ]
Так как любые две разумные схемы кодирования задачи Г дают полиномиально эквивалентные длины входов, то диапазон для выбора функции length очень широк,
а получаемые результаты будут верны для любой функции
length, удовлетворяющей сформированным выше условиям.
Всякая детерминированная вычислительная модель П имеет два заключительных состояния
да, n — нет).
Будем говорить, что детерминированная вычислительная модель П (ДВМ П), имеющая входной алфавит
log max log , | ,
22
— 179 —
ij ij
и
.
(y —

Глава 5. ВВЕДЕНИЕ В ТЕОРИЮ СЛОЖНОСТИ АЛГОРИТМОВ
∑
L
Lx
e
LL
x
( )
nN N
++
*
, ,
max
t
xxn
существует такое слово
П что вычисление машины П на входе x
требует времени m
nm
nN
( ) ( )
t
PL
существует полиномиальная ДВМ П,
e
[ ]
LePΓ∈
, принимает *x∈∑, если будучи примененной к вхо-
ду x, она оказывается в состояние yq .
Язык
щим условием
Соответствия между «распознанием» языков и «реше-
нием» задач определяется следующим образом.
Будем говорить, что ДВМ П решает задачу распознавания Г при кодировании
на всех словах, составленных из букв входного алфавита,
и
Время, требуемое ДВМ П для вычисления при входе
, есть число шагов, выполняемых до момента остановки.
Если ДВМ П останавливается на входах x∈ ∑*, то временной сложностью этой машины П называется функция
П
= →
распознаваемый ДВМ П, задается следую-
П
*
|
П
.
,
eПГ
,
П принимает
, если П останавливается
x
.
ДВМ П называется полиноминальной, если существует такой полином p, что для всех
Класс задач P определяется так:
Будем говорить, что задача распознавания Г принадлежит классу Р при кодировании
существует полиноминальное ДВМ П, которое решает задачу Г при кодировании e.
Учитывая выше сказанное, будем говорить, что задача
распознавания Г принадлежит классу P.
для которых
— 180 —
+
∈ П
, если
n pn≤
,
LL
, то есть
.
t
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
