Панюкова Т.А.
Южно-Уральский государственный университет, доцент
Алгоритм построения оптимального эйлерова покрытия для многосвязного графа
Задачи нахождения маршрутов, удовлетворяющих определенным ограничениям, появились из конкретных практических ситуаций. Например, в задачах раскроя листового материала плоский граф является моделью раскройного плана, а маршрут, покрывающий все ребра, определяет траекторию режущего инструмента.
Моделью раскройного листа будем считать плоскость S, моделью раскройного плана - плоский граф G с внешней гранью Л на плоскости S. Для любой части графа JQG (части траектории движения режущего инструмента) обозначим через IntJ) теоретико-множественное объединение его внутренних граней (объединение всех связных компонент множества S\J, не содержащих внешней грани). Тогда Int(J) можно интерпретировать как отрезанную от листа часть. Множества вершин, ребер и граней графа J будем обозначать через V(J), E(J) и F(J) соответственно, а число элементов множества M - через |M|. При этом требуется, чтобы отрезанная от листа часть не требовала дополнительных разрезаний. В общем случае раскройный план представляет многосвязный граф, состоящий из вложенных компонент связности. Задача состоит в построении покрытия графа рёбрами, учитывающего ограничения, наложенные практической задачей. Автором разработаны алгоритмы построения такого покрытия для связного графа [1, 2], а также алгоритмы нахождения допустимого эйлерова покрытия с упорядоченным охватыванием для многосвязного графа [3]. В данной работе модифицируем алгоритм, изложенный в [2, 3], на случай многосвязного графа с вложенными компонентами связности.
В соответствии с [1] будем говорить, что цепь С = ve1v2e2...vk в плоском графе G имеет упорядоченное охватывание, если для любой его начальной части Сx=vхeхv2e2...e¡,¡<(|£|) выполнено условие Int(C¡)nЕ = 0 .
Также будем говорить, что последовательность реберно-непересекающихся цепей
0000 00 ^-il lili 11 n-1 n-1 n-1 n-1 n-1 n-1
C = v e1v1e°...ek0 v°0 , C= v e1 V1 е2...еЛ,..., C = v e1 v1 e2 ."V, V, с упорядоченным охватыванием, покрывающая граф G и такая, что
("m :m <n) ( иЛ- Int(C))n( U^ (C))=0 является покрытием с упорядоченным охватыванием.
Построение покрытия графа с упорядоченным охватыванием решает поставленную задачу раскроя. Наибольший интерес представляют
покрытия с минимальным числом цепей, поскольку переход от одной цепи к другой соответствует холостому проходу режущего инструмента.
Минимальную по мощности последовательность реберно-непересекающихся цепей с упорядоченным охватыванием в плоском графе G будем называть эйлеровым покрытием с упорядоченным охватыванием.
Существование эйлеровых циклов с упорядоченным охватыванием в плоских эйлеровых графах доказано в работах [4, 5]. Рекурсивные алгоритмы построения таких циклов представлены в работе [4]. Проблеме построения маршрута с упорядоченным охватыванием в плоском графе произвольного вида посвящена работа [6], в которой разработан алгоритм построения таких маршрутов, имеющий вычислительную сложность не более 0(1 е |2). В работе [7] предложен эффективный алгоритм построения циклов с упорядоченным охватыванием в плоских эйлеровых графах, имеющий вычислительную сложность О(|Е|-^2|Г|). Построению покрытий плоских связных графов последовательностью цепей с упорядоченным охватыванием посвящены статьи [2, 6]. Алгоритм нахождения допустимой цепи, покрывающей ребра многосвязного графа предложен в [3].
Рассмотрим результат, доказанный в [2] и дающий возможность построения последовательности цепей с упорядоченным охватыванием с любым наперед заданным множеством дополнительных ребер М, образующим паросочетание на множестве вершин нечетной степени ^.
Теорема. Пусть G = (У,Е) топологический плоский граф на плоскости S, не имеющий висячих вершин. Для любого множества М, являющегося паросочетанием на множестве Vodd (состоящего из 2п вершин нечетной степени графа G), и такого, что М: (Мп £) \ V = # существует эйлеров цикл С = ^е^2е2...епх'1, п =|е 1 +1М1, для любой начальной части которого С = ^е^2е2 ..V, I <|Е| + |М|, выполнено условие Ш (С, )п Е = # .
Доказательство теоремы конструктивно, в ней предложен алгоритм М-Соуег для построения искомого покрытия.
При описании алгоритма используется понятие уровня вложенности ребра е: ктагк(е).
Уровнем вложенности ребра е плоского топологического графа ,Е) будем называть значение функции ктагк(е) определяемой рекурсивно:
• все ребра, инцидентные внешней грани /о графа G(V'Е) образуют множество ребер Ех = { ееЕ: ес/0} с уровнем вложенности ("е ОЕ1 )(ктагк (е) = 1);
• ребра с уровнем вложенности 1 в графе
(дг—1
Щм
■'=1 л
к >2
составляют множество Ек ребер с уровнем вложенности к в исходном графе
G, т. е. (V е е Ек) (ктагк(е) = к) .
С точностью до гомеоморфизма представление любого плоского
графа G = (7,Е) возможно с помощью задания для каждого ребра е функций
у1(е)>у2(е)> 11(е)> 12(е)> /(е) > /2(е) (рИС.1).
Функции vk(е), к = 1,2 представляют вершины, инцидентные ребру е, /к(е), к = 1,2 - грани, которые находятся слева при движении по ребру е от вершины vk(е) к ^-к(е), и 1к(е), к = 1,2 - ребра, инцидентные граням Л(е).
Более того, алгоритм М-Соуег использует две функции из алгоритма OrderedEnclosingCover, отвечающего за построение цепи с упорядоченным охватыванием.
Рассмотренный в работе [6] алгоритм OderedEnclosingCover состоит из трех основных частей: инициализация, упорядочение и формирование.
На этапе инициализации необходимо определить начальные значения всех переменных (найти начальные вершину и ребро, все ребра считать непомеченными, а все списки - пустыми).
Функциональное назначение этапа упорядочения состоит в:
• определении значения ктагк(е) для каждого ребра;
• формировании для каждой вершины списка инцидентных ребер,
упорядоченных по убыванию значения ктагк(е).
После сортировке ребер по убыванию значения ктагк(е) осуществляется переход к третьему этапу работы алгоритма -формированию, где осуществляется:
• выбор вершины нечетной степени с максимальным значением
• построение цепи, начинающейся в этой вершине, и заканчивающуюся в другой вершине нечетной степени;
• удаление концевых вершин цепи из списка вершин нечетной степени. Если после выполнения этапа формирования остались ребра, не
принадлежащие ни одной из цепей (ребра, ограничивающие внешнюю грань) - построить цикл, состоящий из этих ребер.
Приведем алгоритм M-Cover построения допустимого эйлерова покрытия графа цепями с упорядоченным охватыванием [2]. Алгоритм M-Cover Входные данные:
• плоский граф G;
• паросочетание М на множестве вершин нечетной степени ^.
Рис.1. Функции, кодирующие ребра графа
ктагк(е);
Выходные данные: су, у = ^...Уом12 - эйлерово покрытие графа G цепями с упорядоченным охватыванием.
Шаг 1. Выполнить процедуры Инициализация и Упорядочение (т.е. Шаг 1 и Шаг 2 алгоритма OderedEnclosingCover [5]). Положить у =1. Объявить вершину уо, смежную внешней грани, текущей, положить V)) = у0 .
Шаг 2. Выполнять построение цепи су с помощью процедуры Формирование [5], используя вершину уо в качестве начальной. Пусть вершина V является конечной вершиной построенной цепи. Если V0 п^, то перейти на шаг 6; иначе перейти на шаг 3.
Шаг 3. Если вершина V0 является тупиковой, то перейти на шаг 5, иначе перейти на шаг 4.
Шаг 4. Если ктагк(VI) <ктагк(V0), то положить V) = V0 и перейти на шаг 2 (продолжить построение цепи су из текущей вершины).
Шаг 5. Найти V: (V0,VI)см . Закончить построение текущей цепи: V/ = V0, у = у +1, Vodd = vodd V/}, м = м\{(/,V/)} принять V) = V/ за текущую вершину следующей цепи и перейти на шаг 2 (начать построение новой цепи су из вершины V) = V)).
Шаг 6. Останов.
Конец алгоритма M-Cover
Вычислительная сложность алгоритма M-Cover не превосходит величины О( |).
Для построения оптимального покрытия достаточно в качестве М взять кратчайшее паросочетание на множестве ^ [2].
Алгоритм OptimalCover
Входные данные:
плоский граф G, представленный списком ребер с заданными на них функциями vk(е) , 1к(е) , /к(е) , k = 1,2 .
Выходные данные: су, у = ^ |/2, - покрытие графа G цепями с упорядоченным охватыванием.
Шаг 1. Найти кратчайшее паросочетание М на множестве ^.
Шаг 2. Выполнить алгоритм M-Cover для графа G и паросочетания М.
Шаг 3. Останов.
Конец алгоритма OptimalCover
Сложность алгоритма OptimalCover не превосходит величины |3) (т.е. сложности построения паросочетания).
Пример сравнения результатов работы алгоритмов Odered-EnclosingCover и M-Cover приведен на рис.2.
В случае многосвязного графа можно применить следующий допустимый алгоритм [3].
В алгоритме будет использовано понятие уровня вложенности компоненты связности. Под уровнем вложенности компоненты
связности будем понимать минимальный уровень вложенности ребер этой компоненты связности.
V V (-)у V (-)V V V V (-)V V V V V V V V
V V (-) V V (-IV' V V V ) V V V V V V V V
Рис.2. Результат работы алгоритма OderedEnclosingCover (слева) и И-
Cover (справа)
Алгоритм MultiComponentCover
Входные данные: плоский граф G.
Выходные данные: С5, } = 1,...,\|/2, - покрытие графа G цепями с упорядоченным охватыванием, 5 = I2, .. - номер компоненты связности.
Шаг 1. Выявить множество 5 всех компонент связности графа G и "О найти уровень вложенности к(5).
Шаг 2. Упорядочить элементы множества 5 в порядке убывания значений к (Х>.
Шаг 3. Пусть *(5) - порядковый номер компоненты связности s, а -КО -компонента связности с порядковым номером i. Для 1</<|£| выполнить алгоритм Орйта1Соуег и получить С) - покрытие 2'-ой компоненты связности цепями с упорядоченным охватыванием.
Шаг 4. Останов.
Конец алгоритма MultiComponentCover
Очевидно, что вычислительная сложность данного алгоритма составляет величину, не превышающую 0(\у \2).
Такой алгоритм позволяет построить только допустимое покрытие с указанными свойствами. Что касается оптимальной длины дополнительных построений, то в данном случае компоненты связности можно упорядочить не только по уровням вложенности. Например, их можно подразделить на так называемые «вложенные объединения».
Вложенным объединением п будем называть семейство компонент связности £п плоского графа, в котором компонента связности с уровнем вложенности к содержит в себе (охватывает) компоненты связности с уровнем вложенности больше к.
Например, на рис.3 изображено четыре компоненты связности,
образующих два вложенных объединения.
|Ч-г
7
4-4
2 4
11
Рис. 3. Пример вложенных объединений
Введем ограничение: невозможно переключиться на построение покрытия в другом вложенном объединении, пока имеются еще не пройденные ребра в текущем.
Если модифицировать алгоритм МиШСотропеМСоуег с учетом введенных замечаний, будет получен рекурсивный алгоритм для обхода всех вложенных компонент связности, фиктивные ребра с оптимальной длиной между которыми будет невозможно построить за полиномиальное время, т.к. задача сведется к поиску решения задачи коммивояжера.
Однако для задачи построения оптимального покрытия с упорядоченным охватыванием в плоском графе возможно построить нерекурсивный алгоритм, который находит решение за полиномиальное время.
Алгоритм OptimalMultiComponent
Входные данные: плоский граф G.
Выходные данные: С, ) = 1,...,\Vodd|/2, - покрытие графа G цепями с упорядоченным охватыванием, ^ = 1,2,... - номер компоненты связности.
Шаг 1. Выявить множество 5 всех компонент связности графа G.
Шаг 2. Построить полный абстрактный граф б , вершинами которого являются компоненты связности £ графа G, а длины ребер равны расстоянию между ближайшими вершинами компонент связности.
Шаг 3. Найти остовное дерево минимального веса т (Б в Б.
Шаг 4. Добавить ребра найденного остовного дерева в граф G: GБ = GиТ(Б .
Например, для графа, приведенного на рис.3, будут добавлены ребра {1;5}, {3;8} и {10;14} (рис.4).
Шаг 5. Выполнить алгоритм Ор^та1Соуег для графа GБ (например, на рис.4 представлены дополнительные построения, выполненные алгоритмом Орйта1Соуег для рассмотренного графа).
Конец алгоритма OptimalMultiComponent
о-
13
12< 14
о о
Рис. 4. Добавление ребер, соединяющих компоненты связности, и ребер, делающих граф эйлеровым
Предложенный алгоритм строит покрытие цепями с упорядоченным охватыванием за полиномиальное время.
Для графа, приведенного в качестве примера, таким покрытием будет следующим (приведена последовательность цепей, состоящих из ребер исходного графа, в порядке их обхода, здесь верхний индекс - номер компоненты связности, нижний индекс - номер цепи для данной компоненты связности):
C = {5,6,7,5}, C = {1,3},C3 = {8,9,10}, C4 = {14,13,12,14}, C23 = {10,11,8}, C22 = {3,4,2}.
Шаг 1 алгоритма представляет собой волновой алгоритм, который решает свою задачу за время O(|v |2). Действия, выполняемые на шаге 2, могут быть выполнены также за время O(|v |2). Известно, что решение задачи на шаге 3 алгоритма может быть получено также за полиномиальное время O(|v |2) либо при использовании логарифмических сортировок эту величину можно уменьшить до O(|V |log2| v |). Шаг 4 имеет сложность O(1). Выше упоминалось, что сложность алгоритма OptimalCover (шаг 5) не превосходит величины O(|v |3). Таким образом, суммарная сложность алгоритма OptimalMultiComponent представляет величину O(| v |3).
Алгоритм OptimalMultiComponent позволяет получить не большую длину дополнительных построений, по сравнению с алгоритмом MultiComponentCover. Это объясняется тем, что в данном алгоритме переход осуществляется к ближайшей возможной компоненте связности, а не к ближайшей возможной компоненте связности максимального уровня вложенности.
Работа поддержана грантом РФФИ 10-07-96002-р_урал_а.
Литература
1. Panyukova, T. Cover with Ordered Enclosing for Flat Graphs // Electronic Notes in Discrete Mathematics, 2007. No. 28. Р.17-24.
2. Панюкова, Т.А. Оптимальные эйлеровы покрытия для плоских графов // Дискретный анализ и исследование операций. 2011. Т.18, №2. С. 64-74.
3. Панюкова Т.А. Эйлерово покрытие с упорядоченным охватыванием для многосвязного графа. // Материалы 3-й международной конференции «Математическое моделирование, оптимизация и информационные технологии». - Кишенев: Evrica, 2012. С.429-438.
4. Panioukova T.A. Algorithms for Construction of Ordered Enclosing Traces in Planar Eulerian Graphs. / Panioukova T.A., Panyukov A.V. // The International Workshop on Computer Science and Information Technologies' 2003, Proceedings of Workshop, Ufa, September 16-18, 2003. Volume 1, Ufa State Technical University, 2003. P. 134-138.
5. Панюкова Т.А. Построение маршрутов с упорядоченным охватыванием в плоских графах // Труды 36-й Региональной молодежной конференции «Проблемы теоретической и прикладной математики». Екатеринбург: УрО РАН, 2005. C. 61-66.
6. Панюкова Т.А. Обходы с упорядоченным охватыванием в плоских графах / Панюкова Т.А. // Дискретный анализ и исследование операций, 2006. Сер. 2. Т.13, №2. C. 31-43.
7. Panyukov, A.V. The Algorithm for Tracing of Flat Euler Cycles with Ordered Enclosing / A.V. Panyukov, T.A. Panioukova // Proceedings of Chelyabinsk Scientific Center, 2000. - \#4(9). P.18-22.