Элементы которые относятся к графу дереву
Перейти к содержимому

Элементы которые относятся к графу дереву

  • автор:

Дерево (граф)

В теории графов, дерево — связный (ориентированный или неориентированный) граф, не содержащий циклов (для любой вершины есть один и только один способ добраться до любой другой вершины). Древовидная структура — тип организации, в котором каждый объект связан с хотя бы одним другим.

Формально дерево определяется как конечное множество T одного или более узлов со следующими свойствами:

Связанные определения

  • Степень узла — количество поддеревьев узла
  • Концевой узел (лист) — узел со степенью нуль.
  • Узел ветвления — неконцевой узел.
  • Уровень узла определяется рекурсивным образом:
  1. Уровень корня дерева T равен нулю
  2. Уровень любого другого узла на единицу выше, чем уровень корня ближайшего поддерева дерева T , содержащего данный узел.
  • Дерево с отмеченной вершиной назывется корневым деревом.
    • mярус узла T — множество узлов дерева, на уровне m от корня дерева.
    • частичный порядок на вершинах: u \prec v, если вершины u и v различны и вершина u лежит на (единственной!) элементарной цепи, соединяющей корень с вершиной v .
    • корневое поддерево с корнем v — подграф \<v\>\cup\<w\mid v&lt;w\>» width=»» height=»» />.</li>
</ul>
</li>
<li><b>Остовное дерево</b> (<b>остов</b>) — это подграф данного графа, содержащий все его вершины и являющийся деревом. Рёбра графа, не входящие в остов, называются <b>хордами</b> графа относительно остова.</li>
<li><b>Лес</b> — множество (обычно упорядоченное), не содержащее ни одного непересекающегося дерева или содержащее несколько непересекающихся деревьев.</li>
<li><b>Ориентированное дерево</b> — это ориентированный граф без циклов, в котором в каждую вершину, кроме одной, называемой <i>корнем ориентированного дерева</i>, входит одно ребро. В корень ориентированного дерева не входит ни одного ребра (входящая степень равна 0). Иногда, термин «ориентированное дерево» сокращают до «дерева».</li>
</ul>
<h3>Двоичное дерево</h3>
<p>Пример дерева</p>
<p>Термин <i>двоичное дерево</i> имеет несколько значений:</p>
<ul>
<li><b>Двоичное (бинарное) дерево</b> (неориентированное) — это дерево (обычное, неориентированное), в котором степени вершин не превосходят 3.</li>
<li><b>Двоичное (бинарное) дерево</b> (ориентированное) — это ориентированное дерево, в котором исходящие степени вершин (число исходящих рёбер) не превосходят 2.</li>
<li>Двоичное дерево (структура данных) — это специальная абстрактная Структура данных используемая в программировании. На двоичном дереве основаны такие структуры данных, как Двоичное дерево поиска, Двоичная куча, Красно-чёрное дерево, АВЛ-дерево, Фибоначчиева куча и др.</li>
</ul>
<h3>N-арные деревья</h3>
<p>N-арные деревья определяются по аналогии с двоичным деревом. Для них также есть ориентированные и неориентированные случаи, а также соответствующие абстрактные структуры данных.</p>
<ul>
<li><b>N-арное дерево</b> (неориентированное) — это дерево (обычное, неориентированное), в котором степени вершин не превосходят N+1.</li>
<li><b>N-арное дерево</b> (ориентированное) — это ориентированное дерево, в котором исходящие степени вершин (число исходящих рёбер) не превосходят N.</li>
</ul>
<h3>Свойства</h3>
<ul>
<li>Дерево не имеет кратных ребер и петель.</li>
<li>Любое дерево с <i>n</i> вершинами содержит <i>n</i> − 1 ребро. Более того, конечный связный граф является деревом тогда и только тогда, когда <i>B</i> − <i>P</i> = 1 , здесь <i>B</i> — число вершин, <i>P</i> — число рёбер графа.</li>
<li>Граф является деревом тогда и только тогда, когда любые две различные его вершины можно соединить единственным <i>элементарным</i> путём.</li>
<li>Любое дерево однозначно определяется расстояниями (длиной наименьшей цепи) между его концевыми (степени 1) вершинами.</li>
<li>Любое дерево является двудольным графом. Любое дерево, содержащее счётное количество вершин, является планарным графом.</li>
</ul>
<h3>Подсчёт деревьев</h3>
<ul>
<li>Число различных деревьев которые можно построить на <i>n</i> нумерованных вершинах, равно <i>n</i><i>n</i> − 2 (<b>Теорема Кэли</b>).</li>
<li>Производящая функция</li>
</ul>
<p><img decoding=

      • При n\to\inftyверна следующая ассимптотика

      t_n\sim C\alpha^n/n^<5/2>» width=»» height=»» /> где <i>C</i> и α определённые константы, <i>C</i> = 0,534948. , α = 2,95576. .</p>
<h3>Кодирование деревьев</h3>
<p>Дерево можно кодировать наборами из нулей и единиц. Рассмотрим, например, укладку дерева на плоскости. Начиная с какой либо вершины, будем двигаться по ребрам дерева, сворачивая в каждой вершине на ближайшее справа ребро и поворачивая назад в концевых вершинах дерева. Проходя по некоторому ребру, записываем 0 при движении по ребру в первый раз и 1 при движении по ребру второй раз (в обратном направлении). Если <i>m</i> — число ребер дерева, то через 2<i>m</i> шагов мы вернемся в исходную вершину, пройдя по каждому ребру дважды. Полученная при этом последовательность из 0 и 1 (код дерева) длины 2<i>m</i> позволяет однозначно восстанавливать не только само дерево <i>D</i> , но и его укладку на плоскости. Произвольному дереву соответствуют несколько таких кодов. В частности, из этого способа кодирования вытекает следующая грубая оценка на число деревьев с <i>n</i> вершинами:</p>
<p><img decoding=

      Примечание. Каждое дерево имеет как минимум две вершины первой степени.

      Пример 2

      Дерево 1

      В приведенном выше примере вершины «a» и «d» имеют степень один. А две другие вершины ‘b’ и ‘c’ имеют второй уровень. Это возможно, потому что для того, чтобы не формировать цикл, в диаграмме должно быть как минимум два отдельных ребра. Это не что иное, как два ребра со степенью один.

      лес

      Несвязный ациклический граф называется лесом. Другими словами, непересекающаяся коллекция деревьев называется лесом.

      пример

      Следующий график выглядит как два подграфа; но это один несвязный граф. На этом графике нет циклов. Отсюда ясно, что это лес.

      лес

      Охватывающие деревья

      Пусть G – связный граф, тогда подграф H в G называется остовным деревом в G, если –

      • H это дерево
      • H содержит все вершины G.

      Остовное дерево T неориентированного графа G является подграфом, который включает в себя все вершины G.

      пример

      Охватывающие деревья

      В приведенном выше примере G является связным графом, а H является подграфом G.

      Ясно, что граф H не имеет циклов, это дерево с шестью ребрами, которое на единицу меньше общего числа вершин. Следовательно, H – остовное дерево группы G.

      Circuit Rank

      Пусть «G» связный граф с «n» вершинами и «m» ребрами. Остовное дерево ‘T’ группы G содержит (n-1) ребер.

      Следовательно, количество ребер, которые нужно удалить из ‘G’, чтобы получить остовное дерево = m- (n-1), которое называется рангом схемы G.

      Эта формула верна, потому что в остовном дереве вам нужно иметь ребра n-1. Из «m» ребер вам нужно сохранить «n – 1» ребер в графе.

      Следовательно, удаление ребер n – 1 из m дает ребра, которые нужно удалить из графа, чтобы получить остовное дерево, которое не должно образовывать цикл.

      пример

      Посмотрите на следующий график –

      Circuit Rank

      Для графика, приведенного в примере выше, у вас есть m = 7 ребер и n = 5 вершин.

      Тогда ранг цепи

      G = m – (n – 1) = 7 – (5 – 1) = 3

      пример

      Пусть ‘G’ – связный граф с шестью вершинами, а степень каждой вершины равна трем. Найдите звание цепи «G».

      По сумме теоремы о степени вершин

      n ∑ i = 1 градус (V i ) = 2 | E |

      Схема ранг = | E | – (| V | – 1)

      Теорема Кирхгофа

      Теорема Кирхгофа полезна для нахождения числа связующих деревьев, которые могут быть сформированы из связного графа.

      пример

      Теорема Кирхгофа

      Матрица «А» заполняется так, как если между двумя вершинами есть ребро, то она должна быть задана как «1», иначе «0».

      Какой граф называется деревом? Что такое дерево в информатике?

      Граф-дерево является очень распространенным видом графов в информатике. Они нужны для хранения какой-либо информации в нелинейной структуре в иерархическом порядке.

      Граф — это структура, состоящая из множества вершин, соединенных ребрами. Все в своей жизни видели транспортные схемы (передвижение автобусов или метро). Если эти схемы смоделировать в компьютере, то остановки и станции — это будут вершины графа, а маршрут транспорта между остановками/станциями — ребра графа.

      В зависимости от того, каким образом расположены вершины, какое отношение между ними и каким способом они соединяются между собой ребрами, различают различные виды графов. Граф-дерево — это всего лишь один из множества видов графов.

      Граф-дерево

      • в самом низу вы писали свое имя и имена ваших братьев и сестер;
      • чуть выше вы записывали имена ваших родителей и соединяли ваши имена с их именами линиями;
      • еще выше вы писали имена ваших дедушек и бабушек, которые являются родителями ваших родителей;
      • потом записывали имена всех ваших родственников: дядей и тетей, двоюродных братьев и сестер, прадедушек и прабабушек и т. д.

      Самое главное, все имена вы соединяли линиями зависимости между собой. Например, свое имя соединили с именами братьев и сестер и с именами своих родителей. Имена ваших родителей вы соединили с именами их братьев и сестер и с их родителями и т. д.

      В информатике, граф-дерево выглядит точно так же, как и ваше генеалогическое дерево, только вместо имен — вершины, а вместо линий, связывающих имена — ребра.

      Охарактеризовать граф-дерево в информатике можно так — это связный граф, где между двумя вершинам есть единственный связный путь. Вернемся к нашему дереву. Ваше имя будет связано линиями только с вашими родителями и вашими братьями/сестрами, с другими именами дерева у вас нет прямой связи. Например, с вашими дядями, тетями, бабушками и дедушками вы будете связаны только через ваших родителей, а не напрямую. А с вашей прабабушкой или вашим прадедушкой вы будете связаны только через родителей и бабушек с дедушками.

      То есть граф-дерево в информатике следует строгой иерархии — одни элементы находятся «наверху» графа и будут называться «корнем дерева», другие элементы будут чуть ниже и будут называться «потомками», от «потомков» будут исходить «листья» — это те вершины, которые не имеют «потомков». Любой элемент верхнего уровня по отношению к нижнему уровню будет называться «предком».

      Вернемся к нашему генеалогическому дереву. Бабушка с дедушкой (или прабабушка с прадедушкой, то есть в зависимости до какой глубины своих предков вы дойдете) будут корнем вашего граф-дерева (либо подкорнем, если у вас в корне будут прабабушка с прадедушкой). Ваши родители — это «потомки» вашего граф-дерева и бабушка с дедушкой для них будут «предками» вашего дерева. Вы будете «листьями» граф-дерева, потому что у вас пока нет своего потомства, как только у вас появятся дети, то вы станете «потомками» графа, а ваши дети «листьями». Ваши родители для вас будут «предками» графа.

      Граф-дерево в информатике

      Граф-дерево в информатике: термины

      • корень — это самая «верхняя» вершина графа, с которой начинается сам граф, допустим ваши дедушка и бабушка, если вы начали вести генеалогическое дерево с них;
      • ребро — это путь или линия связи между двумя графами, то есть это линия связи между именами в вашем дереве;
      • потомок — это вершина графа, у которой есть родительская вершина, то есть это вы по отношению к своим родителям или ваши родители по отношению к вашим бабушке с дедушкой;
      • родитель — это вершина графа, у которой есть потомственная или дочерняя вершина, то есть это ваши родители по отношению к вам или бабушка с дедушкой по отношению к вашим родителям;
      • лист — это вершина, у которой нет потомственных вершин, а только родительские, то есть это вы, пока у вас нет своих детей;
      • высота графа — это длина к самому дальнему листу графа, допустим в вашем дереве есть ваш дядя или тетя, тогда путь от них и до вас это будет высотой графа;
      • глубина графа — это длина до корня, то есть это будет путь от дяди с тетей к корню вашего дерева (бабушка с дедушкой или прабабушка с прадедушкой);
      • поиск в глубину — это стратегия обхода вершин графа, целью которой является дойти максимально «глубоко» в граф-дерево, то есть если вы возьметесь исследовать ваше генеалогическое древо и попытаетесь найти информацию о родителях ваших прадедушек и прабабушек, а может и дальше;
      • поиск в ширину — это стратегия обхода вершин графа с целью нахождения кратчайшего пути, допустим вы хотите выяснить, какая родственная связь связывает вас с детьми вашего троюродного дяди.

      Заключение

      Граф-дерево встречается не только в информатике. Его очень часто используют и в жизни. Взгляните на иерархию в школе: во главе стоит директор, у него есть несколько заместителей, ниже заместителей находятся учителя и «листьями» графа будут ученики. И если эту зависимость попытаться нарисовать, то у вас получится граф-дерево. Во многих организациях и даже государствах система управления строится именно по таким графам.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *