Учебное пособие 985
.pdfМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Воронежский государственный архитектурно– строительный университет»
В.К. Каверина
ЗАДАЧИ ОПТИМИЗАЦИИ И ПЛАНИРОВАНИЯ
Учебное пособие
Воронеж 2015
УДК 517.15 ББК 22.176я73
К125
Каверина, В.К.
К125 Задачи оптимизации и планирования на сетях: учеб. по-
собие / В.К. Каверина; Воронежский ГАСУ. – Воронеж, 2015. – 62 с.
В учебном пособии излагаются основы теории графов и представлены алгоритмы, предназначенные для решения прикладных задач с помощью теории графов. Разобранные задачи имеют экономическую интерпретацию, а методы их решения находят широкое практическое применение. Каждый раздел сопровождается упражнениями.
Учебное пособие предназначено для магистрантов всех направлений, изучающих курсы дискретной математики и дискретного программирования, включенные в современные образовательные стандарты. Пособие будет полезно магистрантам и аспирантам в качестве дополнительного материала при изучении основ теории графов и задач планирования и оптимизации на сетях.
Ил. 33. Табл. 6. Библиогр.: 11 назв.
УДК 517.15 ББК 22.176я73
Печатается по решению учебно-методического совета Воронежского ГАСУ
Рецензенты:
кафедра высшей математики и теоретической механики Воронежского государственного аграрного университета им. Петра I;
М.Е. Семенов, д-р физ.-мат. наук, проф.
ISBN 978-5-89040-569-2 |
© |
Каверина В.К., 2015 |
|
© |
Воронежский ГАСУ, 2015 |
Введение
Основу теории графов составляет совокупность методов и представлений, которые сформировались при решении конкретных прикладных задач. Во множестве математических объектов графы занимают одно из ведущих мест в качестве основы формирования моделей реальных систем. В рамках теории графов выделяют два основных класса задач. В первом требуется ответить на вопрос, существуют ли графы, обладающие определенным свойством, и если да, то какова оценка их количества. Во втором нужно определить, как построить граф или подграф, обладающий некоторым заданным свойством.
Начало теории графов относят к 1736 году, когда Л. Эйлер решил популярную в то время задачу о кенигсбергских мостах: можно ли совершить прогулку по берегам реки, соединенным семью мостами так, чтобы, выйдя из дома, вернуться обратно, пройдя в точности один раз по каждому мосту?
Однако этот результат более ста лет оставался единственным результатом теории графов. Толчок к развитию теория графов получила в середине XIX века, когда Г. Киркгоф разработал теорию деревьев для исследования электрических цепей, а А. Кэли решил перечислительные задачи для трех типов деревьев.
В настоящее время теория графов стала популярным средством решения задач, связанных с дискретными объектами. К ним, в частности относятся: проектирование и исследование сетей связи, электрических и монтажных схем, программных систем; исследование автоматов, анализ и синтез логических цепей; задачи календарного планирования; поиск информации; разработка стратегий инвестиций; анализ качества, исследование движения транспорта, размещение предприятий коммунального обслуживания, исследование поведения индивидуумов.
Глава 1. Основные понятия
1.1. Формы представления графов. Подграфы. Степени вершин
Определение 1.1. Граф G = ( X ,U ) задан, если даны два конечных множества: а) множество вершин X = {x1 , x2 ,..., xn } ;
б) множество ребер U = {u1 , u2 ,..., um } , состоящее из некоторых пар элементов uk = (xi , x j ) множества вершин X .
Для наглядности геометрически вершинам графа сопоставляют точки, а ребрам – линии, соединяющие некоторые из этих точек.
3
Данное определение графа должно быть дополнено в одном важном отношении. В определении ребра можно принимать или не принимать во внимание порядок расположения двух его концов. Если этот порядок является несущественным, то есть u = (xi , x j ) = (x j , xi ) , то говорят, что ребро
u - неориентированное; если же этот порядок является существенным, то есть, например, xi - начало, а x j - конец ребра, то u называется ориенти-
рованным ребром или дугой.
Определение 1.2. Граф называется неориентированным (неоргра-
фом), если каждое его ребро не ориентировано.
Определение 1.3. Граф называется ориентированным (орграфом),
если каждое его ребро ориентировано, причем xi называется начальной вершиной ребра, а x j - конечной вершиной ребра (xi , x j ) .
Замечания. 1) ориентация ребра указывается стрелкой; 2) говорят, что дуга (xi , x j ) выходит из вершины xi и заходит в вершину x j ; 3) любой неориентированный граф можно трактовать как ориентированный, заменив каждое неориентированное ребро на две дуги, противоположно на-
правленные; 4) граф, имеющий как ориентированные, так и неориентированные ребра, называется смешанным.
Петлей называется ребро (xi , xi ) , у которого начальная и конечная
вершины совпадают. Граф, полученный из орграфа заменой каждой дуги на ребро, называется основанием графа.
Если пара вершин графа соединяется несколькими различными ребрами или дугами, то ребра называются кратными, а их количество – крат- ностью ребра. Граф с кратными ребрами без петель называется мульти- графом. Граф с петлями и кратными ребрами называется псевдографом. Граф без петель и кратных ребер называется простым графом.
Пример 1.1.
x1 |
|
x |
2 |
x |
|
x |
2 |
x |
|
x2 |
x |
|
|
|
|||||||||
|
|
|
1 |
|
|
1 |
|
1 |
|||
|
а) |
|
|
б) |
|
|
в) |
г) |
|||
|
|
|
|
|
Рис. 1.1 |
|
|
|
|||
|
На рис. 1.1 а), в) изображены неорграф и смешанный граф соответст- |
||||||||||
венно, у которых кратность ребра (x1 , x2 ) |
равна трем. На рис. 1.1 |
б) изо- |
бражен орграф, у которого кратность ребра (x1 , x2 ) равна двум. На рис. 1.1 г) приведен пример петли (петля обычно считается неориетированной).
Пример 1.2. На рис. 1.2: а) – псевдограф, б) – мультиграф, в) - простой граф.
Определение 1.4. Две вершины графа xi , x j называются смежными, если существует соединяющее их ребро (xi , x j ) , при этом xi , x j называ-
ются концами ребра.
4
x2 |
|
x2 |
|
x2 |
|
x1 |
x3 |
x |
x3 |
x1 |
x3 |
|
|
1 |
|
|
|
|
а) |
|
б) |
|
в) |
|
|
|
Рис 1.2 |
|
|
Определение 1.5. Два ребра смежны, если они имеют общую вершину.
Определение 1.6. Если ребро соединяет вершины xi , x j , то говорят, что ребро инцидентно вершинам xi , x j , а, в свою очередь, вершины xi , x j
инцидентны этому ребру (xi , x j ) .
Вершина, для которой не существует инцидентных ей ребер, называется изолированной. Вершина, для которой существует только одно инцидентное ей ребро, называется висячей.
x 1 |
|
x 2 |
x 1 |
x 2 |
x 4 |
|
x 3 |
x 4 |
|
x 3 |
|
|||||
|
|
||||
|
Рис. 1.3 |
|
|
Рис. 1.4 |
Пример 1.3. На рис. 1.3 изображен неориентированный граф, имеющий 4 вершины, 5 ребер. Смежными вершинами являются, например, x1 и x2 , x1 и x4 ; смежными ребрами являются (x1 , x4 ) и (x4 , x2 ) ; ребро (x1 , x2 ) инцидентно вершинам x2 , x1 ; а вершина x3 инцидентна ребрам (x3 , x2 ) и (x4 , x3 ) .
На рис. 1.4 изображен ориентированный граф, имеющий 4 вершины, 6 дуг. Смежными вершинами являются x1 и x2 , x2 и x3 ; смежными дугами являются (x4 , x3 ) и (x3 , x2 ) ; (x3 , x4 ) и (x3 , x2 ) ; дуга (x4 , x3 ) инцидентна вершинам x3 , x4 ; а вершина x4 инцидентна ребрам (x3 , x4 ) , (x4 , x3 ) и (x4 , x1 ) .
Пусть Γ(xi ) - множество вершин x j , для которых в графе G существует ориентированная дуга (xi , x j ) , тогда это множество называется окре- стностью вершины xi . Используя понятие окрестности, граф определяют как совокупность множества вершин и множества окрестностей в виде G = ( X , Γ) , где Γ - неоднозначное отображение, ставящее в соответствие
каждой вершине подмножество Γ(xi ) в X . Γ −1 (xi ) - множество вершин x j , для которых в графе G существует дуга (x j , xi ) . Например, для графа,
5
изображенного на рис. 1.4, множество Γ(x4 ) = {x1 , x3 }, а множество
Γ −1 (x2 ) = {x1 , x3 }.
Если граф ориентированный, то говорят, что дуга (xi , x j ) исходит из вершины xi и заходит в вершину x j . Число дуг, которые имеют вершину xi своей начальной вершиной, называют полустепенью исхода вершины xi
и обозначают d − (xi ) . Число дуг, которые имеют вершину xi своей конечной вершиной, называют полустепенью захода xi и обозначают d + (xi ) . Заметим, что d + (xi ) = Γ −1 (xi ) , d − (xi ) = Γ(xi ) .
Для неориентированного графа G степенью или валентностью вершины xi , называется число ребер, инцидентных вершине xi , то есть число ребер концом которых является вершина xi (при этом петли считаются дважды). Степень вершины xi будем обозначать d (xi ) . Для ориенти-
рованного графа степень вершины xi определяется следующим образом d (xi ) = d − (xi ) + d + (xi ) .
Иначе говоря, степени вершин ориентированного графа есть степени вершин в соответствующем неориентированном графе.
Поскольку каждое ребро инцидентно двум вершинам, в сумму степеней вершин графа каждое ребро вносит двойку. Таким образом, мы приходим к утверждению, которое установлено Эйлером и является исторически первой теоремой теории графов.
Теорема 1.1. Сумма степеней вершин графа G равно удвоенному числу его ребер:
∑ d (xi ) = 2m ,
i
где m - число ребер графа. Изолированная вершина имеет степень 0, висячая вершина – степень 1.
Последовательность d1 ³ ... ³ d n называется графической, если существует граф G на n вершинах x1 ,..., xn такой, что степень d (xi ) вершины xi равна di для любого i . В этом случае d = {d1 ,..., d n } называется после-
довательностью степеней графа или степенной последовательностью.
Рассмотрим графы, обладающие определенными свойствами.
Граф, в котором две любые вершины смежны, называется полным. Полный орграф называется турниром. Этот термин получил свое название
от соревнований по круговой системе, графическое представление которых имеет структуру полного ориентированного графа. В турнирах по круговой системе играют несколько команд, каждая со всеми остальными по одному разу. Игра по правилам не может закончиться в ничью. В представлении графом командам соответствуют вершины, а дуга (x, y) присутствует тогда и только тогда, когда команда x победила команду y . Количество очков команды соответствует числу побежденных ею противников или числу элементов в ее окрестности Γ .
6
Граф G , который можно изобразить на плоскости так, чтобы ника-
кие два ребра не пересекались в точках, отличных от вершин, называется
планарным графом.
Пример 1.4. На рис. 1.5: а) - полный неорграф, б) - полный орграф, в) – планарный граф.
а) |
|
|
|
б) |
|
в) |
|
Рис. 1.5 |
|
|
|||
В графе можно выделить части – |
подграфы, обладающие некоторы- |
|||||
ми свойствами. Рассмотрим граф G = ( X ,U ) . |
|
|
||||
Определение 1.7. Граф |
G |
′ |
|
′ ′ |
называется |
подграфом графа |
|
= ( X ,U ) |
G , если X ′ X и U ′ U .
Иначе говоря, от исходного графа остается некоторое подмножество вершин и некоторое подмножество ребер или дуг, соединявших эти вершины.
Определение 1.8. Если X = X ′ , то такой подграф называется остов-
ным.
Примером остовного подграфа может быть подграф Gu = ( X ,U \ u) , полученный из неорграфа G = ( X ,U ) путем удаления ребра u , в дальней-
шем такой подграф будем обозначать сокращенно Gu = G − u . Определение 1.9. Порожденным подграфом графа G на множестве
вершин X |
′ |
называется подграф G |
′ |
|
|
′ ′ |
что U |
′ |
содержит все |
|
|
||||||||||
|
|
|
= ( X ,U ) , такой, |
|
|
|
|||||||||||||||
те ребра из U , которые соединяют вершины из X ′ . |
|
|
|
|
|
|
|
|
|||||||||||||
Определение 1.10. Подграф G′ |
графа G называется максимальным |
|
|
||||||||||||||||||
подграфом по отношению к некоторому свойству P , если G′ обладает |
|
|
|||||||||||||||||||
свойством P и G′ не является подграфом никакого другого подграфа гра- |
|
|
|||||||||||||||||||
фа G , обладающего свойством P . |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
x2 |
|
|
|
|
|
|
|
x2 |
|
|
|
x2 |
|
|
|
|
x2 |
|
|
||
x |
|
|
|
x |
|
x |
|
|
|
|
|
x3 |
x1 |
|
x3 |
x1 |
|
|
|
x3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
1 |
|
|
|
|
3 |
1 |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
x |
|
|
|
|
|
x4 |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
x6 |
|
|
|
4 |
x6 |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x4 |
|||||||
|
|
|
|
|
|
|
|
|
|
x4 |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
x5 |
|
|
|
|
|
|
|
x5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
а) |
|
|
|
|
|
|
|
б) |
|
|
|
в) |
|
|
|
|
г) |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
Рис. 1.6 |
|
|
|
|
|
|
|
|
7
Пример 1.5. На рис 1.6 : а) – данный граф, б) – |
остовный подграф, в) |
– порожденный подграф, г) – подграф. |
|
Пример 1.6. Пусть G = ( X ,U ) представляет |
собой карту автомо- |
бильных дорог России: множество вершин X - это города, а множество ребер U - это дороги между городами. Тогда карта всех дорог Воронежской области – это порожденный подграф, а карта всех федеральных трасс России – это остовный подграф.
Задачи и упражнения
1.1. Изобразите графически следующие графы:
а) G1 = ({x1 , x2 , x3 },{(x1 , x2 ), (x1 , x3 ), (x1 , x1 ), (x2 , x3 )}) ;
б) G2 = ({x1 , x2 , x3 , x4 },{(x1 , x2 ), (x1 , x4 ), (x2 , x4 ), (x3 , x3 ), (x3 , x4 ), (x4 , x1 )}) .
1.2. Для графа, изображенного на рис. 1.7, найти:
а) Γ(x2 ) , Γ −1 (x2 ) ; б) d − (x2 ) , d + (x2 ) ;
x1
x5 x2
x4 x3
Рис. 1.7
1.3. Для графа G = ( X ,U ) , изображенного на рис. 1.7, описать: а) описать порожденный подграф G′ , у которого X ′ = {x1 , x2 , x3 , x4 };
′ |
где (xi , x j ) U |
′ |
тогда и только тогда, когда |
б) остовный подграф ( X ,U ) , |
|
||
i + j нечетно. |
|
|
|
1.4. Для неориентированного графа доказать, что число вершин с не- |
|||
четной степенью четно (нуль – |
четное число). |
|
|
1.2. Путь, цепь, контур, цикл. Связность графа
Определение 1.11. Путем в орграфе G называется такая последовательность дуг, в которой конец каждой предыдущей дуги совпадает с на-
чалом следующей. Для неорграфа такая последовательность ребер называется цепью. Под длиной пути (цепи) подразумевается количество дуг (ре-
бер) которые составляют этот путь (цепь).
Определение 1.12. Если каждой дуге (ребру) приписано некоторое число, называемое весом, то граф называется взвешенным.
8
В случае взвешенного графа, длина пути (цепи) – это сумма весов
дуг (ребер), входящих в этот путь.
Определение 1.13. Путь (цепь) называется простым(-ой), если в нем никакая дуга (ребро) не встречается дважды, и составным(-ой) - в про-
тивном случае.
Определение 1.14. Путь (цепь) называется элементарным(-ой), если в нем ни одна вершина не встречается дважды.
Определение 1.15. Путь (цепь), у которого(-ой) начальная и конечная вершина совпадают, называется контуром (циклом).
Пример 1.7.
|
u2 |
x3 |
|
|
u2 |
x3 |
|
|
|
|
|
|
|
u3 |
|||
|
|
|
|
|
|
|||
x2 |
|
u8 |
u3 |
u7 |
|
x4 |
||
|
|
|
|
x2 |
|
|
|
|
|
|
|
|
|
|
|
||
u |
|
u |
7 |
x4 |
|
|
|
|
1 |
|
|
|
|
u6 |
|
|
|
|
u6 |
|
|
u |
|
|
u4 |
|
|
|
u |
|
|
|
|||
x1 |
|
1 |
|
|
|
|
||
|
|
4 |
|
|
|
|
||
u5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x5 |
|
|
x5 |
|
x |
u5 |
|
|||
|
|
|
|
|||||
|
|
|
|
1 |
|
|
|
|
|
|
а) |
|
|
|
б) |
|
|
Рис. 1.8
Для неорграфа, изображенного на рис. 1.8 а):
1)элементарная цепь (x1 , x2 ) , (x2 , x3 ) , (x3 , x4 ) ;
2)элементарный цикл (x1 , x2 ) , (x2 , x3 ) , (x3 , x1 ) ;
3)простая цепь (x1 , x2 ) , (x2 , x3 ) , (x3 , x4 ) , (x4 , x2 ) ;
4)простой цикл (x1 , x2 ) , (x2 , x3 ) , (x3 , x4 ) , (x4 , x2 ) , (x2 , x5 ) , (x5 , x1 ) .
Для орграфа, изображенного на рис. 1.8 б):
1)простой путь (x1 , x2 ) , (x2 , x3 ) , (x3 , x4 ) , (x4 , x5 ) , (x5 , x2 ) ;
2)элементарный контур (x5 , x2 ) , (x2 , x3 ) , (x3 , x4 ) , (x4 , x5 ) .
Ниже приведем без доказательства утверждения, которые будут нам полезны в дальнейшем.
Утверждение 1.1. [3, гл.1, § 4] Объединение двух несовпадающих элементарных цепей, соединяющих вершины xi и x j , содержит цикл.
Утверждение 1.2. [3, гл.1, § 4] Если C и D - два несовпадающих цикла, имеющих общее ребро u , то граф (C D) − u также содержит цикл. (Доказать самостоятельно).
Определение 1.16. Неориентированный граф называется связным, если любые его вершины связаны цепью, иначе граф называется несвяз-
ным.
Для орграфов понятие связности является более содержательным. Можно выделить три типа связности орграфа.
9
Определение 1.17. Орграф называется слабо связным, если его основание есть связный граф; односторонне связным, если для любых двух
различных вершин xi и x j существует, по крайней мере, один путь из xi в x j , или из x j в xi ; сильно связным, если для любых двух различных вершин xi и x j существует путь из xi в x j и обратно.
Определение 1.18. Всякий максимальный связный подграф графа G
называется компонентой связности графа G или связной компонентой.
Еще раз напомним, что слово «максимальный» означает максимальный относительно включения, то есть не содержащийся в связном подграфе с бόльшим числом элементов.
Аналогично, для орграфа формулируется понятие односторонней компоненты связности, сильной компоненты связности.
Пример 1.8. На рис 1.9: а) – связный неорграф, б) – несвязный неорграф, содержащий две компоненты связности, в) – сильно связный орграф.
x |
|
|
|
x 2 |
x 4 |
x 2 |
|
x 4 |
2 |
|
x 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x 4 |
|
|
|
|
|
x 1 |
|
|
|
|
|
|
|
x 5 |
|
x 5 |
|
x |
x |
3 |
|||
|
|
x 3 |
1 |
|||||
|
|
|
x 1 |
x 5 |
|
|
||
|
|
|
|
|
|
|||
|
|
а) |
б) |
|
в) |
|
|
|
|
|
|
|
Рис. 1.9 |
|
|
|
|
|
|
Теорема 1.2. [3, гл.1, § 4] Каждый граф представляется в виде объе- |
динения своих связных компонент. Разложение графа на связные компоненты определено однозначно.
Отметим, что указанная теорема позволяет сводить большинство задач, касающихся графов, к случаю связных графов. Полезна также и следующая
Лемма 1.1. [3, гл.1, § 4] Пусть G = ( X ,U ) - связный граф. Тогда:
1) если ребро u U принадлежит какому-либо циклу графа G , то граф G − u связен;
2) если ребро u U не входит ни в какой цикл, то граф G − u имеет ровно две компоненты связности.
На вопрос, сколько ребер может быть в графе с n вершинами и фиксированным числом компонент связности k отвечает следующая
Теорема 1.3. [3, гл.1, § 4] Пусть число компонент связности простого графа G = ( X ,U ) равно k , число ребер m , число вершин n . Тогда справедлива следующая оценка
n − k ≤ m ≤ (n − k )(n − k + 1) , 2
причем обе эти оценки для m достижимы.
10