Материал: Дискретная математика. учебное пособие. Собенина О.В

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Задача недетерминированно разрешима за полиноми­альное время, если существует недетерминированный ал­горитм, решающий ее за это время.

Определим теперь как класс всех распознаватель­ных задач, недетерминированно разрешимых за полино­миальное время.

Нетрудно видеть, что Р NР. Действительно, полино­миальный алгоритм решения всякой задачи из Р можно превратить в полиномиальный алгоритм вида AQ, доба­вив оператор В (l1, l2) так, чтобы он ни разу не сраба­тывал. При этом в качестве Q можно взять произволь­ную последовательность, например, состоящую из одного элемента. Класс чрезвычайно широк. Например, боль­шинству задач, встречающихся в предыдущих главах, можно «естественным» образом сопоставить распознава­тельные задачи. При этом окажется, что почти все они принадлежат NР.

В качестве примера доказательства принадлежно­сти задачи к рассмотрим задачу об изоморфном подграфе, которую здесь сформулируем в следую­щем виде.

Даны два графа G1 и G2, причем VG1 = VG2 = V. Установить, существует ли такая подстановка s: VV, для которой истинна импликация

(uvEG1)  (s(u)s(v) EG2).

Удобно рассматривать эту задачу в матричной постанов­ке. Пусть V={1, 2, ..., п}, А1 и А2, – матрицы смеж­ности графов G1 и G2 соответственно. Обозначим через S матрацу подстановки s. Теперь задачу об изо­морфном подграфе можно сформулировать так: опреде­лить, существует ли такая матрица подстановки S, что все единицы матрицы SA1S-1 содержатся среди единиц матрицы А2, т. е. что матрица 2SА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)+р21(п)}). Поскольку супер­позиция и сумма полиномов также являются полинома­ми, то A' — полиномиальный алгоритм.

Точно так же можно показать, что из А В и B С следует А С.

Задачу А назовем NP-полной, если ANP и любая задача из 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: VV, для которой истинна импликация (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} – множество входящих в него литералов. Будем обозначать через Ci множество литералов, входящих в элементарную дизъюнкцию Ci.

Поставим в соответствие выражению В граф G по следующему правилу:

VG={vij : ui С'i},

EG = {vij vkl : ui i , j i }.

Таким образом, вершины графа G находятся во взаимно однозначном соответствии с вхождениями литералов в элементарные дизъюнкции. Две вершины смежны, если соответствующие вхождения не противоречат друг другу, т. е. элементарные дизъюнкции различны и оба литера­ла могут одновременно принять значение «истина».

Пусть в графе G имеется клика размера k = т. Этой клике соответствует набор таких т вхождений ui C1, иi С’2, ..., ui Cm, что 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-трудна, разработчик алгоритмов получает достаточ­ные основания, чтобы отказаться от поиска эффектив­ного и точного алгоритма. Дальнейшие его усилия могут быть направлены, например, на получение приближен­ного решения, либо на получение решения в типичном случае (в большинстве случаев).

Заключение

Представленное учебное пособие не претендует на полноту рассмотрения всех направлений развивающейся в настоящее время дискретной математики. Автор лишь хотел ознакомить читателя в рамках выделенного на изучение курса времени с основными понятиями и подходами дисциплины. Предложенный материал может служить фундаментом для дальнейшего изучения как теоретических и прикладных вопросов дискретной математики, как в целом, так и отдельных ее направлений при изучении специальных дисциплин.

Библиографический список

  1. Емеличев В.А. Лекции по теории графов / В.А. Емеличев, О.И. Мельников. М.: Наука, 1990. – 384 с.

  2. Кристофидес Н. Теория графов: алгоритмический подход / Н. Кристофидес. М.: Мир, 1978. – 432 с.

  3. Свами М. Графы, сети и алгоритмы / М. Свами, К. Тхуласираман. М.: Мир, 1974. – 520 с.

  4. Судоплатов С.В. Элементы дискретной математики: учебник / С.В. Судоплатов, Е.В. Овчинникова. М.: ИНФРА-М, 2002. – 280 с.

  5. Леденева Т.М.Специальные главы математики. Дискретная математика: учеб. пособие / Т.М. Леденева. Воронеж: ВГТУ, 1997. – 130 с.

  6. Новиков Ф.А. Дискретная математика для программистов / Ф.А. Новиков. СПб.: Питер, 2004. – 364 с.

  7. Тишин В.В. Дискретная математика в примерах и задачах / В.В. Тишин. СПб.: БХВ-Петербург. 2008. – 352 с.

  8. Гаврилов Г.П. Задачи и упражнения по дискретной математике: учеб. пособие / Г.П. Гаврилов, А.А. Сапоженко. – 3-е изд., перераб. М.: ФИЗМАТЛИТ, 2005. – 416 с.

  9. Лавров И.А. Задачи по теории множеств, математической логике и теории алгоритмов / И.А. Лавров, Л.Л. Максимова. М.: ФИЗМАТЛИТ, 2004. – 256 с.

  10. Кузнецов О.П. Дискретная математика для инженера / О.П. Кузнецов. СП.: Лань, 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

Источник: https://studfile.net/preview/16566820/