ИНФОРМАТИКА
УДК 519.1
ОПТИМАЛЬНАЯ ЭЙЛЕРОВА РЕКОНСТРУКЦИЯ ОРИЕНТИРОВАННЫХ ГРАФОВ МЕТОДОМ ДОБАВЛЕНИЯ ДУГ
А. В.Гавриков
Саратовский государственный университет,
кафедра теоретических основ компьютерной безопасности и криптографии E-mail: [email protected]
В работе решается следующая задача: дан орграф, необходимо добавить минимальное число дуг, чтобы орграф стал эйлеровым.
Ключевые слова: теория графов, эйлеровы орграфы, реконструкции орграфов, транспортная сеть, максимальный поток минимальной стоимости, добавление дуг.
Optimal Eulerian Modification of Digraphs by Addition of Arcs A. V. Gavrikov
Saratov State University,
Chair of the Theoretical Foundations of Computer Security and Cryptography E-mail: [email protected]
ТЬю following problem is solved: given a directed graph, it is necessary to add to it a minimal number of arcs to obtain an Eulerian directed graph.
Key words: graph theory, Eulerian graphs, modification of digraphs, transport network, min-cost-max-flow, addition of arch.
1. ПОСТАНОВКА ЗАДАЧИ
Общая постановка задачи формулируется следующим образом. Пусть К — некоторый класс графов, а G — граф, не принадлежащий К. Требуется произвести те или иные изменения в структуре графа G, чтобы полученный граф G оказался К-графом (см. [1]). В качестве допустимых реконструкций данного графа обычно рассматриваются следующие:
1) отождествление некоторых вершин графа,
2) ориентация ребер данного неориентированного графа,
3) переориентация некоторых дуг,
4) добавление новых дуг (ребер),
5) удаление некоторых дуг (ребер).
Нами рассматриваются реконструкции, приводящие к построению эйлеровых орграфов. Решены следующие задачи:
1. Дан произвольный связный орграф, необходимо путем переориентации минимального количества дуг сделать его эйлеровым. Решение задачи опубликовано в [2].
2. Дан произвольный орграф, необходимо путем добавления минимального количества дуг сделать его эйлеровым. Этой задаче посвящена данная работа.
3. Дан произвольный орграф, необходимо путем удаления минимального количества дуг сделать его квазиэйлеровым. Решение опубликовано в [3].
Разработана программа для ЭВМ, где алгоритмически реализованы все поставленные задачи (см. [4]).
© Гавриков А. В., 2012
2. ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ
Ориентированным графом (или — орграфом) называется пара G = (V, а) , где V — конечное непустое множество (вершины орграфа), а а С V х V — отношение на множестве V (дуги орграфа) (см. [5,6]).
Неориентированным графом (или — графом) называется пара G = (V, а), где а С V х V — симметричное и антирефлексивое отношение на множестве V (ребра графа).
Путем называют последовательность дуг (vi, v2), (v2,v3), ..., (vn — 1,vn), где (v^v + 1) e а, 1 < i < n — 1, и никакая дуга не встречается более одного раза.
Длиной пути называется количество входящих в него дуг.
Путь называется циклическим, если v1 = vn.
Путь длины |а| называется эйлеровым.
Путь называется простым, если каждая его вершина принадлежит не более чем двум его ребрам (дугам).
Циклом называется простой циклический путь.
Расстоянием от вершины u до вершины v называется длина кратчайшего пути из вершины u в вершину v.
Орграф, в котором существует циклический эйлеров путь, называется эйлеровым.
Степенью исхода вершины v в орграфе называют количество дуг, имеющих своим началом v. Степень исхода вершины v обозначают d+(v) = |«(v) |.
Степенью захода вершины v в орграфе называют количество дуг, имеющих своим концом v. Степень захода вершины v обозначают d-(v) = |а-1 (v)|.
В неориентированном графе d+(v) = d-(v) := d(v). Число d(v) называется степенью вершины v. При этом вершина называется четной или нечетной в зависимости от соответствующего свойства числа.
Источником называется вершина, степень захода которой равна 0.
Стоком называется вершина, степень исхода которой равна 0.
Орграф G = (V, а) называется связным, если (V u, v e V) (3 v1, v2,..., vn e V)(u = v1 & (vi5 v2) e e а U а-1 & (v2 , v3) e а U а-1 & ... & (vn — 1,vn) e а U а-1).
Орграф, состоящий из объединения эйлеровых орграфов, называется квазиэйлеровым.
Транспортной сетью назовем орграф G = (V, а) с источником s и стоком t, где каждая дуга (u, v) имеет неотрицательную пропускную способность c(u, v) и цену cost(u,v).
Потоком в транспортной сети G = (V, а) называется функция flow: а ^ R, удовлетворяющая следующим свойствам:
1. flow(u, v) < c(u, v) — ограничение, связанное с пропускной способностью;
2. flow(u, v) = —flow(v, u) — антисимметричность;
3. (V v e (V — {s, t}))( flow(u, v) = 0) — сохранение потока.
u£V
Величина потока |flow| определяется как flow(s,v).
v£V
Максимальным потоком в транспортной сети называется поток максимальной величины.
Единичной транспортной сетью назовем орграф G = (V, а) с источником s и стоком t, где каждая дуга (u,v) имеют пропускную способность c(u,v) = 1 и цену cost(u,v) = 1.
Дуга (u,v) в транспортной сети называется насыщенной потоком, если flow(u,v) > 0.
Остаточной пропускной способностью дуги (u, v) e а называется величина Cf (u,v) = c(u,v) —
— f (u,v)-
Для заданной транспортной сети G = (V, а) и потока flow(u, v) остаточной транспортной сетью, порожденной потоком flow(u,v), является сеть Gf = (V, аf), где аf = {(u,v) e V х V : Cf (u, v) > 0}.
Для заданной транспортной сети С = (V, а) и потока /1ош(п, V) увеличивающим путем является путь из 5 в Ь в остаточной сети С/ = (V, а/).
Стоимостью потока называется величина ^ /1ош(п, V) ■ еозЬ(п, V).
и,и£ V
Максимальным потоком минимальной стоимости в транспортной сети называется поток, стоимость которого не больше стоимости любого другого максимального потока.
3. СХЕМА РЕШЕНИЯ ЗАДАЧИ
Лемма 1 (существование решения задачи). Для орграфа (? = (V, а) всегда возможно добавить дуги так, чтобы полученный орграф стал эйлеровым.
Доказательство. Полный орграф, в котором между каждой парой вершин есть дуги в обоих направлениях и который может быть получен из любого орграфа добавлением дуг, является эйлеровым. □
Теорема 1 (см. [6]). Связный орграф тогда и только тогда является эйлеровым, когда (V V е V)(^+ (V) = й- (у)).
Балансом вершины V в орграфе назовем число ба/^) = й+^) — й- (V). Вершина считается положительной, отрицательной или нулевой в зависимости от соответствующего свойства числа ба/^).
В эйлеровом орграфе баланс каждой вершины равен нулю. Это следует из теоремы 1. Путем добавления минимального количества дуг необходимо добиться выполнения этого условия. Для этого для каждой вершины V необходимо добавить как минимум |6а1 (V) | инцидентный ей дуг, чтобы ее баланс стал нулевым. Дуги можно добавлять только из дополнения орграфа С' = (V, а — Д).
Число добавленных дуг в орграфе не может быть меньше, чем сумма балансов всех вершин, деленная пополам, формально ( ^ |Ьа1 (V)|)/2. Иначе в орграфе останутся ненулевые вершины.
Лемма 2. Каждая добавленная дуга будет содержаться либо в цикле из добавленных дуг, либо в пути из отрицательной вершины в положительную вершину.
Доказательство. Рассмотрим две произвольные вершины п и V
Ги\____________________________________________________уГу ) исходного орграфа такие, что не существует дуги из вершины п в
вершину V. Добавим дугу (п, V) (рис. 1). Добавленные дуги будем Рис- 1 обозначать пунктиром.
Посмотрим, как такое преобразование исходного орграфа повлияет на степени вершин. Возможны несколько случаев:
1. Ьа1(п) < 0. В этом случае вершина п является отрицательной. После добавления дуги (п, V) ее баланс увеличился на единицу и приблизился к нулю. Баланс вершины V в таком случае может быть либо положительным, либо неположительным.
1.1. ба/^) > 0. В этом случае вершина V являлась положительной. Ее баланс при добавлении
дуги уменьшился на единицу и приблизился к нулю. Добавлен путь из отрицательной вершины в
положительную. Утверждение леммы выполнено.
1.2. ба/^) < 0. Чтобы сделать баланс вершины V нулевым, необходимо добавить |Ьа1 (V)| дуг, имеющих началом вершину V, как было сказано выше. После добавления дуги (п, V) необходимо
будет добавить еще одну дугу, имеющую началом [и)____________________________________>(™) вершину V, т. е. на одну дугу больше, чем требова-
лось для исходного орграфа. Пусть добавлена дуга Рис- 2 (V,ш) (рис. 2).
Ситуация с вершиной ш будет аналогичной. Если ее баланс положителен, то утверждение леммы выполнено, если неположителен, то необходимо будет добавить дугу, имеющую началом вершину ш. Так как в работе рассматриваются конечные орграфы, то возможны две перспективы. Либо в исходный орграф добавится путь из отрицательной вершины п в некоторую положительную вершину, либо добавится цикл. Утверждение леммы выполнено.
2. Ьа1(п) ^ 0. В этом случае вершина п является неотрицательной. Чтобы ее баланс сделать нулевым, необходимо добавить |Ьа1(п)| дуг, имеющих своим концом вершину п. После добавления дуги (п, V) ее баланс увеличился на единицу. Следовательно, необходимо будет добавить еще одну
0-
•>©-
Рис. 3
О
дугу, имеющую своим концом вершину и. Обозначим такую дугу (ад, и) (рис. 3).
Если вершина являлась отрицательной, то тогда ее баланс увеличится на единицу и приблизится к нулю. Иначе надо будет добавлять дугу (и>1, ад), чтобы приблизить баланс вершины ад к нулю. С вершиной ад1 произойдет аналогичная ситуация. В конце концов, в исходный орграф добавится дуга (адг+1 ,м^, где вершина ад^+1 будет отрицательной, либо добавится цикл. При добавлении цикла утверждение леммы выполнено. Если процесс «закончится» на положительной вершине, то необходимо будет рассмотреть два варианта.
2.1. 6а1(г>) > 0. В этом случае баланс вершины V является положительным. Добавлен путь из отрицательной вершины в положительную вершину.
2.2. 6а1^) < 0. Случай аналогичен пункту 1.2.
В итоге каждая добавленная дуга будет содержаться либо в пути из отрицательной вершины в положительную, либо в цикле из добавленных дуг. □
Конструктивный смысл леммы заключается в том, что в исходный орграф добавляются либо пути из отрицательных вершин в положительные, либо циклы.
Изначально орграф представляет множество компонент связности, из которых часть — эйлеровы компоненты связности, а остальные нет. Обозначим число неэйлеровых компонент связности через с, а число эйлеровых — через е.
Чтобы сделать баланс каждой вершины нулевым, будем добавлять пути из отрицательных вершин в положительные вершины. Назовем такой способ добавления дуг добавлением по принципу путей (в дальнейшем — ДПП).
Лемма 3. Минимальное число путей, которое необходимо добавить в способе ДПП, состав-
ляет ^2 |6а1^)| I /2.
ЧиеУ )
Доказательство. Каждый добавленный путь изменяет балансы двух ненулевых вершин. □
В дальнейшем будем обозначать к = I ^ |6а1^)| I /2.
)
ДПП, в котором среди всех возможных способов добавления путей будет суммарное минимальное число дуг, назовем оптимальным добавлением по принципу путей (в дальнейшем — ОДПП). Количество дуг в ОДПП обозначим через т. Нахождение ОДПП и добавление дуг из этого способа позволяет получить квазиэйлеров орграф. Действительно, все вершины полученного орграфа являются нулевыми. Однако это не гарантирует того, что полученный орграф будет связным. О том, как конструктивно найти дуги, входящие в ОДПП, и сделать исходный орграф связным, будет сказано ниже.
При добавлении т дуг в исходный орграф может получиться разное количество компонент связности. Покажем это на примере. Рассмотрим орграф на рис. 4, а. Для данного орграфа к = 3. Значит, минимальное число путей в ОДПП для данного орграфа равно трем, следовательно, минимальное число добавленных дуг т не может быть меньше трех. Путем добавления трех дуг в орграф на рис. 4, а можно получить качественно разные результаты: орграф на рис. 4, б имеет три компоненты связности, орграф на рис. 4, в — две компоненты связности, орграф на рис. 4, г — одну.
Рис. 4
Пусть в исходный орграф добавлены дуги из способа ОДПП. Имеет место
Лемма 4. Путем некоторых действий с т добавленными дугами из способа ОДПП можно все неэйлеровы компоненты связности «соединить» в одну. В итоге в полученном орграфе будет ровно е + 1 компонент связности.
Доказательство. Рассмотрим две компоненты связности полученного орграфа, в которых присутствуют добавленные дуги. Для определенности обозначим добавленную дугу в первой компоненте через (и1 , и2), а во второй — ^^2) (рис. 5, а). Таким образом, в полученном орграфе нет дуг (и1 ^2) и (V!, и2), иначе рассматриваемые дуги не принадлежали бы разным компонентам связности. Заменим дуги (и1 , и2) и ^^2), на дуги (и^2) и ^,и2) (рис. 5, б). Для этого удалим дуги (и15и2) и (V],^2) и добавим дуги (и^2) и ^,и2). В этом случае балансы вершин и1, V],, и2, v2 не изменились, две компоненты связности «соединились», а число добавленных дуг осталось прежним. Проделывая данные действия с добавленными дугами, пока это возможно и необходимо, можно добиться того, что в орграфе останется е + 1 компонент связности. □
Рис. 5
Пример. Рассмотрим орграф на рис. 4, в. В нем есть две компоненты связности: первая состоит из вершин 1, 2, 3, 4, 5, вторая — из вершин 6, 7. «Соединим» эти компоненты. Возьмем добавленную дугу (2, 3) из первой компоненты связности и дугу (6, 7) из второй компоненты связности. Заменим выбранные дуги на дуги (2, 6) и (7, 3). В итоге получим связный эйлеров орграф (см. рис. 4, г).
Из леммы 4 можно вывести, что в плане объединения неэйлеровых компонент все ОДПП эквивалентны. Ее доказательство дает конструктивный метод «соединения» всех неэйлеровых компонент в орграфе после добавления дуг из ОДПП.
Осталось сделать полученный орграф связным. На данном этапе орграф состоит из е + 1 компонент связности, е из которых были эйлеровыми компонентами в исходном орграфе. Оставшуюся компоненту, которая получена после преобразований в леммы 4, назовем базисной.
Дуги в произвольной ОДПП — это к путей из отрицательных вершин в положительные. Обозначим через 11, 12, .. ., 1к длины путей в этом способе, где ^ — длина г-го пути, 1 < г < к.
Лемма 5. Путем некоторых действий с добавленными дугами из способа ОДПП можно «при-
к
соединить» как максимум ^ (^ — 1) = т — к изначально эйлеровых компонент связности к
г = 1
базисной компоненте.
Доказательство. Выберем произвольный путь и, v1, .. ., vn, V из п+1 добавленных дуг (рис. 6, а). Путем работы с данными дугами можно «соединить» как максимум п компонент связности. Для этого выберем одну из «промежуточных» вершин пути (не и и не V), для определенности вершину v1, удалим входящую в нее добавленную дугу, в данном случае (и^), удалим выходящую из нее дугу ^^2) и добавим дуги (и, г), (г^2), где г — вершина из «несоединенной» компоненты связности (рис. 6, б). В результате количество компонент связности уменьшилось на 1. Данные преобразования можно проделывать с другими промежуточными вершинами выбранного пути, пока есть «несоединенные» компоненты связности.
Рис. 6
Выбрав другой путь из добавленных дуг длины 1еп, можно «присоединить» еще 1еп — 1 компонент связности к базисной компоненте. В результате всего можно «соединить» как максимум
к
— 1) = т — к компонент связности, где 1г — длина г-го пути в способе ОДПП. Всего данные
г = 1
преобразования необходимо будет проделывать тт(е,т — к) раз, либо пока есть «несоединенные» эйлеровы компоненты, либо пока есть для этого возможность. □
Пример. Пусть дан орграф на рис. 7, а. У него есть три ненулевых вершины: 1, 2 и 3. Путем добавления трех дуг, указанных пунктиром на рис. 7, б, получим квазиэйлеров орграф. Добавлены два пути: 2, 1, 3 и 2, 3. Базисной компонентой является компонента связности, состоящая из вершин
1, 2, 3. Выберем промежуточную вершину 2 и одну из вершин в «несоединной» компоненте, для определенности 5. Удалим дуги (2,1) и (1, 3) добавим дуги (2, 5) и (5, 3) по рецепту леммы 5. В итоге получим связный эйлеров орграф на рис. 7, в.
Рис. 7
Для того чтобы соединить оставшиеся е — (т — к) компонент связности, если е > т — к, потребуется еще как минимум такое же число дуг. Тем самым будет добавлен цикл. Возьмем одну из добавленных дуг (и,у) и вместо нее добавим путь и, и>г, . .., гшп, V, где — вершина в «несоединенной» компоненте связности, — вершина в другой «несоединенной» компоненте связности и т. д. Данные преобразования показаны на рис. 8, а, б.
0------*0
( 0) ;ч
-----------[-Х щ
Рис. 8
В итоге всего в исходный орграф необходимо будет добавить т + тах(е — т + к, 0) дуг. Докажем оптимальность предложенного метода.
Теорема 2. Величина т + тах(е — т + к, 0), где т — количество дуг в способе ОДПП, е —
количество эйлеровых компонент в исходном орграфе, к = ^ |6а1(у)| I /2, является минималь-
\уеУ )
но возможным числом дуг, которые необходимо добавить в исходный орграф, чтобы он стал эйлеровым.
Доказательство. Допустим, от противного, что существует решение, в котором используется меньшее число дуг. Из леммы 2 известно, что каждая добавленная дуга содержится либо в пути из отрицательной вершины в положительную, либо в цикле. Покажем, что в любом методе решения
задачи в орграф будет добавлено точно k путей из отрицательных вершин в положительные. Путей не может быть меньше, чем k, согласно лемме 3. Покажем, что их также не может быть больше, чем k. Пусть уже добавлено k путей в исходный орграф из отрицательных вершин в положительные. При добавлении некоторого пути из вершины u в вершину v необходимо будет добавить путь из вершины v в вершину u, чтобы сделать баланс всех вершин нулевым. Таким образом, в орграф будет добавлен цикл, а число добавленных путей останется прежним.
После нахождения дуг в способе ОДПП и построений в доказательстве леммы 4 и леммы 5 возможны две ситуации: либо не осталось «несоединенных» эйлеровых компонент, если e < m — k, либо остались такие компоненты, если e > m — k. Первый случай не нуждается в дополнительном рассмотрении, так как число дуг в ОДПП по определению минимально, а преобразования в лемме 4 и лемме 5 не требуют новых добавленных дуг. Рассмотрим второй случай, когда e > m — k. Предположим, существует некоторый альтернативный набор из k путей с m' дугами. Ясно, что m' > m, иначе получаем решение, приведенное выше. Имея m' дуг, можно «соединить» все неэйлеровы компоненты связности исходного орграфа и еще как максимум m' — k эйлеровых компонент исходного орграфа. В дальнейшем возможны два варианта: либо в орграфе остались еще «несоединенные» эйлеровы компоненты, формально e > m' — k, либо нет, если e < m' — k. В первом случае добавлено всего m' + (e — m' + k) = e + k дуг (нам понадобится дополнительно e — m' + k дуг, чтобы «соединить» оставшиеся эйлеровы компоненты связности в цикл), что не улучшает ранее предложенный метод. Рассмотрим второй случай: e < m' — k, т. e. m' ^ e + k. В то же время предполагается, что найдено лучшее решение задачи, т. е. m' должно быть строго меньше, чем m + (e — m + k) = e + k. Таким образом, получаем противоречие: m' > e + k и m' < e + k.
Рассмотрев все возможные случаи, делаем вывод, что для решения поставленной задачи необходимо добавить как минимум m + max(e — m + k, 0) дуг в исходный орграф. □
Вернемся к рассмотрению дуг в способе ОДПП. Эти дуги составляют набор путей из отрицательных вершин в положительные вершины, как было сказано выше. Наглядно данная схема представлена на рис. 9, а, где out^ 1 < i < l, — это отрицательные вершины, а in, 1 < i < h, — положительные.
Скорректируем способ ДПП: добавим в орграф новые вершины begin и end, а также для каждой отрицательной вершины outi, 1 < i < l, добавим |bal(outi)| дуг и для каждой положительной вершины ini, 1 < i < h, добавим |bal(ini)| дуг (рис. 9, б). Данную корректировку назовем расширенной ДПП.
out 1 —*
1 >
out 2 1 . J
1 ■^
oute
1
—J inx к .
и
r. in 2 к .
A
■- >1
Рис. 9
Теорема 3. Дуги, содержащиеся в расширенном способе ДПП, соответствуют дугам в единичной транспортной сети, которые насыщены потоком. При этом: s ^ begin, t ^ end и (u, v) е ДПП ^ flow(u, v) = 1.
Доказательство. Связкой путей B(u, v) между вершинами u и v в орграфе G = (V, а) назовем произвольный набор путей из вершины u в вершину v. Очевидно, что дуги в расширенном способе ДПП — связка путей между вершинами begin и end, формально B(begin, end).
Рассмотрим дуги в единичной транспортной сети, насыщенные потоком. Это множество путей из источника в сток, непересекающихся по дугам, так как пропускная способность каждой дуги
изначально равна единице, т. е. эти дуги представляют собой связку путей между источником и стоком, формально В(з,Ь).
В итоге, с абстрактной точки зрения, дуги из расширенного способа ДПП и дуги в единичной транспортной сети, насыщенные потоком, не различаются. □
Конструктивный смысл теоремы состоит в том, что для поиска дуг в расширенном способе ДПП можно использовать потоковые алгоритмы.
Величина максимального потока минимальной стоимости в единичной транспортной сети равна ^2 /1оэд(и, V), так как пропускная способность и цена каждой дуги равна единице. Как видно,
и,и£ V
эта величина соответствует количеству дуг, насыщенных потоком. Следовательно, для нахождения дуг из расширенной ОДПП необходимо найти максимальный поток минимальной стоимости в единичной транспортной сети.
Основываясь на вышеприведенных выкладках, предложим алгоритм нахождения оптимальной эйлеровой реконструкции путем добавления дуг.
4. АЛГОРИТМ
1. Преобразуем исходный орграф 3 = (V, а) в транспортную сеть:
- придаем каждой дуге (и, V) пропускную способность (с, V) = 0 и цену со5Ь(и, V) = 0;
- к исходному орграфу добавляем две новые вершины: источник 5 и сток Ь;
- для каждой вершины V, такой что й+(и) < (V), добавляем |6а1(г>)| дуг (з,г>), с ценой и
пропускной способностью равными 1;
- для каждой вершины V, такой что (V) > (г>), добавляем |6а1(г>)| дуг (V, Ь), с ценой и пропускной способностью равными 1;
- в орграф 3 = (V, а) добавляем всевозможные дуги из его дополнения, полагая их пропускную способность и цену равными 1.
2. Находим максимальный поток минимальной стоимости между источником 5 и стоком Ь в построенной транспортной сети.
3. «Соединяем» все неэйлеровы компоненты связности и еще т — к эйлеровых по рецепту леммы 4 и леммы 5.
4. Добавляем еще таж(е — т + к, 0) дуг, чтобы «соединить» оставшиеся компоненты связности.
5. АСИМПТОТИЧЕСКАЯ СЛОЖНОСТЬ АЛГОРИТМА
Время, затраченное на выполнение пунктов 1, 3, 4 алгоритма, не превосходит 0(п2), где п = IV|
— количество вершин в исходном орграфе. В итоге время алгоритма равно времени поиска максимального потока минимальной стоимости. На данный момент известна реализация за 0(п4) (см. [7]).
Библиографический список
1. Салий В. Н. Оптимальные реконструкции графов // университета : материалы итог. студ. науч. конф. Сара-Современные проблемы дифференциальной геометрии тов, 2010. С. 52-54.
и общей алгебры. Саратов, 2008. С. 59-65. 4. Свидетельство о гос. регистрации программы для
ЭВМ № 2100616499, выданное Роспатентом. Опти-
2. Гавриков А. В. Оптимальная переориентация дуг орграфа, приводящая к эйлерову орграфу // Наука и образование: проблемы и перспективы : материалы 11-й региональной науч.-практ. конф. асп., студ. и учащихся (Бийск, 15-16 мая 2009 г.) : в 2 ч. Бийск, 2009. Ч. 2. С. 271-273.
мальные эйлеровы реконструкции ориентированных графов / Гавриков А. В.; зарегистр. в Реестре программ для ЭВМ 30.09.2010.
5. Басакер Р., Саати Т. Конечные графы и сети : пер. с англ. М., 1973.
6. Богомолов А. М., Салий В. Н. Алгебраические ос-
3. Гавриков А. В. Оптимальная квазиэйлерова рекон- новы теории дискретных систем. М., 1997. струкция орграфа путем удаления дуг // Научные ис- 7. Седжвик Р. Фундаментальные алгоритмы на С++. следования студентов Саратовского государственного Алгоритмы на графах : пер. с англ. СПб., 2002.