К задаче разбиения полного двудольного графа
на пути длины два
Шунгаров Х. Д.([email protected])
Карачаево-Черкесский Государственный Университет
1. Постановка задачи.
V2
= п - т.
Пусть задан полный двудольный граф G = (у 1у2, Е), где V1 = т т < п, п = 3^ для некоторого целого положительного числа q. Существует ли разбиение множества V = V1 и V2 вершин графа О на q непересекающихся подмножеств V1,V2,...,Vq по три вершин в каждом, такое, что для всех
V = К, V к3} к е {1'2'-' q} по крайней мере два из трех ребер (п, к2), (у,.2, угз), (уг1, угз)
принадлежат Е?
Известно [1], что задача разбиения графа на пути длины два является КР-полной. В данной работе для решения задачи разбиения полного двудольного графа на пути длины два предлагается алгоритм полиномиальной сложности и дано обоснование эффективности такого алгоритма. Также сформулировано и доказано необходимое и достаточное условие существования разбиения полного двудольного графа на пути длины два.
Предположим, что п = 3q для некоторого целого положительного числа q, причем п = п1 + п2. Обозначим через В(пх)(Е(д))- количество двоек (единиц) в представлении числа п1 в виде суммы q двоек и единиц. Докажем, что справедлива
Теорема 1. Пусть задан полный двудольный граф О = (г\У2, Е),
где V2
V1
= m.
V2
= n - m, m < n, n = 3q для некоторого целого положительного числа q, > V1 . Если не выполняется хотя бы одно из равенств D(n - m) = E(m) или
E(n - m) = D(m), то разбиения графа G на пути длины два не существует.
Доказательство. Предположим, что не выполняется равенство D(n -m) = E(m), т.е. количество двоек в представлении числа n-m не равно количеству единиц в представлении числа m в виде суммы q двоек и единиц. Пусть выполняется неравенство D(n - m) > E(m). Тогда найдется хотя бы одна пара вершин (,vj)eV2, которой не соответствует какая-либо вершина vk eV\
Следовательно, множество вершин V = V1 u V2 графа G нельзя разбить на q троек непересекающихся вершин vt,vj,vk таких, что если две вершины vt,vj eV2,
то третья вершина vk eV1. Отсюда следует, что разбиения графа G на пути длины два не существует. Таким образом, теорема 1 доказана.
Теорема 2. Пусть задан полный двудольный граф G = (v \V2, E),
где
V2
V1
=m
V2
>
= п - т, т < п, п = 3ц для некоторого целого положительного числа q,
V1 . Для того, чтобы существовало разбиение графа О на пути длины
два необходимо и достаточно, чтобы выполнялись равенства Б(п - т) = Е (т) и Е(п - т) = Б(т) .
Доказательство.
1.Необходимость. Предположим, что в заданном графе О существует разбиение на пути длины два, тогда множество V = V1 uV2 вершин графа О
разбито на q троек непересекающихся вершин у^^, у^, ук, причем, если две вершины у^^, у^ ^2, то третья вершина ук е V1 и, наоборот, если две вершины уi,уеV1, то третья вершина ук е V2. Тогда получим, что каждой паре уi,уеV1 вершин взаимно-однозначно соответствует одна вершина ук е V2 и, наоборот, каждой паре у^^,у^ еV2 вершин взаимно-однозначно соответствует одна вершина ук е VОтсюда следует, что каждое из чисел п-ш, т можно представить в виде суммы q двоек и единиц таким образом, что количество двоек в представлении числа п-ш равно количеству единиц в представлении числа т, а количество единиц в представлении числа п-ш равно количеству двоек в представлении числа ш, т.е. выполняются равенства Б(п-т) = Е(т) и Е(п-т) = Б(т). Таким образом, необходимость доказана.
2. Достаточность. Предположим, что выполняются равенства Б(п - т) = Е(т) и Е(п - т) = Б(т). Тогда каждое из чисел п-ш, т можно представить в виде суммы q двоек и единиц таким образом, что количество двоек в представлении числа п-ш равно количеству единиц в представлении числа ш, а количество единиц в представлении числа п-ш равно количеству двоек в представлении числа т. Отсюда следует, что каждой паре у^^,уеV1
вершин взаимно-однозначно соответствует одна вершина ук е V2 и, наоборот, каждой паре у^^,у^ еV2 вершин взаимно-однозначно соответствует одна вершина ук е VТаким образом, получили разбиение множества V = V1 и V2 графа О на q троек непересекающихся вершин уi, у, ук такое, что если две вершины каждой
тройки V., к еV2, то третья вершина этой тройки кк е V\ И , наоборот, если
две вершины к. , еV1, то третья вершина кк е V2. Учитывая теперь, что граф О-
полный, каждую вершину кк е V1 соединяем с соответствующей парой vi, еV2
вершин и, наоборот, каждую вершину кк е V2 соединяем с соответствующей
парой к. , е V1 вершин. Таким образом, разбиение графа О на пути длины два
получено. Достаточность доказана. Следовательно, теорема 2 доказана.
Теорема 3. Пусть задан полный двудольный граф О = 2, Е),
где V2
V1
= m.
V2
>
V1
= n - m, m < n, n = 3q для некоторого целого положительного числа q, Для того, чтобы выполнялись равенства D(n -m) = E(m) и E(n -m) = D(m) необходимо и достаточно, чтобы выполнялось неравенство: п/ъ < m < 2n/3 .
Доказательство.
1.Необходимость. Пусть выполняются равенства D(n - m) = E(m) и E(n - m) = D(m). Обозначим через x - количество двоек (единиц) в представлении числа n - m(m) в виде суммы q двоек и единиц, а через y -количество единиц ( двоек) в представлении числа n - m(m) в виде суммы q двоек и единиц. Тогда имеет место система уравнений
Г2 х + у = п - т 0 / /
\ , которая имеет единственное решение х = 2п/3 - т, у = т - п/3.
[х + 2у = т ' 3 /3
Учитывая условие неотрицательности решения (х,у) системы имеем:
+ т > 0 и - т > 0 . Отсюда следует, что верно неравенство ^^ - т < .
Таким образом, необходимость доказана.
2. Достаточность. Пусть выполняется неравенство ^ - т < . Это
неравенство равносильно системе неравенств
- уз + т > 0 - т > 0
Обозначим
через х = ,у = т - ^3 • Числа х,у такие, что выполняется система уравнений:
|2 х + у = п - т \х + 2у = т
откуда следует, что верны равенства В(п - т) = Е(т) и
Е(п - т) = В(т). Достаточность доказана. Следовательно теорема 3 доказана
полностью.
2. Описание алгоритма а .
Предположим, что граф О = (у 1у2, Е )задан списками смежности N (у), где
N ^)- список вершин у1 , смежных вершине у,, i ф ], у е {1,2,..., п};
V1
=т
V'
=п-т
т < п, п = 3^ для некоторого целого положительного числа q; УЯ, БЯ -множества вершин и ребер строящегося разбиения графа О на пути длины два. Алгоритма а начинает свою работу с подготовительного этапа а0, который
состоит в следующем. Сначала проверяется, верно ли неравенство ^ - т <
3
Если верно неравенство ^^ - т < 2у3, то разбиение графа О на пути длины два
существует, иначе алгоритма выдает сообщение «разбиения графа О на пути длины два не существует». На вход алгоритма а подаются списки смежности
N(уi) всех вершинуi е V = V1 иV2, состоящие из двух типов: в одном из этих
типов каждый список N(vi), vi е V1 состоит из вершин множества V2, а в другом -каждый список N(vi), е V2 состоит из вершин множества V1. Вершине каждого списка N (кг ) приписывается метка р(у1 ) = deg , где deg - число вершин в списке N(vi). Если V2 > V1 из полученных таким образом значений меток
р(уг) образуется невозрастающая последовательность, в которой сначала идут метки в(vi) списков N(vi), vi е V\ состоящих из вершин множества V2, затем метки вК) списков N(vi), е V2, состоящих из вершин множества V1. При
V
V1
вместо метки в(vi) вершине vi каждого списка N(vi) приписывается
метка у(кг )= 1((кг ) = 2), если список N(vi) состоит из вершин множества V1 (V2). После чего образуется последовательность меток у(кг), в которой метки чередуются через один раз в зависимости от их значений. На этом подготовительный этап а0 заканчивает свою работу.
Алгоритм а состоит из этапов а{, перенумерованных индексом t=1, 2, На вход этапаа1 подается список N(к,(кр)), соответствующий первой метке р(у1 )/(кр)) в последовательности меток в(кг )/(кг)), кг еV , если
V2
>
V1 (V1 = V2 ). Сначала выделяется вершина к1 , затем две любые
вершиныкт,еN(v1), а также ребра ( V,,), ( V,,кт). Множества УЯ, ЕЯ изменяются следующим образом: УЯ = \у1,кт,кр }. ЕЯ= {( ,кр ),(к1 ,кт) }. Затем списки N К), N (ут), N (кр) удаляются из множества списков смежности графа О, а вершины V,, кт,кр удаляются из оставшихся списков смежности.
Пусть осуществлено к-1 этапов е{1,2,..., к -1} алгоритма а. Множество УЯ содержит 3(( -1) вершин, а множество БЯ -2(к-1) ребер строящегося разбиения графа О на пути длины два. На вход этапа ак,к е{1,2,...,q} подаются множества УЯ, БЯ, полученные в результате работы первых к-1 этапов ас/ е{1,2,..., к -1} алгоритма а, список N (уж), соответствующий к-ой метке в последовательности метокр(у1 Ху^)), если V2 > V1 (V1 = V2 ). Если (3(у1 ) = 1 для некоторого списка
N (у), то на вход этапа ак, к е {1,2,..., q} подается следующий по порядку список. В списке N (у^) сначала выделяется вершина , затем две любые вершиныух,уу е N(уs), а также ребра ( у^,ух), ( у^,уу). Множества УЯ, БЯ изменяются следующим образом: УЯ=УЯи {у^,ух,уу }; БЯ=БЯи{( у^, ух ), (уж, уу) }. Затем списки N у), N (ух), N (уу) удаляются из множества списков смежности графа О, а вершины ух, ух, уу удаляются из оставшихся списков смежности. После чего метки в(уi) вершин у^ всех оставшихся списков N^) изменяются. На этом этапак,к е {1,2,...,q} заканчивает свою работу. Алгоритм а заканчивает свою работу по завершению этапа ач, т.е. когда VR = V.
3. Анализ и обоснование алгоритма а.
При анализе всякого алгоритма особое место занимает оценка его трудоемкости [2]. Под трудоемкостью алгоритма будем понимать время выполнения соответствующей программы на ЭВМ. Трудоемкостью алгоритма называется функция ставящая в соответствие каждому натуральному числу п время работы ^п) алгоритма в худшем случае на входах длины п[2]. При анализе и обосновании
алгоритмов будем использовать О -символику. Будем говорить, что неотрицательная функция а(п) не превосходит по порядку функцию g(n), если существует такая константа с, что f(n)<cg(n) для всех п>0 и при этом будем писать а(п)=0^(п)). Иногда вместо предложения «трудоемкость алгоритма есть о^(п))» будем говорить «алгоритм решает задачу за время 0^(п))»[2]. Докажем теперь, что справедлива
Теорема 4. Пусть задан полный двудольный граф О = ^ ху2, Е),
где
V2
V1
= т.
V2
= п - т, т < п, п = 3q для некоторого целого положительного числа q,
> V1 . Если существует разбиение графа О на пути длины два, то
алгоритм а находит это разбиение за время о(п3) операций.
Доказательство. Сначала докажем, что построенное алгоритмом а разбиение графа О, является разбиением графа О на пути длины два. Для этого достаточно доказать, что после выполнения этапа ак,к е{1,2,..., q} построенное разбиение графа О содержится в некотором разбиении графа О на пути длины два. Докажем индукцией по к. При к=1 имеем разбиение графа О, состоящее из одного пути длины два. Предположим, что это утверждение справедливо для некоторого к>1, т.е. разбиение графа О, построенное в результате работы к этапов аг/ е {1,2,...,к} содержится в некотором разбиении графа О на пути длины
два. Согласно условиям теоремы 3 в заданном графе О существует разбиение на пути длины два, поэтому из условий теоремы 2 следует, что найдутся две вершины , еV'(или , еV2) и одна вершина кк е V2 (или кк е Vтакие, что
на этапе ак+1, к е{1,2,..., q -1} алгоритма выделит три вершины кг, , кк еV и два
ребра (vk, vt), (vk, v} )е E, которые войдут в некоторое разбиение графа G на пути
длины два. Отсюда следует, что разбиение графа G, построенное в результате работы k этапов at t е {1,2,...,к} содержится в некотором разбиении графа G на
пути длины два.
Оценим теперь трудоемкость алгоритма а, которую будем обозначать через т(а). Поскольку проверка выполнения неравенства ^ -т - 2^3
потребует времени о(), а присвоение меток каждой вершине и составление последовательности меток- O(n), то трудоемкость подготовительного этапа а0 удовлетворяет равенству т(а0 ) = O(n). Оценим теперь трудоемкость r(at) каждого из этапов at,tе{1,2,...,q}, которая складывается из следующих затрат времени. Выделение вершин и ребер пути длины два в заданном списке и изменение множеств VR, ER потребуют времени O(l), удаление списков смежности для выделенных вершин потребует времени O(n), а удаление выделенных вершин пути длины два из списков смежности -O(n2). Поэтому трудоемкость каждого из этаповat,t е{1,2,...,q} удовлетворяет равенству r(at) = o(n2). Отсюда и из вышеизложенного следует, что т(а ) = o(n3). Таким образом, теорема 4 доказана.
Из теорем 2, 4 вытекают
Следствие 1. Пусть задан полный двудольный граф G = (V \V2, E),
где
V2
V1
=т
V2 = п - т, т < п, п = 3q для некоторого целого положительного числа q, > V1 . Тогда задача разбиения графа О на пути длины два полиномиально разрешима.
Следствие 2. Пусть задан полный двудольный граф О = (^ ХУ2, Е),
где
V1
= т.
V2
= п - т, т < п, п = 3q для некоторого целого положительного числа q,
V2
>
V1 . Тогда задача покрытия графа О трехвершинными звездами
полиномиально разрешима.
Работу алгоритма «рассмотрим на примерах. Пусть задан граф О = (^ ху2, Е), изображенный на рис.1.
Рис.1. Граф О = 1У2,Е), V1 | = 2,| V2 | = 7,п = 9.
Ad.1.Graph О = (V1,V2,е), [V1 | = 2^ V2 | = 7,п = 9.
Находим представление чисел 7 и 2 в виде суммы q=3 двоек и единиц: 7=2+2+2+1, 2=1+1. Отсюда следует, что три вершины множества V2 останутся невыделенными, и разбиения данного графа О на пути длины два не существует. Другими словами для того, чтобы существовало разбиение графа О на пути длины два необходимо и достаточно, чтобы система
„ Г2 х + у = п - т /ч
уравнений \ имела целое неотрицательное решение (х, у), где
I х + 2 у = т
х
число двоек (единиц) в представлении числа п - т(т) в виде суммы двоек и единиц; у - число единиц (двоек) в представлении числа п - т(т). Это
возможно, согласно теореме 3, когда параметр т удовлетворяет неравенству
< т < 2у3. Поскольку 2 £ [3,6], то в заданном графе О не существует разбиения
на пути длины два.
Рассмотрим теперь граф О = (V 'V2, Е), изображенный на рис.2. Сначала находим представление чисел 5 и 4 в виде суммы q=3 двоек и единиц:5=2+2+1, 4=1+1+2. Отсюда следует, что каждой паре вершин множества V2 соответствует одна вершина множества V1 и, наоборот, каждой паре вершин множества V1 соответствует одна вершина множества V2. Следовательно, разбиение графа О = (у 1у2,Е) на пути длины два существует. Работа алгоритма а представлена на рис.3
VI V 2 V з У4
V 5 V 6 V 7 V 6 У£
Рис.2. Граф О = (V2,е),V1 | = 4,| V2 | = 5,п = 9. Ad. 2. Graph О = ^ 1,V2,Е),V1 | = 4,| V2 | = 5,п = 9.
V1 v2 v3
V5 V6 V7 V8 V9 Vs Ve V/ V8 Va V5 V6 V/ Vs V9
Vs V6 V7 V8 V9 Vi V2 V3 V 4 V1 V2 V3 V4 V/ V s V9
V1 V2 V3 V 4 V1 V2 Vs V4 V1 V2 V3 V
Рис.3. Работа алгоритма а на графе G = (v\V2,E), V1 | = 4,| V2 | = 5,n = 9.
Вершины и ребра, вошедшие в разбиение графа G на пути длины два, выделены. Удаленные вершины и списки помечены.
Ad.3. Functioning of algorithm а on the graph G = (V \V2, E), V1 | = 4,1 V2 | = 5, n = 9 . Picks and ribs, involved in the graph breaking on path length
two are marked. Distant picks and ribs are marked. Литература
1. Гэри Д., Джонсон М. Вычислительные машины и труднорешаемые задачи. М.: Мир, 1985.- 412с.
2. Емеличев и др. Лекции по теории графов. М.: Наука, 1990, 384 с.