УДК 512.5+519.1(075.8)
МАРШРУТЫ С ЛОКАЛЬНЫМИ ОГРАНИЧЕНИЯМИ
Т.А. Панюкова
THE PATHS WITH LOCAL RESTRICTIONS
Т.A. Panyukova
В данной работе рассмотрена задача покрытия графа минимальным числом цепей, удовлетворяющих заданным локальным ограничениям. Показана возможность распознавания системы переходов, допускающей линейную сложность задачи построения допустимого пути. Построены алгоритмы отыскания в графе допустимого эйлерова цикла за линейное время, либо, если такого цикла нет, - покрытия графа допустимыми цепями.
Ключевые слова: граф, маршрут, цепь, запрещенный переход, покрытие
The research is devoted to the problem of graph covering by minimal number of trails corresponding some local restrictions. The opportunity to recognize the transitions system is observed. The problem of allowed path construction has linear complexity. Algorithm of allowed Eulerian cycle construction is also considered. If graph does not have such a cycle then algorithm constructs covering of graph by allowed trails. This algorithm also runs by linear time.
Keywords: graph, path, trail, forbidden transition, covering
Введение
Многие задачи нахождения маршрутов, удовлетворяющих определенным ограничениям, появились из конкретных практических ситуаций. В задачах раскроя листового материала плоский граф является моделью раскройного плана, а маршрут, покрывающий все ребра, определяет траекторию режущего инструмента. Ограничением является отсутствие пересечения внутренних граней любой начальной части маршрута с ребрами его оставшейся части [1]. При построении систем управления манипуляторами с помощью неориентированного графа отображают всевозможные элементы траектории манипулятора. При этом возникают проблемы построения маршрутов, удовлетворяющих различным ограничениям, например: прямолинейных маршрутов [2]; маршрутов, в которых следующее ребро определяется заданным циклическим порядком на множестве ребер, инцидентных текущей вершине [3-5]; маршрутов, в которых часть ребер следует пройти в заданном порядке [5].
Ограничения на порядок обхода вершин и ребер графа можно классифицировать на локальные, когда следующее ребро в маршруте определяется условиями, заданными в текущей вершине или на текущем ребре [2, 3 - 5, 7, 8] и на глобальные (эйлеровы, гамильтоновы циклы, бинаправленные двойные обходы и т.д.). Большинство работ посвящено алгоритмам с локальными ограничениями на порядок обхода ребер. В данной работе рассмотрена задача покрытия графа минимальным числом цепей, удовлетворяющих заданным локальным ограничениям.
1. Алгоритм построения допустимой цепи
Обобщение большинства частных случаев задачи построения простой цепи с локальными ограничениями и анализ вычислительной сложности данной проблемы даны С.Зейдером [7]. Приведем основные определения и результаты данной работы.
Ограничимся рассмотрением конечных простых графов. Множество вершин и множество ребер графа О будем обозначать соответственно через У(С) и Е(0). Для вершины V Е У{0) определим Ео(у), множество всех ребер графа (7, инцидентных вершине у. Степень вершины V будем обозначать как с1(у); для й > О положим ^(С) := {г? е У(0) |й{у) — й}. Будем писать Н < О, если Н - вершинно-индуцированный подграф графа (?, т.е. подграф, полученный из графа О отбрасыванием некоторого множества вершин и всех ребер, инцидентных вершинам этого множества, и только их.
Ограничения на маршруты в графе (7 можно сформулировать в терминах графа разрешенных переходов.
Определение 1. Пусть О - граф. Графом переходов То{у) вершины у £ У (С?) будем называть граф, вершинами которого являются ребра, инцидентные вершине V, т.е. У(То(у)) = Ее (у), а множество ребер - допустимые переходы.
Определение 2. Системой разрешенных переходов (или короче, системой переходов ) Та будем называть множество {То(у) | у Е где То(у) - граф переходов в вершине у.
Определение 3. Путь Р = г>о, ех, е^, г^ в графе О является Тс-совместимым,
если е^, е^+1 е Е{То{Уг)) для каждого г (1 < г < к — 1).
Теорема 1. [С. Зейдер]. Если все графы переходов принадлежат либо классу М полных многодольных графов, либо классу Р паросочетаний, то задача построения То~ совместимой цепи является разрешимой за время 0(\Е(0)\). В противном случае данная задача является NР-полной.
Если система переходов вершины у Е является паросочетанием, то задача сводится
к задаче для графа
о' : У(С) = Е(С) = (Е(0)\Ео(у)) и : ш;,} € Е(Тв(ь))} .
Если для любой вершины у Е У{С) граф Тс {у) является полным многодольным графом, то цепь можно построить с помощью следующего алгоритма. Алгоритм ТЬ-СОВМЕСТИМЫЙ ПУТЬ Входные данные:
• граф С = (У,Е);
• вершины ж, у, между которыми требуется найти цепь без запрещенных переходов;
• система переходов То : (У у е У(0)) То (у) е М. Выходные данные:
• последовательность ребер, определяющая Т^-совместимый путь между вершинами х и у, либо сообщение об его отсутствии.
Шаг 1. Если вершина х или вершина у является изолированной, останов: пути нет. Шаг 2. Удалить из графа (У изолированные вершины.
Шаг 3. Построить вспомогательный граф С следующим образом (рис. 1): Серия ^Математическое моделирование и программирование», вып. 5 59
Рис. 1. Иллюстрация построения вспомогательного графа G'
• каждую вершину V е расщепить на вершины г^, г>2,..., Ур(у), где - число долей графа Та (у). Вершине ур инцидентны ребра соответствующей доли графа То (у) и одна дополнительная вершина г^^;
• добавить две новые вершины и ребро и)1(у)т2(у)1 и ребро ^^^¿{ю) для каждой доли графа То (у), 1 < у < 2.
Шаг 4. Построить первоначальное паросочетание в графе С
Шаг 5. Искать чередующуюся последовательность между вершинами х и у, увеличивающую мощность паросочетания в графе G'. Если такую последовательность найти не удается - останов (паросочетание M(G') имеет максимальную мощность, а граф не имеет То-совместимого пути). В противном случае все ребра данного увеличивающего пути за исключением ребер, добавленных при построении графа G', образуют Т^-совместимую цепь между вершинами х и у. Останов.
Заметим, что в работе [7] открытым остался вопрос распознавания многодольности графов To(i0, а также проблема построения допустимого маршрута или множества маршрутов, покрывающих все ребра исходного графа.
Покажем на примере графа G, представленного на рис. 2, что алгоритм То-СОВМЕСТИМЫЙ ПУТЬ не может быть использован для построения маршрутов, покрывающих все ребра графа G. Допустим для графа задана следующая система переходов
То: {{t^lbWML {{^№>,{^7}}, {{^2}
{{^2} , {^l}}, {{у±щ} , {^б}}, {{^4} , , {{^8} , {^8^5}},
, {vgvj}}, {{v3V7} , {^Mb {{^7} , {^б}}, {{ЩУб} , {^6^7}}, {{ПЩ} , {^б}},
Граф G', необходимый для нахождения Т^-совместимого пути между вершинами v\ и г>7, построение которого описано на шаге 3 алгоритма, приведен на рис. 3.
Первоначальное паросочетание M(G') выделено на рисунке жирными линиями. Для данного паросочетания чередующейся увеличивающей последовательностью ребер является {VI,1175,2}, {^5,2^5,2}5 Н,2^5,2}, Нд^бд}, {^5,1^6,2}, {^6,2^2}, {^6,2^6,2}, {^6,2^6,1}, {^6,1^6,1{^6,1^6,1}, {^6,1^7,2}. Ребра этой последовательности, не
V:
Рис. 2. Пример графа и системы переходов
v,, v,,
Рис. 3. Граф С, полученный с помощью вспомогательных построений из графа С
вошедшие в первоначальное паросочетание, изображены пунктирной линией. Эти ребра образуют множество
{VI,1.^5,2} , 2} , {^5,1^5,1} > {^5,1^6,2} , {^6,1.4,1} > К,1^7,2} •
Все ребра данного множества, принадлежащие графу С, т.е. {г^г^}, {г^б}, {^6^7} образуют То-совместимый путь из вершины в вершину ^7.
С помощью алгоритма Т^-СОВМЕСТИМЫИ ПУТЬ возможно построение только простой цепи между двумя различными вершинами (т.е. цепи, в которых любая вершина встречается ровно один раз).
Однако в общем случае непосредственное применение данного алгоритма не позволяет решить задачу нахождения Т^-совместимого маршрута, содержащего максимальное число ребер. Действительно, паросочетание максимальной мощности в графе С не может содержать пары ребер, образующих запрещенный переход, т.к. они инцидентны одной общей вершине графа С. В то же время, в общем случае может существовать Т^-совместимый маршрут, содержащий такую пару ребер.
Например, в графе приведенном на рис. 2, маршрут
принципиально не может быть получен с помощью построения паросочетания максимального веса в графе С. Этот маршрут начинается с ребра г^х, а заканчивается ребром Эти ребра образуют запрещенный переход {^5^2}? {^2^1}? следовательно, в графе С не существует чередующегося пути, содержащего оба эти ребра.
Таким образом, открытым остался вопрос распознавания многодольности графов а также проблема построения допустимого маршрута или множества маршрутов, покрывающих все ребра исходного графа.
При разработке алгоритма построения допустимой цепи возник вопрос, можно ли заменить графы переходов некоторой ориентацией исходного графа. В качестве примера рассмотрим граф, представленный на рис. 4(а). Пусть для этого графа заданы следующие допустимые переходы {{^2,^1}, {^ь^з}}, {{^з,М, щ}}, {{^ьщ}, {^4^2}}, {{^ьМД^^з}}, {{^4,^з}, {^3,^1}}, {{^3,^2}, {^2,^1}}. Попытаемся представить их в виде дуг орграфа, как показано на рис. 4(6).
Заметим, что в построенном орграфе присутствуют и переходы, которые не были заданы системой допустимых переходов (например, {{г>2, {^1,^4}}). Для иллюстрации работы предложенного алгоритма построим вспомогательный граф в соответствии с шагом 3 (рис. 5(а)).
В частности, вершину нам потребовалось расщепить на две, чтобы показать возможные переходы в ней, как показано на рис. 5(6). Таким образом, представление в виде орграфа не гарантирует существования возможного перехода.
Этот пример показывает, что для нахождения алгоритма построения допустимой цепи невозможно представить систему переходов в виде дуг орграфа, т.е. для каждой вершины необходимо строить соответствующий граф переходов [9].
Рис. 5. Расщепленный граф для примера с рис. 4 и возможные переходы для вершины VI
2. Алгоритм построения допустимой цепи
В предыдущем разделе были сформулированы ограничения на допустимость маршрутов в терминах системы разрешенных переходов [7] и показано, что задача построения допустимого пути в графе С разрешима за полиномиальное время, если система переходов Тс содержит только паросочетания и полные многодольные графы. Распознавание принадлежности графа разрешенных переходов классу паросочетаний тривиально. Для распознавания принадлежности графа переходов классу полных многодольных графов целесообразно использовать понятие системы разбиения [3]-[5], [8].
Понятие системы разбиения используется для определения допустимой цепи в терминах запрещенных переходов.
Определение 4. Пусть дан граф О = (У,Е). Пусть Рс(у) - некоторое разбиение множества Ес(у)- Системой разбиения графа О будем называть систему множеств Р0:={Р0(у)\У€У(0)}.
Определение 5. Пусть р Е Рс{у), е, / Ер. Цепь, не содержащую переходов е —ь у —> / и / V е, будем называть Рд-совместимой, а переходы е-ч-у-^ / и/ —> у ^ е -запрещенными.
Заметим, что граф разрешенных переходов Тс (у) однозначно определяет граф запрещенных переходов тс (у), который является дополнением графа разрешенных переходов до полного графа. Таким образом, с помощью определений 1-3 можно поставить задачу с любым графом разрешенных (запрещенных) переходов.
Напротив, граф разрешенных переходов, определяемый с помощью системы разбиения Р<2, не может быть произвольным, а принадлежит классу М полных многодольных графов: элементы разбиения Рс(у) определяют доли графа Тс (у) Е М, а множество его ребер
Е(Тс{у)) = {е, / € Еа(у) : (Ур £ Ре(«)) {е, /} £ р} .
Графом запрещенных переходов Тс (у) в данном случае будет являться набор из \Рс(у)\ клик, этот факт может быть использован для распознавания принадлежности Т(у) Е М с помощью следующего алгоритма.
Алгоритм РАЗМЕТКА
Входные данные: граф переходов Тс (у).
Шаг 1. Объявить все вершины графа Тс (у) непомеченными. Положить 1 = 1.
Шаг 2. Пока список непомеченных вершин не пуст, выполнять шаги 3, 4 и 5. В противном случае - останов: граф Тс (у) является многодольным и вершины, принадлежащие одному элементу разбиения множества вершин, имеют одинаковые пометки.
Шаг 3. Найти некоторую непомеченную вершину V. Присвоить ей пометку I. Шаг 4. Применить волновой алгоритм для присваивания пометки I всем вершинам, достижимым из вершины у в графе Тс (у)- Очевидно, что все помеченные на данном шаге вершины будут принадлежать одной компоненте связности графа тс (у)-
Шаг 5. Если в выделенной компоненте связности любая пара вершин является смежной, то найденная компонента связности является кликой. Положить 1 = 1 + 1 и перейти к выполнению шага 3. В противном случае - останов: граф Тс(у) не является многодольным.
Оценим сложность приведенного алгоритма. Расстановка пометок в конкретной компоненте связности Т/с составляет величину 0(|-Е(Т*;)|). Проверка, является ли данная компонента связности кликой, также требует не более 0(\Е(Т^)\) операций. Таким образом, сложность алгоритма РАЗМЕТКА равна
Как было отмечено, алгоритм С. Зейдера в общем случае не позволяет строить допустимые цепи максимальной длины. Особый интерес представляют допустимые эйлеровы цепи. Необходимое и достаточное условие существования Р^-совместимых цепей дает следующая теорема [8].
Теорема 2. [А. Коциг]. Связный эйлеров граф имеет Рс~ совместимую эйлерову цепь тогда и только тогда, когда
Очевидно, что сложность проверки условия существования Р^-совместимой эйлеровой цепи не превосходит величины 0(\Е{0)\). Ниже приведен алгоритм построения совместимой цепи.
Алгоритм Рс-СОВМЕСТИМАЯ ЭЙЛЕРОВА ЦЕПЬ
Входные данные:
• эйлеров граф О = (V,!?),
• система переходов Рс(у) Vу £ У(0). Выходные данные:
• допустимый эйлеров цикл
Шаг 1. Положить к = 0, = О.
Шаг 2. Найти вершину у, у которой ¿ск (у) > 2.
Шаг 3. Найти класс С\ £ Рск (у) • \С\ \ = (тах\с\ \с € рск(у) }•
Шаг 4. Найти любые ребра е\(у) £ С\ и в2(у) £ Еск(у) — С\. Если множество Еск{у) — С\ = 0, останов: Р^-совместимой эйлеровой цепи не существует. В противном случае перейти на шаг 5.
Шаг 5. Построить граф отщепив от вершины у вершину г>, которой инцидентны
только ребра е\ и в2- Остальные ребра оставить инцидентными вершине у.
Шаг 6. Пусть класс С2 £ Рск(у) содержит ребро в2(г?). Найти
РаЛь) :=Рс»-{СьС2},
Рак(у)и{Сг - {еф)},С2 - {е2(у)}},если\С2\ > 1, Рак(у) и{С1 - {ех(«)}},если |С1| > \С2\ = 1,
Рд (у)^ если \С\\ = \С2\ — 1,
Рак+г= и
хеу(С 1,2)
Шаг Т. Определить значение = 2(\Е(Ок+1)\ — |У(0&+1)|).
Шаг 8. Если 1) > 0, положить к = к + 1, перейти на шаг 2, для графа В
противном случае - останов: построенный граф Ок+\ является эйлеровой цепью, не содержащей запрещенных переходов.
Теорема 3. Алгоритм Рс - СОВМЕСТИМАЯ ЭЙЛЕРОВА ЦЕПЬ корректно решает задачу построения Р (О)-совместимой эйлеровой цепи.
Доказательство. Если для некоторого такого что С" е Р'а (у), выполнено неравенство
\С"\ > \С\ - {е!(«)}|, то С" € Рск+М И |С2| < \С"\ = \С\\ < увк(ь) - 1 =
I—I О АЛТТЛППТТТ1Т1 >-\ГП/'\-П/"Ч тот/то ^ЛХТ/'ТТЛ о О ТУ ТТТЛТТТТ1Т1Т ттгт^ \П\ ^ (пЛ ТТ ТТГТ ТУГ» ^ТУ ТТ^« ПАГЧТТТТХТТТ т
На основании этого факта можно заключить, что \С\ < \йок+1 (у) для каждой вершины у е ¥(0^+1) и каждого класса С е Рвк+1 (у) С Рок+1- При этом величина =
\Е(Ок+1)\ — \У(Ок+1)\ < о(£?&). Если граф Ок+г является циклом, то число ребер в нем и число вершин совпадает, т.е. в данном случае = 0. Если же граф Gfc.fi является цепью, то число вершин превышает число ребер на 2, следовательно, в данном случае 1) = —2. Если же на некотором этапе для е\(у) е С\ не удалось найти е2(у) е Еок(у) — С\, это значит, что \С\\ > й{у)/2, т.е. не выполнены необходимые и достаточные условия существования эйлерова цикла (теорема Коцига). Из этих фактов следует корректность выполнения алгоритма. □
Оценим вычислительную сложность предложенного алгоритма. Выполнения шагов 2, 5, 6 и 7 можно организовать с использованием не более 0(1) операций (за счет специальных структур данных). Выполнения же шагов 3 и 4 можно организовать с использованием не более 0{йок{у)) операций. Цикл алгоритма будет повторен не более, чем (т{С) раз. В итоге имеем, что алгоритм потребует число операций не более
Таким образом, приведенные алгоритмы разрешимы за полиномиальное время и могут быть легко реализованы с помощью стандартных вычислительных средств.
Рассмотрим задачу покрытия графа допустимыми цепями. Будем считать, что система переходов То содержит только паросочетания и полные многодольные графы.
Алгоритм ПОКРЫТИЕ Тс-ДОПУСТИМЫМИ ЦЕПЯМИ Входные данные:
• граф в = (У,Е),
• графы переходов то (у) у у е у(о).
Выходные данные:
• набор маршрутов Тг, % = 1, 2,..., покрывающих граф С?, где т = 2к - число вершин нечетной степени.
Шаг 1. Пусть U = {v Е V(G) : Tq(v) — паросочетание}. Сделать редукцию графа G до графа G'\
V(G') = V(G)\U,
E(Gf) = [E(G)\ (J Eg(v)] (J { (J : E tG(V)}\,
\ veu J Let/ J
графы Tq(v) редуцировать до графов Tg'(v) заменой всех вхождений вершин и Е U: vu, wu Е Етс (и) вершиной w.
Шаг 2. Достроить граф G' до G* введением дополнительной вершины г?*, смежной всем вершинам нечетной степени графа G'. Систему переходов Tq/ (v) модифицировать до системы переходов Tq* введением для всех v Е V'{G) : d(v) = 1 (mod 2) в граф переходов Tq*(v) вершины vv*, смежной всем вершинам в графе Tq* (v).
Шаг 3. Для всех таких вершин v Е V(G), что Зр Е P(v): \р\ > d(v)/2, ввести 2\р\ — d(v) дополнительных ребер (ш>*)г, г = 1,2,2 \р\ — d(v) в граф G*. Модифицировать граф переходов Tq* (v) введением вершин (vv*)i, смежных всем вершинам исходного графа Tq* (v) и только им.
Шаг 4. Найти в G* Tq* -совместимый эйлеров цикл Т*.
Шаг 5. Построить покрытие Т' графа G' цепями, удалив из Т* ребра (vv*).
Шаг 6. Модифицировать маршруты из Т' до маршрутов из Т добавлением вершин ueU, удаленных на шаге 1.
Шаг 7. Останов.
Теорема 4. Алгоритм ПОКРЫТИЕ TG-ДОПУСТИМЫМИ ЦЕПЯМИ корректно решает задачу минимального покрытия графа Тс-допустимыми цепями. Его сложность не превосходит величины 0(\E(G)\ • \V(G)\).
Доказательство. В результате выполнения шага 1 приходим к задаче для полного многодольного графа Gr. Данное преобразование возможно выполнить, используя не более 0(\E(G)\) операций.
В результате выполнения шага 2 получаем задачу для эйлерова графа, в каждой вершине v которого граф переходов Tq* (v) является полным и многодольным. Введенная в граф Tq* (v) дополнительная вершина vv* является отдельным элементом разбиения в Pq*{v).
На шаге 3 проверяется выполнение необходимых и достаточных условий существования допустимого эйлерова цикла (теорема Коцига). Во всех вершинах, где условия теоремы Ко-цига не выполнены, в граф G* добавляются мультиребра (vv*)i, г = 1,2,2 \p{v)\ — d(v). Также модифицируется и система разбиения Pq* (v) добавлением элемента разбиения, содержащего все ребра (vv*)i. Такие модификации также выполняются за время, не превосходящее 0(\V(G)\ • \E(G)\).
В результате проведенных модификаций граф G* будет эйлеровым, а его система разбиения будет удовлетворять теореме Коцига.
Для построения допустимого эйлерова цикла, содержащего и дополнительные ребра, смежные у*7 на шаге 4 требуется не более 0(\V(G)\ • \E(G)\) операций.
На шаге 5 получим I = d(v*) простых цепей удалением ребер, инцидентных вершине v*j которые были добавлены на шагах 2 и 3. Все полученные таким образом цепи будут Pq'- допустимыми в графе G'. Сложность этого этапа составляет величину 0(\E(G)\).
На шаге 6 происходит добавление удаленных на шаге 1 вершин, что также требует не более чем 0(\E(G)\) операций вставки.
В результате выполненных операций получим покрытие графа I + 1 цепями за время 0(\V(G)\ • \E(G)\). Предположение существования покрытия с меньшим числом цепей приведет к противоречию с теоремой Коцига. □
Заключение
Возможно распознавание системы переходов, которая позволяет решить задачу построения допустимого пути за линейное время. В эйлеровом графе G возможно отыскание Pq-допустимого эйлерова цикла или установление его отсутствия за время 0(\V(G)\ • \E(G)\) с помощью разработанного алгоритма Р^-СОВМЕСТИМАЯ ЭЙЛЕРОВА ЦЕПЬ. Покрытие графа G допустимыми цепями также возможно за время 0(\V(G)\ • \E(G)\) с помощью алгоритма ПОКРЫТИЕ TG~ДОПУСТИМЫМИ ЦЕПЯМИ.
Литература
1. Panioukova, Т.A. Algorithms for Construction of Ordered Enclosing Traces in Planar Eulerian Graphs / T.A. Panioukova, A.V. Panyukov // The International Workshop on Computer Science and Information Technologies' 2003, Proceedings of Workshop, Ufa, September 16 - 18, 2003/ Ufa State Technical University. - Ufa, 2003. - Vol. 1. -P. 134 - 138.
2. Pisanski, T. Straight-ahead walks in Eulerian graphs / T. Pisanski, T.W. Tucker, A. Zitnik // Discrete Mathematics, 2004. - №. 281. - P. 237 - 246.
3. Фляйшнер, Г. Эйлеровы графы и смежные вопросы / Г. Фляйшнер. - М.: Мир, 2002. -335 е., ил.
4. Fleischner H. Eulerian Graphs and Related Topics / H. Fleischner. - Part 1, Vol.2 - Ann. Discrete Mathematics, 1991. - № 50.
5. Fleichner, H. Eulerian Graphs / H. Fleischner, L.W. Beineke, R.J. Wilson // Selected Topics in Graph Theory 2, Academic Press, London-New York, 1983. - P. 17 - 53.
6. Chebikin, D. On k-edge-ordered graphs / D. Chebikin // Discrete Mathematics, 2004. -№ 281. - P. 115 - 128.
7. Szeider, S. Finding Paths in Graphs Avoiding Forbidden Transitions / S. Szeider // Discrete Applied Mathematics, 2003. - № 126. - P. 261 - 273.
8. Kotzig, A. Moves Without Forbidden Transitions in a Graph / A. Kotzig // Mat.-Fiz. Casopis 18, 1968. - № 1. - C. 76 - 80.
9. Панюкова, T.A. Построение совместимых цепей в графах / T.A. Панюкова, В.Ф. Мира-сов / / Проблемы теоретической и прикладной математики: тр. 39-й Регион, мол од еж. конф. Екатеринбург, 2008. - С. 38 - 43.
Кафедра <Экономико-математические методы и статистика» Южно-Уральский государственный университет kwark@mail.ru
Поступила в редакцию 25 декабря 2009 г.