Научная статья на тему 'Программирование задач на графах ограниченной древовидной ширины'

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

CC BY
361
91
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Программирование задач на графах ограниченной древовидной ширины»

тическое значение кластера определялось по наибольшей подгруппе схожих элементов, и уже относительно их делалось предположение о верном или неверном распределении оставшихся.

Мерой качества служила аккуратность кластеризации, вычисляемая по формуле Асс uracy =

_ Numtrue

Numtrue+Nunifaise'

Качество обобщающей кластеризации. Для оценки качества обобщающей кластеризации использовался модифицированный индекс Девиса-Болдуина, перенесенный в пространство схожести [3]. Эта метрика качества достаточно легко вычисляется и показывает хорошие результаты при оценках обобщающей кластеризации.

Рассмотрим попарную меру схожести s (u ¡, u¡) между элементами и .

, \ 2ÍLi votej:

Используем s (u ¡, u¡J = --—где N - количество кластерных структур для создания обобщенной структуры кластеров;

1, если u¡ и u принадлежат к одному

votejj = ■ и тому же кластеру в структуре C,, 0 в противном случае.

Центральный элемент vk обобщенного кластера - это элемент с максимальной средней схожестью в кластере:

Vk = m axu¡ eCk ] u-eck, u¡s (u¡ , u¡).

Индекс Девиса-Болдуина в пространстве схожести определяется следующим образом:

D В s = ^ax, * J s (VkVm) I,

где К - количество кластеров в обобщенной кластерной структуре; Д s (С к) и Д s (Cm ) - средняя попарная схожесть в структурах Ск и С m соответственно. Малые значения D В s означают, что сходство между элементами из разных кластеров (s (vk,vm) ) мало, а между элементами, принадлежащими одному и тому же кластеру (Д s ( Ck) + +Д>; (Cm )), велико. Разбиение, минимизирующее

, является оптимальным.

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

Литература

1. Ester M., Kriegel H.-p., Jorg S., and Xu X. Portland. A density-based algorithm for discovering clusters in large spatial databases with noise // Conf. on Knowledge Discovery in Databases and Data Mining, 1996.

2. Duarte F.J. [et al]. On Consensus Clustering Validation. IAPR Int. Conf. on Structural, syntactic and statistical pattern recognition, 2010.

3. Reich M. [et al]. GenePattern 2.0. Nature Genetics 38. 2006. № 5, pp. 500-501.

4. Simoes J. [et al]. Exploring Influence and Interests among Users within Social Networks. Computational Social Networks: Springer-Verlag, 2011.

УДК 519.178+004.021

ПРОГРАММИРОВАНИЕ ЗАДАЧ НА ГРАФАХ ОГРАНИЧЕННОЙ ДРЕВОВИДНОЙ ШИРИНЫ

В.В. Быкова, к.т.н.

(Институт математики Сибирского федерального университета, г. Красноярск,

Ьукиа1еп@таИ ги)

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

Ключевые слова: алгоритмы на графах, дерево декомпозиции, динамическое программирование, вершинное покрытие, реляционная алгебра.

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

ционных задач на графах являются ЫР--трудными и для них не найдено эффективных (полиномиальных по времени) алгоритмов решения. Возможный путь преодоления этой проблемы - выяв-

ление классов графов, для которых ЖР-трудные задачи эффективно разрешимы. Представительный класс подобных графов образуют частичные к-деревья - графы, обладающие ограниченной древовидной шириной [1]. В него входят, например, ациклические, хордальные, последовательно-параллельные графы, графы Халина.

Другая возможность преодоления высокой вычислительной сложности ЖР-трудных графовых задач - это организация процедуры поиска оптимального решения по принципу «разделяй и властвуй». Для частичных к-деревьев, когда k - положительная целая константа, этот принцип эффективно реализуется методом динамического программирования на основе дерева декомпозиции графа. Сочетание декомпозиционного метода с декомпозиционным представлением входного графа составляет суть одного из современных подходов разработки эффективных алгоритмов решения большого класса важных практических задач, выражаемых на языке теории графов и комбинаторной оптимизации [1].

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

Дерево декомпозиции и древовидная ширина графа. Везде далее в=(У, E) - неориентированный конечный связный граф без петель и кратных ребер, п=|У| и m=|E|. Пусть в(У') - подграф графа в=(У, Е), индуцированный множеством У'сУ. Говорят, что множество вершин У'сУ образует сепаратор графа в=(У, Е), если граф в(У \ У') имеет более одной компоненты связности. Множество вершин У'сУ называется кликой графа в, если в(У') - полный граф.

Древовидная ширина графа в=(У, Е) определяется через дерево декомпозиции, которое представляет собой пару (М, Т), устанавливающую разбиение множества вершин и множества ребер графа в, где М=^ | 1 е I} - семейство подмножеств множества У, называемых мешками, а Т=(1, W) - дерево, узлам которого сопоставлены эти мешки. Данное разбиение должно отвечать следующим требованиям [1]:

1) и!е! Х1=У;

2) для всякого ребра графа в обязательно имеется хотя бы один мешок, содержащий обе вершины этого ребра;

3) для любой вершины уеУ графа в множество узлов {1е1 | уеХ1} индуцирует связный подграф, являющийся поддеревом дерева Т.

Вершины дерева Т принято называть узлами, чтобы избежать путаницы с вершинами графа в. Ширина дерева декомпозиции (М, Т) определяет-

ся величиной max {(|Xi|-1) | ieI}. Древовидная ширина (treewidth) графа G, обозначаемая tw(G), есть наименьшая ширина всех допустимых его деревьев декомпозиции. Когда граф G не является связным, считается, что tw(G)=0. Если G - полный n-вершинный граф, то tw(G)=n-1. Таким образом, обязательно 0<tw(G)<n-1.

Дерево декомпозиции графа G - это специальная конструкция, которая не только определяет древовидную ширину графа, но и представляет его структуру с точностью до клик и сепараторов: всякая клика графа G всегда целиком вложена в отдельный мешок дерева декомпозиции (M, T); в фундаментальном дереве декомпозиции пересечение любых двух мешков Xi и Xj, отвечающих двум смежным узлам i и j дерева T, неизменно образует сепаратор графа G. Дерево декомпозиции (M, T) без вложенных и кратных мешков имеет O(n) узлов и называется фундаментальным. Оно неизбыточно с точки зрения представления клик и сепараторов графа G. Важно отметить, что всякое дерево декомпозиции (M, T) графа G=(V, E) есть не что иное, как дерево соединений ациклического гиперграфа H=(V, M), ребрами которого выступают мешки Xi, ieI. Это обстоятельство дает возможность для любой пары (M, T) проверить справедливость указанных свойств 1-3 дерева декомпозиции с помощью полиномиального теста на ацикличность гиперграфа [2, 3].

Древовидная ширина отражает меру древовид-ности графа G: чем меньше tw(G), тем ближе граф G к дереву и тем меньше у него по мощности клики и сепараторы. Так, все обычные n-вершинные деревья (n>2) имеют единичную древовидную ширину, размер всякой клики такого дерева равен 2, а размер каждого сепаратора равен 1. Граф G обладает ограниченной древовидной шириной, если tw(G)<k и k - положительная целая константа, не зависящая от n. Например, если G - последовательно-параллельный граф, то tw(G)<2, а для всякого графа Халина постоянно tw(G)=3. Ограниченная древовидная ширина - это наследственное свойство графа: если tw(G)<k, то tw(G')<k для любого подграфа G'=G(A), AcV. Примечательно, что многим приложениям теории графов свойственны графы небольшой древовидной ширины. Например, графы зависимостей между синтаксическими конструкциями естественного языка и графы программ, написанных на языках C++ и Паскаль, имеют древовидную ширину не более 6, а для графов большинства химических соединений характерна ширина не более 4 [1].

Динамическое программирование по дереву декомпозиции. Как известно, динамическое программирование - это декомпозиционный метод решения оптимизационных задач. Применение данного метода к конкретной задаче предполагает прежде всего выделение семейства подзадач и оп-

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

Рассмотрим задачу П, которую требуется решить для графа в=(У, Е) с tw(G)<k где к - положительная целая константа. Пусть для в известно корневое дерево декомпозиции (М, Т), М={Х1 | 1е1} и Т=(1, W), ширины к и с узлом г в роли корня. Семейство подзадач в данном случае можно задать следующим образом. Определим для всякого узла 1е1 множество вершин

Y1={vеXj | ]=1 или ] - потомок для 1 в Т}. (1)

Множество Y1 индуцирует в в подграф в^в^), а в Т - поддерево с корневым узлом 1. Примечательно, что Yг=V и вг=в. Тогда в качестве отдельной подзадачи П1 можно рассматривать решение задачи П для 1е1

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

1) для заданного графа в=(У, Е) строится дерево декомпозиции ширины к, которое затем преобразуется в корневое дерево декомпозиции (М, Т) той же ширины;

2) решается задача П с помощью корневого дерева декомпозиции (М, Т).

В данной статье рассматривается только второй этап. Подходы к реализации первого этапа можно найти, например, в работах [1, 3, 4]. Второй этап, в свою очередь, состоит из двух фаз:

- обход всех узлов дерева Т снизу вверх от листьев к корню г - вычисление необходимой информации и нахождение значений характеристик подзадач;

- обход всех узлов дерева Т сверху вниз от корня г к листьям для конструирования оптимального решения задачи П для исходного графа в.

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

- для каждого узла 1е1 решение задачи П находится исключительно из таблицы А1;

- для каждого листа 1е1 дерева Т таблица А1 вычисляется непосредственно из в(Х^);

- для каждого внутреннего узла 1е1 таблица А1 создается из и таблиц, которые отвечают прямым потомкам узла 1 в Т.

Использование дерева декомпозиции способствует выполнению указанных выше свойств таб-

лиц, поскольку для каждого узла ie I дерева T справедливо высказывание: вершины графа Gi, смежные с вершинами, находящимися вне Gi, обязательно содержатся в мешке Xi. Иными словами, графы Gi=G(Yi) и G(V \ Yi) связаны между собой в G только с помощью вершин из Xi. Заметим, что таких вершин не более k+1. Следовательно, когда необходимо от таблиц, созданных для потомков внутреннего узла i, перейти к таблице Ai, то достаточно исследовать только вершины из Xi (вместо Yi) и применять лишь таблицы прямых потомков узла i.

Обход дерева T с O(n) узлами осуществим за время O(n), где n=|V|. Поэтому для получения эффективного алгоритма реализации двух фаз динамического программирования по дереву декомпозиции необходимо, чтобы каждая таблица Ai вычислялась и обрабатывалась эффективно относительно n. Найти точное решение задачи ni для каждого узла i дерева T можно всегда полным перебором на основе таблицы Ai, в которой перечислены различные подмножества (как претенденты на оптимальное решение) множества Xi, и таблиц прямых потомков, если такие существуют. Предположим, что всякая вершина из Xi может находиться по отношению к возможному решению в q состояниях. Например, в задаче о вершинном покрытии q=2 («принадлежит вершинному покрытию», «не принадлежит вершинному покрытию»), а в задаче о доминирующем множестве q=3 («входит в доминирующее множество», «доминирует, но не входит в доминирующее множество», «не доминирует»). Тогда для узла i, являющегося листом в T, таблица Ai имеет размер O(k • qk), так как |Xi|<k+1, ieI. Размер таблицы Ai для внутреннего узла i с двумя прямыми потомками может достигать O(k • q2k). Ясно, что, чем больше арность дерева T (число прямых потомков узлов этого дерева), тем большего размера таблицы могут возникать в процессе вычислений. По этой причине традиционно оперируют корневым бинарным деревом декомпозиции.

Если обработка одной строки каждой таблицы Ai, ie I, требует nO(1) времени, то время работы алгоритма, основанного на динамическом программировании по дереву декомпозиции, составляет f(k) • nO(1). Здесь f(k) - функция, не зависящая от n и содержащая экспоненциальные составляющие вида O(qk), O(q2k), O(q3k) и т.п. Такие алгоритмы называют FPT (Fixed-Parameter Tractable)-алго-ритмами [5]. Они экспоненциальные лишь по отношению к параметру k и полиномиальные относительно n. При фиксированном значении параметра FPT-алгоритмы теоретически эффективны по времени выполнения. Однако практически эффективными они являются только при малых значениях параметра. Это является главным препятствием практического применения FPT-ал-горитмов, основанных на динамическом програм-

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

Важно отметить, что подобные приемы не дают дополнительных алгоритмических возможностей. Между тем их использование в ряде случаев позволяет снизить потребности FFT-алгоритмов в вычислительных ресурсах. Предлагается FFT-ал-горитм решения задачи о вершинном покрытии с шириной дерева декомпозиции графа в роли параметра. В данном алгоритме применяется специальное преобразование заданного дерева декомпозиции (введение дополнительных узлов-сепараторов) и привлекается аппарат реляционной алгебры (алгебры таблиц) [2].

Вычисление наименьшего вершинного покрытия. Подмножество V'cV образует вершинное покрытие графа G=(V, E), если каждое ребро из E инцидентно хотя бы одной вершине из V'. Покрытие V' называется наименьшим, если число вершин в нем наименьшее среди всех покрытий графа G. Число вершин в наименьшем покрытии графа G называется числом покрытия этого графа и далее обозначается через P(G). В оптимизационной постановке задача о вершинном покрытии графа формулируется следующим образом. Задан граф G=(V, E). Требуется найти наименьшее вершинное покрытие графа G. Эта задача является типичной NF--трудной задачей на графах, к которой сводятся многие подобные задачи. Применительно к графам ограниченной древовидной ширины будем полагать, что исходный граф G=(V, E) задан вместе со своим деревом декомпозиции ширины k, где k - положительная целая константа.

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

Шаг 1. Удалить из дерева декомпозиции кратные и вложенные мешки, то есть получить фундаментально дерево декомпозиции графа G.

Шаг 2. Выбрать произвольный узел reI в роли корня и снизить арность дерева до двух. Последнее действие осуществить так. Если внутренний узел ieI обладает одним или двумя прямыми потомками, то ничего не делать. Если внутренний узел ie I имеет в качестве прямых потомков узлы j19 ..., jd, d>3, то выполнить клонирование узла i в узлы ib ..., id-1 и приписать каждому из них мешок Xi. Отношение подчиненности между узлами установить, как показано на рисунке 1.

Шаг 3. Для любых двух узлов ^ jeI, смежных в T и имеющих мешки XI и Xj соответственно, добавить промежуточный узел s и сопоставить ему множество вершин S=XinXj^0 (рис. 2). Заметим, что S - сепаратор графа &

Таким образом, исходное дерево декомпозиции пополнится O(n) узлами. Результирующее дерево декомпозиции (М, 1), M={Xi | ieI}, 1=(1, ^ будет иметь О(п) узлов, ширину к и узел г в роли корня. В нем возможны только четыре типа узлов:

- узел-лист — узел, у которого нет потомков;

- узел-сепаратор — узел s с одним прямым потомком j; если i — родитель узла s, то Х8=Х^

- узел-расширение — узел i с одним прямым потомком s; в данном случае Х8сХь

- узел-объединение - узел i с двумя прямыми потомками 1 и j (здесь

В качестве подзадачи рассмотрим решение задачи о вершинном покрытии для графа Gi=G(Yi), где Yi - множество вершин, определенное по (1) и отвечающее поддереву дерева 1 с корнем ieI. Пусть с(2) - число вершин, образующих некоторое вершинное покрытие Z графа Данная величина является естественной характеристикой покрытия и целевой функцией в задаче о вершинном покрытии.

При обходе дерева Т снизу вверх и вычислении таблиц Л1 следует различать четыре возможные ситуации, соответствующие четырем типам узлов. Дадим описание этих ситуаций, используя язык реляционной алгебры.

Ситуация 1: узел-лист 1 с мешком Хь Задача для графа 0(Х1) решается полным перебором. Для этого создается таблица Л1 по следующим правилам. В таблице р+1 столбцов и 2Р строк, где р=|Х1|, отдельная строка для каждого из 2Р различных подмножеств ЪсХь Состав вершин, входящих в Ъ, представляется битовой шкалой Ь: Ь(у) = 1, если уеЪ, и Ь(у)=0 в противном случае. Последний столбец с(Ъ) содержит характеристику Ъ: с(Х)=|Х|, если Ъ - вершинное покрытие для графа 0(Х1), иначе с(Ъ)=<». Заметим, что |Ъ|=Е Ь(у), уеХ1.

Ситуация 2: узел-сепаратор 8 с одним прямым потомком ^ В данном случае Пусть для уз-

ла ] ранее уже была построена таблица А^ Тогда таблица Л8 вычисляется по формуле

Л8=я8(Л;), (2)

где л - реляционная операция проекции, которая выбирает из таблицы Aj подмножество столбцов 8=Х8и{с(Ъ)}. В полученной таблице Л8 возможны строки, совпадающие по индикаторам вершин из Х8 и имеющие разные значения целевой функции с1(Ъ), с2(Ъ), ..., сь(Ъ), И>1. Поэтому для всех таких строк полагается

с(Ъ)=ш1п {с1(Ъ), с2(Т), Сь(Ъ)} (3)

и в Л8 оставляется только одна из них. После этого результирующая таблица Л8 содержит только ту информацию из Aj, которая необходима для согласования ее с таблицей Л1, где 1 -родитель узла 8.

Ситуация 3: узел-расширение 1 с одним прямым потомком 8, для которого Х8сХ|. Пусть для узла 8 ранее уже была создана таблица Л8. Вначале формируется таблица Л1 так, как будто бы узел 1 является листом. Затем таблица Л1 связывается с таблицей Л8 с помощью реляционной операции естественного соединения (х), и результат записывается в Л^

Л1=Л1хЛ8. (4)

Поскольку Х8сХь при выполнении естественного соединения в таблице Л1 появляется лишь один дополнительный столбец со значениями с(Ъ) из таблицы Л8. Пусть Л^Ъ) и Л8.с(Ъ) - значения характеристики для ЪсХь включенные в результирующую таблицу Л1 из исходных таблиц Л1 и Л8 соответственно. В этих обозначениях формула пересчета значений с(Ъ) для Л1 имеет вид

с(Ъ)=Л1.с(Ъ)+Л8.с(Ъ)-Е Ь(у), (5)

где суммирование берется по всем уеХ8.

Ситуация 4: узел-объединение 1 с двумя прямыми потомками 1 и j. Заметим, что в данном случае узлы 1 и j являются узлами-сепараторами и X1uXjCXi. Пусть им соответствуют таблицы Л1 и Aj. Аналогично ситуации 3 вначале формируется таблица Л1 так, как будто бы узел 1 является лис-

том. Далее по формулам (4), (5) таблица Л1 связывается с таблицей Л1, а затем полученная таблица - с таблицей Aj. Таким образом, ситуация 4 сводится к двукратному повторению действий, определенных для ситуации 3.

Как только достигается корневой узел г и вычисляется таблица Лг, значение числа вершинного покрытия графа О находится по формуле

Р(0)=ш1п{с(Ъ) | ЪсХг}. (6)

Для построения самого вершинного покрытия следует выполнить спуск по Т от корня к листьям.

Во всех четырех ситуациях размер формируемых таблиц составляет 0(к ^2к), где к - ширина заданного дерева декомпозиции исходного графа О. Эта оценка достигается за счет введения в дерево декомпозиции узлов-сепараторов:

- для всякого узла-листа 1 таблица Л1 имеет размер 0(к-2к), поскольку |Х1|<к+1, 1е1;

- операция проекции, используемая в ситуации 2, не увеличивает размер таблицы;

- операция естественного соединения, применяемая в ситуации 3 для узла-расширения 1 с прямым потомком 8, дает таблицу размера 0(к-2к), поскольку Х8сХ1. Между тем в общем случае (для любого отношения вложенности между Х8 и Х1) операция естественного соединения двух таблиц размера 0(к-2к) приводит к таблице размера 0(к-22к).

Как уже указывалось, обход дерева Т всегда можно реализовать за время 0(п). Выполнение проверки, является ли подмножество ЪсХ1 вершинным покрытием для графа О(Х1), также осуществимо за время 0(п). Таким образом, время работы алгоритма и потребность его в памяти сопоставимы с 0(к-2к п). Значит, чем меньше древовидная ширина графа О, тем меньше вычислительных ресурсов требуется для нахождения вершинного покрытия этого графа.

Ai

A2

g v c(Z)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

0 0 да

0 1 1

1 0 1

1 1 2

а)

д)

У w g c(Z)

0 0 0 да

0 0 1 1

0 1 0 да

0 1 1 2

1 0 0 да

1 0 1 2

1 1 0 2

1 1 1 3

g c(Z)

0 1

1 1

б)

е)

У w g c(Z)

0 0 0 да

0 0 1 2

0 1 0 да

0 1 1 3

1 0 0 да

1 0 1 2

1 1 0 3

1 1 1 3

У u c(Z)

0 0 да

0 1 1

1 0 1

1 1 2

в) A6

У w c(Z)

0 0 2

0 1 3

1 0 2

1 1 3

ж)

У c(Z)

0 1

1 1

з)

A7

x У w c(Z)

0 0 0 да

0 0 1 да

0 1 0 да

0 1 1 3

1 0 0 3

1 0 1 4

1 1 0 3

1 1 1 4

Рис. 5

A

A

5

4

A'

A

3

3

Заметим, что в ситуации 4 не важно, сколько прямых потомков имеет узел-объединение. Если их ^2, то действия, определенные для ситуации 3, надо повторить d раз. Очевидно, что исключение шага 2 по преобразованию исходного дерева декомпозиции (снижение арности дерева) может существенно сократить число узлов в Т и уменьшить практические потребности алгоритма в вычислительных ресурсах. При этом возможно усложнение программной реализации алгоритма применительно к ситуации 4.

Иллюстрация работы алгоритма. Пусть задан граф О вместе с деревом декомпозиции ширины 2 (рис. 3). Дерево декомпозиции графа О, полученное после преобразований (в данном случае только добавления узлов-сепараторов 2, 5, 6 и выделения узла 7 в роли корня), изображено на рисунке 4. Найдем наименьшее вершинное покрытие графа О с помощью предложенного выше алгоритма.

Начнем с узла 1. Это узел-лист. Узел 2 является узлом-сепаратором и родителем для узла 1. Таблицы А1 и А2 отвечают данным узлам (рис. 5 а и 5б). Согласно формулам (2), (3), А2=тс8(А1). Аналогично узлам 4 и 5 соответствуют таблицы А4, А5 (рис. 5в и 5г) и А5=л у (А4). Узел 3 - это узел-объединение по отношению к узлам 2 и 5. Для него таблица А'3 (рис. 5д) содержит локальную информацию для подграфа О(Х3). Естественное соединение А'3 с таблицей А2, а затем с таблицей А5 по формулам (4) и (5) дает таблицу А3 (рис. 5е). Узел 6 - вновь узел-сепаратор, для которого А6=л ^ (А3) (рис. 5ж). Корневой узел 7 - это узел-расширение по отношению к узлу 6. В соответствии с формулами (4) и (5) таблица А7 имеет вид, представленный на рисунке 5з. Таблица А7 отвечает корневому узлу. Применение формулы (6) к А7 дает Р(О)=3.

Спуск по дереву декомпозиции от корня к листьям определяет следующие наименьшие вершинные покрытия графа О: {х, у, ё}, {х, ё, и}, {у, ^ ё}, {у, V}. Заметим, что для исходного графа допустимы деревья декомпозиции, отличные от дерева, указанного на рисунке 3. Решение задачи о вершинном покрытии на их основе приведет, возможно, к другим оптимальным решениям, хотя неизменным будет значение Р(О)=3.

Предложенный алгоритм можно применять для взвешенной версии задачи о вершинном покры-

тии, а его идеи - для решения других подобных задач: нахождения наибольшего независимого множества вершин, поиска наибольшей клики, отыскания наименьшего доминирующего множества графа. Использование языка реляционной алгебры в описании алгоритма неслучайно. Как видно из изложенного в работе процесса согласования таблиц динамического программирования в задаче о вершинном покрытии, этот процесс подобен процессу реализации запроса к реляционной БД, где в качестве исходных отношений выступают таблицы, отвечающие узлам дерева декомпозиции, как будто бы все они есть листья. Каждому такому запросу свойственны свои формулы пересчета характеристик решений. Реляционный взгляд на процесс динамического программирования по дереву декомпозиции позволяет при разработке алгоритмов использовать такие свойства ациклических БД, как квазистягиваемость и существование монотонных планов соединения отношений.

Литература

1. Bodlaender H.L. Discovering treewidth. In Proceedings of the 31 st Conference SOFSEM 2005, Springer-Verlag, Lecture Notes in Computer Science 3381, 2005, pp. 1-16.

2. Мейер Д. Теория реляционных баз данных. М.: Мир, 1987.

3. Быкова В.В. Алгоритм построения дерева декомпозиции гиперграфа на основе ацикличности // Программные продукты и системы. 2011. № 1(93). С. 64-69.

4. Быкова В.В. Рекуррентные методы вычисления древовидной ширины гиперграфа // Изв. Томского политех. ун-та. 2011. Т. 318. № 5. С. 5-10.

5. Быкова В.В. FPT-алгоритмы и их классификация на основе эластичности // Прикл. дискр. математика. 2011. № 2(12). С. 40-48.

i Надоели баннеры? Вы всегда можете отключить рекламу.