ТЕОРИЯ ГРАФОВ Основные определения. Матрица смежности.
ТЕОРИЯ ГРАФОВ.ppt
- Количество слайдов: 15
ТЕОРИЯ ГРАФОВ Основные определения. Матрица смежности.
Теория графов – раздел дискретной математики. Термин «граф» впервые появился в работах венгерского математика Д. Кенига в 1936 году. Годом рождения теории считается 1736 г. , когда Л. Эйлер решил задачу о Кенигсбергских мостах: можно ли так спланировать прогулку по этому городу, ныне называемом Калининградом, чтобы каждый из семи городских мостов проходился бы ровно один раз. Если участки суши взять в качестве точек, а мосты в качестве дуг, то получим граф.
Петр I История Графы вокруг нас Екатерина I Биология Алексей Петр II Заяц Елизавета Россия Анна Петр III Кенгуру Австралия Екатерина II Кролик Павел I Александр I Бурый Англия Николай I медведь Александр III Николай II
Граф – это некоторое конечное множество V точек, называемых вершинами, и конечный набор X линий, называемых ребрами, соединяющих некоторые пары точек из множества V. Пример: схема автомобильных дорог, связывающих города некоторой области, является характерным примером графа.
Граф состоит из вершин и ребер Граф – математическая структура, применяемая в программировании при исследовании СВЯЗЕЙ МЕЖДУ ОБЪЕКТАМИ. Объект – это вершина. Ребра и дуги – связи между объектами. Графы удобно рисовать, “изображать графически” – отсюда и их название.
Ребро, соединяющее две вершины, может иметь направление от одной к другой. Тогда оно ориентированное и изображается стрелкой. Граф, в котором все ребра ориентированные, называется ориентированным. Ориентированный граф – орграф. Дуга – это направленное ребро в орграфе. Дуги, соединяющие общие вершины и совпадающие по направлению, кратные.
Петля – ребро графа, инцидентное единственной вершине. x 1, x 3, x 5 – петли. Степень вершины – число инцидентных ребер, S (X). S(x 1)=2, S(x 2)=1, S(x 3)=1 Вершины, соединенные ребром, называются смежными. Ребро, соединяющее две вершины, инцидентно им.
Псевдограф – граф с кратными ребрами и петлями. Пустой граф – граф, в котором есть вершины, но нет ребер. Полный граф – граф без петель, в котором любые две различные вершины соединены ровно одним ребром. В полном графе число ребер равно (N*N-N)/2, где N – число вершин.
Расположение вершин не несет никакой информации 1 1 5 3 2 4 3 2 5 4 Один и тот же граф
Решение многих задач упрощается, если использовать графы. Задача. В углах доски 3*3 стоят 4 шахматных коня – два белых и два черных через один. Требуется переставить их так, как показано на картинке или доказать, что это невозможно.
Пронумеруем клетки, по которым 1 2 3 могут ходить кони, и возьмем их в качестве вершин графа. 8 4 7 6 5 Вершины соединим дугой, если конь может попасть из одной вершины в другую одним ходом. Развернем граф, расположим 2 вершины так, чтобы граф выглядел 1 3 наглядно и в нем можно было бы разобраться. 1 4 6 8 7 5 6 3 2 7 8 Если кони не встанут на одну клетку, то 5 им друга не обойти
Задача У султана много жен, и каждой он обещал посвятить песню, но придворный поэт внезапно заболел меланхолией, а султан сумел сочинить только две. Каждая жена расскажет о посвященной песне только своим подругам, которые не будут передавать информацию дальше. Сможет ли султан спеть каждой жене песню так, чтобы она не узнала о том, что еще кому-то посвящена точно такая же? У султана 8 жен и дружат они такими парами: 1 -2 2 -5 8 -5 1 -8 7 -3 3 -6 7 -4 4 -6 1 -7 2 -3 6 -5 8 -4 Каким женам надо посвятить одну песню, а каким- другую?
При решении задач используются 4 основных способа описания графа: матрица смежности, матрица инцидентности, списки связи, перечни ребер.
Матрица смежности 1, если вершины с данными номерами смежные A[i, j]= 0, в противном случае 1 2 3 4 5 1 2 1 0 0 0 3 2 1 0 0 5 3 0 1 1 4 0 0 1 0 0 5 0 0 1 0 0
Матрица смежности Данный способ удобен для небольших графов и графов с весами в небольших типах данных. Недостаток данного способа – требуется очень много памяти для хранения матрицы (например, матрица 10000*10000 типа longint занимает очень много памяти!). Для создания матрицы смежности для графа с N вершинами затрачивается минимум N*N байт.