Академический Документы
Профессиональный Документы
Культура Документы
2
Географическая карта
Граф
3
Виды графов
Графы (Graphs)
4
Основные определения
5
Циклом графа G называется
такой путь в этом графе, у
которого начало совпадает с
концом: (4,6,7,8,3,4).
6
Степенью вершины (vertex degree) некоторого графа G
называется количество ребер графа G, которым данная вершина
принадлежит.
deg(А)=deg(В)=deg(D)=deg(Е)=3
deg(F)=4
deg(С)=2
deg(А1)=deg(А2)= … =deg(Аn)=r
7
Взвешенный граф
(weighted graph) – это
граф, ребрами (дугами)
которого назначены веса.
8
Вершина графа, не
принадлежащая ни одному ребру
называется изолированной.
9
Данные три графа изоморфны (т. е. имеют одно и то же
строение), хотя они и выглядят по-разному.
10
Эйлеровы графы
11
Гамильтоновы графы
• Гамильтонова цепь (путь) – это простая цепь (путь), которая
проходит через каждую вершину (узел) графа ровно по одному
разу.
• Гамильтонов цикл – это простой цикл, который проходит через
каждую вершину графа.
12
Деревья
13
Пример. Кубок по настольному теннису разыгрывается по
олимпийской системе. Встречи проводятся без "ничьих". К
очередному туру допускается только победившая в предыдущем
туре команда. Проигравшие команды выбывают из игры. Для
завоевания кубка команда должна победить во всех турах. На
участие в розыгрыше кубка поданы заявки от 16 команд.
14
Графы в реальной жизни
• Одним из первых математиков, занимавшихся
теорией графов, был Леонард Эйлер (нач.
XVIII века).
15
Задан начальный
пользователь (узел
графа)
Как начиная со
стартового узла найти
пользователя с заданным
именем?
16
Взаимодействие между исследователями одной из объектных
областей знаний можно представить с помощью графа. Узлы –
исследователи, пути связывает пары этих узлов - исследователей.
17
Представление графа в памяти
18
Матрица смежности (adjacency matrix)
19
Список смежности (adjacency list)
20
Методы графа
Как АТД ―граф‖ представляет собой позиционный контейнер
элементов, хранящихся в узлах и путях графа, которые и
являются позициями.
21
Методы доступа
22
Методы работы с направленными путями
directedEdges() возвращает итератор всех направленных путей
undirectedEdges() возвращает итератор всех ненаправленных
путей
destination(e) возвращает точку назначения направленного
пути e
origin(e) возвращает место происхождения направленного
пути e
isDirected(e) возвращает true, если путь e является
направленным
inDegree(v) возвращает полу степень захода v
outDegree(v) возвращает полу степень исхода v
25
Обход в глубину (DFS)
Алгоритм обхода в глубину хранит в стеке информацию о том,
куда следует вернуться при достижении ―тупика‖.
если выполнение
правила 1
невозможно,
извлечь вершину
из стека
если выполнение
правил 1 и 2
невозможно, обход
закончен.
26
Алгоритм обхода в глубину
стремится, как можно быстрее
удалиться от исходной вершины
и возвращается к ней только при
достижении тупика.
27
Обход в ширину (BFS)
28
29
Ориентированные (направленные)графы
30
Путь из вершины A в вершину B - это последовательность ребер
и промежуточных вершин, по которым можно дойти из A в B
32
В процессе обхода ориентированного графа
методом поиска в глубину только
определенные дуги ведут к вершинам,
которые ранее не посещались. Такие дуги,
ведущие к новым вершинам, называются
дугами остовного дерева и формируют
для данного графа остовный лес,
построенный методом поиска в глубину.
33