Параметризованные алгоритмы графического представления графов: различия между версиями

Материал из WEGA
Перейти к навигации Перейти к поиску
мНет описания правки
 
(не показано 45 промежуточных версий этого же участника)
Строка 1: Строка 1:
== Постановка задачи ==
== Постановка задачи ==
Задача односторонней минимизации пересечений (One-sided crossing minimization, OSCM) может рассматриваться как некоторая форма построения двудольного графа <math>G = (V_1, V_2, \; E)</math>, у которого все вершины из разбиения <math>V_i \;</math> присвоены к одной и той же линии (также называемой уровнем) <math>L_i \;</math> на плоскости, при этом линии <math>L_1 \;</math> и <math>L_2 \;</math> параллельны. Присваивание вершин к линии <math>L_1 \;</math> фиксировано; присваивание к линии <math>L_2 \;</math> свободно и выбирается таким образом, чтобы минимизировать количество пересечений между ребрами, представленными в виде отрезков прямых.
Задача односторонней минимизации пересечений (One-sided crossing minimization, OSCM) может рассматриваться как некоторая форма построения [[двудольный граф|двудольного графа]] <math>G = (V_1, V_2, \; E)</math>, у которого все вершины из разбиения <math>V_i \;</math> присвоены к одной и той же линии (также называемой уровнем) <math>L_i \;</math> на плоскости, при этом линии <math>L_1 \;</math> и <math>L_2 \;</math> параллельны. Присваивание вершин к линии <math>L_1 \;</math> фиксировано; присваивание к линии <math>L_2 \;</math> свободно и выбирается таким образом, чтобы минимизировать количество пересечений между ребрами, представленными в виде отрезков прямых.


== Нотация ==
== Нотация ==
Граф G описывается множеством его вершин V и ребер E, т.е. G = (V, E), где E С V x V. Обозначим за N(v) (открытую) окрестность вершины v, включающую все вершины, смежные с v; за N[v] = N(v) [ fvg – закрытую окрестность v; за deg(v) = jN(v)j – степень вершины v. Для множества вершин S, N(S) = Sv2S N(v) и N[S] = N(S) [ S. G[S] обозначает граф, порожденный множеством вершин, т.е. G[S] = (S;E \ (S x S)). Граф G = (V, E) с множеством вершин V и множеством дуг E С V x V является двудольным, если существует разбиение V на два множества V1 и V2, такие, что V = V1 [ V2, VI \ V2 = ; и E С V1 x V2. Для наглядности запишем это в следующем виде: G = (V1, V2, E).
Граф G описывается множеством его вершин V и ребер E, т.е. G = (V, E), где <math>E \subseteq V \times V \;</math>. Обозначим за <math>N(v) \;</math> (открытую) [[окрестность]] вершины v, включающую все вершины, смежные с v; за <math>N[v] = N(v) \cup \{ v \} \;</math> – закрытую окрестность v; за <math>deg(v) = |N(v)| \;</math> [[степень вершины]] v. Для множества вершин S, <math>N(S) = \bigcup_{v \in S} N(v) \;</math> и <math>N[S] = N(S) \cup S \;</math>. <math>G[S] \;</math> обозначает граф, порожденный множеством вершин S, т.е. <math>G[S] = (S, E \cap (S \times S)) \;</math>. Граф G = (V, E) с множеством вершин V и множеством дуг <math>E \subseteq V \times V \;</math> является [[двудольный граф|двудольным]], если существует разбиение <math>V \;</math> на два множества <math>V_1 \;</math> и <math>V_2 \;</math>, такие, что <math>V = V_1 \cup V_2 \;</math>, <math>V_1 \cap V_2 = \empty \;</math> и <math>E \subseteq V_1 \times V_2 \;</math>. Для наглядности запишем это в следующем виде: <math>G = (V_1, V_2, E) \;</math>.




Двухуровневое графическое представление двудольного графа G = (V1, V2, E) может быть описано при помощи двух отношений линейного порядка: <1 на V1 и <2 на V2. Это представление можно реализовать следующим образом: вершины из подмножества V1 располагаются на линии L1 (также называемой уровнем) в порядке, порождаемом отношением <1, а вершины из V2 располагаются на втором уровне L2, параллельном первому, в порядке, порождаемом отношением <2; затем следует изобразить прямолинейный отрезок для каждого ребра e = (u1, щ) из E, соединяющего точки, представляющие u1 и u2, соответственно. Пересечение представляет собой пару ребер e = (U1 ; u2) и f = (v1 ; v2), которые пересекаются в реализации двухуровневого графического представления (G; <1 ; <2). Хорошо известно, что два ребра пересекаются в том и только том случае, если щ <1 v1 и v2 <2 u2; иными словами, это понятие несет чисто комбинаторный смысл, не зависящий от конкретной реализации двухуровневого графического представления. Обозначим за cr(G; <1 ; <2) количество пересечений в описываемом двухуровневом представлении. В контексте представления графов, разумеется, очень желательно получить минимальное число пересечений. В самой простой (и, вероятно, самой важной) форме это выглядит следующим образом: порядок вершин на одном уровне фиксируется, задача заключается в минимизации количества пересечений путем выбора порядка на втором уровне. Более формально:
'''Двухуровневое графическое представление''' двудольного графа G = <math>(V_1, V_2, E) \;</math> может быть описано при помощи двух отношений линейного порядка: <math><_1 \;</math> на <math>V_1 \;</math> и <math><_2 \;</math> на <math>V_2 \;</math>. Это представление можно реализовать следующим образом: вершины из подмножества <math>V_1 \;</math> располагаются на линии <math>L_1 \;</math> (также называемой уровнем) в порядке, порождаемом отношением <math><_1 \;</math>, а вершины из <math>V_2 \;</math> располагаются на втором уровне <math>L_2 \;</math>, параллельном первому, в порядке, порождаемом отношением <math><_2 \;</math>; затем следует изобразить прямолинейный отрезок для каждого ребра <math>e = (u_1, u_2) \;</math> из E, соединяющий точки, представляющие <math>u_1 \;</math> и <math>u_2 \;</math>, соответственно. '''Пересечение''' представляет собой пару ребер <math>e = (u_1, u_2) \;</math> и <math>f = (v_1, v_2) \;</math>, имеющих общую точку в реализации двухуровневого графического представления <math>(G, <_1, <_2) \;</math>. Хорошо известно, что два ребра пересекаются в том и только том случае, если <math>u_1 <_1 v_1 \;</math> и <math>v_2 <_2 u_2 \; </math>; иными словами, это понятие несет чисто комбинаторный смысл, не зависящий от конкретной реализации двухуровневого графического представления. Обозначим за <math>cr(G, <_1, <_2) \;</math> количество пересечений в описываемом двухуровневом представлении. В контексте представления графов, разумеется, очень желательно получить минимальное число пересечений. В самой простой (и, вероятно, самой важной) форме это выглядит следующим образом: порядок вершин на одном уровне фиксируется, задача заключается в минимизации количества пересечений путем выбора порядка на втором уровне. Более формально:




Задача 1 (k-OSCM)
'''Задача 1 (k-OSCM)'''


Дано: простой двудольный граф с n вершинами G = (V1, V2, E) и отношение линейного порядка<1 на V1; неотрицательное целое число k (параметр).
Дано: простой двудольный граф с n вершинами <math>G = (V_1, V_2, E) \;</math> и отношение линейного порядка <math><_1 \;</math> на <math>V_1 \;</math>; неотрицательное целое число k (параметр).


Требуется: если это возможно, найти такой линейный порядок <2 на V2, что cr(G; <1; <2) < k. Если такого линейного порядка не существует, алгоритм должен выдать соответствующее сообщение.
Требуется: если это возможно, найти такой линейный порядок <math><_2 \;</math> на <math>V_2 \;</math>, что <math>cr(G, <_1, <_2) \le k \;</math>. Если такого линейного порядка не существует, алгоритм должен выдать соответствующее сообщение.




Возьмем для примера G = (V1, V2, E) и <1 из задачи односторонней минимизации пересечений (OSCM) и две вершины u, v 2 V2.
Возьмем для примера <math>G = (V_1, V_2, E) \;</math> и <math><_1 \;</math> из задачи односторонней минимизации пересечений (OSCM) и две вершины <math>u, v \in V_2 \;</math>,




Вычислим матрицу количества пересечений (cuv, crossing number matrix) для этого графа.
<math>c_{uv} =cr(G[N[ \{ u, v \} ]], <_1 \cap (N( \{ u, v \} ) \times N( \{ u, v \} )), \{ (u, v) \} ) \;.</math>
 
 
Таким образом, при выборе упорядочения <math>u <_2 v \;</math> необходимо рассматривать замкнутые окрестности u и v.
 
 
На рис. 1 приведен пример конкретного графического представления двудольного графа. Является ли это представление оптимальным в смысле количества пересечений, предполагая, что порядок верхнего уровня фиксирован? В случаях, когда пересекаются более двух ребер, на рисунке указано количество пересечений. Все пересечения отмечены красными квадратами.
 
[[Файл:PADG_pic1.png]]
 
Рис. 1. Пример графа из задачи односторонней минимизации пересечений.
 
 
 
Вычислим ''матрицу количества пересечений'' (<math>c_{uv} \;</math>) для этого графа.


[[Файл:PADG_table.png]]
[[Файл:PADG_table.png]]
Строка 25: Строка 40:


Количество пересечений в данном графическом представлении может быть вычислено следующим образом:
Количество пересечений в данном графическом представлении может быть вычислено следующим образом:
cab + cac + cad + cae + cbc + cbd + cbe + ccd + cce + cde = 13 :
<math>c_{ab} + c_{ac} + c_{ad} + c_{ae} + c_{bc} + c_{bd} + c_{be} + c_{cd} + c_{ce} + c_{de} = 13 \;</math>.


== Основные результаты ==
== Основные результаты ==
Для задач, для которых не предполагается существования полиномиальных алгоритмов, очень желательно найти точные алгоритмы с экспоненциальным временем исполнения.
Для задач, для которых не предполагается существования полиномиальных алгоритмов, очень желательно найти точные алгоритмы с экспоненциальным временем выполнения.




Теорема 1 ([6]). Задача разрешимости, соответствующая k-OSCM, является NP-полной.
'''Теорема 1 ([6]). Задача разрешимости, соответствующая k-OSCM, является NP-полной.'''
Далее будем предполагать, что G = (V1, V2, E) – экземпляр задачи OSCM с фиксированным порядком <1 на V1. Проверить, существует ли порядок на V2, позволяющий избежать пересечений, можно за полиномиальное время. Это наблюдение основывается на одной из следующих теоретико-графовых характеристик:


Далее будем предполагать, что <math>G = (V_1, V_2, E) \;</math> – экземпляр задачи OSCM с фиксированным порядком <math><_1 \;</math> на <math>V_1 \;</math>.


Теорема 2 ([3]). cr(G; <1; <2) = 0 в том и только том случае, если G является ациклическим и для любого пути (x, a;y) в G, x;y 2 V1, выполняется следующее: для всех u 2 V1 при x <1u <1 y единственным ребром, инцидентным u, если таковое существует, является (u, a).
Проверить, существует ли порядок на <math>V_2 \;</math>, позволяющий избежать пересечений, можно за полиномиальное время. Это наблюдение основывается на одной из следующих теоретико-графовых характеристик:
 
 
'''Теорема 2 ([3]). <math>cr(G, <_1, <_2) = 0 \;</math> в том и только том случае, если G является ациклическим и для любого пути (x, a, y) в G, <math>x, y \in V_1 \;</math>, выполняется следующее: для всех <math>u \in V_1 \;</math> при <math>x <_1 u <_1 y \;</math> единственным ребром, инцидентным u, если таковое существует, является (u, a).'''




Строка 41: Строка 59:
   
   


'''Лемма 3'''. <math>\sum_{u, v \in V_2, u <_2 v} c_{uv} = cr(G, <_1, <_2) \;</math>.


Таким образом, при выборе упорядочения u <2 v необходимо рассматривать замкнутые окрестности u и v.


'''Теорема 4 ([9]). Если k – минимальное количество пересечений ребер в экземпляре задачи OSCM <math>(G = (V_1, V_2, E), <_1 )\;</math>, то <math>\sum_{u, v \in V_2, u \ne v} min \{ c_{uv}, v_{vu} \} \le k < 1,4664 \sum_{u, v \in V_2, u \ne v} min \{ c_{uv}, v_{vu} \} \;</math>'''.


Рассмотрим следующий пример:


Нагамочи предложил аппроксимационный алгоритм с коэффициентом меньше 1,4664.


Пример 1. На рис. 1 приведен пример конкретного графического представления двудольного графа. Является ли это представление оптимальным в смысле количества пересечений, предполагая, что порядок верхнего уровня фиксирован? В случаях, когда пересекаются более двух ребер, на рисунке указано количество пересечений. Все пересечения отмечены красными квадратами.
Далее, для любой вершины <math>u \in V_2 \;</math> с <math>deg(u) > 0 \;</math> обозначим за <math>l_u \;</math> самого левого соседа u в <math>L_1 \;</math>, а за <math>r_u \;</math> – самого правого. Две вершины <math>u, v \in V_2 \;</math> называются неподходящими, если существует некоторое <math>x \in N(u) \;</math>, такое, что <math>l_v <_1 x <_1 r_v \;</math>, либо существует некоторое <math>x \in N(v) \;</math>, такое, что <math>l_u <_1 x <_1 r_u \;</math>. В противном случае они называются подходящими. Заметим, что для подходящих <math>\{ u, v \} \;</math> верно <math>c_{uv} \cdot c_{vu} = 0 \;</math>. Джумович и Уайтсайдз показали:


[[Файл:PADG_pic1.png]]


Рис. 1. Пример графа из задачи односторонней минимизации пересечений.
'''Лемма 5 ([5])'''. При любом оптимальном отношении порядка <math><_2 \;</math> на вершинах <math>V_2 \;</math>, <math>u <_2 v \;</math> найдено, если <math>r_u \le_1 l_v \;</math>.
Лемма 3.   Pu;v2V2;u<2v cuv = cr(G; <1 ; <2):


Это означает, что все подходящие пары встречаются в своем ''естественном порядке''.


Теорема 4 ([ ]). Если k – минимальное количество пересечений ребер в экземпляре задачи OSCM (G = (V1, V2, E); <1), то ^      minfcuv; cvug < k < 1:4664 E minfcuv;cvug : =v


Нагамочи предложил алгоритм аппроксимации с коэффициентом меньше 1,4664.
Теперь можно сформулировать первый параметризованный алгоритм односторонней минимизации пересечений (OSCM), представляющий собой простой алгоритм поиска по дереву. По мере выполнения этого алгоритма последовательно строится подходящий порядок <math><_2 \;</math> на <math>V_2 \;</math>; при установлении отношения порядка между u и v на <math>V_2 \;</math> в него будет ''включено'' <math>u <_2 v \;</math> или <math>v <_2 u \;</math>. Таким образом, обобщенный экземпляр задачи OSCM помимо двудольного графа <math>G = (V_1, V_2, E) \;</math> содержит отношение частичного порядка <math><_2 \;</math> на <math>V_2 \;</math>. Вершина <math>v \in V_2 \;</math> ''полностью включена'', если для всех <math>u \in V_2 \backslash \{ u, v \} \;</math> пара <math>\{ u, v \} \;</math> включена.


Далее, для любого u 2 V2 with deg(u) > 0 обозначим за lu самого левого соседа u в L1, а за ru – самого правого. Две вершины u; v 2 V2 называются неподходящими, если существует некоторое x 2 N(u), такое, что lv <1 x <1 rv, либо существует некоторое x 2 N(v), такое, что lu <1 x <1 ru. В противном случае они называются подходящими. Заметим, что для подходящих {u, v} cuv • cvu = 0. Джумович и Уайтсайдз показали:


Лемма 5 позволяет сформулировать следующее правило:


Лемма 5 ([5]). При любом оптимальном отношении порядка <2 на вершинах V2, u <2 v найдено, если ru <\ lv.
'''Правило RR1''': Для каждой пары вершин {u, v} из <math>V_2 \;</math> с <math>c_{uv} = 0 \;</math> включить <math>u <_2 v \;</math>. В приведенном примере d будет полностью включено в результате применения правила RR1, поскольку столбец d в матрице пересечений заполнен нулями; следовательно, в последующих действиях d можно игнорировать.
Это означает, что все подходящие пары встречаются в своем естественном порядке.




Теперь можно сформулировать первый параметризованный алгоритм односторонней минимизации пересечений (OSCM), представляющий собой простой алгоритм поиска по дереву. По мере выполнения этого алгоритма последовательно строится подходящий порядок <2 на V2; при установлении отношения порядка между u и v на V2 в него будет включено u <2 v или v <2 u. Таким образом, обобщенный экземпляр задачи OSCM помимо двудольного графа G = (V1, V2, E) содержит отношение частичного порядка <2 на V2. Вершина v 2 V2 полностью включена, если для всех u 2 V2 \ U; VG, FU; VG включены.
Алгоритм 1 представляет собой простой алгоритм поиска по дереву для задачи OSCM, последовательно применяющий правило RR1.




Лемма 5 позволяет сформулировать следующее правило:
'''Лемма 6'''. OSCM можно вычислить за время <math>0^*(2^k) \;</math>.


Правило RR1: Для каждой пары вершин {u, v} из V2 с cuv = 0 необходимо включить u <2 v. В приведенном примере d будет полностью включено в результате применения правила RR1, поскольку столбец d в матрице пересечений заполнен нулями; следовательно, в последующих действиях d можно игнорировать. Алгоритм 1 представляет собой простой алгоритм поиска по дереву для задачи OSCM, последовательно применяющий правило RR1.
Доказательство. До того, как будет производиться какое-либо ветвление, выполняется редукция экземпляра графа таким образом, чтобы любая невключенная пара вершин {u, v} из <math>V_2 \;</math> удовлетворяла условию <math>min \{ c_{uv}, c_{vu} \} \ge 1 \;</math>. Следовательно, каждое рекурсивное ветвление уменьшает параметр как минимум на 1.




Лемма 6. OSCM можно вычислить за время 0*{2k).
Этот простой алгоритм поиска по дереву можно улучшить. Во-первых, отметим, что нет необходимости ветвления в <math>\{ x, y \} \subset V_2 \;</math>, если <math>c_{xy} = c_{yx} \;</math>. Это позволяет внести две модификации в Алгоритм 1:


Доказательство. До того, как будет производиться какое-либо ветвление, выполняется редукция экземпляра графа таким образом, чтобы любая невключенная пара вершин {u, v} из V2 удовлетворяла условию minf cuv;cvug > 1. Следовательно, каждое рекурсивное ветвление уменьшает параметр как минимум на 1. □
• На строке 5 следует исключить равенство <math>c_{xy} = c_{yx} \;</math>.
Этот простой алгоритм поиска по дереву можно улучшить. Во-первых, отметим, что нет необходимости ветвления в {x, y} С V2, если cxy = cyx. Это позволяет внести две модификации в


Алгоритм 1:
• На строке 12 следует произвольным образом включить некоторую пару <math>\{ x, y \} \subset V_2 \;</math>, которая еще не была включена, и рекурсивно повторять это действие; только если включены все пары <math>\{ x, y \} \subset V_2 \;</math>, следует вернуть значение ДА.
yx.
• На строке 5 следует исключить cxy = c
• На строке 12 следует произвольным образом включить некоторую пару {x, y} С V2, которая еще не была включена, и рекурсивно повторить действие; только если включены все пары {x, y} С V2, следует вернуть значение ДА.




В результате модификаций получен алгоритм решения задачи OSCM с параметром <9*(1.6182i). Он составляет ядро алгоритма Джумовича и Уайтсайдза [ ]. В их работе более детально обсуждаются следующие вопросы:
В результате модификаций получен алгоритм решения задачи OSCM с параметром <math>O^*(1,6182^k) \;</math>. Он составляет ядро алгоритма Джумовича и Уайтсайдза [5]. В их работе более детально обсуждаются следующие вопросы:
• Как эффективно вычислить все количества пересечений cxy на этапе предварительной обработки?
• Как интегрировать в алгоритм элементы ветвления и обрезки, полезные с практической точки зрения?
• Как обобщить алгоритм для экземпляров, допускающих наличие целочисленных весов у ребер (параллельных ребер)?


• Как эффективно вычислить все количества пересечений <math>c_{xy} \;</math> на этапе предварительной обработки?


Дальнейшие улучшения возможны в результате более глубокого анализа локальных паттернов {x, y} 2 V2, таких, что cxycyx — 2. Таким образом было показано:
• Как интегрировать в алгоритм элементы ветвления и обрезки, полезные с практической точки зрения?


 
• Как обобщить алгоритм для экземпляров, допускающих наличие целочисленных весов у ребер (параллельных ребер)?
Теорема 7. Задачу односторонней минимизации пересечений можно решить за время O*(lA656k).
Возможный вариант исполнения улучшенного алгоритма поиска по дереву приведен на рис. 2, а его (оптимальный) результат – на рис. 3.




В различных публикациях рассматривались варианты этой задачи и родственные ей проблемы.
Дальнейшие улучшения возможны в результате более глубокого анализа локальных паттернов <math>\{ x, y \} \in V_2 \;</math>, таких, что <math>c_{xy} c_{yx} \le 2 \;</math>. Таким образом было показано:


1. Изменение цели оптимизации: минимизация количества дуг, участвующих в пересечениях – одноуровневая планаризация. Как было отмечено в [7, 10], из теоремы 2 практически непосредственно следует идея алгоритма решения этой задачи с временем исполнения O*(3k), которое впоследствии было улучшено до O*(2k)m[W].


2. Можно повысить число степеней свободы, рассматривая два или более уровня присваиваний в одно и то же время. Параметризованные алгоритмы для минимизации пересечений и для планаризации были предложены в [3, 7, 10].
'''Теорема 7. Задачу односторонней минимизации пересечений можно решить за время <math>O^*(1,4656^k) \;</math>.'''


3. Можно рассмотреть другие дополнительные ограничения на графическое построение или допустимые отношения порядка; так, в [8] были рассмотрены параметризованные алгоритмы для задачи двухуровневого присваивания, в которой допустимые отношения порядка были ограничены бинарными деревьями.


== Применение ==
Возможный вариант выполнения улучшенного алгоритма поиска по дереву приведен на рис. 2, а его (оптимальный) результат – на рис. 3.
Помимо рассмотрения вопроса графического построения двудольных графов как задачи, интересной самой по себе (т.е., например, для качественного изображения диаграмм отношений), этот вопрос естественным образом возникает при применении так называемого подхода Судзиямы к построению иерархических графов [12]. Этот исключительно популярный подход решает задачу укладки иерархического графа в три этапа: (1) удаление циклов, (2) присваивание вершин уровням, (3) присваивание вершин уровням. Последний этап обычно реализуется посредством алгоритма с заметающей прямой, в процессе работы решающего несколько экземпляров задачи односторонней минимизации пересечений. Третий вариант задачи, упомянутый выше, находит множество важных вариантов применения в вычислительной биологии.  




Требуется: двудольный граф G = (V1, V2, E), целое число k, отношение линейного порядка<1 на V1, отношение частичного порядка <2 на V2. Результат: ДА в том и только том случае, если данный экземпляр задачи односторонней минимизации пересечений (OSCM) имеет решение
[[Файл:PADG_code.png]]
repeat
Исчерпывающим образом применить правила редукции, соответственно корректируя <2 и k. Определить вершины, порядок которых был установлен при помощи транзитивности, и соответствующим образом скорректировать <2 и k, до тех пор, пока не останется вариантов изменения <2 и k: if k < 0 or <2 содержит и (x, y), и (y; x) then
return НЕТ.
else if 9fx; у} С V2 : не имеет места ни x <2 y, y <2 x then if OSCM-ST-simple(G,fc- 1;<1;<2 [ f(x, y)g) then
return ДА 10:      else
return OSCM-ST-simple(G ;k - 1; <b <2 [ f(y;x)g) end if else
return ДА 15: end if




Строка 135: Строка 130:


Рис. 3. Оптимальное решение для экземпляра задачи
Рис. 3. Оптимальное решение для экземпляра задачи
'''Варианты этой задачи и родственные ей проблемы''' широко рассматривались в литературе.
1. Изменение цели оптимизации: минимизация количества дуг, участвующих в пересечениях – одноуровневая планаризация. Как было отмечено в [7, 10], из теоремы 2 практически непосредственно следует идея алгоритма решения этой задачи с временем выполнения <math>O^*(3^k) \;</math>, которое впоследствии было улучшено в [10] до <math>O^*(2^k) \;</math>.
2. Можно повысить число степеней свободы, рассматривая два или более уровня присваиваний в одно и то же время. Параметризованные алгоритмы для минимизации пересечений и для планаризации были предложены в [3, 7, 10].
3. Можно рассмотреть другие дополнительные ограничения на графическое построение или допустимые отношения порядка; так, в [8] были рассмотрены параметризованные алгоритмы для задачи двухуровневого присваивания, в которой допустимые отношения порядка были ограничены бинарными деревьями.
== Применение ==
Помимо рассмотрения вопроса графического построения двудольных графов как задачи, интересной самой по себе (например, для качественного изображения диаграмм отношений), этот вопрос естественным образом возникает при применении так называемого подхода Судзиямы к построению иерархических графов [12]. Этот исключительно популярный подход решает задачу укладки иерархического графа в три этапа: (1) удаление циклов, (2) присваивание вершин уровням, (3) присваивание вершин уровням. Последний этап обычно реализуется посредством алгоритма с заметающей прямой, в процессе работы решающего несколько экземпляров задачи односторонней минимизации пересечений. Третий вариант задачи, упомянутый выше, находит множество важных вариантов применения в вычислительной биологии.


== Открытые вопросы ==
== Открытые вопросы ==
Как и для всех алгоритмов с экспоненциальным временем исполнения, оказывается непросто улучшить это время или доказать определенную нижнюю границу времени исполнения при наличии разумных теоретико-сложностных предположений. Заметим, что негласные предположения, лежащие в основе подхода параметризованных алгоритмов, в данном сценарии полностью удовлетворяются: к примеру, графическое представление с большим количеством пересечений будет неприемлемым (если такая ситуация встретится на практике, придется прибегнуть к другому способу представления информации); таким образом, можно обоснованно предполагать, что параметр действительно окажется малым.
Как и для всех алгоритмов с экспоненциальным временем выполнения, оказывается непросто улучшить это время или доказать определенную нижнюю границу времени выполнения при наличии разумных теоретико-сложностных предположений. Заметим, что негласные предположения, лежащие в основе подхода параметризованных алгоритмов, в данном сценарии полностью удовлетворяются: к примеру, графическое представление с большим количеством пересечений будет неприемлемым (если такая ситуация встретится на практике, придется прибегнуть к другому способу представления информации); таким образом, можно обоснованно предполагать, что параметр действительно окажется малым.




Это верно также для других NP-полных подзадач, относящихся к подходу Судзиямы. Однако на наличие простых решений рассчитывать не стоит. Например, для задачи построения множества ориентированных обратных дуг [ ], эквивалентной первой фазе, неизвестно о существовании подходящего параметризованного алгоритма [2].
Это верно также для других NP-полных подзадач, относящихся к подходу Судзиямы. Однако на наличие простых решений рассчитывать не стоит. Например, для задачи построения множества ориентированных обратных дуг [1], эквивалентной первой фазе, неизвестно о существовании подходящего параметризованного алгоритма [2].
 


== Экспериментальные результаты ==
== Экспериментальные результаты ==
Садермен [10] провел эксперименты практически со всеми вариантами данной задачи; в [ ] некоторые из экспериментальных результатов представлены в более наглядной форме.
Садермен [10] провел эксперименты практически со всеми вариантами данной задачи; в [11] некоторые из экспериментальных результатов представлены в более наглядной форме.
 


== Ссылка на код ==
== Ссылка на код ==
Несколько JAVA-апплетов для решения задач, упомянутых в данной статье, приведены Садерменом на http://cgm.cs.mcgill. ca/~msuder/.
Несколько JAVA-апплетов для решения задач, упомянутых в данной статье, приведены Садерменом на http://cgm.cs.mcgill.ca/~msuder/.
 


== См. также ==
== См. также ==

Текущая версия от 14:27, 1 октября 2023

Постановка задачи

Задача односторонней минимизации пересечений (One-sided crossing minimization, OSCM) может рассматриваться как некоторая форма построения двудольного графа [math]\displaystyle{ G = (V_1, V_2, \; E) }[/math], у которого все вершины из разбиения [math]\displaystyle{ V_i \; }[/math] присвоены к одной и той же линии (также называемой уровнем) [math]\displaystyle{ L_i \; }[/math] на плоскости, при этом линии [math]\displaystyle{ L_1 \; }[/math] и [math]\displaystyle{ L_2 \; }[/math] параллельны. Присваивание вершин к линии [math]\displaystyle{ L_1 \; }[/math] фиксировано; присваивание к линии [math]\displaystyle{ L_2 \; }[/math] свободно и выбирается таким образом, чтобы минимизировать количество пересечений между ребрами, представленными в виде отрезков прямых.

Нотация

Граф G описывается множеством его вершин V и ребер E, т.е. G = (V, E), где [math]\displaystyle{ E \subseteq V \times V \; }[/math]. Обозначим за [math]\displaystyle{ N(v) \; }[/math] (открытую) окрестность вершины v, включающую все вершины, смежные с v; за [math]\displaystyle{ N[v] = N(v) \cup \{ v \} \; }[/math] – закрытую окрестность v; за [math]\displaystyle{ deg(v) = |N(v)| \; }[/math]степень вершины v. Для множества вершин S, [math]\displaystyle{ N(S) = \bigcup_{v \in S} N(v) \; }[/math] и [math]\displaystyle{ N[S] = N(S) \cup S \; }[/math]. [math]\displaystyle{ G[S] \; }[/math] обозначает граф, порожденный множеством вершин S, т.е. [math]\displaystyle{ G[S] = (S, E \cap (S \times S)) \; }[/math]. Граф G = (V, E) с множеством вершин V и множеством дуг [math]\displaystyle{ E \subseteq V \times V \; }[/math] является двудольным, если существует разбиение [math]\displaystyle{ V \; }[/math] на два множества [math]\displaystyle{ V_1 \; }[/math] и [math]\displaystyle{ V_2 \; }[/math], такие, что [math]\displaystyle{ V = V_1 \cup V_2 \; }[/math], [math]\displaystyle{ V_1 \cap V_2 = \empty \; }[/math] и [math]\displaystyle{ E \subseteq V_1 \times V_2 \; }[/math]. Для наглядности запишем это в следующем виде: [math]\displaystyle{ G = (V_1, V_2, E) \; }[/math].


Двухуровневое графическое представление двудольного графа G = [math]\displaystyle{ (V_1, V_2, E) \; }[/math] может быть описано при помощи двух отношений линейного порядка: [math]\displaystyle{ \lt _1 \; }[/math] на [math]\displaystyle{ V_1 \; }[/math] и [math]\displaystyle{ \lt _2 \; }[/math] на [math]\displaystyle{ V_2 \; }[/math]. Это представление можно реализовать следующим образом: вершины из подмножества [math]\displaystyle{ V_1 \; }[/math] располагаются на линии [math]\displaystyle{ L_1 \; }[/math] (также называемой уровнем) в порядке, порождаемом отношением [math]\displaystyle{ \lt _1 \; }[/math], а вершины из [math]\displaystyle{ V_2 \; }[/math] располагаются на втором уровне [math]\displaystyle{ L_2 \; }[/math], параллельном первому, в порядке, порождаемом отношением [math]\displaystyle{ \lt _2 \; }[/math]; затем следует изобразить прямолинейный отрезок для каждого ребра [math]\displaystyle{ e = (u_1, u_2) \; }[/math] из E, соединяющий точки, представляющие [math]\displaystyle{ u_1 \; }[/math] и [math]\displaystyle{ u_2 \; }[/math], соответственно. Пересечение представляет собой пару ребер [math]\displaystyle{ e = (u_1, u_2) \; }[/math] и [math]\displaystyle{ f = (v_1, v_2) \; }[/math], имеющих общую точку в реализации двухуровневого графического представления [math]\displaystyle{ (G, \lt _1, \lt _2) \; }[/math]. Хорошо известно, что два ребра пересекаются в том и только том случае, если [math]\displaystyle{ u_1 \lt _1 v_1 \; }[/math] и [math]\displaystyle{ v_2 \lt _2 u_2 \; }[/math]; иными словами, это понятие несет чисто комбинаторный смысл, не зависящий от конкретной реализации двухуровневого графического представления. Обозначим за [math]\displaystyle{ cr(G, \lt _1, \lt _2) \; }[/math] количество пересечений в описываемом двухуровневом представлении. В контексте представления графов, разумеется, очень желательно получить минимальное число пересечений. В самой простой (и, вероятно, самой важной) форме это выглядит следующим образом: порядок вершин на одном уровне фиксируется, задача заключается в минимизации количества пересечений путем выбора порядка на втором уровне. Более формально:


Задача 1 (k-OSCM)

Дано: простой двудольный граф с n вершинами [math]\displaystyle{ G = (V_1, V_2, E) \; }[/math] и отношение линейного порядка [math]\displaystyle{ \lt _1 \; }[/math] на [math]\displaystyle{ V_1 \; }[/math]; неотрицательное целое число k (параметр).

Требуется: если это возможно, найти такой линейный порядок [math]\displaystyle{ \lt _2 \; }[/math] на [math]\displaystyle{ V_2 \; }[/math], что [math]\displaystyle{ cr(G, \lt _1, \lt _2) \le k \; }[/math]. Если такого линейного порядка не существует, алгоритм должен выдать соответствующее сообщение.


Возьмем для примера [math]\displaystyle{ G = (V_1, V_2, E) \; }[/math] и [math]\displaystyle{ \lt _1 \; }[/math] из задачи односторонней минимизации пересечений (OSCM) и две вершины [math]\displaystyle{ u, v \in V_2 \; }[/math],


[math]\displaystyle{ c_{uv} =cr(G[N[ \{ u, v \} ]], \lt _1 \cap (N( \{ u, v \} ) \times N( \{ u, v \} )), \{ (u, v) \} ) \;. }[/math]


Таким образом, при выборе упорядочения [math]\displaystyle{ u \lt _2 v \; }[/math] необходимо рассматривать замкнутые окрестности u и v.


На рис. 1 приведен пример конкретного графического представления двудольного графа. Является ли это представление оптимальным в смысле количества пересечений, предполагая, что порядок верхнего уровня фиксирован? В случаях, когда пересекаются более двух ребер, на рисунке указано количество пересечений. Все пересечения отмечены красными квадратами.


PADG pic1.png

Рис. 1. Пример графа из задачи односторонней минимизации пересечений.


Вычислим матрицу количества пересечений ([math]\displaystyle{ c_{uv} \; }[/math]) для этого графа.

PADG table.png


Количество пересечений в данном графическом представлении может быть вычислено следующим образом: [math]\displaystyle{ c_{ab} + c_{ac} + c_{ad} + c_{ae} + c_{bc} + c_{bd} + c_{be} + c_{cd} + c_{ce} + c_{de} = 13 \; }[/math].

Основные результаты

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


Теорема 1 ([6]). Задача разрешимости, соответствующая k-OSCM, является NP-полной.

Далее будем предполагать, что [math]\displaystyle{ G = (V_1, V_2, E) \; }[/math] – экземпляр задачи OSCM с фиксированным порядком [math]\displaystyle{ \lt _1 \; }[/math] на [math]\displaystyle{ V_1 \; }[/math].

Проверить, существует ли порядок на [math]\displaystyle{ V_2 \; }[/math], позволяющий избежать пересечений, можно за полиномиальное время. Это наблюдение основывается на одной из следующих теоретико-графовых характеристик:


Теорема 2 ([3]). [math]\displaystyle{ cr(G, \lt _1, \lt _2) = 0 \; }[/math] в том и только том случае, если G является ациклическим и для любого пути (x, a, y) в G, [math]\displaystyle{ x, y \in V_1 \; }[/math], выполняется следующее: для всех [math]\displaystyle{ u \in V_1 \; }[/math] при [math]\displaystyle{ x \lt _1 u \lt _1 y \; }[/math] единственным ребром, инцидентным u, если таковое существует, является (u, a).


Ранее введенное понятие является критически важным по следующим причинам:


Лемма 3. [math]\displaystyle{ \sum_{u, v \in V_2, u \lt _2 v} c_{uv} = cr(G, \lt _1, \lt _2) \; }[/math].


Теорема 4 ([9]). Если k – минимальное количество пересечений ребер в экземпляре задачи OSCM [math]\displaystyle{ (G = (V_1, V_2, E), \lt _1 )\; }[/math], то [math]\displaystyle{ \sum_{u, v \in V_2, u \ne v} min \{ c_{uv}, v_{vu} \} \le k \lt 1,4664 \sum_{u, v \in V_2, u \ne v} min \{ c_{uv}, v_{vu} \} \; }[/math].


Нагамочи предложил аппроксимационный алгоритм с коэффициентом меньше 1,4664.

Далее, для любой вершины [math]\displaystyle{ u \in V_2 \; }[/math] с [math]\displaystyle{ deg(u) \gt 0 \; }[/math] обозначим за [math]\displaystyle{ l_u \; }[/math] самого левого соседа u в [math]\displaystyle{ L_1 \; }[/math], а за [math]\displaystyle{ r_u \; }[/math] – самого правого. Две вершины [math]\displaystyle{ u, v \in V_2 \; }[/math] называются неподходящими, если существует некоторое [math]\displaystyle{ x \in N(u) \; }[/math], такое, что [math]\displaystyle{ l_v \lt _1 x \lt _1 r_v \; }[/math], либо существует некоторое [math]\displaystyle{ x \in N(v) \; }[/math], такое, что [math]\displaystyle{ l_u \lt _1 x \lt _1 r_u \; }[/math]. В противном случае они называются подходящими. Заметим, что для подходящих [math]\displaystyle{ \{ u, v \} \; }[/math] верно [math]\displaystyle{ c_{uv} \cdot c_{vu} = 0 \; }[/math]. Джумович и Уайтсайдз показали:


Лемма 5 ([5]). При любом оптимальном отношении порядка [math]\displaystyle{ \lt _2 \; }[/math] на вершинах [math]\displaystyle{ V_2 \; }[/math], [math]\displaystyle{ u \lt _2 v \; }[/math] найдено, если [math]\displaystyle{ r_u \le_1 l_v \; }[/math].

Это означает, что все подходящие пары встречаются в своем естественном порядке.


Теперь можно сформулировать первый параметризованный алгоритм односторонней минимизации пересечений (OSCM), представляющий собой простой алгоритм поиска по дереву. По мере выполнения этого алгоритма последовательно строится подходящий порядок [math]\displaystyle{ \lt _2 \; }[/math] на [math]\displaystyle{ V_2 \; }[/math]; при установлении отношения порядка между u и v на [math]\displaystyle{ V_2 \; }[/math] в него будет включено [math]\displaystyle{ u \lt _2 v \; }[/math] или [math]\displaystyle{ v \lt _2 u \; }[/math]. Таким образом, обобщенный экземпляр задачи OSCM помимо двудольного графа [math]\displaystyle{ G = (V_1, V_2, E) \; }[/math] содержит отношение частичного порядка [math]\displaystyle{ \lt _2 \; }[/math] на [math]\displaystyle{ V_2 \; }[/math]. Вершина [math]\displaystyle{ v \in V_2 \; }[/math] полностью включена, если для всех [math]\displaystyle{ u \in V_2 \backslash \{ u, v \} \; }[/math] пара [math]\displaystyle{ \{ u, v \} \; }[/math] включена.


Лемма 5 позволяет сформулировать следующее правило:

Правило RR1: Для каждой пары вершин {u, v} из [math]\displaystyle{ V_2 \; }[/math] с [math]\displaystyle{ c_{uv} = 0 \; }[/math] включить [math]\displaystyle{ u \lt _2 v \; }[/math]. В приведенном примере d будет полностью включено в результате применения правила RR1, поскольку столбец d в матрице пересечений заполнен нулями; следовательно, в последующих действиях d можно игнорировать.


Алгоритм 1 представляет собой простой алгоритм поиска по дереву для задачи OSCM, последовательно применяющий правило RR1.


Лемма 6. OSCM можно вычислить за время [math]\displaystyle{ 0^*(2^k) \; }[/math].

Доказательство. До того, как будет производиться какое-либо ветвление, выполняется редукция экземпляра графа таким образом, чтобы любая невключенная пара вершин {u, v} из [math]\displaystyle{ V_2 \; }[/math] удовлетворяла условию [math]\displaystyle{ min \{ c_{uv}, c_{vu} \} \ge 1 \; }[/math]. Следовательно, каждое рекурсивное ветвление уменьшает параметр как минимум на 1.□


Этот простой алгоритм поиска по дереву можно улучшить. Во-первых, отметим, что нет необходимости ветвления в [math]\displaystyle{ \{ x, y \} \subset V_2 \; }[/math], если [math]\displaystyle{ c_{xy} = c_{yx} \; }[/math]. Это позволяет внести две модификации в Алгоритм 1:

• На строке 5 следует исключить равенство [math]\displaystyle{ c_{xy} = c_{yx} \; }[/math].

• На строке 12 следует произвольным образом включить некоторую пару [math]\displaystyle{ \{ x, y \} \subset V_2 \; }[/math], которая еще не была включена, и рекурсивно повторять это действие; только если включены все пары [math]\displaystyle{ \{ x, y \} \subset V_2 \; }[/math], следует вернуть значение ДА.


В результате модификаций получен алгоритм решения задачи OSCM с параметром [math]\displaystyle{ O^*(1,6182^k) \; }[/math]. Он составляет ядро алгоритма Джумовича и Уайтсайдза [5]. В их работе более детально обсуждаются следующие вопросы:

• Как эффективно вычислить все количества пересечений [math]\displaystyle{ c_{xy} \; }[/math] на этапе предварительной обработки?

• Как интегрировать в алгоритм элементы ветвления и обрезки, полезные с практической точки зрения?

• Как обобщить алгоритм для экземпляров, допускающих наличие целочисленных весов у ребер (параллельных ребер)?


Дальнейшие улучшения возможны в результате более глубокого анализа локальных паттернов [math]\displaystyle{ \{ x, y \} \in V_2 \; }[/math], таких, что [math]\displaystyle{ c_{xy} c_{yx} \le 2 \; }[/math]. Таким образом было показано:


Теорема 7. Задачу односторонней минимизации пересечений можно решить за время [math]\displaystyle{ O^*(1,4656^k) \; }[/math].


Возможный вариант выполнения улучшенного алгоритма поиска по дереву приведен на рис. 2, а его (оптимальный) результат – на рис. 3.


PADG code.png


Алгоритм 1. Алгоритм OSCM-ST-simple поиска по дереву для задачи OSCM


PADG pic2.png

Рис. 2. Пример дерева поиска для задачи OSCM


PADG pic3.png

Рис. 3. Оптимальное решение для экземпляра задачи


Варианты этой задачи и родственные ей проблемы широко рассматривались в литературе.

1. Изменение цели оптимизации: минимизация количества дуг, участвующих в пересечениях – одноуровневая планаризация. Как было отмечено в [7, 10], из теоремы 2 практически непосредственно следует идея алгоритма решения этой задачи с временем выполнения [math]\displaystyle{ O^*(3^k) \; }[/math], которое впоследствии было улучшено в [10] до [math]\displaystyle{ O^*(2^k) \; }[/math].

2. Можно повысить число степеней свободы, рассматривая два или более уровня присваиваний в одно и то же время. Параметризованные алгоритмы для минимизации пересечений и для планаризации были предложены в [3, 7, 10].

3. Можно рассмотреть другие дополнительные ограничения на графическое построение или допустимые отношения порядка; так, в [8] были рассмотрены параметризованные алгоритмы для задачи двухуровневого присваивания, в которой допустимые отношения порядка были ограничены бинарными деревьями.

Применение

Помимо рассмотрения вопроса графического построения двудольных графов как задачи, интересной самой по себе (например, для качественного изображения диаграмм отношений), этот вопрос естественным образом возникает при применении так называемого подхода Судзиямы к построению иерархических графов [12]. Этот исключительно популярный подход решает задачу укладки иерархического графа в три этапа: (1) удаление циклов, (2) присваивание вершин уровням, (3) присваивание вершин уровням. Последний этап обычно реализуется посредством алгоритма с заметающей прямой, в процессе работы решающего несколько экземпляров задачи односторонней минимизации пересечений. Третий вариант задачи, упомянутый выше, находит множество важных вариантов применения в вычислительной биологии.

Открытые вопросы

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


Это верно также для других NP-полных подзадач, относящихся к подходу Судзиямы. Однако на наличие простых решений рассчитывать не стоит. Например, для задачи построения множества ориентированных обратных дуг [1], эквивалентной первой фазе, неизвестно о существовании подходящего параметризованного алгоритма [2].

Экспериментальные результаты

Садермен [10] провел эксперименты практически со всеми вариантами данной задачи; в [11] некоторые из экспериментальных результатов представлены в более наглядной форме.

Ссылка на код

Несколько JAVA-апплетов для решения задач, упомянутых в данной статье, приведены Садерменом на http://cgm.cs.mcgill.ca/~msuder/.

См. также

Другие параметризованные алгоритмы поиска по дереву можно найти в совместной работе «Деревья поиска в задаче о вершинном покрытии» (Чен, Кань, Цзя).


Литература

1. Chen, J., Liu, Y., Lu, S., O'Sullivan, B., Razgon, I.: A Fixed-Parameter Algorithm for the Directed Feedback Vertex Set Problem. In: 40th ACM Symposium on Theory of Computing STOC 2008, May 17-20, Victoria (BC), Canada (2008)

2. Downey, R.G., Fellows, M.R.: Parameterized Complexity. Springer, Berlin (1999)

3. Dujmovic, V., Fellows, M.R., Hallett, M., Kitching, M., Liotta, G., McCartin, C., Nishimura, N., Ragde, P., Rosamond, F.A., Suderman, M., Whitesides, S., Wood, D.R.: A fixed-parameter approach to 2-layer planarization. Algorithmica 45, 159-182 (2006)

4. Dujmovic, V., Fernau, H., Kaufmann, M.: Fixed parameter algorithms for one-sided crossing minimization revisited. In: Liotta G. (ed.) Graph Drawing, 11th International Symposium GD 2003. LNCS, vol. 2912, pp. 332-344. Springer, Berlin (2004). A journal version has been accepted to J. Discret. Algorithms, see doi: 10.1016/j.jda.2006.12.008

5. Dujmovic, V., Whitesides, S.: An efficient fixed parameter tractable algorithm for 1-sided crossing minimization. Algorithmica 40,15-32 (2004)

6. Eades, P., Wormald, N.C.: Edge crossings in drawings of bipartite graphs. Algorithmica 11, 379^03 (1994)

7. Fernau, H.: Two-layer planarization: improving on parameterized algorithmics. J. Graph Algorithms Appl. 9, 205-238 (2005)

8. Fernau, H., Kaufmann, M., Poths, M.: Comparing trees via crossing minimization. In: Ramanujam R., Sen S. (eds.) Foundations of Software Technology and Theoretical Computer Science FSTTCS 2005. LNCS, vol. 3821, pp. 457-469. Springer, Berlin (2005)

9. Nagamochi, H.: An improved bound on the one-sided minimum crossing number in two-layered drawings. Discret. Comput. Geom. 33,569-591 (2005)

10. Suderman, M.: Layered Graph Drawing. Ph.D. thesis, McGill University, Montreal (2005)

11. Suderman, M., Whitesides, S.: Experiments with the fixed-parameter approach for two-layer planarization. J. Graph Algorithms Appl. 9(1), 149-163 (2005)

12. Sugiyama, K., Tagawa, S., Toda, M.: Methods for visual understanding of hierarchical system structures. IEEE Trans. Syst. Man Cybernet. 11 (2), 109-125 (1981)