Упражнения
14.1. Транзитивная редукция ориентированного графа
определяется как граф
с минимальным числом ребер, транзитивное замыкание которого совпадает с графом G. Сконструируйте алгоритм нахождения транзитивной редукции ориентированного графа. Как этот алгоритм связан с алгоритмом транзитивного замыкания
14.2. Используя ПВГ, сконструируйте алгоритмы для следующих проблем:
а) топологическая сортировка вершин графа;
б) выделение мостов графа;
в) выделение остовного леса;
г) выделение множества базисных циклов и базисных разрезающих множеств;
д) проверка графа на двудольность;
в) проверка, является ли заданное множество ребер разрезом графа.
14.3. Рассмотрим граф G; пусть Т — остовный лес ПВГ для графа G. Пусть
— число потомков v (включая ее саму). Докажите, что вершина w является потомком v тогда и только тогда, когда выполняется соотношение
14.4. Модифицируйте алгоритм ПВГ так, чтобы он включал шаги для вычисления
14.5. Пусть Т — дерево ПВГ в связном графе G. Пусть
полный подграф графа G. Покажите, что все вершины
лежат на одном ориентированном пути в Т.
14.6. Пусть Т — дерево ПВГ в ориентированном графе G. Покажите, что если С — ориентированный цикл графа
вершина, входящая в С и имеющая минимальную глубину, то и — предок в Т любой вершины цикла С.
14.7. Поиск в ширину (ПВШ) просматривает связный граф G следующим образом:
S1. В начале ни одна из вершин G не помечена.
S2. Выбирать вершину s и пометить ее как 0.
S3. Положить
.
S4. Пусть S — множество всех непомеченных вершин, смежных по меньшей мере с одной вершиной с меткой.
S5. Если S — пустое, то STOP, иначе пометить все вершины в S меткой
.
S6. Положить
и идти к шагу S4.
Покажите, что ребра, проходимые при пометке вершин, образуют остов графа
14.8. Покажите как ПВШ можно использовать для вычисления расстояния от вершины s до всех вершин связного графа G. (Под расстоянием между вершинами и и v мы понимаем длину
-пути, включающего наименьшее число ребер.)
14.9. Покажите, что множество обратных ребер сводимого графа программы уникально, т. е. все остовные леса ПВГ имеют одно и то же множество обратных ребер [14.35].
14.10. Используйте результат теоремы 6.10 для построения алгоритма нахождения всех остовов связного графа.
14.11. Пусть Т — дерево на
вершинах. Пусть
— множество вершин Т. Мы можем сопоставить единственную последовательность
Дереву Т следующим образом: пусть
первая вершина степени 1 в Т, тогда вершина, смежная
есть первый элемент последовательности
Удалим
из Т. Если
первая вершина степени 1 в
то вершина, смежная
есть
Удалим
и будем повторять операцию до тех пор, пока не будет определена вершина
Последовательность
называется последовательностью Прюфера, связанной с Т. Ясно, что два различных дерева имеют различные последовательности Прюфера.
Дана последовательность
для которой
Сконструируйте алгоритм построения дерева Т, для которого
есть последовательность Прюфера (число
) буквенных последовательностей, которые могут быть построены из множества
равно
Каждая такая последовательность является последовательностью Прюфера для остова графа
Поэтому существует взаимно-однозначное соответствие между последовательностями, построенными из каких-либо
букв (не обязательно различных), принадлежащих множеству
и остовами графа
Таким образом, число остовов графа
равно
Это доказательство приведено Прюфером [14.59].
14.12. Используйте результат теоремы 9.10 для построения алгоритма нахождения хроматического числа графа,