Автор работы: Пользователь скрыл имя, 29 Декабря 2011 в 03:13, курсовая работа
В связи с этим актуальны исследования различных вопросов теории графов. В качестве темы нашей работы была выбрана тема нахождение наикратчайшего пути в графах.
Целью данной курсовой работы является практическая разработка алгоритма поиска кратчайших путей в графе, используя алгоритм Дейкстры, его последующая реализация на одном из языков программирования высокого уровня.
ВВЕДЕНИЕ 3
1. ТЕОРИЯ ГРАФОВ. 4
1.1. ИСТОРИЧЕСКАЯ СПРАВКА. 4
1.2. ОСНОВНЫЕ ТЕРМИНЫ И ТЕОРЕМЫ ТЕОРИИ ГРАФОВ. 10
2. ЗАДАЧИ НА ГРАФАХ. 13
2.1. ОПИСАНИЕ РАЗЛИЧНЫХ ЗАДАЧ НА ГРАФАХ. 13
2.2. НАХОЖДЕНИЕ КРОТЧАЙШИХ ПУТЕЙ В ГРАФЕ 14
2.3 АЛГОРИТМЫ НАХОЖДЕНИЯ КРАТЧАЙШЕГО ПУТИ 15
Алгоритм Дейкстры 15
Алгоритм Джонсона 16
Алгоритм Флойда - Уоршелла 17
Алгоритм Беллмана - Форда 18
3.РЕШЕНИЕ ЗАДАЧИ «ВРУЧНУЮ» 20
4.ПРОГРАММА «ОПРЕДЕЛЕНИЕ КРАТЧАЙШЕГО ПУТИ В ГРАФЕ» 25
ЛИСТИНГ ПРОГРАММЫ 25
5.ПРИЛОЖЕНИЯ 27
6.ЗАКЛЮЧЕНИЕ 28
7. СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 29
Наряду с проблемами, носящими общий характер, в теории графов имеются специфические циклы задач. В одном из них изучаются различные свойства связности графов, исследуется строение графов по свойствам связности. При анализе надежности сетей связи, электронных схем, коммуникационных сетей возникает задача о нахождении количеств непересекающихся цепей, соединяющих различные вершины графа. Здесь получен ряд результатов. Например, наименьшее число вершин, разделяющих две несмежные вершины графа, равно наибольшему числу непересекающихся (по вершинам) простых цепей, соединяющих эту пару вершин. Найдены критерии и построены эффективные алгоритмы установления меры связности графа (наименьшего числа вершин или ребер, удаление которых нарушает связность графа).[7]
В другом направлении
Существуют и другие циклы задач, некоторые из них сложились под влиянием различных разделов математики. Так, под влиянием топологии производится изучение вложений графов в различные поверхности. Например, было получено необходимое и достаточное условие вложения графа в плоскость (критерий Понтрягина - Куратовского см. выше): граф является плоским тогда и только тогда, когда он не содержит подграфов, получаемых с помощью подразбиения ребер из полного 5-вершинного графа и полного двудольного графа с тремя вершинами в каждой доле. Под влиянием алгебры стали изучаться группы автоморфизмов графов. В частности, было доказано, что каждая конечная группа изоморфна группе автоморфизмов некоторого графа. Влияние теории вероятностей сказалось на исследовании графов случайных. Многие свойства были изучены для «почти всех» графов; например, было показано, что почти все графы с n вершинами связаны, имеют диаметр 2, обладают гамильтоновым циклом (циклом, проходящим через все вершины графа по одному разу).[9]
В
теории графов существуют специфические
методы решения экстремальных
задач. Один из них основан
на теореме о максимальном потоке
и минимальном разрезе, утверждающей,
что максимальный поток,
который можно пропустить через сеть из
вершины U в вершину
V, равен минимальной пропускной
способности разрезов, разделяющих
вершины U и V. Были построены различные
эффективные алгоритмы нахождения максимального
потока.[1]
Большое значение в теории графов имеют алгоритмические вопросы. Для конечных графов, т. е. для графов с конечным множеством вершин и ребер, как правило, проблема существования алгоритма решения задач, в том числе экстремальных, решается положительно. Решение многих задач, связанных с конечными графами, может быть выполнено с помощью полного перебора всех допустимых вариантов. Однако таким способом удается решить задачу только для графов с небольшим числом вершин и ребер. Поэтому существенное значение для теории графов имеет построение эффективных алгоритмов, находящих точное или приближенное решение. Для некоторых задач такие алгоритмы построены, например, для установления планарности графов, определения изоморфизма деревьев, нахождения максимального потока.
Результаты и методы теории графов применяются при решении транспортных задач о перевозках, для нахождения оптимальных решений задачи о назначениях, для выделения «узких мест» при планировании и управлении разработок проектов, при составлении оптимальных маршрутов доставки грузов, а также при моделировании сложных технология, процессов, в построении различных дискретных устройств, в программировании и т. д.[2]
Дуга- ребро ориентированного графа.
Граф называется вырожденным, если у него нет рёбер.
Вершина Х называется инцидентной ребру G , если ребро соединяет эту вершину с какой-либо другой вершиной.
Конечная последовательность необязательно различных рёбер E1,E2,...En называется маршрутом длины n, если существует последовательность V1, V2, ... Vn необязательно различных вершин, таких, что Ei = (Vi-1,Vi ).
Если совпадают, то маршрут замкнутый.
С помощью различных операций можно строить графы из более простых, переходить от графа к более простому, разбивать графы на более простые и т.д.
Среди одноместных операций наиболее употребительны: удаление и добавление ребра или вершины, стягивание ребра (отождествление пары смежных вершин), подразбиение ребра (т.е. замена ребра (u, v) на пару (u, w), (w, v), где w - новая вершина) и др.
Известны
двуместные операции: соединение, сложение,
различные виды умножений графов
и др. Такие операции используются
для анализа и синтеза графов
с заданными свойствами. [10]
Способы
задания графов:
1. Геометрический:
a | В | c | d | |
A | 0 | 1 | 1 | 0 |
B | 1 | 0 | 1 | 0 |
C | 1 | 1 | 0 | 1 |
D | 0 | 0 | 1 | 0 |
2. Матрица смежности:
Матрица смежности - квадратная матрица, размерности, равной количеству вершин. При этом а[ i, j ]-целое число, равное количеству рёбер, связывающих i-ю, j-ю вершину. Если в графе нет петель, то диагональные элементы равны 0 .
Если рёбра не повторяются, то все элементы 0 или 1. Если граф неориентированный, то матрица симметрична.
3. Матрица инцидентности:
a | В | с | d | |
A | 1 | 1 | 0 | 0 |
B | 0 | 1 | 1 | 0 |
C | 1 | 0 | 1 | 0 |
D | 0 | 0 | 1 | 1 |
4. Явное
задание графа как
<{a,b,c,d},{u,v,w,x}; {(u,a),(u,b),(v,b),(v,c),(w,c)
Так
как мы рассматриваем только простые
графы, граф нам проще определять
как модель, носителем которой является
множество вершин, а отношение – бинарное
отношение смежности вершин. Тогда данный
граф запишется как <{a,b,c,d}; {(a,b), (b,a),(b,c),(c,b),(a,c),(c,a),
5. Наконец,
граф можно задать посредством
Информация о работе Нахождение кратчайшего пути алгоритмом Дейкстры