"Информатика. Базовый уровень", Босова Л.Л., Босова А.Ю.
Граф — это модель, которая показывает объекты и связи между ними: например, населённые пункты и дороги или компьютеры и сетевые соединения. Объекты обозначают вершинами, связи — рёбрами или направленными дугами. Если связи имеют расстояние, время или стоимость, их учитывают как веса. Граф можно представить рисунком или матрицей смежности, а затем использовать для поиска и сравнения путей. Главное — выбрать только важные для задачи объекты, связи и критерий маршрута.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Граф — модель, состоящая из вершин и соединяющих их рёбер. Так удобно представлять объекты, между которыми есть связи: например, города и дороги, компьютеры и сетевые соединения. Граф помогает увидеть, кто с кем связан, и исследовать возможные переходы.
Вершина графа — объект или состояние, включённое в модель. Вершинами могут стать населённые пункты, станции метро, люди или состояния устройства. Реальный объект обозначают отдельной точкой, если он важен для решения задачи.
Ребро графа — связь между двумя вершинами. Если связь действует в обоих направлениях, её изображают неориентированным ребром; если переход возможен только в заданную сторону, используют направленную дугу со стрелкой. Такое различие необходимо, чтобы модель не разрешала недопустимые переходы.
Матрица смежности — таблица, в которой строки и столбцы соответствуют вершинам, а ячейка показывает, соединена ли пара вершин. Значение в ячейке кодирует наличие или отсутствие связи, а в некоторых задачах — также её вес. Таблица позволяет хранить граф и проверять связи без рисунка.
Построение графовой модели начинается с выбора объектов и связей между ними. Сначала нужно понять, на какой вопрос предстоит ответить: от этого зависит, какие детали реальной ситуации важны. Если требуется найти путь между городами, здания, не участвующие в маршруте, можно не включать. Чем точнее отобраны вершины и рёбра, тем меньше лишних данных мешает анализу.
В неориентированном графе связь можно пройти в обе стороны, поэтому направление ребра не указывают. Такой вариант подходит, например, для дороги, по которой разрешено движение в обоих направлениях. В ориентированном графе стрелка показывает, откуда и куда возможен переход. Направление важно учитывать, когда дорога односторонняя, сообщение передаётся только в одну сторону или правила процесса не позволяют вернуться тем же путём.
Если связям приписать числовые характеристики, граф называют взвешенным. Вес может обозначать расстояние между пунктами, продолжительность поездки или её стоимость. Это позволяет сравнивать маршруты с учётом реальных затрат: путь с меньшим числом дорог не обязательно окажется самым коротким по расстоянию. Перед вычислениями нужно проверить, что именно означает вес в условии.
Матрица смежности переводит граф в табличную форму: каждой вершине соответствует строка и столбец. На пересечении строки и столбца записывают условный признак связи или её вес. Таблица удобна, когда нужно быстро выяснить, есть ли ребро между двумя вершинами, либо передать граф программе. Для неориентированного графа связь между вершинами A и B отражают и в ячейке A–B, и в ячейке B–A.
Путь в графе — последовательность вершин, в которой каждая соседняя пара соединена ребром или дугой в нужном направлении. Один путь можно сравнить с другим по числу рёбер, а во взвешенном графе — по сумме их весов. Так выбирают маршрут, отвечающий условию задачи: например, с наименьшим расстоянием или временем. Критерий сравнения следует определить заранее, иначе можно выбрать не тот маршрут.
| Понятие или признак | Что означает | Как задаётся или используется |
|---|---|---|
| Вершина | Объект или состояние в модели | Изображается точкой; вершинам можно дать имена или номера |
| Ребро или дуга | Связь между двумя вершинами | Ребро не имеет направления, дуга обозначается стрелкой |
| Ориентированность | Наличие или отсутствие заданного направления перехода | Учитывается при выборе допустимых переходов |
| Вес ребра | Числовая характеристика связи | Указывает расстояние, время, стоимость или другой показатель |
| Матрица смежности | Табличное представление связей между вершинами | Строки и столбцы соответствуют вершинам, ячейки — парам вершин |
| Путь | Последовательность связанных вершин | Сравнивается по числу рёбер или сумме весов |
Сначала определите, какие объекты и связи представлены в задаче, затем выберите подходящее представление графа. Для поиска соседей достаточно проверить соответствующую строку матрицы, а для сравнения маршрутов нужно учитывать заданный критерий. Если у рёбер есть веса, при вычислении длины пути складывают веса его рёбер.
Условие: есть четыре населённых пункта, а дороги проходят между некоторыми парами. Нужно построить графическую модель и назвать соединённые вершины. Обозначим пункты A, B, C и D, а сведения о дорогах возьмём из условия. Если дороги двусторонние, граф будет неориентированным.
Ответ: вершинами служат A, B, C и D, а соединёнными являются только пары пунктов, для которых в условии указаны дороги. Конкретный перечень пар зависит от предоставленных данных. Направление учитывается отдельно, если движение по дороге несимметрично.
Условие: дан граф из пяти вершин, нужно заполнить матрицу смежности и перечислить соседей указанной вершины. Соседями считаются вершины, непосредственно соединённые с выбранной вершиной ребром. Для примера обозначим вершины A, B, C, D и E, а связи перенесём из заданного графа.
Ответ: матрица содержит по одной строке и столбцу на каждую из пяти вершин. Соседи C — вершины, стоящие в столбцах с единицей в строке C; их точный список определяется заданными рёбрами. Если в условии принята другая кодировка, нужно использовать её последовательно.
Условие: на схеме дорог между пунктами указаны расстояния, требуется найти маршрут между начальным и конечным пунктами с наименьшей суммарной длиной. Здесь пункты являются вершинами, дороги — рёбрами, а числа на дорогах — их весами. Недостаточно посчитать число дорог: сравнивать нужно именно расстояния.
Ответ: кратчайшим по расстоянию будет маршрут с минимальной суммой весов его рёбер. Чтобы обосновать выбор, указывают сам путь и его общую длину, а также сравнивают её с длинами рассмотренных альтернатив. Без конкретных значений расстояний назвать пункты маршрута невозможно.
Считать, что любое ребро задаёт движение в обе стороны, — ошибка: в ориентированном графе дуга разрешает переход только по стрелке. Её допускают, когда воспринимают граф как обычную дорожную схему и не проверяют правила движения. Сверьте направление каждого перехода с условием и пройдите маршрут по стрелкам.
Отсутствие связи нельзя автоматически считать ребром нулевого веса. Эти случаи различаются: отсутствие связи означает, что перейти нельзя, а нулевой вес может обозначать существующее ребро без затрат по выбранному показателю. Ошибка появляется, если не оговорено, чем именно кодируют таблицу. Проверьте описание матрицы и выберите разные обозначения для отсутствия связи и нулевого веса.
В неориентированном графе матрица смежности симметрична, поэтому запись связи только в одной ячейке неполна. Так бывает, когда заполняют таблицу по строкам и забывают, что ребро соединяет обе вершины. После заполнения сравните ячейки, расположенные симметрично относительно главной диагонали: значения должны совпасть.
Выбирать маршрут с наименьшим числом рёбер неверно, если условие требует минимальной суммы расстояний, времени или стоимости. Такая ошибка возникает, когда слово «короткий» понимают как «с малым числом участков». Перед сравнением маршрутов подчеркните критерий задачи, сложите значения соответствующих весов и только затем выберите лучший вариант.
Для работы с графами нужно уметь читать таблицы и матрицы, а также выделять объекты и связи в описании ситуации. Графовые модели используют для представления компьютерных сетей, дорожных маршрутов, отношений между объектами и переходов между состояниями. Это помогает перейти от словесного описания к формальной модели, пригодной для анализа. Понимание вершин, рёбер и способов представления графа подготавливает к изучению алгоритмов поиска путей и обработки графов.
Чем граф отличается от схемы или рисунка?
Граф не просто изображает объекты: в нём точно заданы вершины и связи между ними. Положение вершин и длина линий на рисунке сами по себе обычно ничего не означают, если это отдельно не задано.
Как понять, нужно ли делать граф ориентированным?
Проверьте, можно ли перемещаться или передавать информацию по связи в обоих направлениях. Если направление ограничено, например дорога односторонняя, используйте дугу со стрелкой.
Что означает вес ребра?
Вес — это числовая характеристика связи: расстояние, время в пути, стоимость или другой показатель. Вес позволяет сравнивать маршруты по сумме значений, а не только по количеству рёбер.
Как по матрице смежности определить, есть ли связь между вершинами?
Найдите строку одной вершины и столбец другой: значение в месте их пересечения показывает, есть ли связь по принятому способу кодирования. В неориентированном графе связь обычно отражена в обеих симметричных ячейках.
Всегда ли кратчайший маршрут содержит меньше всего рёбер?
Нет. Если у рёбер разные веса, маршрут с большим числом рёбер может иметь меньшую суммарную длину или стоимость. Нужно выбирать маршрут по критерию, указанному в условии.
§ 11. Моделирование на графах