![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Глава 19. Орграфы и ориентированные ациклические графы. булевых матриц? Ответ на данный вопрос может быть таким: рассматриваемый алгоритм транзитивного замыкания является оптимальным способом умножения некоторых
Методы, описанные в данном разделе, легко расширить с таким расчетом, чтобы они снабдили клиентские программы средством, позволяющим находить конкретные пути, соединяющие две вершины, путем отслеживания дерева поиска в соответствии с изложенным в разделе 17.8. Мы рассмотрим специальные реализации АТД этого вида в контексте более общих задач поиска кратчайших путей в главе 21. В таблице 19.1 представлены эмпирические результаты сравнения элементарных алгоритмов транзитивного замыкания, описанных в настоящем разделе. Реализация решения, основанного на поиске и ориентированного на представление графа в виде списков смежных вершин, на данный момент является наиболее быстрым методом для разреженных графов. Все остальные реализации вычисляют матрицу смежности (размера V2), следовательно, ни одна из них не подходит для обработки крупных разреженных графов. В случае разреженных графов, транзитивные замыкания которых тоже разрежены, мы можем воспользоваться для вычисления замыканий реализацией, ориентированной на представление графа в виде списка смежных вершин, так что размер ее выхода пропорционален числу ребер в транзитивном замыкании. Естественно, это число служит нижней границей стоимости вычисления транзитивного замыкания, которое мы можем получить для различных типов орграфов, используя для этой цели различные алгоритмические технологии (см. упражнения 19.64 и 19.65). Несмотря на наличие такой возможности, мы в общем случае полагаем, что результат транзитивного замыкания есть насыщенная матрица. В силу этого обстоятельства, мы можем воспользоваться такой реализацией, как DenseGRAPH, которая способна отвечать на запросы о достижимости, при этом мы рассматриваем алгоритмы транзитивного замыкания, вычисляющие матрицу транзитивного замыкания за время, пропорциональное К2, как оптимальные, поскольку на их выполнение затрачивается время, пропорциональное размерам их выходов. Таблица 19.1. Эмпирическое исследование алгоритмов транзитивного замыкания
Часть 5. Алгоритмы на графах
Обозначения: W Алгоритм Уоршалла (раздел 19.3) W* Усовершенствованный алгоритм Уоршалла (программа 19.3) А Поиск в глубину, представление графа в виде матрицы смежности (программы 19.4 и 17.7) L Поиск в глубину, представление графа в виде списков смежных вершин (программы 19.4 и 17.9)
|