Дерево, эквивалентные определения — различия между версиями
(→Доказательство эквивалентности) |
м (rollbackEdits.php mass rollback) |
||
(не показано 58 промежуточных версий 8 участников) | |||
Строка 1: | Строка 1: | ||
{{Определение | {{Определение | ||
+ | |id = tree | ||
|definition = | |definition = | ||
− | '''Дерево''' | + | '''Дерево''' (англ. ''tree'') {{---}} связный ациклический [[Основные определения теории графов|граф]]. |
+ | |||
}} | }} | ||
+ | [[Файл:tree_def_1.png|300px|Пример дерева]] | ||
+ | |||
+ | |||
+ | |||
{{Определение | {{Определение | ||
|definition = | |definition = | ||
− | '''Лес''' {{---}} граф, являющийся набором непересекающихся деревьев. | + | '''Лес''' (англ. ''forest'') {{---}} [[Основные определения теории графов|граф]], являющийся набором непересекающихся деревьев. |
}} | }} | ||
+ | [[Файл:tree_def_2.png|400px|Примеры леса]] | ||
+ | |||
==Определения== | ==Определения== | ||
− | + | Для графа <tex>G</tex> эквивалентны следующие утверждения: | |
− | # Любые две вершины графа G соединены единственным простым путем | + | # <tex>G</tex> — дерево. |
− | # G | + | # Любые две вершины графа <tex>G</tex> соединены единственным простым путем. |
− | # G | + | # <tex>G</tex> — связен и <tex> p = q + 1 </tex>, где <tex>p</tex> — количество вершин, а <tex>q</tex> количество ребер. |
− | # G | + | # <tex>G</tex> — ацикличен и <tex> p = q + 1 </tex>, где <tex>p</tex> — количество вершин, а <tex>q</tex> количество ребер. |
+ | # <tex>G</tex> — ацикличен и при добавлении любого ребра для [[Основные определения теории графов|несмежных вершин]] появляется один простой [[Основные определения теории графов|цикл]]. | ||
+ | # <tex>G</tex> — связный граф, отличный от <tex> K_p </tex> для <tex> p > 3 </tex>, а также при добавлении любого ребра для несмежных вершин появляется один простой цикл. | ||
+ | # <tex>G</tex> — граф, отличный от <tex> K_3 \cup K_1 </tex> и <tex> K_3 \cup K_2 </tex>, а также <tex> p = q + 1 </tex>, где <tex>p</tex> — количество вершин, а <tex>q</tex> количество ребер, и при добавлении любого ребра для несмежных вершин появляется один простой цикл. | ||
==Доказательство эквивалентности== | ==Доказательство эквивалентности== | ||
− | Докажем | + | <tex> 1 \Rightarrow 2 </tex> |
+ | :Граф связен, поэтому любые две вершнины соединены путем. Граф ацикличен, значит путь единственен, а также [[Теорема о существовании простого пути в случае существования пути|прост]], поскольку никакой путь не может зайти в одну вершину два раза, потому что это противоречит ацикличности. | ||
+ | |||
+ | <tex> 2 \Rightarrow 3 </tex> | ||
+ | :Очевидно, что граф связен. Докажем по индукции, соотношение <tex>p = q + 1</tex>. Утверждение очевидно для связных графов с одной и двумя вершинами. Предположим, что оно верно для графов, имеющих меньше <tex>p</tex> вершин. Если же граф <tex>G</tex> имеет <tex>p</tex> вершин, то удаление из него любого ребра делает граф <tex> G </tex> несвязным в силу единственности простых цепей; более того, получаемый граф будет иметь в точности две компоненты. По предположению индукции в каждой компоненте число вершин на единицу больше числа ребер. Таким образом, <tex> p = q + 1 </tex>. | ||
+ | |||
+ | <tex> 3 \Rightarrow 4 </tex> | ||
+ | :Очевидно, что если граф связен и ребер на одно меньше, чем вершин, то он ацикличен. Преположим, что у нас есть p вершин, и мы добавляем ребра. Если мы добавили ребро для получения цикла, то добавили второй путь между парой вершин, а значит нам не хватит его на добавление вершины и мы получим не связный граф, что противоречит условию. | ||
+ | |||
+ | <tex> 4 \Rightarrow 5 </tex> | ||
+ | :<tex>G</tex> — ациклический граф, значит каждая компонента связности графа является деревом. Так как в каждой из них вершин на единицу больше чем ребер, то <tex> p = q + k </tex>, где <tex>k</tex> — число [[Отношение связности, компоненты связности|компонент связности]]. Поскольку <tex> p = q + k </tex>, то <tex> k = 1 </tex>, а значит <tex>G</tex> — связен. Таким образом наш граф — дерево, у которого между любой парой вершин есть единственный простой путь. Очевидно, при добавлении ребра появится второй путь между парой вершин, то есть мы получим цикл. | ||
− | + | <tex> 5 \Rightarrow 6 </tex> | |
+ | :Поскольку <tex> K_p </tex> для <tex> p > 3 </tex> содержит простой цикл, то <tex>G</tex> не может им являться. <tex>G</tex> связен, так как в ином случае можно было бы добавить ребро так, что граф остался бы ациклическим. | ||
− | + | <tex> 6 \Rightarrow 7 </tex> | |
+ | :Докажем, что любые две вершины графа соединены единственной простой цепью, а тогда поскольку <tex> 2 \Rightarrow 3 </tex>, получим <tex> p = q + 1 </tex>. Любые две вершины соединены простой цепью, так как <tex>G</tex> — связен. Если две вершины соединены более чем одной простой цепью, то мы получим цикл. Причем он должен являться <tex> K_3 </tex>, так как иначе добавив ребро, соединяющее две вершины цикла, мы получим более одного простого цикла, что противоречит условию. <tex> K_3 </tex> является собственным подграфом <tex>G</tex>, поскольку <tex>G</tex> не является <tex> K_p </tex> для <tex> p > 3 </tex>. <tex>G</tex> — связен, а значит есть вершина смежная с <tex> K_3 </tex>. Очевидно, можно добавить ребро так, что образуется более одного простого цикла. Если нельзя добавить ребра так, чтобы не нарушалось исходное условие, то граф <tex>G</tex> является <tex>K_p</tex> для <tex> p > 3 </tex>, и мы получаем противоречие с исходным условием. Значит, любые две вершины графа соединены единственной простой цепью, что и требовалось. | ||
− | + | <tex> 7 \Rightarrow 1 </tex> | |
+ | :Если <tex>G</tex> имеет простой цикл, то он является отдельной компонентой <tex>K_3</tex> по ранее доказанному. Все остальные компоненты должны быть деревьями, но для выполнения соотношения <tex> p = q + 1 </tex> должно быть не более одной компоненты отличной от <tex>K_3</tex>, так как в <tex>K_3</tex> <tex> p = q = 3 </tex>. Если это дерево содержит простой путь длины 2, то в <tex>G</tex> можно добавить ребро так, что образуются два простых цикла. Следовательно, этим деревом является <tex>K_1</tex> или <tex>K_2</tex>. Значит <tex>G</tex> является <tex>K_3 \cup K_1</tex> или <tex>K_3 \cup K_2</tex>, которые мы исключили из рассмотрения. Значит наш граф ацикличен. Если <tex>G</tex> ациклический и <tex> p = q + 1 </tex>, то из <tex> 4 \Rightarrow 5 </tex> и <tex> 5 \Rightarrow 6 </tex> верно, что <tex>G</tex> — связен. В итоге получаем, что <tex>G</tex> является деревом по определению. | ||
− | + | ==См. также== | |
+ | * [[Алгоритмы на деревьях|Алгоритмы на деревьях]] | ||
+ | * [[Дерево поиска, наивная реализация|Двоичное дерево поиска]] | ||
− | == | + | ==Источники информации== |
− | * Харари | + | * ''Харари Ф.'' Теория графов. /пер. с англ. — изд. 2-е — М.: Едиториал УРСС, 2003. — 296 с. — ISBN 5-354-00301-6 |
− | * [http://en.wikipedia.org/wiki/Tree_(graph_theory) Википедия | + | * [http://en.wikipedia.org/wiki/Tree_(graph_theory) Википедия {{---}} дерево(теория графов)] |
[[Категория: Алгоритмы и структуры данных]] | [[Категория: Алгоритмы и структуры данных]] | ||
[[Категория: Основные определения теории графов]] | [[Категория: Основные определения теории графов]] |
Текущая версия на 19:36, 4 сентября 2022
Определение: |
Дерево (англ. tree) — связный ациклический граф. |
Определение: |
Лес (англ. forest) — граф, являющийся набором непересекающихся деревьев. |
Определения
Для графа
эквивалентны следующие утверждения:- — дерево.
- Любые две вершины графа соединены единственным простым путем.
- — связен и , где — количество вершин, а количество ребер.
- — ацикличен и , где — количество вершин, а количество ребер.
- несмежных вершин появляется один простой цикл. — ацикличен и при добавлении любого ребра для
- — связный граф, отличный от для , а также при добавлении любого ребра для несмежных вершин появляется один простой цикл.
- — граф, отличный от и , а также , где — количество вершин, а количество ребер, и при добавлении любого ребра для несмежных вершин появляется один простой цикл.
Доказательство эквивалентности
- Граф связен, поэтому любые две вершнины соединены путем. Граф ацикличен, значит путь единственен, а также прост, поскольку никакой путь не может зайти в одну вершину два раза, потому что это противоречит ацикличности.
- Очевидно, что граф связен. Докажем по индукции, соотношение . Утверждение очевидно для связных графов с одной и двумя вершинами. Предположим, что оно верно для графов, имеющих меньше вершин. Если же граф имеет вершин, то удаление из него любого ребра делает граф несвязным в силу единственности простых цепей; более того, получаемый граф будет иметь в точности две компоненты. По предположению индукции в каждой компоненте число вершин на единицу больше числа ребер. Таким образом, .
- Очевидно, что если граф связен и ребер на одно меньше, чем вершин, то он ацикличен. Преположим, что у нас есть p вершин, и мы добавляем ребра. Если мы добавили ребро для получения цикла, то добавили второй путь между парой вершин, а значит нам не хватит его на добавление вершины и мы получим не связный граф, что противоречит условию.
- компонент связности. Поскольку , то , а значит — связен. Таким образом наш граф — дерево, у которого между любой парой вершин есть единственный простой путь. Очевидно, при добавлении ребра появится второй путь между парой вершин, то есть мы получим цикл. — ациклический граф, значит каждая компонента связности графа является деревом. Так как в каждой из них вершин на единицу больше чем ребер, то , где — число
- Поскольку для содержит простой цикл, то не может им являться. связен, так как в ином случае можно было бы добавить ребро так, что граф остался бы ациклическим.
- Докажем, что любые две вершины графа соединены единственной простой цепью, а тогда поскольку , получим . Любые две вершины соединены простой цепью, так как — связен. Если две вершины соединены более чем одной простой цепью, то мы получим цикл. Причем он должен являться , так как иначе добавив ребро, соединяющее две вершины цикла, мы получим более одного простого цикла, что противоречит условию. является собственным подграфом , поскольку не является для . — связен, а значит есть вершина смежная с . Очевидно, можно добавить ребро так, что образуется более одного простого цикла. Если нельзя добавить ребра так, чтобы не нарушалось исходное условие, то граф является для , и мы получаем противоречие с исходным условием. Значит, любые две вершины графа соединены единственной простой цепью, что и требовалось.
- Если имеет простой цикл, то он является отдельной компонентой по ранее доказанному. Все остальные компоненты должны быть деревьями, но для выполнения соотношения должно быть не более одной компоненты отличной от , так как в . Если это дерево содержит простой путь длины 2, то в можно добавить ребро так, что образуются два простых цикла. Следовательно, этим деревом является или . Значит является или , которые мы исключили из рассмотрения. Значит наш граф ацикличен. Если ациклический и , то из и верно, что — связен. В итоге получаем, что является деревом по определению.
См. также
Источники информации
- Харари Ф. Теория графов. /пер. с англ. — изд. 2-е — М.: Едиториал УРСС, 2003. — 296 с. — ISBN 5-354-00301-6
- Википедия — дерево(теория графов)