![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Глава 21. Кратчайшие пути. короткое и толстое, a MST - вообще не короткое и не толстое, равно как и не высокое и не тонкое.
Мы уже рассматривали четыре различных реализации PFS. Первая — это классическая реализация насыщенного графа, которая содержит в себе алгоритм Дейкстры и алгоритм Прима поиска MST (программа 20.6). Три других реализации, отличающиеся содержимым очереди с приоритетами, суть реализации разреженных графов: ■ Ребра бахромы (программа 18.10). ■ Вершины бахромы (программа 20.7). ■ Все вершины (программа 21.1). Первая реализация имеет, прежде всего, познавательную ценность, тогда как вторая является наиболее совершенной, а третья, возможно, — наиболее простой. В этих рамках уже содержится описание 16 различных реализаций классических алгоритмов поиска на графе — когда мы рассматриваем различные реализации очередей с приоритетами, происходит дальнейшее нарастание возможных вариантов. Это быстрое увеличение сетей, алгоритмов и реализаций подчеркивает полезность общих формулировок производительности в свойствах от 21.4 до 21.6, что также приводится в таблице 21.2. Таблица 21.2 Стоимость реализаций алгоритма Дейкстры_______________________ Эта таблица подводит итог стоимости (наихудшее значение продолжительности исполнения) различных реализаций алгоритма Дейкстры. При соответствующей реализации очередей с приоритетами алгоритм выполняется за линейное время (время, пропорциональное V2 для насыщенных сетей, и значению Е- для разреженных сетей), за исключением очень разреженных сетей. Оценка
PFS, заполненное бинарное дерево Е lg V Самая простая реализация PFS, полное бинарное дерево ElgV Консервативная верхняя оценка для представления бахромы PFS, полное d-арное дерево Е lgdV Линейный, если граф не слишком разреженный
Название алгоритма Дейкстры обычно используется для обозначения как абстрактного метода построения SPT путем добавления вершин в порядке их расстояния от источника, так и его реализации как алгоритма со временем, пропорциональным V2, для построения матрицы смежности, поскольку Дейкстра представил и то, и другое в своей статье, опубликованной в 1959 г. (а также показал, что тем же методом можно вычислить и MST). Увеличение производительности на разреженных графах связано с более поздними усовершенствованиями в технологии АТД и реализациях очереди с приоритетами, которые не являются характерными для задач поиска кратчайших путей. Более высокая про- Часть 5. Алгоритмы на графах
В разделе 18.8 было показано, что в невзвешенных неориентированных графах использование нумераций приоритетов в прямом порядке обхода вершин графа приводит к тому, что очередь с приоритетами действует как очередь FIFO и приводит к BFS. Алгоритм Дейкстры дает нам другую реализацию BFS: когда все веса ребер равны 1, а обход вершин производится в порядке номеров ребер на кратчайшем пути к стартовой вершине. В этом случае очередь с приоритетами не действует в точности как очередь FIFO, поскольку элементы с равными приоритетами не обязательно изымаются из очереди в том порядке, в котором они в нее помещались. Каждая из этих реализаций помещает в индексированный вершинами вектор spt ребра дерева кратчайших путей SPT (Shortest Path Tree) из вершины 0, а в индексированный вершиной вектор wt — длины кратчайших путей в каждую вершину в SPT; кроме того, каждая реализация имеет функции-элементы, обеспечивающие доступ к этим данным со стороны клиентов. Как обычно, имеется возможность построить различные функции обработки графов и классы, основанные на этих первичных данных (см. упражнения 21.21-21.28).
|