Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Глава 18. Поиск на графе. просматривает каждый элемент матрицы, вследствие чего время его выполнения оказы­вается пропорциональным размеру (V2) матрицы








просматривает каждый элемент матрицы, вследствие чего время его выполнения оказы­вается пропорциональным размеру (V2) матрицы, а не числу единиц в ней (Е). Из таб­лицы следует, например, что на обработку графа, содержащего 1000 ребер, затрачивает­ся примерно такое же время, которое требуется на обработку графа, содержащего 100000 ребер в случае использования матрицы смежности.

Во-вторых, из таблицы 18.2 легко видеть, что затраты на распределение памяти под узлы списков достигают больших значений, когда списки смежных вершин строятся для крупных разреженных графов. Затраты на построение таких списков превосходят сто­имость их обхода более чем в пять раз. В типичной ситуации, когда есть намерения вы­полнить многочисленные поиски различных типов после того, как граф будет построен, цена становится приемлемой. В противном случае мы должны рассмотреть альтернатив­ные реализации, позволяющие снизить эти затраты.

В третьих, отсутствие числовых значений в столбцах DFS для крупных разреженных графов весьма существенно. Такие графы порождают избыточную глубину рекурсии, ко­торая (в конечном итоге) приводит к аварийному завершению программы. Если для та­ких графов мы хотим использовать поиск в глубину, необходимо применять нерекурсив­ные версии программ, о чем шла речь в разделе 18.7.

В-четвертых, эта таблица показывает, что метод, в основу которого положен алгоритм объединения-поиска, описанный в главе 1, обладает большим быстродействием, чем по­иски в глубину и в ширину, главным образом за счет того, что для него не требуется пред­ставление графа целиком. Однако, не имея такого представления, мы не можем дать от­вет на такие простые запросы, как: " существует ли ребро, соединяющее вершины v и w? ". Таким образом, методы, основанные на алгоритме объединения-поиска, не подходят, если мы хотим получить от них нечто большее, на что они способны (в частности, отве­ты на запросы типа " существует ли ребро, соединяющее вершины v и w? " вперемешку с добавлением ребер). Если внутреннее представление графа построено, нецелесообразно строить алгоритм объединения-поиска только для того, чтобы узнать, связный граф или нет, поскольку и поиск в глубину, и поиск в ширину могут дать ответ так же быстро.

Когда мы проводим эмпирические испытания, которые приводят к появлению подоб­ного рода таблиц, различные аномальные явления могут потребовать дальнейших пояс­нений. Например, на многих компьютерах архитектура кэш-памяти и другие свойства за­поминающего устройства могут решающим образом повлиять на производительность алгоритма на крупных графах. Необходимость повышения производительности критичес­ких приложений может потребовать, помимо всех факторов, которые мы сейчас рассмат­риваем, и самого подробного изучения архитектуры машины.

Подробное исследование этих таблиц позволяет обнаружить больше свойств этих ал­горитмов, чем мы способны изучить. Однако наша цель состоит не в том, чтобы провес­ти тщательное сравнение, но и показать, что несмотря на множество проблем, с которы­ми приходится сталкиваться при сравнении различных алгоритмов на графах, мы можем и должны проводить эмпирические исследования и извлекать пользу из любых аналити­ческих результатов как с целью получить представление об основных особенностях алго­ритмов, так и с целью прогнозирования их производительности.



Часть 5. Алгоритмы на графах


Упражнения

о 18.72. Выполните эмпирические исследования, основной целью которых должно быть получение таблицы, подобной таблице 18.2, для задачи, определяющей, является ли за­данный граф двухдольным (допускает ли раскрашивание в два цвета).

18.73. Выполните эмпирические исследования, основная цель которых состоит в том, чтобы получить таблицу, подобную таблице 18.2, для задачи, определяющей, является ли заданный граф двусвязным.

о 18, 74. Выполните эмпирические исследования с целью определить размер второй по величине связной компоненты разреженных графов различных размеров, построен­ных на базе различных моделей (упражнения 17.64—17.76).

18.75. Напишите программу, которая способна строить диаграммы, подобные пока­занной на рис. 18.30, и протестируйте ее на графах различных размеров, в основе ко­торых лежат различные модели (упражнения 17.64-17.76).

о 18.76. Внесите изменения в программу из упражнения 18.75 с целью построения ана­логичных гистограмм размеров реберно-связных компонент.

•• 18.77.Числа в таблицах, приведенных в данном разделе, получены при исследовании только одного образца. Возможно, мы захотим подготовить аналогичную таблицу, для получения одного элемента которой мы готовы провести 1000 экспериментов и полу­чить выборочное среднее и среднее отклонение, но, по-видимому, мы не сможем включить примерно такое число элементов. Гарантирует ли данный подход более эф­фективное использование времени компьютера? Дайте обоснование своего ответа.







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.