Тема графов — это интересная, полезная и пугающая тема. Теория графов — "Ужас студента". Алгоритмы на графах — потрясающий ум людей их открывших.
Что такое граф? Чтобы ответить на этот вопрос своим читателям, я буду описывать тему немного по-своему.
Граф — это множество объектов.
В большинстве задач это однотипные объекты. (Множество городов или множество домов, или множество людей, или множество чего-то ещё однотипного)
Чтобы решать задачи с таким множеством, нужно каждый объект из этого множества обозначить как что-то. Общепринято это самое что-то называть вершинами графа.
Описывать графы и основные определения удобно рисунками, поэтому для чтения этой страницы рисунки должны быть включены.
Показать текст общего представления графов
Как я и писал ранее — граф это какое-то множество объектов. Эти объекты обычно однотипны. Проще всего приводить пример на городах. Каждый из нас знает, что такое город и что такое дорога. Каждый из нас знает, что к городу могут быть дороги, а могут и не быть. В общем, любое множество объектов можно охарактеризовать как граф.
Показать текст
Если говорить о графе как о городах, то между городами могут быть проложены дороги, а может быть где-то разрушена, не построена, или же город вообще находится на острове, моста нет, а интересуют только дороги с твердым покрытием. Несмотря на то, что дороги к такому городу нет, этот город может быть включен во множество анализируемых объектов, и все объекты вместе взятые составляют совокупность объектов или проще говоря — граф.
Показать текст
Наверняка вы читали учебники и видели такую запись G(V,E) или что-то похожее. Так вот, V — это какой-то один объект из всего множества объектов. В нашем случае множество объектов — это города, следовательно, V — это какой-то определенный город. Так как объекты не обязательно города, а слово объект может запутать, то такой объект из множества можно называть точкой, пунктом, как-то еще, но чаще всего его называют вершиной графа и обозначают буквой V.
В программировании это обычно или столбец или строка двумерного массива, где массив называется или матрицей смежности или матрицей инцендентности.
|
|
E обычно называют пару вершин. В двумерном массиве этой пароя часто выступают номер строки + номер столбца. По номеру строки и номеру столбца проверяют соединение, и если оно есть на пересечении, то это обозначают в значениях массива (матрицы) в месте пересечения строки и столбца
|
Показать текст
В литературе, в интернете и вообще везде, где что-то написано о графах, вы будете встречать такие понятия, как дуги и ребра. На этом рисунке изображены ребра графа. Т.е. это три ребра Е1, Е2 и Е3.
Показать текст
Дуга и ребро отличаются тем, что ребро — это такая двунаправленная связь. Захотел, ушел к соседу, захотел, вернулся от соседа. Если не очень понятно, то можно представить дом, аэродром, летящий самолет и парашютиста. Парашютист может пойти из своего дома на аэродром, но когда пришел на аэродром,, вспомнить, что свой счастливый парашют забыл дома, затем вернуться домой, взять парашют. — Такая дорога, по которой можно гулять туда и обратно, называется ребром.
Если парашютист находится в самолете и прыгает с самолета, но парашютист забыл в самолете надеть свой счастливый парашют, то сможет ли парашютист забрать что забыл? Такой путь, который идет только в одну сторону, называется дугой. Обычно говорят, что ребро соединяет две вершины, а дуга идет из одной вершины в другую.
Показать текст
На этом рисунке у графа одни только дуги. Дуги на графе обозначают стрелочками, потому как так ясно доступное направление. Если граф состоит из одних таких дуг, то такой граф называется ориентированным.
|
На этом рисунке у графа одни только ребра. Ребра на графе обозначают обычными отрезками, хотя можно показать стрелочками, но сути это не изменит, потому как направление двустороннее. Такой граф называется неориентированным
|
|
Иногда можно увидеть граф, в котором дорога ведет в ту же точку, откуда выходит. Такая дорога называется петлей. На рисунке изображена петля и понять что это, не должно быть сложно.
|
|
У графа могут быть два маршрута или более, которые начинаются в одной и той же вершине и заканчиваются в другой, но оба маршрута заканчиваются в одной и той же другой вершине. Рисунок скорее всего хорошо демонстрирует этот момент. Такие маршруты (дуги, ребра) называются кратными.
|
|
Вы часто будете встречать понятия смежности и инцендентности. На рисунке голубым цветом отмечены две вершины, которые соединены ребром друг с другом. Такие вершины называют смежными.
|
|
Вы часто будете встречать понятия смежности и инцендентности. На рисунке красным цветом отмечены два ребра, которые идут в одну точку. Такие ребра, как и вышеописанные вершины, тоже называются смежными.
|
|
Вы часто будете встречать понятия смежности и инцендентности. Если объекты вершина и вершина однотипны, если объекты дорога и дорога однотипны, то объекты вершина и дорога не очень-то и однотипны, но чтобы обозначить связь вершины и дороги, существует понятие инцендентности. Т.е. это принадлежность вершины графа к маршруту графа, если маршрут принадлежит вершине графа (стыкуется с ней), то маршрут и вершина инцендентны.
|
|
Так как в графе может существовать такая вершина, к которой нет маршрутов, то для такой вершины существует понятие — изолированная вершина.
|
|
Этот рисунок уже был самым первым. Но для такой ситуации существует определение — нуль-граф.
|
|
Для решения некоторых задач и для изучения примеров, нужно знать, что такое полный граф. Полный граф — это такой граф, из любой вершины которого существует прямая связь с любой и с каждой другой вершиной этого графа.
|
|
Если для какой-то из вершин не существует прямого маршрута хотя бы в одну из других вершин графа, то такой граф неполный.
|
Многое не описано, но эта часть информации может быть кому-то поможет.
Thanks
Спасибо большое за краткое и главное понятное объяснение основных понятий связанных с графами!
как делать БЛЕАТЬ
Спасибо большое! Хорошая информация!
все очень круто объяснено, спасибо:)
Спасибо за хорошее объяснение!
Четко, понятно
Круто! Много сразу стало понятным.
Для начинающих написано очень доходчиво и вовсе не страшно.Спасибо.
Так КРУТО мне не объяснили даже преподаватели в вузе. Спасибо большое. Читать приятно. Всё понятно. Очень четко, кратко, ёмко.
Очень крутое обьяснение,преподы вообще
Огромное спасибо!!! Крайне доходчиво!!