Задача недетерминированно разрешима за полиномиальное время, если существует недетерминированный алгоритм, решающий ее за это время.
Определим теперь NР как класс всех распознавательных задач, недетерминированно разрешимых за полиномиальное время.
Нетрудно видеть, что Р NР. Действительно, полиномиальный алгоритм решения всякой задачи из Р можно превратить в полиномиальный алгоритм вида AQ, добавив оператор В (l1, l2) так, чтобы он ни разу не срабатывал. При этом в качестве Q можно взять произвольную последовательность, например, состоящую из одного элемента. Класс NР чрезвычайно широк. Например, большинству задач, встречающихся в предыдущих главах, можно «естественным» образом сопоставить распознавательные задачи. При этом окажется, что почти все они принадлежат NР.
В качестве примера доказательства принадлежности задачи к NР рассмотрим задачу об изоморфном подграфе, которую здесь сформулируем в следующем виде.
Даны два графа G1 и G2, причем VG1 = VG2 = V. Установить, существует ли такая подстановка s: V → V, для которой истинна импликация
(uv EG1) (s(u)s(v) EG2).
Удобно рассматривать эту задачу в матричной постановке. Пусть V={1, 2, ..., п}, А1 и А2, – матрицы смежности графов G1 и G2 соответственно. Обозначим через S матрацу подстановки s. Теперь задачу об изоморфном подграфе можно сформулировать так: определить, существует ли такая матрица подстановки S, что все единицы матрицы SA1S-1 содержатся среди единиц матрицы А2, т. е. что матрица (А2—SА1S-1) неотрицательна.
Недетерминированный алгоритм A для решения этой задачи выглядит следующим образом.
1.
Выполнить пп. 2 –
4
для всех k
=
и перейти к п. 5.
2. B(3,4).
3. tk=0.
4.tk=1.
5. Sij
:= ti(n-1)+j
для всех i, j
=
.
6. А':=SA1S-1.
7. Если матрица А2 – А' неотрицательна, то конец и ответ «да». Иначе – конец.
Напомним, что Sij – элемент матрицы S, занимающий позицию (i, j).
Покажем теперь, как выбирать угадывающую последовательность Q. Рассмотрим произвольный вход задачи, имеющий ответ «да». Это – пара симметрических (0,1)-матриц А1 и А2, для которой существует такая матрица подстановки S, что А2 – SA1S-1 – неотрицательная матрица. Заменим в матрице S 0 на 3 и 1 на 4 и в качестве Q возьмем последовательность элементов этой новой матрицы, выписанных по строкам.
Работа алгоритма AQ состоит из двух этапов. На первом этапе (пп. 1 – 5) с помощью Q строится матрица подстановки, обеспечивающая изоморфное вложение. Содержанием второго этапа (пп. 6, 7) является проверка того, что матрица S обладает нужным свойством. Полиномиальность алгоритма AQ очевидна.
Напомним, что частными случаями задачи об изоморфном подграфе являются задачи об изоморфизме графов, о существовании в графе гамильтонова цикла или клики заданного размера и ряд других. Таким образом, попутно установлена принадлежность всех этих задач к классу NР. Доказательство этого свойства для других графовых задач проводится, как правило, столь же просто. При этом работа алгоритма AQ, так же как и в предыдущем случае, распадается на два этапа: 1) построение некоторого варианта, 2) проверка того, что этот вариант подходящий. Например, в задаче о k-раскраске вершин графа такой алгоритм сначала припишет вершинам графа нужные цвета, а затем проверит, что любые две вершины одного цвета не смежны.
Тот факт, что большинство «естественных» задач входит в класс NР, свидетельствует о чрезвычайной важности вопроса: совпадают ли классы Р и NP? Эта не решенная до сих пор проблема считается важнейшей в науке о вычислениях. Большинство исследователей склоняется к мнению, что Р≠NР. На первый взгляд ситуация Р≠NР не лишает нас возможности получить в будущем полиномиальный алгоритм решения какой-либо из задач, названных нами «трудными». Однако это не так. Как оказалось, из Р≠NР следует, что ни одна из этих «трудных» задач не имеет полиномиального алгоритма, а из существования такого алгоритма для одной из них следует, что Р = NР.
Изложение соответствующих результатов опирается на понятие сводимости одной задачи к другой. Предложение «задача А сводится к задаче B» означает, в общепринятом смысле, что из решения задачи В можно получить решение задачи А. Нам необходимо уточнить это понятие так, чтобы оно учитывало вычислительные затраты, связанные с получением решения одной задачи из решения другой.
Пусть существует полиномиальный алгоритм F, который, будучи примененным ко всякому входу I задачи А, строит некоторый вход F(I) задачи В. Если при этом вход I имеет ответ «да» тогда и только тогда, когда ответ «да» имеет вход F(I), то говорят, что задача А полиномиально сводится к задаче В, и пишут А В. Поскольку сводимостей, отличных от полиномиальной, мы не рассматриваем, то слово «полиномиально» в дальнейшем будем опускать и говорить просто «А сводится к B».
Нетрудно показать, что если задача А сводится к задаче В и В P, то и А Р. Действительно, пусть A – алгоритм решения задачи В и полиномы р1(п), р2(п) таковы, что 0(р1{п)) и 0(р2(п))–сложности алгоритмов F и Aсоответственно. Рассмотрим теперь алгоритм A’ решения задачи А, состоящей из двух этапов. На первом этапе вход I задачи А преобразуется алгоритмом F во вход F (I) задачи В. На втором этапе алгоритм Aприменяется ко входу F(I). Согласно определению F, алгоритм Aсообщит ответ «да» тогда и только тогда, когда вход I имеет ответ «да», т. е. алгоритм A' действительно решает задачу А. Выясним теперь его сложность. Если длина I равна n, то F(I) будет построен за время 0(р1(п)), и его длина – О (p1 (n)). При этом алгоритм A, будучи примененным ко входу F(I), затратит время 0(p2(p1(n))). Таким образом, сложность алгоритма A' есть 0(p1(n)+р2(р1(п)}). Поскольку суперпозиция и сумма полиномов также являются полиномами, то A' — полиномиальный алгоритм.
Точно так же можно показать, что из А В и B С следует А С.
Задачу А назовем NP-полной, если A NP и любая задача из NP сводится к А.
Из этого определения и предыдущих рассмотрении сразу следует, что Р=NP, если хотя бы одна NP-полная задача входит в Р.
Говоря неформально, каждая NP-полная задача «не проще», чем любая задача из NP. Поэтому, доказав NP-полноту некоторой задачи, мы получаем веские основания считать ее трудной. Для доказательства NP-полноты задачи достаточно установить ее принадлежность к NP и показать, что к ней сводится некоторая NP-полная задача. Чтобы воспользоваться этой схемой, надо иметь в распоряжении хотя бы одну NP-полную задачу.
Первой задачей,
относительно которой было показано,
что она является NP-полной,
была задача о выполнимости. Пусть
х1, x2,
х3, ...— булевы переменные,
принимающие значения «истина» или
«ложь», и
,
,
,…
– их отрицания. Те и другие в
совокупности называются литералами.
Пусть символы V и
Λ обозначают булевы операции
дизъюнкции и конъюнкции соответственно.
Формула и1 V
u2 V
... V um
называется элементарной дизъюнкцией,
если и1, u2,
..., um
– литералы. Пусть С1, С2,
... ..., Сp
– элементарные дизъюнкции. Тогда
выражение вида С1 Λ
С2 Λ
... Λ Сp
называется булевым выражением в
конъюнктивной нормальной форме.
Булево выражение называется выполнимым,
если входящим в него переменным можно
так присвоить значения «истина» или
«ложь», что значением выражения будет
«истина». Не все выражения являются
выполнимыми. Например, булево выражение
(x1 V x2) Λ ( V x3) Λ ( V )
выполнимо, а выражение (x1Vx2)Λ( V )Λ(x1 V )Λ ( \/x2) не выполнимо. Задача, о выполнимости (ВЫПОЛНИМОСТЬ) состоит в определении, является ли данное булево выражение в конъюнктивной нормальной форме выполнимым.
Следующая теорема, приводимая здесь без доказательства, лежит в основе теории NP-полноты.
Теорема 5.1(С. Кук, 1971 г.). Задача ВЫПОЛНИМОСТЬ является NP-полной.
В настоящее время известен значительный (и интенсивно пополняющийся) список NP-полных задач. В этом списке находятся почти все задачи, получившие ранее репутацию трудных для алгоритмического решения. Ниже приведены только те из них, с которыми мы сталкивались в предыдущих главах.
Некоторые NP-полные задачи.
КЛИКА: Даны граф G и натуральное число k. Определить, содержит ли граф G клику мощности k.
НЕЗАВИСИМОСТЬ: Даны граф G и натуральное число k. Определить, содержит ли граф G независимое k-элементное множество вершин.
ИЗОМОРФНЫЙ ПОДГРАФ: Даны два графа G1 = (V, E1) и G2=(V, E2). Определить, существует ли подстановка s: V→V, для которой истинна импликация (uv E1)(s(u}s(v)E2).
ВЕРШИННОЕ ПОКРЫТИЕ: Даны граф G и натуральное число k. Определить, существует ли в графе G вершинное покрытие мощности не более k.
ДОМИНИРУЮЩЕЕ МНОЖЕСТВО: Даны граф G и натуральное число k. Определить, существует ли в графе G доминирующее множество мощности не менее k.
ГАМИЛЬТОНОВ ЦИКЛ: Дан граф G. Определить, содержит ли граф G гамильтонов цикл.
ЯДРО: Дан ориентированный граф G. Определить, содержит ли граф G ядро.
ВЕРШИННАЯ (РЕБЕРНАЯ) РАСКРАСКА: Даны граф G и натуральное число k. Определить, существует ли правильная k-раскраска вершин (ребер) графа G.
Рассмотрим в качестве примера доказательство NP-полноты задачи КЛИКА. Пусть Lk – граф, у которого некоторые k вершин образуют клику, а остальные п–k –изолированные вершины. Ранее мы установили, что задача ИЗОМОРФНЫЙ ПОДГРАФ принадлежит NP. Если в этой задаче положить G2=G, где G – граф, фигурирующий в формулировке задачи КЛИКА, а в качестве G1 выбрать граф Lk, то получим задачу КЛИКА. Следовательно, задача КЛИКА принадлежит NP.
Покажем теперь, что ВЫПОЛНИМОСТЬ КЛИКА. Пусть B= C1 V C2 V... V Cm – произвольное булево выражение в конъюнктивной нормальной форме, {u1, u2, ..., up} – множество входящих в него литералов. Будем обозначать через C’i множество литералов, входящих в элементарную дизъюнкцию Ci.
Поставим в соответствие выражению В граф G по следующему правилу:
VG={vij : ui С'i},
EG
= {vij
vkl
: ui
i
, j
i
}.
Таким образом, вершины графа G находятся во взаимно однозначном соответствии с вхождениями литералов в элементарные дизъюнкции. Две вершины смежны, если соответствующие вхождения не противоречат друг другу, т. е. элементарные дизъюнкции различны и оба литерала могут одновременно принять значение «истина».
Пусть в графе G
имеется клика размера k
= т. Этой клике соответствует набор
таких т вхождений ui
C’1, иi
С’2,
..., ui
C’m,
что ui
i
.
Поэтому после присвоения всем ui
(j=
)
значения «истина» выражение В
также примет это значение, т. е. В –
выполнимое выражение.
Наоборот, предположим,
что В – выполнимое выражение.
Пусть переменным присвоены значения
«истина» или «ложь» так, что выражение
В получило значение «истина». Тогда
каждая элементарная дизъюнкция Cl
должна содержать литерал ui
,
имеющий значение «истина». Ясно, что
при этом ui
i
.Следовательно, т вершин v1i
,
v2i
,
…, vmi
попарно смежны в графе G,
т. е. образуют клику размера т.
Таким образом, выражение В выполнимо
тогда и только тогда, когда в графе G
имеется клика размера k=т. Легко
видеть, что построение графа G по выражению
В можно выполнить за время O
(р(п)), где р(п) – полином, а п –
длина записи выражения В (длина
входа задачи ВЫПОЛНИМОСТЬ).
Имеется ряд задач, входящих в NP, для решения которых до сих пор не найдено полиномиальных алгоритмов и относительно которых неизвестно, являются ли они NP-полными. Наиболее заметной графовой задачей среди них является задача об изоморфизме графов.
С другой стороны, большинство встречающихся на практике задач не являются распознавательными и, следовательно, не принадлежат классу NP. В то же время ко многим из них удается свести некоторые NP-полные задачи. В этой ситуации полезным оказывается следующее определение. Задача называется NP-трудной, если к ней сводится некоторая NP-полная задача. Новый термин позволяет, например, избежать громоздких конструкций типа «распознавательный аналог задачи А является NP-полной задачей» и дает возможность говорить просто, что «задача А NP-трудна».
Теория NP-полноты, помимо теоретического, представляет и чисто практический интерес. Доказав, что задача NP-трудна, разработчик алгоритмов получает достаточные основания, чтобы отказаться от поиска эффективного и точного алгоритма. Дальнейшие его усилия могут быть направлены, например, на получение приближенного решения, либо на получение решения в типичном случае (в большинстве случаев).
Представленное учебное пособие не претендует на полноту рассмотрения всех направлений развивающейся в настоящее время дискретной математики. Автор лишь хотел ознакомить читателя в рамках выделенного на изучение курса времени с основными понятиями и подходами дисциплины. Предложенный материал может служить фундаментом для дальнейшего изучения как теоретических и прикладных вопросов дискретной математики, как в целом, так и отдельных ее направлений при изучении специальных дисциплин.
Емеличев В.А. Лекции по теории графов / В.А. Емеличев, О.И. Мельников. М.: Наука, 1990. – 384 с.
Кристофидес Н. Теория графов: алгоритмический подход / Н. Кристофидес. М.: Мир, 1978. – 432 с.
Свами М. Графы, сети и алгоритмы / М. Свами, К. Тхуласираман. М.: Мир, 1974. – 520 с.
Судоплатов С.В. Элементы дискретной математики: учебник / С.В. Судоплатов, Е.В. Овчинникова. М.: ИНФРА-М, 2002. – 280 с.
Леденева Т.М.Специальные главы математики. Дискретная математика: учеб. пособие / Т.М. Леденева. Воронеж: ВГТУ, 1997. – 130 с.
Новиков Ф.А. Дискретная математика для программистов / Ф.А. Новиков. СПб.: Питер, 2004. – 364 с.
Тишин В.В. Дискретная математика в примерах и задачах / В.В. Тишин. СПб.: БХВ-Петербург. 2008. – 352 с.
Гаврилов Г.П. Задачи и упражнения по дискретной математике: учеб. пособие / Г.П. Гаврилов, А.А. Сапоженко. – 3-е изд., перераб. М.: ФИЗМАТЛИТ, 2005. – 416 с.
Лавров И.А. Задачи по теории множеств, математической логике и теории алгоритмов / И.А. Лавров, Л.Л. Максимова. М.: ФИЗМАТЛИТ, 2004. – 256 с.
Кузнецов О.П. Дискретная математика для инженера / О.П. Кузнецов. СП.: Лань, 2005. - 400 с.
ВВЕДЕНИЕ |
3 |
|||
1. |
ЭЛЕМЕНТЫ ТЕОРИИ МНОЖЕСТВ |
5 |
||
|
1.1. |
Основные понятия и определения теории множеств |
5 |
|
|
1.2. |
Операции над множествами и их свойства. Диаграммы Эйлера-Венна |
11 |
|
|
1.3. |
Мощность множества |
17 |
|
|
1.4. |
Взаимно однозначное соответствие между множествами |
18 |
|
|
1.5. |
Счетные и несчетные множества |
19 |
|
|
|
Задачи и упражнения |
23 |
|
2. |
ЭЛЕМЕНТЫ ТЕОРИИ ОТНОШЕНИЙ |
24 |
||
|
2.1. |
Бинарные отношения. Свойства отношений |
24 |
|
|
2.2. |
Отношение эквивалентности и разбиения |
29 |
|
|
2.3. |
Отношение порядка. Диаграмма Хассе |
32 |
|
|
|
Задачи и упражнения |
37 |
|
3. |
ФУНКЦИИ, ОТОБРАЖЕНИЯ И ОПЕРАЦИИ |
39 |
||
4. |
ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ |
44 |
||
|
4.1. |
Основные понятия и определения теории графов |
45 |
|
|
4.2. |
Типы графов |
48 |
|
|
4.3. |
Матричные представления графов |
53 |
|
|
4.4. |
Представление графов в ЭВМ |
56 |
|
|
4.5. |
Операции над графами |
59 |
|
|
4.6. |
Метрические характеристики графа. Расстояние в графах |
63 |
|
|
4.7. |
Графы с заданной последовательностью степеней |
65 |
|
|
4.8. |
Достижимость и связность |
70 |
|
|
|
4.8.1. |
Основные определения |
70 |
|
|
4.8.2. |
Матрицы достижимостей и контрдостижимостей |
73 |
|
|
4.8.3. |
Нахождение сильных компонент |
77 |
|
|
4.8.4. |
Базы и антибазы |
82 |
|
4.9. |
Независимые и доминирующие множества |
84 |
|
|
|
4.9.1. |
Нахождение всех максимальных независимых множеств |
87 |
|
4.10. |
Покрытия и раскраски |
94 |
|
|
4.11. |
Деревья, остовы и кодеревья |
101 |
|
|
|
4.11.1. |
Основные определения |
101 |
|
|
4.11.2. |
Алгортм построения остова неорграфа |
105 |
|
|
4.11.3. |
Кратчайшие остовы |
108 |
|
|
4.11.4. |
Обходы графа по глубине и ширине |
112 |
|
|
4.11.5. |
Упорядоченные и бинарные деревья |
115 |
|
4.12. |
Эйлеровы циклы. Гамильтонов контур |
117 |
|
|
|
4.12.1. |
Метод Флери построения эйлерова цикла |
120 |
|
|
4.12.2. |
Метод перебора Робертса и Флореса для построения гамильтоновых путей и контуров |
121 |
|
|
4.12.3. |
Алгебраический метод выделения гамильтоновых путей и контуров |
123 |
|
4.13. |
Плоские и планарные графы |
128 |
|
|
|
4.13.1. |
Формула Эйлера |
129 |
|
|
4.13.2. |
Критерии анализа планарности |
131 |
|
|
4.13.3. |
Алгоритм укладки графа на плоскости |
132 |
|
|
|
Задачи и упражнения |
137 |
5. |
АЛГЕБРА ЛОГИКИ |
140 |
||
|
5.1. |
Операции над высказываниями |
141 |
|
|
5.2. |
Правила записи сложных формул |
145 |
|
|
5.3. |
Таблицы истинности |
146 |
|
|
5.4. |
Равносильность формул |
150 |
|
|
5.5. |
Дизъюнктивные и конъюнктивные нормальные формы |
157 |
|
|
|
5.5.1. |
Аналитический способ приведения к СДНФ |
161 |
|
|
5.5.2. |
Табличный способ приведения к СДНФ |
162 |
|
|
5.5.3. |
Табличный способ приведения к СКНФ |
163 |
|
5.6. |
Минимизация булевых функций в классе ДНФ |
166 |
|
|
5.7. |
Геометрическое представление булевых функций |
172 |
|
|
|
5.7.1. |
Геометрический метод минимизации булевых функций |
175 |
|
|
|
Задачи и упражнения |
179 |
6. |
РАЗРЕШИМЫЕ И НЕРАЗРЕШИМЫЕ ПРОБЛЕМЫ |
181 |
||
ЗАКЛЮЧЕНИЕ |
192 |
|||
БИБЛИОГРАФИЧЕСКИЙ СПИСОК |
193 |
|||