- •1. Множества и бинарные отношения
- •Множества
- •Определения и примеры
- •1.1.1 Множество
- •Операции над множествами
- •Элементы комбинаторики
- •Бинарные отношения
- •Определения и примеры
- •2.1.2 Отображения
- •Операции над отношениями
- •Выполнение операций над отношениями
- •Свойства отношений
- •Эквивалентность и толерантность
- •2.4.1 Эквивалентность
- •2.4.3 Толерантность
- •2.4.6 Задача о наименьшем покрытии (ЗНП)
- •Алгоритм решения ЗНР
- •Отношения порядка
- •Строгий порядок
- •Свойства строгого порядка
- •Некоторые свойства дерева
- •Анализ отношений порядка
- •2.5.8 Решетки
- •2.5.10 Решетка
- •2.5.11 Булева решетка
- •Нормированные булевы решетки
- •Модели нормированной булевой решетки
- •Булевы функции (БФ)
- •Определения и примеры
- •Равенство булевых функций
- •3.3.1 СДНФ
- •3.3.3 СКНФ
- •3.3.5 Представление формул в СДНФ и СКНФ
- •Минимизация булевых функций
- •3.4.1 Импликанта
- •Полные системы булевых функций
- •2. Математическая логика
- •Логика высказываний
- •Основные понятия
- •4.1.7 Логическое следствие
- •4.1.8 Теоремы о логическом следствии
- •Логика предикатов
- •5.0.13 Связанные и свободные переменные
- •Предваренная нормальная форма
- •Стандартная нормальная форма
- •Подстановки и унификация
- •Метод резолюций для логики первого порядка
- •Исчисление высказываний
- •3. Графы
- •Определения и примеры
- •Определения графа
- •Части графа
- •Изоморфизм графов
- •Задание графов с помощью матриц
- •Матрица инциденций
- •Матрица соседства вершин
- •Матрица смежности
- •Типы графов
- •Обыкновенные графы
- •Графы Бержа
- •Помеченные и взвешенные графы
- •Другие способы задания графа
- •Связность графов
- •Маршруты, цепи, циклы
- •Число маршрутов
- •Компоненты связности
- •Нахождение компонент и бикомпонент
- •Кратчайшие цепи
- •Алгоритм Форда
- •Алгоритм Дейкстры
- •Обходы графа
- •Поиск в глубину на графе
- •Поиск в ширину на графе
- •Эйлеровы цепи и циклы
- •Эйлеровы пути
- •Гамильтоновы цепи и циклы
- •Цикломатика графов
- •Цикломатическое число
- •Деревья
- •Свойства дерева
- •Каркасы
- •Алгоритм нахождения каркаса графа.
- •Кратчайший каркас графа.
- •Алгоритм Прима.
- •Теорема о хорде каркаса.
- •Число каркасов графа.
- •Разрезы
- •Пространства суграфов
- •Пространство циклов
- •Пространство разрезов.
- •Потоки в сетях
- •Задача о максимальном потоке
- •Постановка задачи
- •Экстремальные части графа
- •Основные понятия
- •Покрытия
- •Задача о наименьшем покрытии
- •Паросочетания
- •Раскраска вершин графа
- •Хроматическое число
- •Оценки хроматического числа
- •Точные алгоритмы раскраски вершин
6.4. Другие способы задания графа |
211 |
|
|
|
|
2.Семантическая сеть : L – имена объектов, C – имена отношений между ними.
3.Потоки в сетях: каждой дуге сети ставится в соответствие ее пропускная способность и величина потока по дуге.
6.4Другие способы задания графа
Представления графов с помощью матриц инциденций и матриц смежности, при всех их достоинствах, не лишены и ряда недостатков. Рассмотрим матрицы инциденций для графа Бержа (1- орграфа) и обыкновенного графа. Для 1-орграфа без петель можно положить
°> = 1, °< = ¡1, °± = 0, °» = 0,
а для обыкновенного графа
°> = 1, °< = 1, °» = 1, °± = 0.
Пример 6.15.
1 |
G |
|
3 |
1 |
|
G1 |
3 |
r |
|
¡ |
rK |
r |
|
|
r |
|
|
¡µ |
|
|
|
|
|
|
¡ |
|
|
|
|
|
|
|
¡ |
|
|
|
|
|
|
?¡ |
|
? |
|
|
|
|
|
¡¾ |
|
r4 |
r |
2 |
|
r4 |
|
r |
2 |
|
|
Для графа Бержа G и обыкновенного графа G1 матрицы инциденций имеют следующий вид:
|
|
! ! ! ! ! |
||||
|
A |
12 |
13 |
34 |
41 |
43 |
A = |
1 |
1 |
1 |
0 |
-1 |
0 |
|
2 |
-1 |
0 |
0 |
0 |
0 |
|
3 |
0 |
-1 |
1 |
0 |
-1 |
|
4 |
0 |
0 |
-1 |
1 |
1 |
|
|
|
|
|
|
|
212 |
|
|
|
|
|
Глава 6. Определения и примеры |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
» |
» |
» |
» |
|
|
|
|
A1 |
12 |
13 |
14 |
12 |
|
|
A1 |
= |
1 |
1 |
1 |
1 |
0 |
|
J |
|
|
2 |
1 |
0 |
0 |
0 |
|
|
|
|
3 |
0 |
1 |
0 |
1 |
|
|
|
|
4 |
0 |
0 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
Размерность матрицы инциденций равна n £ m , а число ненулевых элементов составляет всего 2 £m. Таким образом, (n ¡2) £m элементов матрицы – нулевые, и, следовательно, такое представление очень неэкономно. Кроме того, поиск смежных вершин или дуги, соединяющей пару вершин, приводит к перебору в худшем случае m столбцов матрицы.
Представление графа матрицей смежности также неэкономно в том случае, когда число ребер значительно меньше n2 (размерность матрицы смежности). Однако пользоваться матрицей смежности во многих случаях очень удобно, так как за одну проверку можно определить смежность пары вершин.
Более экономным, особенно для неплотных графов, когда m значительно меньше n2 , является способ представления графа с помощью списка или массива пар вершин, соответствующих его ребрам (если граф можно представить в виде бинарного отношения), или с помощью списка или массива троек вида [x u y], где x; y 2 X; u 2 U , для графов общего вида. Размерность такого представления – до 2 £ m (если все ребра – звенья). Неудобством является большое число шагов поиска – до m в худшем случае
– вершин смежных данной вершине. Число шагов поиска смежных вершин или ребер можно значительно уменьшить, упорядочив множество пар или троек в лексикографическом порядке и применяя двоичный поиск.
Пример 6.16.
6.4. Другие способы задания графа |
213 |
|
|
|
|
2¶³1 |
3 |
- |
|
1 |
|
|
3 |
||
|
r |
|
4 |
¡ r |
b |
r |
|
|
¡ r |
|
la |
|
*¡µ |
|
|
|
µ¡ K |
||
µ´ |
|
|
|
|
|
|
¡ |
||
6 |
5 |
7¡¡ |
|
|
|
|
|||
|
|
|
|
¡ |
|||||
|
|
¡ |
8 |
9 |
|
|
|
¡ |
|
|
? |
|
|
? |
? |
||||
|
|
|
|
|
|
||||
|
cr¡9 |
|
rd |
¡¾ |
r4 |
||||
|
|
r |
2 |
|
G1 |
G2 |
Граф Бержа G2 представлен в виде массива пар, упорядоченного в лексикографическом порядке:
[(1; 2); (2; 3); (3; 4); (4; 2); (4; 3)]:
Граф общего вида G1 представлен в виде массива троек, также упорядоченного в лексикографическом порядке:
[(a; 1; a); (a; 2; a); (a; 3; b); (a; 4; b); (a; 5; c); (a; 6; c);
(b; 4; a); (b; 9; c); (c; 6; a); (c; 7; b); (c; 8; b)]:
Заметим, что звенья (вместе с парой инцидентных им вершин) в массиве представлены дважды.
В некоторых случаях граф удобно представлять в виде списков смежности. Каждый список содержит саму вершину x и подсписок, представляющий ее окружение ¡x. Размерность такого представления равна m + n.
Граф G2, например, можно представить в виде такого списка:
[1; [2]]; [2; [3]]; [3; [4]]; [4; [2; 3]]. J
З а м е ч а н и е. Напомним, что последним элементом списка и, следовательно, любого подсписка является (и подразумевается по умолчанию) пустой список nil или [ ].
Описанные выше способы представления графа аналогичны способам представления множества: представление графа с помощью матриц есть задание характеристических функций (функций принадлежности), а представление в виде массивов и списков – это перечисление элементов графа.
Возможен и дескриптивный (предикатный, высказывательный) способ представления графа.
Выбор способа представления является существенной частью разработки алгоритма решения конкретной задачи и всегда является компромиссом между размерностью представления и эффективностью алгоритма.