- znate.ru

advertisement
Граф (математика)
План:
Введение




1 История
2 Определение
o 2.1 Граф
o 2.2 Ориентированный граф
3 Способы представления графа в памяти ЭВМ
o 3.1 Матрица смежности
o 3.2 Матрица инцидентности
o 3.3 Списки смежности
o 3.4 Список ребер
4 Применение графов
Литература
Примечания
Введение
Граф с шестью вершинами и семью ребрами
Граф - это совокупность объектов со связями между ними.
Объекты рассматриваются как вершины, или узлы графа, а связи - как дуги, или ребра.
Для различных областей использования виды графов могут различаться ориентируемость,
ограничениями на количество связей и дополнительными данными о вершинах или ребра.
Большое количество структур, которые имеют практическую ценность в математике и
информатике, могут быть представлены графами. Например, устройство Википедии
можно смоделировать с помощью ориентированного графа, в котором вершины - это
статьи, а дуги (ориентированные ребра) - ссылки на другие статьи.
1. История
Первой работой по теории графов как математической дисциплины считают статью
Леонарда Эйлера ( 1736), в котором рассматривалось задача о Кенигсбергский мосты.
Следующий импульс теория графов получила около 100 лет с развитием исследований по
электрическим сетям, кристаллографии, органической химии и другим наукам [1].
2. Определение
Теория графов не имеет устойчивой терминологии. В различных статьях под одними и
теми же терминами понимают разные понятия. Приведенные ниже определения являются
одними из наиболее распространенных.
2.1. Граф
Граф или неориентированный граф - Это упорядоченная пара
которой выполняются следующие условия:


, Для
- множество вершин или узлов,
- Множество пар (в случае неориентированного графа неупорядоченных) вершин, которые называют ребрами.
(И так же ) Обычно считаются конечными множествами. Большое количество
результатов, полученных для конечных графов, неверна (или другая) для бесконечных
графов. Это связано с тем, что определенный набор идей становится ложным в случае
бесконечных множеств.
Граф (геометрический граф) - это фигура на плоскости, которая состоит из непустого
конечного множества V точек (вершин) и конечного множества E ориентированных или
не ориентированных линий (ребер), соединяющих некоторые пары вершин.
2.2. Ориентированный граф 2.2.
Граф, содержащий только ребра называется неориентированный, который содержит
только дуги - ориентированным. Граф, имеющий как ребра так и дуги, называется
смешанным. Если пара вершин соединяется несколькими ребрами или дугами одного
направления, то ребра (дуги) называют кратными (параллельными). Дуга или ребро
соединяющий вершину саму с собой называется петлей. Граф без кратных дуг и петель
называется простым.
Вершины соединены ребром или дугой называют смежными, также называют смежными
ребра, имеющие общую вершину. Ребро (или дуга) и ее вершина называются
инцидентными. Ребро (u, v) соединяет вершины u и v, дуга (u, v) начинается в вершине u и
заканчивается в вершине v.
Каждый граф можно отобразить в евклидовом пространстве множеством точек,
соответствующих вершинам, соединенных линиями, соответствующими ребрам (дугам).
Иногда есть потребность пару вершин соединить более чем одним ребром. Мультиграфом
называют пару G = (V, E), где V - множество, элементы которой называют вершинами. E семья ребер, каждое из которых - это пара вершин из V.
Ребра, соединяющие одну и ту же пару вершин, называют кратными (параллельными)
ребрами.
Мультиграфом, который может иметь петли, иногда называют псевдографом.
Тип графу
Ребра
Кратные ребра
Простой граф
Неориентированные Ни
Мультиграфом
Неориентированные Так
Ориентированный граф
Ориентированные Ни
Ориентировочный мультиграфом Ориентированные Так
3. Способы представления графа в памяти ЭВМ
Если сеть автомобильных дорог, линий коммуникаций или любой граф вообще надо
использовать в компьютерной программе, то возникает проблема сохранения информации
о граф в памяти компьютера. Выбор структуры данных для хранения графа в памяти
имеет определяющее значение в процессе разработки эффективных алгоритмов.
В дальнейшем будем предполагать, что вершины графа имеют номера от 1 до N, а ребра от 1 до M. Каждому ребру и каждой вершине сопоставлена вес - целое положительное
число.
3.1. Матрица смежности
: Подробнее Матрица смежности
Матрица смежности это двумерный массив размером N * N:
/ / Матрица смежности Type TAdjacencyMatrix = array [
.. N ] of Integer ; Var Graph : TAdjacencyMatrix;
1
..
N
,
1
При этом Graph [i, j] равен 0, если вершины i и j не является смежными, и 1 для смежных
вершин. Для взвешенного графа Graph [i, j] равен весу вершины i, если i = j, а для
смежных вершин - весу ребра (дуги) с вершины i в вершину j.
Пространственная сложность этого способа O (N 2)
Этот способ применяют в тех случаях, когда в задаче надо часто проверять смежность или
находить вес ребра с двумя заданными вершинами.
3.2. Матрица инцидентности
Подробнее Матрица инцидентности
Матрица инцидентности это двумерный массив размером N * M:
1
/ / Матрица инцидентности Type
.. M ] of Integer ; Var
TIncidenceMatrix = array [
Graph : TIncidenceMatrix;
1
..
N
,
При этом Graph [i, j] равен 0, если вершины i и ребро j не является инцидентными, -1,
если вершина i является концом ориентированного ребра j, +1, если вершина i является
началом ориентированного ребра j. Иногда удобно пользоваться определением, в котором
Graph [i, j] весе ребра (дуги) j, что есть инцидентных вершине i.
Матрица инцидентности лучше подходит для операции перечисления ребер, что есть
инцидентными вершине x.
3.3. Списки смежности
Подробнее Список смежности
Список смежности это последовательность (массив, список) размером N, каждый элемент
которой является списком вершин смежных с данной:
/ / Список смежности Type TAdjacencyList = array [ 1 .. N ] of
record Count : Integer ; {Количество элементов в списке} List : array
[ 1 .. N ] of record {Список} Node , {Номер смежной вершины}
Weight : Integer ; {Вес ребра} end ; end ; Var Graph :
AdjacencyList;
Этот способ сохранения лучше подходит для перечисления всех вершин смежных с x.
3.4. Список ребер
Подробнее Список ребер
/ / Динамический список ребер (с указателями) / / Применяют тогда, когда
количество ребер неизвестна заранее и их много Type ListElPtr = ^ ListEl;
{Вершины графа обозначены числами} {(Номерами)} ListE l = record Node1
, Node2 : integer ; {Список состоят из пар целых чисел:} {Первое откуда ребро, второе - куда} Next : ListElPtr; {Указатель на следующий
ребро графа} end ; / / Список (массив) ребер / / Применяют тогда, когда
количество ребер известна заранее и небольшая Type TBranchList = array [
1 .. M ] of record Node1 , Node2 , {Пары вершин, связывающей ведро}
Weight : Integer ; {Вес ребра} end ; Var Graph : BranchList;
Как видно из таблицы, этот способ сохранения графа особенно удобно, если главной
операцией является перечисление ребер или поиск вершин и ребер, находящихся в
отношениях инцидентности.
4. Применение графов
Применение графа в моделировании (описи) процессов обогащения полезных ископаемых
Графы широко используются во многих областях науки и техники, в частности:








Файловая система компьютера. Иерархия файлов и папок во многих операциних
системах имеет вид дерева, которое является частным случаем графа;
Молекулы всех химических веществ можно изобразить в виде графа, где атомы
являются вершинами, а связи между ними - ребрами;
Карта автомобильных или любых других путей также является графом, причем
каждая дорога может иметь определенное значение "веса" (например, плотность
транспортного потока), тогда такой граф является взвешенным;
Социальные сети также можно представить в виде графа, где каждая человека или
социальная группа является вершиной, а связи между ними - ребрами;
Генеалогические деревья являются примером бинарных деревьев, что также
является частным случаем графа;
Турнирные таблицы спортивных чемпионатов также могут быть изображены в
виде графов;
В биологии и экологии графы также используются уже давно. Примерами могут
быть цепи питания, экосистемы, генетические последовательности и карты
таксономическая иерархия живых организмов и т.п.;
В археологии и геологии графы используются в стратиграфии для изучения
геологических пластов;


Любой производственный процесс также может быть изображен с помощью графа
(см. пример - технологическая схема обогащение полезных ископаемых);
Разработка программного обеспечения и компьютерные науки вообще является
одной из тех отраслей, где графы применяются чаще. Сложность и большое
количество модулей и протоколов в современных программных продуктах сильно
затрудняет понимание их работы, управления ею и ее оптимизацию, поэтому очень
часто складываются графы программ, причем зачастую это делается автоматически
трансляторами или компиляторами. Графы также удобными для изображения
структур данных, блок-схем, потоков данных, схем баз данных и баз знаний,
конечных автоматов, схем компьютерных сетей и отдельных сайтов, схем вызовов
подпрограмм и т.д.. Также графы широко используются во многих алгоритмах
поиска и сортировки. Кроме того, одним из главных направлений современных
исследований в области глобальных сетей является заданное консорциумом W3C
задачи построения семантической сети (один из видов графов) на базе
существующей сети Интернет.
См.. также
В Википедии есть портал
"Математика"





Дерево (теория графов)
Цикломатическое число
Маршрут (теория графов)
Матрица смежности
Словарь терминов теории графов
Литература














Спекторский И.Я. Дискретная математика. - С. 220 c .. - "Политехника", 2004.
ISBN 966-622-136-5.
(Англ.) JA Bondy, USR Murty Graph Theory With Applications. - С. 264 c .. - Elsevier /
North-Holland, 1976. ISBN 0-444-19451-7.
(Англ.) JA Bondy, USR Murty Graph Theory. - С. 654 c .. - Springer, 2008. ISBN 9781-84628-969-9.
(Англ.) Jungnickel, Dieter Graphs, Networks and Algorithms. - С. 650 c .. - Springer,
2008. ISBN 978-3-540-72779-8.
(Англ.) Сик Дж., Ли Л., Ламсдэйн Э. C + + Boost Graph Library. - С. 304 c .. - Питер,
2006. ISBN 978-5-469-00352-6.
(Англ.) Robert Sedgewick Algorithms in Java, Third Edition, Part 5: Graph Algorithms.
- С. 528 c .. - Addison Wesley, 2003. ISBN 0-201-36121-3.
Березина Л. Ю. графы и их применение. - М. : URSS, 2009. - 152 с. (Рус.)
Берж К. Теория графов и ее применения. - М. : ИЛ, 1962. - 320 с. (Рус.)
Голиков А. П., Черванёв И. Г., Трофимов А. М. Математические методы в
географии. - Х. : Изд-во ХГУ, 1986. - 143 с. (Рус.)
Михеева В. С. Приложение теории графов: Курс лекций (ч. 2) / / Математические
методы в экономической географии. - М. : Изд-во МГУ, 1983. (Рус.)
Оре О. Теория графов. - М. : Наука, 1980. - 336 с. (Рус.)
Татт В. Теория графов. - М. : Мир, 1988. - 424 с. (Рус.)
Фляйшнер Г. Эйлеровы графы и Смежные вопросы. - М. : Мир, 2002. - 176 с. (Рус.)
Харари Ф. Теория графов. - М. : Мир, 1973. - 304 с. (Рус.)
Примечания
1. ISBN 5-7038-1270-4. Белоусов А. И., Ткачев С.Б. Дискретная математика: Учеб. для
вузов / Под ред. С. Зарубина, А. П. Крищенко. - 3-е изд., Стереотипное. - М.: Издво МГТУ им. Н. Э.. Баумана, 2004.
Это незавершенная статья математики.
Вы можете помочь проекту, исправив и дополнив ее.
http://nado.znate.ru
Download