в чем отличия матричного представления ориентированных и неориентированных графов

Основные определения теории графов

Содержание

Ориентированные графы [ править ]

Определение:
Конечным графом (англ. finite graph) [math]G[/math] называется граф, в котором множества [math]V[/math] и [math]E[/math] — конечны. Следует заметить, что большинство рассматриваевых нами графов — конечны.
Определение:
Изоморфные графы (англ. isomorphic graphs) — два графа [math]A[/math] и [math]B[/math] называются изоморфными, если можно установить биекцию между их вершинами и соответствующими им рёбрами.

Инцидентность (англ. incidence) — понятие, используемое только в отношении ребра и вершины. Две вершины или два ребра не могут быть инцидентны.

Заметим, что по определению ориентированного графа, данному выше, любые две вершины [math]u,

Данное определение разрешает соединять вершины более чем одним ребром. Такие рёбра называются кратными (иначе — параллельные, англ. multi-edge, parallel edge). Граф с кратными рёбрами принято называть мультиграфом (англ. multigraph). Если в мультиграфе присутствуют петли, то такой граф называют псевдографом (англ. pseudograph).

Источник

Ориентированные и неориентированные графы

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Ребро графа называется неориентированным, если порядок расположения его концов (направление стрелок) в графе не прини­мается во внимание.

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Ребро графа называется ориентированным, если этот порядок существенен. В этом случае говорят, что для ребра g = (xi, xj): xi – начальная, a xj – конечная вершины ребра.

Ориентирован­ное ребро называют дугой графа (рис. 3.2).

Рис. 3.2. Дуга ориентированного графа

Граф называется неориентиро­ванным или неорграфом, если каждое ребро его не ориентированно, и ориентирован­ным или орграфом, если каждое ребро его ориенти­рованно. Если граф содержит ори­ентированные и неориентирован­ные ребра, он называется смешанным.

Полным неориентированным графом называется граф U(X), ребрами которого являются всевозможные пары (xi, xj) для всех возможных вершин xi, xj Î X, i ¹ j.
В таком графе все вершины являются смежными (рис. 3.3).

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Рис. 3.3. Полные неориентированный и

Полным ориентированным графомU0(X) называ­ется граф, у которого любые две вершины соединены хотя бы в одном направле­нии.

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графовПетлей называется ребро g = (xi, xi), у которого начальная и конечная вершины совпадают (рис. 3.4) Петля обычно считается неориентиро­ванной.

Мультиграфом называется граф, в котором пара вершин соединяется несколькими различными ребра­ми или дугами (рис.3.5).

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Рис. 3.5. Неориентированный и ориентированный мультиграфы

Дополнением графа G(X) является такой граф Gd(X), ко­торый совместно с графом G(X) образуют полный граф: U(X) = G(X) È Gd(X).

Источник

Теория графов. Часть третья (Представление графа с помощью матриц смежности, инцидентности и списков смежности)

Все, что познается, имеет число, ибо невозможно ни понять ничего, ни познать без него – Пифагор

Список смежности (инцидентности)

Взвешенный граф (коротко)

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

Матрица является удобной для представления плотных графов, в которых число ребер близко к максимально возможному числу ребер (у полного графа).

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

Перед чтением материала рекомендуется ознакомится с предыдущей статьей, о смежности и инцидентности, где данные определения подробно разбираются.

Матрица смежности

Но тем кто знает, но чуть забыл, что такое смежность есть краткое определение.

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

Матрица (назовем ее L) состоит из n строк и n столбцов и поэтому занимает n^2 места.

Каждая ячейка матрицы равна либо 1, либо 0;

Ячейка в позиции L (i, j) равна 1 тогда и только тогда, когда существует ребро (E) между вершинами (V) i и j. Если у нас положение (j, i), то мы также сможем использовать данное правило. Из этого следует, что число единиц в матрице равно удвоенному числу ребер в графе. (если граф неориентированный). Если ребра между вершинами i и j не существует, то ставится 0.

Для практического примера возьмем самый обыкновенный неориентированный граф:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

А теперь представим его в виде матрицы:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Ячейки, расположенные на главной диагонали всегда равны нулю, потому что ни у одной вершины нет ребра, которое и начинается, и заканчивается в ней только если мы не используем петли. То есть наша матрица симметрична относительно главной диагонали. Благодаря этому мы можем уменьшить объем памяти, который нам нужен для хранения.

С одной стороны объем памяти будет:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Но используя вышеописанный подход получается:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

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

Если граф неориентированный, то, когда мы просуммируем строку или столбец мы узнаем степень рассматриваемой нами вершины.

Если мы используем ориентированный граф, то кое-что меняется.

Здесь отсутствует дублирование между вершинами, так как если вершина 1 соединена с вершиной 2, наоборот соединена она не может быть, так у нас есть направление у ребра.

Возьмем в этот раз ориентированный граф и сделаем матрицу смежности для него:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Если мы работаем со строкой матрицы, то мы имеем элемент из которого выходит ребро, в нашем случаи вершина 1 входит в вершину 2 и 8. Когда мы работаем со столбцом то мы рассматриваем те ребра, которые входят в данную вершину. В вершину 1 ничего не входит, значит матрица верна.

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Если бы на главной диагонали была бы 1, то есть в графе присутствовала петля, то мы бы работали уже не с простым графом, с каким мы работали до сих пор.

Матрица инцидентности

Инцидентность – понятие, используемое только в отношении ребра и вершины: две вершины (или два ребра) инцидентными быть не могут.

Матрица (назовем ее I) состоит из n строк которое равно числу вершин графа, и m столбцов, которое равно числу ребер. Таким образом полная матрица имеет размерность n x m. То есть она может быть, как квадратной, так и отличной от нее.

Ячейка в позиции I (i, j) равна 1 тогда, когда вершина инцидентна ребру иначе мы записываем в ячейку 0, такой вариант представления верен для неориентированного графа.

Сразу же иллюстрируем данное правило:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Сумма элементов i-ой строки равна степени вершины.

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Одной из особенностей данной матрицы является то, что в столбце может быть только две ненулевых ячейки. Так как у ребра два конца.

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Список смежности (инцидентности)

Список смежности подразумевает под собой, то что мы работаем с некоторым списком (массивом). В нем указаны вершины нашего графа. И каждый из них имеет ссылку на смежные с ним вершины.

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

В виде списка это будет выглядеть так:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Неважно в каком порядке вы расположите ссылку так как вы рассматриваете смежность относительно первой ячейки, все остальные ссылки указывают лишь на связь с ней, а не между собой.

Так как здесь рассматривается смежность, то здесь не обойдется без дублирования вершин. Поэтому сумма длин всех списков считается как:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Когда мы работаем с ориентированным графом, то замечаем, что объем задействованной памяти будет меньше, чем при неориентированном (из-за отсутствия дублирования).

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Сумма длин всех списков:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Со списком инцидентности все просто. Вместо вершин в список (массив) вы вставляете рёбра и потом делаете ссылки на те вершины, с которыми он связан.

К недостатку списка смежности (инцидентности) относится то что сложно определить наличие конкретного ребра (требуется поиск по списку). А если у вас большой список, то удачи вам и творческих успехов! Поэтому, чтобы работать максимальной отдачей в графе должно быть мало рёбер.

Взвешенность графа

К примеру, возьмем граф с весами на ребрах:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

И сделаем матрицу смежности:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

В ячейках просто указываем веса ребра, а в местах где отсутствует связь пишем 0 или -∞.

Более подробно данное определение будет рассмотрено при нахождении поиска кратчайшего пути в графе.

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

Если заметили ошибку или есть предложения пишите в комментарии.

Источник

Теория Графов. Часть 1 Введение и классификация графов

«Графы являются одним из объединяющих понятий информатики – абстрактное представление, которое описывает организацию транспортных систем, взаимодействие между людьми и телекоммуникационные сети. То, что с помощью одного формального представления можно смоделировать так много различных структур, является источником огромной силы для образованного программиста». Стивен С. Скиена

Введение

Сначала под землей города Москвы ничего не было. Потом была построена первая станция метро, а затем и вторая и третья. Образовалось множество станций метро. На карту было занесено множество точек. Позже между станциями стали прокладывать пути линии. И соединилась станция метро А со станцией метро Б. Все остальные станции также стали соединятся друг с другом и на карте появилось множество линий. В итоге мы имеем Московский метрополитен очень красивый, я там был проверял.

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графовСхема Московского метро

Посмотрите какая красота. У нас имеется множество точек (которые называются вершинами или узлами), а также множество линий (называемые рёбрами или дугами). Обозначим множество вершин буквой V от английского vertex−вершина и множество рёбер обозначим E от английского edge−ребро. Граф в формулах именуют буквой G. Все вершины обязательно должны быть идентифицированы.

Отмечу, что число вершин обозначается буквой n:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Число рёбер обозначается буквой m:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Таким образом граф задается и обозначается парой V,E:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Также определение графа рассказывается в этой статье на Хабре (https://habr.com/ru/post/65367/)

Неформально граф является совокупностью точек и линий. Линии в котором задаются парой вершин, расположенных не важно в каком порядке.

Разберем определение графа подробней. Может ли в G быть пустым множество E? Да без проблем! Такой граф будет называться нулевым, а вершины в нем будут называться изолированными.

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графовНулевой граф

Только вот множество V вершины пустым быть не может. Ведь множество E рёбра задается парой неупорядоченных вершин множества V. Две вершины образующие ребро, называются концами этого ребра.

Множество E задается парой неупорядоченных вершин множества V.

Пример: Пусть множество V = <1,2,3,4,5>. Тогда множество E =

Граф будет выглядеть следующим образом:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Висячей вершиной называется вершина которая соединена только с одной соседней вершиной. В нашем случаи висячей вершиной будет вершина 5, так как она соединена только с вершиной 1.

Степень записывают, как:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Максимальная степень, то есть какое количество степеней вообще присутствуют в графе обозначаются, как:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Формула суммы степеней для G = V,E выглядит так:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

То есть сумма степеней всех вершин v графа равна удвоенному количеству его рёбер E. Считаем количество степеней в нашем примере. От этого никуда не денешься. Я насчитал 12. А теперь считаем, сколько у нас рёбер. Их 6! Умножаем на 2 и получаем 12. Совпадение? Не думаю!

А давайте представим наш граф в другом виде, но с сохранением данных пар. G теперь имеет следующий вид:

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

Заметьте я не изменил пары между собой. Вершина 4 также соединяется с вершиной 3, а у вершины 1 степень также осталась 4. Так почему граф имеет совершенно другой вид и законно ли это?

Классификации графов

Первым признаком классификации является отсутствие или наличие ориентации у ребер.

Ребро является неориентированным если у него нет понятия начала или конца. То есть оба его конца равноправны. Такой граф называется неориентированным, обыкновенным или неографом.

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графовНеориентированный граф

Ориентированное ребро обозначается стрелкой. И указывает ориентацию от вершины к вершине. То есть данный граф имеет начало и конец. И называется он ориентированным или орграфом.

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графовОриентированный граф

Также существует граф со смешанными ребрами. Это когда в графе присутствуют, как ориентированные рёбра, так и неориентированные.

в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графовСмешанный граф

    Вторым признаком является отсутствие или наличие кратных ребер.

    в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графовМультиграф

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

    Заключение

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

    Источник

    Алгоритмы на графах — Часть 0: Базовые понятия

    Как оказалось тема алгоритмов интересна Хабра-сообществу. Поэтому я как и обещал, начну серию обзоров «классических» алгоритмов на графах.
    Так как публика на Хабре разная, а тема интересна многим, я должен начать с нулевой части. В этой части я расскажу что такое граф, как он представлен в компьютере и зачем он используется. Заранее прошу прощения у тех кто это все уже прекрасно знает, но для того чтобы объяснять алгоритмы на графах, нужно сначала объяснить что такое граф. Без этого никак.

    В математике, Граф — это абстрактное представление множества объектов и связей между ними. Графом называют пару (V, E) где V это множество вершин, а E множество пар, каждая из которых представляет собой связь (эти пары называют рёбрами).
    Граф может быть ориентированным или неориентированным. В ориентированном графе, связи являются направленными (то есть пары в E являются упорядоченными, например пары (a, b) и (b, a) это две разные связи). В свою очередь в неориентированном графе, связи ненаправленные, и поэтому если существует связь (a, b) то значит что существует связь (b, a).

    в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов

    Неориентированный граф: Соседство (в жизни). Если (1) сосед (3), то (3) сосед (1). См рис. 1.а

    Ориентированный граф: Ссылки. Сайт (1) может ссылаться на сайт (3), но совсем не обязательно (хотя возможно) что сайт (3) ссылается сайт (1). См рис. 1.б

    Путь в графе это конечная последовательность вершин, в которой каждые две вершины идущие подряд соединены ребром. Путь может быть ориентированным или неориентированным в зависимости от графа. На рис 1.а, путем является например последовательность [(1), (4), (5)] на рис 1.б, [(1), (3), (4), (5)].

    У графов есть ещё много разных свойств (например они могут быть связными, двудольными, полными), но я не буду описывать все эти свойства сейчас, а в следующих частях когда эти понятия понадобятся нам.

    Представление графов

    Существует два способа представления графа, в виде списков смежности и в виде матрицы смежности. Оба способа подходят для представления ориентированных и неориентированных графов.

    Матрица смежности
    Этот способ является удобным для представления плотных графов, в которых количество рёбер (|E|) примерно равно количеству вершин в квадрате (|V| 2 ).
    В данном представлении мы заполняем матрицу размером |V| x |V| следущим образом:
    A[i][j] = 1 (Если существует ребро из i в j)
    A[i][j] = 0 (Иначе)
    Данный способ подходит для ориентированных и неориентированных графов. Для неориентированных графов матрица A является симметричной (то есть A[i][j] == A[j][i], т.к. если существует ребро между i и j, то оно является и ребром из i в j, и ребром из j в i). Благодаря этому свойству можно сократить почти в два раза использование памяти, храня элементы только в верхней части матрицы, над главной диагональю)
    Понятно что с помощью данного способа представления, можно быстро проверить есть ли ребро между вершинами v и u, просто посмотрев в ячейку A[v][u].
    С другой стороны этот способ очень громоздкий, так как требует O (|V| 2 ) памяти для хранения матрицы.

    в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов
    На рис. 2 приведены представления графов из рис. 1 с помощью матриц смежности.

    Списки смежности
    Данный способ представления больше подходит для разреженных графов, то есть графов у которых количество рёбер гораздо меньше чем количество вершин в квадрате (|E| 2 ).
    В данном представлении используется массив Adj содержащий |V| списков. В каждом списке Adj[v] содержатся все вершины u, так что между v и u есть ребро. Память требуемая для представления равна O (|E| + |V|) что является лучшим показателем чем матрица смежности для разреженных графов.
    Главный недостаток этого способа представления в том, что нет быстрого способа проверить существует ли ребро (u, v).

    в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть фото в чем отличия матричного представления ориентированных и неориентированных графов. Смотреть картинку в чем отличия матричного представления ориентированных и неориентированных графов. Картинка про в чем отличия матричного представления ориентированных и неориентированных графов. Фото в чем отличия матричного представления ориентированных и неориентированных графов
    На рис. 3 приведены представления графов из рис. 1 с помощью списков смежности.

    Применение

    Те кто дочитал до этого места, наверное задали себе вопрос, а где же собственно я смогу применить графы. Как я и обещал я буду стараться приводить примеры. Самый первый пример который приходит в голову это социальная сеть. Вершинами графа являются люди, а ребрами отношения (дружба). Граф может быть неориентированным, то есть я могу дружить только с теми кто дружит со мной. Либо ориентированным (как например в ЖЖ), где можно добавить человека в друзья, без того чтобы он добавлял вас. Если же он да добавит вас вы будете «взаимными друзьями». То есть будет существовать два ребра: (Он, Вы) и (Вы, Он)
    Ещё одно из применений графа, которое я уже упоминал это ссылки с сайта на сайт. Представим Вы хотите сделать поисковую систему и хотите учесть на какие сайты есть больше ссылок (например сайт A), при этом учитывать сколько сайтов ссылается на сайт B, который ссылается на сайт A. У вас будет матрица смежности этих ссылок. Вы захотите ввести какую то систему подсчёта рейтинга, которая делает какие то подсчёты на этой матрице, ну, а дальше… это Google (точнее PageRank) =)

    Заключение

    Это небольшая часть теории которая понадобится нам чтобы для следующих частей. Надеюсь вам было понятно, а главное понравилось и заинтересовало читать дальнейшие части! Оставляйте свои отзывы и пожелания в комментариях.

    В следующей части

    BFS — Алгоритм поиска в ширину

    Библиография

    Кормен, Лайзерсон, Риверст, Штайн — Алгоритмы. Построение и анализ. Издательство Вильямс, 2007.
    Словарь терминов теории графов
    Граф — статья в английской Википедии

    Статья это кросс-пост из моего блога — «Programing as is — записки программиста»

    Источник

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

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