Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ИДЗ Вариант 18 (Разбиение на подматрицы со свойством связности)

.doc
Скачиваний:
14
Добавлен:
20.06.2014
Размер:
78.34 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

КАФЕДРА АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ

ИДЗ

«Доказательство принадлежности к NP классу и NP полноты задачи»

по дисциплине

«Математическая логика»

Студент

Филатов А.А.

подпись, дата

фамилия, инициалы

Группа

АС-09-1

Принял

Гаев Л.В.

ученая степень, звание

подпись, дата

фамилия, инициалы

Липецк 2010

1.Задание кафедры

1) Доказать принадлежность к NP класcу выбранной задачи.

2) Доказать NP полноту выбранной задачи.

18. РАЗБИЕНИЕ НА ПОДМАТРИЦЫ СО СВОЙСТВОМ СВЯЗНОСТИ

УСЛОВИЕ. Задана (0 - 1) - матрица А порядка m * n.

ВОПРОС. Можно ли так разбить строки матрицы на две подгруппы, чтобы получившиеся в результате матрицы порядков m1 * n и m2 * n (m1 + m2 = m) обладали свойством связности единиц?

2.Доказательство принадлежности к NP классу

Представим условие данной задачи в виде входной цепочки недетерминированной машины Тьюринга:

I: ((a11,a12, … ,a1n)...(am1,am2,...,amn)).

Цепочку для проверки можно представить в виде:

S: ((a'11,a'12, … ,a'1n)...(a'm11,a'm12,...,a'm1n)),

((a''11,a''12, … ,a''1n)...(a''m21,a''m22,...,a''m2n)),

((a'''11,a'''12, … ,a'''1n)...(a'''m11,a'''m12,...,a'''m1n)),

((a''''11,a''''12, … ,a''''1n)...(a''''m21,a''''m22,...,a''''m2n)).

Описание выходной цепочки S:

aij, a’’ij - две матрицы, полученные из матрицы a разбиением оной на две подгруппы.

a’’’ij, a’’’’ij - две матрицы, полученные из матриц aij, a’’ij соответственно, путем такой перестановки столбцов, что в каждой строке все единицы идут подряд. Причем для любого j существует такой k, что для ˅aij есть a’’’ik, и для ˅a’’ij есть a’’’’ik.

Алгоритм проверки цепочки S:

1) Подсчет элементов aij в цепочке I. Временная сложность (m*n).

2) Подсчет элементов a'ij в цепочке S. Временная сложность (m1*n).

3) Подсчет элементов a''ij в цепочке S. Временная сложность (m2*n).

4) Проверка того, что число элементов во входной цепочке I совпадает с числом элементов в цепочке S, т.е. n*m=n*m1+n*m2, или

m=m1+m2. Временная сложность (1).

5) Проверка того, что каждая строка матрицы aij присутствует в матрице входной цепочки а. Временная сложность (m1*n*m).

6) Проверка того, что каждая строка матрицы a’’ij присутствует в матрице входной цепочки а. Временная сложность (m2*n*m).

7) Проверка правильности перестановки столбцов. Поиск столбца матрицы a''' в матрице a'. Временная сложность (m1*n).

8) Проверка правильности перестановки столбцов. Поиск столбца матрицы a'''' в матрице a''. Временная сложность (m2*n).

5) Проверка строк матриц цепочки S на то, что в каждой строке единицы следуют подряд. Временная сложность (m*n).

Полученное время: m*n+m1*n+m2*n+1+m1*n*m+m2*n*m+m1*n+m2*n+m*n = (c учетом условия m1+m2=m) = n*m2+4m*n+1

Таким образом, проверка цепочки S будет проходить за полиномиальное время: n*m2+4m*n+1, то есть понадобится время порядка n*m2. Значит проверка цепочки недетерминированной машины Тьюринга пройдет за полиномиальное время порядка m*n, что подтверждает принадлежность данной задачи к NP классу.

3. Доказательство NP-полноты.

Отыскание некоторой задачи П’NPC.

В качестве данной задачи П’ будет выступать задача ГАМИЛЬТОНОВ ПУТЬ .

ГАМИЛЬТОНОВ ПУТЬ

Условие. Дан граф G=(V, E).

Вопрос. Верно ли, что G содержит гамильтонов путь, т. е. такую последовательность <v1, v2, ..., vn> вершин графа G, что n=|V| и (vi, vi+1)ε E для всех i, 1≤ i ≤ n.

Доказательство NP-полноты.

Доказательство NP-полноты будет проводить методом сужения. Докажем, что, наша исходная задача включает в качестве частного случая известную NP-полную задачу Гамильтонов путь. Суть состоит в том, чтобы указать дополнительные ограничения, которые требуется нало­жить на индивидуальные задачи из задачи РАЗБИЕНИЕ НА ПОДМАТРИЦЫ СО СВОЙСТВОМ СВЯЗНОСТИ, чтобы получившаяся в результате сужения задача была бы эквивалентна задаче Вершинное покрытие.

Наложим ограничение на условие задачи: пусть m1=m. То есть вопрос о том, обладает ли исходная матрица связностью единиц.

Тогда необходимо по имеющейся матрице построить двуцветный граф по следующему алгоритму:

  1. Каждой строке матрицы А соответствуют черные вершины графа;

  2. Каждому столбцу матрицы А соответствуют белые вершины графа;

  3. Ребро между вершинами существует тогда и только тогда, если на пересечении соответствующей строки и столбца стоит «1».См. Рис. 1.

Существует доказанная теорема, что если в таком графе есть гамильтонов путь, то матрица обладает свойством связности единиц.

Процесс построения графа имеет полиномиальную временную сложность (m*n+m+n)

Имеем, что задача РАЗБИЕНИЕ НА ПОДМАТРИЦЫ СО СВОЙСТВОМ СВЯЗНОСТИ является частным случаем задачи ГАМИЛЬТОНОВ ПУТЬ при ограничении, что m1=m. Поэтому задача РАЗБИЕНИЕ НА ПОДМАТРИЦЫ СО СВОЙСТВОМ СВЯЗНОСТИ принадлежит к классу NP.

Рис.1 Двуцветный граф