Автор работы: Пользователь скрыл имя, 17 Декабря 2013 в 11:14, курсовая работа
Появление компьютеров стало прорывом для всего человечества. В настоящее время с помощью них возможно производить расчёты с огромной скоростью. Они позволяют решать разнообразные задачи, одной из которых является поиск и составление путей от пункта А в пункт Б. Для таких задач наиболее применима теория графов.
Целью данной курсовой работы является разработка программного продукта для поиска максимально удалённых вершин в графе. Программный продукт должен иметь графический интерфейс и поддерживать любые типы графов.
1. Введение 3
2. Теория графов 4
2.1 Ориентированный граф 5
2.2 Смешанный граф 5
2.3 Изоморфные графы 6
2.4 Прочие связанные определения 6
2.5 Дополнительные характеристики графов 7
2.6 Обобщение понятия графа 8
2.7 Способы представления графа в информатике 9
3. Техническая реализация 11
3.1 Алгоритм поиска пути 11
3.2 Классы и диаграмма классов 11
3.3 Методы класса GraphEdge 13
3.4 Методы класса GraphNode 13
3.5 Функции класса Graph 14
3.6 Методы класса GraphMaxDistanceFinder 18
}3.7 Графический интерфейс 22
4. Заключение 25
5. Список литературы 26
Федеральное государственное
бюджетное образовательное
«Сибирская государственная автомобильно-дорожная академия
(СибАДИ)»
Факультет Информационные системы в управлении
Специальность Информационная безопасность
Кафедра Информационная безопасность
Пояснительная записка
к курсовой работе
«Разработка приложения для поиска максимально удалённых вершин в графе»
Выполнил: студент гр. БИ-11И1
Галкин Кирилл Андреевич
Проверил преподаватель
Толкачёва Елена Викторовна
Омск - 2013
Содержание
1. Введение 3
2. Теория графов 4
2.1 Ориентированный граф 5
2.2 Смешанный граф 5
2.3 Изоморфные графы 6
2.4 Прочие связанные определения 6
2.5 Дополнительные характеристики графов 7
2.6 Обобщение понятия графа 8
2.7 Способы представления графа в информатике 9
3. Техническая реализация 11
3.1 Алгоритм поиска пути 11
3.2 Классы и диаграмма классов 11
3.3 Методы класса GraphEdge 13
3.4 Методы класса GraphNode 13
3.5 Функции класса Graph 14
3.6 Методы класса GraphMaxDistanceFinder 18
}3.7 Графический интерфейс 22
4. Заключение 25
5. Список литературы 26
Появление компьютеров стало прорывом для всего человечества. В настоящее время с помощью них возможно производить расчёты с огромной скоростью. Они позволяют решать разнообразные задачи, одной из которых является поиск и составление путей от пункта А в пункт Б. Для таких задач наиболее применима теория графов.
Целью данной курсовой работы является разработка программного продукта для поиска максимально удалённых вершин в графе. Программный продукт должен иметь графический интерфейс и поддерживать любые типы графов.
Приложение разработано с помощью языка программирования Microsoft Visual C#, так как функционал данного языка программирования позволяет максимально быстро решить задачи такого типа. Выбранный нами язык программирования работает с библиотекой Microsoft .net framework, которая включает в себя огромное количество средств для работы с данными такого рода и позволяет значительно ускорить процесс создания приложения.
В качестве среды разработки, была использована среда Microsoft Visual Studio версии 12, так как данная среда включает в себя широкий набор инструментов для управления и создания различных компонентов программного продукта (графический интерфейс, диаграмма классов и т.п.)
Граф — это совокупность непустого множества вершин и наборов пар вершин (связей между вершинами). Объекты представляются как вершины, или узлы графа, а связи — как дуги, или рёбра. Для разных областей применения виды графов могут различаться направленностью, ограничениями на количество связей и дополнительными данными о вершинах или рёбрах. Многие структуры, представляющие практический интерес в математике и информатике, могут быть представлены графами. Например, строение "Википедии" можно смоделировать при помощи ориентированного графа (орграф), в котором вершины — это статьи, а дуги (ориентированные рёбра) — гиперссылки.
Теория графов не обладает устоявшейся терминологией. В различных статьях под одними и теми же терминами понимаются разные вещи. Ниже приведены наиболее часто встречаемые определения.
Граф, или неориентированный граф G — это упорядоченная пара G := (V, E), для которой выполнены следующие условия:
V — это непустое множество вершин или узлов;
E — это множество пар
(в случае неориентированного
графа — неупорядоченных)
V (а значит и, E, иначе
оно было бы мультимножеством)
обычно считаются конечными
Вершины и рёбра графа называются также элементами графа, число вершин в графе |V| — порядком, число рёбер |E| — размером графа.
Вершины u и v называются концевыми вершинами (или просто концами) ребра e=\{u,v\}. Ребро, в свою очередь, соединяет эти вершины. Две концевые вершины одного и того же ребра называются соседними.
Два ребра называются смежными, если они имеют общую концевую вершину.
Два ребра называются кратными, если множества их концевых вершин совпадают.
Ребро называется петлёй, если его концы совпадают, то есть e=\{v,v\}.
Степенью degV вершины V называют количество инцидентных ей рёбер (при этом петли считают дважды).
Вершина называется изолированной, если она не является концом ни для одного ребра; висячей (или листом), если она является концом ровно одного ребра.
Ориентированный граф (сокращённо орграф) G — это упорядоченная пара G := (V, A), для которой выполнены следующие условия:
Дуга — это упорядоченная пара вершин (v, w), где вершину v называют началом, а w — концом дуги. Можно сказать, что дуга v - w ведёт от вершины v к вершине w.
Смешанный граф G — это граф, в котором некоторые рёбра могут быть ориентированными, а некоторые — неориентированными. Записывается упорядоченной тройкой G := (V, E, A), где V, E и A определены так же, как выше.
Ориентированный и неориентированный графы являются частными случаями смешанного.
Граф G называется изоморфным
графу H, если существует биекция f из множества
вершин графа G в множество вершин
графа H, обладающая следующим свойством:
если в графе G есть ребро из вершины
A в вершину B, то в графе H должно быть
ребро из вершины f(A) в вершину f(B)
и наоборот — если в графе H есть
ребро из вершины A в вершину B, то
в графе G должно быть ребро из вершины
f^{-1}(A) в вершину f^{-1}(B). В случае ориентированного
графа эта биекция также должна
сохранять ориентацию ребра. В случае
взвешенного графа биекция
Путём (или цепью) в графе называют конечную последовательность вершин, в которой каждая вершина (кроме последней) соединена со следующей в последовательности вершин ребром.
Ориентированным путём в орграфе называют конечную последовательность вершин v_i (i=1,\ldots,k), для которой все пары (v_i, v_{i+1}) (i=1,... k-1) являются (ориентированными) рёбрами.
Циклом называют путь, в котором первая и последняя вершины совпадают. При этом длиной пути (или цикла) называют число составляющих его рёбер. Заметим, что если вершины u и v являются концами некоторого ребра, то согласно данному определению, последовательность (u,v,u) является циклом. Чтобы избежать таких «вырожденных» случаев, вводят следующие понятия.
Путь (или цикл) называют простым, если ребра в нём не повторяются; элементарным, если он простой и вершины в нём не повторяются. Несложно видеть, что:
Бинарное отношение на
множестве вершин графа, заданное как
«существует путь из u в v», является
отношением эквивалентности и, следовательно,
разбивает это множество на классы
эквивалентности, называемые компонентами
связности графа. Если у графа
ровно одна компонента связности, то
граф связный. На компоненте связности
можно ввести понятие расстояния
между вершинами как
Всякий максимальный связный подграф графа G называется связной компонентой (или просто компонентой) графа G. Слово «максимальный» означает максимальный относительно включения, то есть не содержащийся в связном подграфе с большим числом элементов
Ребро графа называется мостом, если его удаление увеличивает число компонент.
Граф называется:
Также бывает:
Простой граф является одномерным симплициальным комплексом.
Более абстрактно, граф можно задать как тройку (V, E, φ), где V и E — некоторые множества (вершин и рёбер, соотв.), а φ — функция инцидентности (или инцидентор), сопоставляющая каждому ребру e ϵ E (упорядоченную или неупорядоченную) пару вершин u и v из V (его концов). Частными случаями этого понятия являются:
Под данное выше определение не подходят некоторые другие обобщения:
Матрица смежности
Таблица, где как столбцы, так и строки соответствуют вершинам графа. В каждой ячейке этой матрицы записывается число, определяющее наличие связи от вершины-строки к вершине-столбцу (либо наоборот). Недостатком являются требования к памяти, прямо пропорциональные квадрату количества вершин.
Матрица инцидентности
Каждая строка соответствует определённой вершине графа, а столбцы соответствуют связям графа. В ячейку на пересечении i-ой строки с j-м столбцом матрицы записывается:
Данный способ является самым ёмким (размер пропорционален |E| |V|) для хранения, но облегчает нахождение циклов в графе.
Список рёбер
Список рёбер — это тип представления графа, подразумевающий, что каждое ребро представляется двумя числами — номерами вершин этого ребра.
Информация о работе Разработка приложения для поиска максимально удалённых вершин в графе