Элементы теории графов и сетевого планирования Лекция № 9
Вопросы • Основные определения • Алгоритм нахождения минимального остовного дерева • Алгоритм Дейкстры
Определение графа • Граф G состоит из множества вершин N и множества ребер A. Т. е. G = (N, A) • N = {1, 2, 3, 4, 5} • A = {(1, 2), (1, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5)} 1 3 5 2 4
Элементы графа • Ребро называется ориентированным (дугой), если на нем задано направление • Граф называется ориентированным, если в нем все ребра ориентированы • Путем называется последовательность ребер, соединяющих две вершины • Путь называется циклом, если начальная и конечная вершины совпадают • Цикл называется ориентированным, если в нем все дуги ориентированы в одном направлении
Элементы графа • Граф называется связным, если любые две вершины связаны хотя бы одним путем • Деревом называется связный подграф без циклов • Остовным деревом называется дерево, содержащее все узлы исходного графа 1 3 1 3 5 2 4 Дерево Остовное дерево
Алгоритм нахождения минимального остовного дерева • Соединение всех вершин графа с помощью путей наименьшей длины. • Проектирование транспортной сети дорог, соединяющей населенные пункты, с минимальной общей длиной • Обозначим через N = {1, 2, …, n} – множество вершин графа • – множество вершин графа, соединенных алгоритмом после k-ой итерации • – не соединенных
Алгоритм • Шаг 0. Полагаем • Шаг 1. Выбираем из любой узел i и определяем , тогда . k = 2. • Шаг k. Во множестве выбираем вершину j, которая соединена самой короткой дугой с какой- либо вершиной из множества . Вершина j присоединяется ко множеству и удаляется из множества .
Пример 2 3 5 • Проект наиболее 1 6 9 экономичной кабельной 4 8 сети • Шаг 1. 1 5 3 10 7 5 6 3 4
Решение примера 2 5 9 4 9 6 1 5 3 1 6 5 7 3 6 7 4 Шаг 2. Шаг 3.
Решение примера 2 5 2 5 6 8 1 1 5 3 5 7 3 5 6 4 Шаг 3. Шаг 4.
Решение примера 2 5 2 5 6 5 3 1 10 6 4 Шаг 5. Шаг 6. Минимальная длина кабеля 16 км
Алгоритм Дейкстры • Обозначим через ui кратчайшее расстояние от исходной вершины 1 до вершины i, через dij – длину ребра (i, j). • Для j-го узла определим специальную метку вида [uj, i] = [ui + dij, i], dij 0. • Метки подразделяются на постоянные и временные.
Алгоритм Дейкстры • Шаг 0. Первоначальной вершине 1 присваивается метка [0, -]. Полагаем i = 1. • Шаг i. А) Вычисляются временные метки для всех узлов j, которые можно достичь непосредственно из узла i, и которые не имеют постоянных меток. Если узел j уже имеет метку, [uj, k], полученную от узла k, и если ui+dij
Пример 100, 1 2 15 4 100 50 20 10 1 30 3 60 5 90, 3