![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Глава 19, Орграфы и ориентированные ациклические графы
В настоящей главе мы рассматривали алгоритмы решения задач топологической сортировки, транзитивного замыкания и нахождения кратчайшего пути для орграфов и для графов DAG, в том числе и фундаментальные алгоритмы выявления циклов и сильных компонент в орграфах. Эти алгоритмы находят многочисленные важные приложения сами по себе, а также служат основой решения более сложных задач, включая взвешенные графы, которые мы будем рассматривать в двух следующих главах. Значения времени прогона этих алгоритмов в худших случаях суммируются в таблице 19.3. Таблица 19.3. Затраты на выполнение операций обработки орграфов в худшем случае
Часть 5. Алгоритмы на графах
Цель разработки алгоритмов с рабочими характеристиками, аналогичными характеристиками алгоритма объединения-поиска, который изучался в главе 1, для насыщенных орграфов остаются призрачными. В идеальном случае мы могли бы определять АТД, посредством которого мы могли бы добавлять ориентированные ребра или проверять, достижима ли одна вершина из другой, и разработать реализацию, в которой мы могли бы поддерживать выполнение всех операций за постоянное время (см. упражнения 19.153~19.155). Как отмечалось в главе 1, мы можем достаточно близко подойти к этой цели в случае неориентированных графов, но сравнимые с этим решения для орграфов или графов DAG до сих пор не известны. (Обратите внимание на тот факт, что удаление ребер представляет собой сложную проблему даже для неориентированных графов.) Эта задача динамической достижимости (dynamic reachability) не только вызывает интерес у математиков и имеет широкое практическое применение, но и играет исключительно важную роль в разработке алгоритмов на более высоком уровне абстракции. Например, достижимость лежит в основе задачи реализации сетевого симплексного алгоритма для определения потоков с минимальной стоимостью, представляющей собой модель решения задач, которая получила широкое применение и которую мы будем рассматривать в главе 22. Множество других алгоритмов обработки орграфов и графов DAG находят важное практическое применение и подвергаются подробным исследованиям, в то же время многие задачи обработки орграфов ждут своих исследователей, способных разработать эффективные алгоритмы их решения. Список таких задач достигает внушительных размеров. Доминаторы. Пусть задан DAG все, вершины которого достижимы из одного истока r, вершина v доминирует (dominates) над вершиной t, если каждый путь из rв t содержит s. (В частности, каждая вершина доминирует сама над собой.) Каждая вершина v, отличная от источника, имеет непосредственного доминатора, который доминирует над вершиной v, но в то же время не доминирует над другим доминатором v и над самим собой. Множество непосредственных доминаторов представляет собой дерево, которое охватывает все вершины, достижимые из источника. Эта структура имеет важное значение для построения компиляторов. Доминаторное дерево может быть вычислено за линейное время путем применения подхода, основанного на поиске в глубину, который использует несколько вспомогательных структур данных, хотя обычно на практике применяется несколько более медленная его версия.
|