"Информатика (базовый уровень)", Гейн А.Г., Гейн А.А.
Граф — математическая модель объектов и связей между ними: объекты изображают вершинами, а связи — рёбрами. Такая модель помогает описывать дороги между городами, соединения компьютеров и отношения между людьми. Рёбра бывают неориентированными и ориентированными, поэтому направление может влиять на допустимый переход. Основные свойства графа определяют по его вершинам и рёбрам: считают степень каждой вершины, ищут пути и проверяют связность. Эти сведения нужны, чтобы исследовать структуру графа и решать задачи о перемещениях и сетях.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Граф — математическая модель из множества вершин и соединяющих их рёбер. Рёбра могут быть неориентированными или ориентированными. Это понятие позволяет описывать связи между объектами в компактной форме и изучать их с помощью математических методов.
Вершина и ребро — основные элементы графа: вершины изображают объекты, а рёбра показывают связи между ними. Обычно вершины рисуют точками или кружками, а рёбра — линиями между ними. Разделение на объекты и связи помогает не путать сами элементы системы с отношениями между ними.
Степень вершины в неориентированном графе — количество инцидентных ей рёбер, то есть рёбер, для которых она является концом. Петлю при таком подсчёте учитывают дважды. В ориентированном графе отдельно считают входящие и исходящие рёбра; это нужно, чтобы различать возможности прийти в вершину и выйти из неё.
Путь — последовательность вершин, в которой каждая соседняя пара соединена ребром. Для ориентированного графа переходы должны идти по направлению стрелок. Связным называют неориентированный граф, в котором путь существует между любой парой вершин; это понятие показывает, можно ли добраться между всеми объектами системы.
Чтобы перевести реальную ситуацию в граф, сначала решают, какие объекты важны для задачи. Каждый выбранный объект становится вершиной, а существующая между двумя объектами связь — ребром между соответствующими вершинами. Например, если изучают маршруты между городами, городам соответствуют вершины, а дорогам — рёбра. Такая модель позволяет рассуждать о достижимости и связях, не отвлекаясь на расстояния и другие детали, если они не важны.
В неориентированном графе связь не задаёт предпочтительного направления, поэтому по ребру можно перемещаться в обе стороны. Так изображают, например, дорогу, по которой движение разрешено в обоих направлениях. В ориентированном графе ребро снабжено стрелкой: она показывает, откуда и куда допустим переход. Поэтому вершины, соединённые стрелкой A → B, не обязательно достижимы друг из друга: путь из B в A появится лишь при наличии подходящих направленных рёбер.
Степень вершины находят, считая все рёбра, которые к ней подходят, а не только линии, нарисованные вертикально или горизонтально. Если граф задан списком рёбер, достаточно просмотреть каждую пару вершин и прибавить единицу к степеням её концов. Петля в неориентированном графе добавляет две единицы одной вершине. Отсюда следует правило: сумма степеней всех вершин равна 2m, где m — число рёбер, потому что каждое ребро имеет два конца и учитывается у каждого из них.
Путь строят, начиная с первой вершины и переходя по ребру к следующей, затем продолжают переходы до нужной вершины. Одно ребро — только отдельная связь, а путь может включать несколько последовательных рёбер и вершин. Чтобы проверить связность неориентированного графа, мысленно обойдите его из одной вершины и отметьте все достижимые. Если хотя бы одна вершина осталась без отметки, граф несвязен; если отмечены все, пути есть между любой парой вершин.
По изображению можно определить число вершин и рёбер, найти вершины степени ноль, заметить петли и циклы. Цикл — замкнутый путь, который возвращается в исходную вершину; в простом цикле другие вершины не повторяются. Если граф несвязен, его вершины распадаются на компоненты связности: внутри каждой компоненты есть пути между всеми вершинами, а между разными компонентами таких путей нет. Эти признаки помогают описать устройство графа до того, как решать более сложную задачу.
Таблица помогает связать термин с тем, что именно нужно искать на схеме. При подсчётах сначала отметьте вершины, затем проследите каждое ребро и проверьте направления, если они есть. Обозначения ниже условные: конкретный граф можно задавать и рисунком, и списком рёбер.
| Элемент или свойство | Что означает | Как определить по графу | Пример обозначения |
|---|---|---|---|
| Вершина | Объект в модели | Посчитать точки или названные объекты | A |
| Ребро | Связь между двумя вершинами | Проследить соединение между концами | AB |
| Ориентированное ребро | Связь с заданным направлением | Посмотреть, куда указывает стрелка | A → B |
| Степень вершины | Число инцидентных рёбер | Подсчитать рёбра у вершины; петлю считать дважды | deg(A) = 3 |
| Путь между вершинами | Последовательность переходов по рёбрам | Найти цепочку соседних вершин | A–B–D |
| Цикл | Замкнутый путь | Проверить, можно ли вернуться в начало по рёбрам | A–B–C–A |
| Связность графа | Наличие путей между всеми парами вершин | Проверить достижимость всех вершин из одной | Граф связен |
| Число вершин и число рёбер | Размер графа по его основным элементам | Отдельно пересчитать вершины и связи | n = 4, m = 3 |
Задача 1. Неориентированный граф задан вершинами A, B, C, D и рёбрами AB, AC, BC, CD. Определить число вершин и рёбер, а также степени всех вершин. Список рёбер удобен тем, что каждая связь записана ровно один раз. При подсчёте степени нужно учитывать, входит ли вершина в каждое ребро.
Ответ: 4 вершины, 4 ребра; степени A, B, C, D равны соответственно 2, 2, 3, 1.
Задача 2. В неориентированном графе вершины A, B, C, D соединены рёбрами AB, BC и CD. Проверить, существует ли путь из A в D, и выяснить, связен ли граф. Недостаточно увидеть только первое и последнее ребро: нужно проверить переходы между ними. Для связности проверяют достижимость не одной выбранной пары, а всех вершин.
Ответ: путь A–B–C–D существует; граф связен.
Задача 3. Для простого неориентированного графа указаны степени вершин: 3, 3, 1, 1. Найти число рёбер по степеням и проверить, может ли такой набор соответствовать графу. Сначала применим равенство суммы степеней и удвоенного числа рёбер. Затем проверим, достаточно ли одного этого условия: чётная сумма необходима, но сама по себе не гарантирует существование графа.
Ответ: по формуле получилось бы 4 ребра, но простой граф с такими степенями невозможен.
На рисунке ребро иногда изображают ломаной линией, чтобы она не пересекала другие элементы. Если принять каждый прямой участок за отдельное ребро, число рёбер окажется завышенным. Считайте связью весь непрерывный путь между двумя вершинами и сверяйте его концы, а не форму линии.
Можно перепутать степень с числом линий, которые «выходят» из вершины на рисунке, или не заметить ребро, подходящее к ней с другой стороны. Степень в неориентированном графе учитывает все инцидентные рёбра независимо от их положения на схеме. Для самопроверки перечислите рёбра по одному; петлю не забудьте посчитать дважды.
Если найден путь между A и D, это ещё не доказывает связность всего графа: отдельная вершина может оставаться недостижимой. Эту ошибку допускают, когда проверяют только пару из условия и забывают об остальных вершинах. Начните обход с одной вершины и отметьте каждую достигнутую; связность подтверждается лишь тогда, когда отмечены все.
В ориентированном графе стрелка задаёт разрешённое направление перехода. Если пройти против неё, получится последовательность, которая не является допустимым путём, хотя вершины на рисунке соединены. Проверяйте направление каждого ребра по ходу движения; в списке рёбер учитывайте, что A → B и B → A — разные записи.
Для понимания графов нужны знания о множествах и парах объектов: ребро связывает вершины, а список рёбер перечисляет такие пары. Также пригодятся навыки чтения схем и аккуратного подсчёта элементов. Эти же умения помогают задавать граф не рисунком, а перечнем вершин и связей.
Графы применяются в алгоритмах поиска пути, моделях транспортных маршрутов и компьютерных сетей: вершины описывают пункты или устройства, а рёбра — возможные соединения. Дальше свойства графов используются при изучении матриц смежности, деревьев и алгоритмов на графах. Понимание связности и степени помогает разобраться, какие данные кодируют эти модели.
Может ли граф содержать вершину, не соединённую ни с одной другой?
Да, такая вершина называется изолированной, её степень равна нулю. Если в графе есть другие вершины, изолированная вершина делает его несвязным.
Как учитывать петлю при нахождении степени вершины?
В неориентированном графе петля считается дважды, потому что оба её конца принадлежат одной вершине. В ориентированном графе она даёт один вход и один выход.
Чем путь отличается от набора рёбер?
Путь — это последовательность вершин, где каждая соседняя пара соединена ребром, поэтому порядок переходов важен. Просто перечисленные рёбра могут не соединяться друг с другом и не образовывать путь.
Как быстро проверить, является ли граф связным?
Начните с любой вершины и последовательно переходите по рёбрам, отмечая достигнутые вершины. Если удалось отметить все вершины, граф связен; если остались недостигнутые, он несвязен.
Почему сумма степеней вершин получается чётным числом?
Каждое ребро неориентированного графа имеет два конца и добавляет по единице к степени каждой из двух вершин. Поэтому при суммировании каждое ребро учитывается дважды, и сумма равна 2m.
§ 51. Простейшие свойства графов