Максимальное количество попарно непересекающихся остовных деревьев в графе с n вершинами — различия между версиями
Строка 1: | Строка 1: | ||
− | == | + | ==Попарно непересекающиеся остовные деревья== |
{{Утверждение | {{Утверждение | ||
|id = max_spanning_tree | |id = max_spanning_tree | ||
Строка 21: | Строка 21: | ||
#Докажем для остальных ребер. '''(рис.5)''' <br>Возьмем ребро, которое не лежит на диаметре окружности. В данном остовном дереве есть ребро, которое имеет такую же длину дуги. Ориентируем данные ребра в сторону часовой стрелки. Чтобы повороты этих ребер совпали, нужно, чтобы совпали их начала и концы. Покажем, что их начала никогда не совпадут. Чтобы начало первого ребра совпало с началом второго, нужно первое ребро повернуть хотя бы на половину длины окружности, то есть на <tex> \dfrac{l}{2}</tex>. Для этого нам нужно сделать <tex> \dfrac{n}{2} </tex> поворотов: <tex> \dfrac{l}{n} \cdot \dfrac{n}{2} = \dfrac{l}{2}</tex>. Но мы делаем только <tex> \dfrac{n}{2} - 1</tex> поворот. Аналогично с поворотом второго ребра. Для нечетных <tex>n</tex> граф будет неполным, поэтому даже <tex> \dfrac{n}{2}</tex> поворотов может не хватить для совпадения ребер. | #Докажем для остальных ребер. '''(рис.5)''' <br>Возьмем ребро, которое не лежит на диаметре окружности. В данном остовном дереве есть ребро, которое имеет такую же длину дуги. Ориентируем данные ребра в сторону часовой стрелки. Чтобы повороты этих ребер совпали, нужно, чтобы совпали их начала и концы. Покажем, что их начала никогда не совпадут. Чтобы начало первого ребра совпало с началом второго, нужно первое ребро повернуть хотя бы на половину длины окружности, то есть на <tex> \dfrac{l}{2}</tex>. Для этого нам нужно сделать <tex> \dfrac{n}{2} </tex> поворотов: <tex> \dfrac{l}{n} \cdot \dfrac{n}{2} = \dfrac{l}{2}</tex>. Но мы делаем только <tex> \dfrac{n}{2} - 1</tex> поворот. Аналогично с поворотом второго ребра. Для нечетных <tex>n</tex> граф будет неполным, поэтому даже <tex> \dfrac{n}{2}</tex> поворотов может не хватить для совпадения ребер. | ||
[[Файл:Max spanning tree4.png|thumb|300px|center|Рис.5 Черным цветом выделены рассматриваемые ребра]] | [[Файл:Max spanning tree4.png|thumb|300px|center|Рис.5 Черным цветом выделены рассматриваемые ребра]] | ||
+ | |||
==См. также== | ==См. также== | ||
*[[Остовные деревья: определения, лемма о безопасном ребре]] | *[[Остовные деревья: определения, лемма о безопасном ребре]] | ||
*[[Остовное дерево в планарном графе]] | *[[Остовное дерево в планарном графе]] | ||
− | *[[Минимально узкое остовное дерево]] | + | *[[Минимально узкое остовное дерево]] |
− | + | ||
+ | ==Источники информации== | ||
+ | *Карпов Д. В. {{---}} Теория графов, стр 297 | ||
+ | |||
[[Категория: Алгоритмы и структуры данных]] | [[Категория: Алгоритмы и структуры данных]] | ||
[[Категория: Остовные деревья]] | [[Категория: Остовные деревья]] | ||
[[Категория: Построение остовных деревьев]] | [[Категория: Построение остовных деревьев]] |
Версия 13:38, 16 декабря 2017
Содержание
Попарно непересекающиеся остовные деревья
Утверждение: |
Максимальное количество попарно непересекающихся остовных деревьев в графе с вершинами равно |
Очевидно, что наибольшее количество непересекающихся остовных деревьев может быть только в полном графе из | вершин. Количество ребер в таком графе равно , а в каждом дереве ребро. Значит, в полном графе мы сможем построить не более остовных деревьев.
Построение
Описание алгоритма
Расположим вершины на окружности так, чтобы они образовывали правильный многоугольник, и выберем начальную вершину (рис.1). Для
вершин по часовой стрелке, начиная с этой вершины, будем строить остовные деревья. Для -ой вершины строим такой путь — до тех пор, пока не соединим все вершины. Это и будет остовным деревом. (рис.2-3)Доказательство корректности
Докажем, что построенные с помощью такого алгоритма остовные деревья будут попарно непересекающимися. Для этого докажем, что никакие ребра не совпадут. Ребра могут совпасть только в том случае, если дуги, на которые эти ребра опираются, будут одинаковой длины. Заметим, что при построении каждого последующего дерева его ребра получаются из поворотов ребер предыдущего на длину
, где — длина окружности. Рассмотрим первое построенное остовное дерево.(рис.3) В нем не более -х ребер имеют одинаковую длину дуги (длина дуги у ребра, расположенного на диаметре окружности, не совпадает с длиной дуги любого другого ребра данного остовного дерева). Значит, повороты только этих ребер могут совпасть между собой.- Докажем, что повороты ребра, расположенного на диаметре окружности, не совпадут друг с другом (если
Чтобы хоть какой-то поворот совпал, мы должны повернуть ребро на . Каждый раз мы поворачиваем ребро на . А так как мы поворачиваем ребро раз, то в сумме мы повернем его на
. А это значит, что никакие ребра не совпадут друг с другом. (рис.4)
нечетно, то такого ребра не будет). - Докажем для остальных ребер. (рис.5)
Возьмем ребро, которое не лежит на диаметре окружности. В данном остовном дереве есть ребро, которое имеет такую же длину дуги. Ориентируем данные ребра в сторону часовой стрелки. Чтобы повороты этих ребер совпали, нужно, чтобы совпали их начала и концы. Покажем, что их начала никогда не совпадут. Чтобы начало первого ребра совпало с началом второго, нужно первое ребро повернуть хотя бы на половину длины окружности, то есть на . Для этого нам нужно сделать поворотов: . Но мы делаем только поворот. Аналогично с поворотом второго ребра. Для нечетных граф будет неполным, поэтому даже поворотов может не хватить для совпадения ребер.
См. также
- Остовные деревья: определения, лемма о безопасном ребре
- Остовное дерево в планарном графе
- Минимально узкое остовное дерево
Источники информации
- Карпов Д. В. — Теория графов, стр 297