Алгоритмы на графах
[24/100%]Построить минимальное остовное дерево для неориентированного графа с множествами вершин и рёбер . Третий параметр в скобках — вес ребра.
Найти минимальное остовное дерево для неориентированного графа , в котором и .
Пусть — ребро максимального веса в некотором простом цикле графа . Доказать, что
существует минимальное остовное дерево графа , которое является и минимальным остовным деревом графа ;
если в нет других рёбер такого же веса, то никакое минимальное остовное дерево не содержит .
Пусть — минимальное остовное дерево для нагруженного неориентированного графа с вершинами, разметка рёбер. Пусть — это последовательность рёбер из , упорядоченных по возрастанию . Пусть — произвольное остовное дерево для с рёбрами , упорядоченными по возрастанию . Показать, что для всех . Указание. Рассмотреть лес деревьев из рёбер , и рёбра .
Пусть все рёбра дерева имеют попарно различные веса. При каком условии в алгоритме МинОД минимальное остовное дерево будет построено на самом последнем шаге?
Доказать корректность следующего алгоритма построения минимального остовного дерева. Пока в графе есть циклы, выбирать некоторый простой цикл и выкидывать одно из рёбер наибольшего веса, среди входящих в этот цикл.
Пусть задан неориентированный нагруженный граф , в котором и . Какие из рёбер не могут попасть ни в какое минимальное остовное дерево?
Доказать корректность следующего алгоритма построения минимального остовного дерева, предложенного независимо В. Ярником, Р. Примом и Э. Дейкстрой.
Выбрать произвольным образом вершину , она сама по себе является деревом (без рёбер).
На каждом шаге добавлять к имеющемуся дереву ребро наименьшего веса, одна из вершин которого принадлежит дереву, а вторая — нет.
Пусть — это глубинное остовное дерево, построенное алгоритмом обхода в глубину для графа . Доказать, что для каждого обратного ребра или является предком в , или является предком в .
Модифицировать алгоритм поиска в глубину так, чтобы он вычислял и распечатывал список всех мостов графа.
Обойти (занумеровать) вершины заданного неориентированного графа с помощью алгоритма обхода в глубину, начиная с вершины , и построить дерево этого обхода. . Какое обратное ребро и цикл в обнаружились в этом обходе первыми? Вычислить для каждой вершины значение и определить все мосты графа . Считать, что все списки смежности упорядочены по возрастанию номера вершины.
Пусть задан неориентированный граф с множеством вершин и множеством рёбер . Используя вариант поиска в глубину, начиная с вершины , с подсчётом функции , определить все мосты этого графа. Считать, что списки смежности упорядочены по алфавиту.
Начиная с вершины , обойти (занумеровать) вершины неориентированного графа с помощью алгоритма обхода в глубину, начиная с вершины , и построить дерево этого обхода. Граф имеет множество вершин и множество рёбер . Какое обратное ребро и цикл в обнаружились в этом обходе первыми? Вычислить для каждой вершины значение и определить все мосты графа . Считать, что списки смежности упорядочены по возрастанию номера.
Обойти (занумеровать) вершины заданного неориентированного графа с помощью алгоритма обхода в глубину, начиная с вершины , и построить дерево этого обхода. Граф задан списками смежности:
Какое обратное ребро и цикл в обнаружились в этом обходе первыми? Вычислить для каждой вершины значение и определить все мосты графа .
Изменить алгоритм обхода в глубину так, чтобы он позволил перечислить все связные компоненты неориентированного графа.
Если в ориентированном графе существует вершина , из которой достижимы все остальные, то для него тоже можно определить понятие остовного (теперь ориентированного) дерева: дерево с корнем . Определить, какие из алгоритмов построения остовного дерева можно приспособить для построения остовного дерева в ориентированном графе: алгоритм Крускала, алгоритм Ярника-Прима-Дейкстры, алгоритм поиска в глубину.
Определить для следующего нагруженного графа и вершины длины кратчайших путей из в остальные вершины и построить дерево этих путей. Здесь , .
Задан размеченный граф , в котором , а длины рёбер заданы матрицей на рис. 14, «-» означает отсутствие ребра. Используя алгоритм Дейкстры, построить для дерево кратчайших путей из вершины во все остальные. Определить сумму длин всех рёбер дерева .
Рис. 14: Матрица из задачи 379.
Дан ориентированный граф , где (третий элемент указывает вес соответствующего ребра). С помощью алгоритма Дейкстры по шагам найти кратчайшие пути из вершины во все остальные.
Дан ориентированный граф , где (третий элемент указывает вес соответствующего ребра). С помощью алгоритма Дейкстры по шагам найти кратчайшие пути из вершины во все остальные.
Доказать, что на каждом шаге алгоритма Дейкстры любой кратчайший путь из исходной вершины в любую вершину множества проходит только через вершины множества .
Доказать, что алгоритм Дейкстры не может использоваться в исходном виде, если веса рёбер графа могут быть отрицательными: привести пример графа с отрицательными весами рёбер, для которого алгоритм Дейкстры даёт неверный ответ.
Сколько раз может меняться для одной вершины значение в ходе работы алгоритма Дейкстры для графа с шестью вершинами? Привести пример на каждый возможный случай.
Пусть в графе выбрана вершина и для каждой вершины , достижимой из , существует единственный кратчайший путь из в . Доказать, что рёбра всех этих путей образуют ориентированное дерево с корнем .