Главная » Просмотр файлов » Алгоритмы - построение и анализ

Алгоритмы - построение и анализ (1021735), страница 138

Файл №1021735 Алгоритмы - построение и анализ (Алгоритмы - построение и анализ) 138 страницаАлгоритмы - построение и анализ (1021735) страница 1382017-07-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 138)

24.5. Вершины на рисунке топологически отсортированы слева направо. В роли истока выступает вершина ж В вершинах приведены значения атрибутов о, а выделенные ребра указывают значения я. В части а рисунка приведена ситуация перед первой итерацией цикла 1ог в строках 3-5. В каждой из частей б — ж рисунка показаны ситуации, складывающиеся после каждой итерации цикла аког в строках 3-5.

Кюкцая новая черная вершина используется в соответствующей итерации в качестве и. В части ж приведены конечные значения. Время выполнения этого алгоритма легко поддается анализу. Как показано в разделе 22.4, топологическую сортировку в строке 1 можно выполнить в течение времени 9 (У+ Е). Вызов процедуры 1н1т1Аыуе 81нО1.е БО11ксе в строке 2 занимает время 9 (1'). На каждую вершину приходится по одной итерации цикла (ог в строках 3-5. Для каждой вершины все исходящие из нее ребра проверяются ровно по одному разу. Таким образом, всего выполняется ~Е1 итераций внутреннего цикла аког в строках 4-5 (мы воспользовались здесь групповым анализом).

Поскольку каждая итерация внутреннего цикла аког занимает время О (1), полное Часть ЧЕ Алгоритмы для работы с графами 678 6 ( й / — 3 Рис. 24.5. Иллюстрация работы алгоритма, предназначенного для поиска кратчайших путей в ориентированном ацнкличсском графе время работы алгоритма равно О (У + Е), т.е. оно выражается линейной функцией от размера списка смежных вершин графа.

Из сформулированной ниже теоремы видно, что процедура ПАо Яноктезт РАтнз корректно вычисляет кратчайшие пути. Теорема 24.5. Если взвешенный ориентированный граф С = (К Е) содержит исток в и не содержит циклов, то по завершении процедуры РАп Бноктйзт РАтнз для всех вершин н Е Ъ' выполняется равенство г~ [о] = б (в, и) и подграф предшествования С„представляет собой дерево кратчайших путей. Доказагиельсиво. Сначала покажем, что по завершении процедуры для всех вершин и е У выполняется равенство Н [и] = б (з, о). Если вершина и недостижима из истока а, то, согласно свойству отсутствия пути, выполняется соотношение с~ [о] = 6 (в, о) = оо. Теперь предположим, что вершина о достижима из истока а и, следовательно, существует кратчайший путь р = (по, о1,..., оь), где оо = = з, а нь = и.

Поскольку вершины обрабатываются в порядке топологической Глава 24. Кратчайшие пути из одной вершины 679 сортировки, ребра пути р ослабляются в порядке (ггс,ггг), (иг, ия), ..., (иь ы ггь). Из свойства ослабления путей следует, что по завершении процедуры для всех г = О, 1,,!с выполняется равенство Ы [тг;~ = б (я,тгг). И наюнец, согласно свойству подграфа предшествования, С вЂ” дерево кратчайших путей. И Интересное применение этого алгоритма возникает при определении критических путей во время анализа диаграммы РЕК Т (РОТ с!гап)~. Ребра представляют предназначенные для выполнения задания, а вес каждого из ребер — промежутки времени, необходимые для выполнения того или иного задания. Если ребро (и, и) входит в вершину гг, а ребро (тг, х) покидает ее, это означает, что задание (гз, и) должно быть выполнено перед заданием (тг, х).

Путь по такому ориентированному ациклическому графу представляет последовательность заданий, которые необходимо выполнить в определенном порядке. Критический иугиь (спйса! раг1т)— самый длинный путь по ориентированному ациклическому графу, соответствующий самому длительному времени, необходимому для выполнения упорядоченной последовательности заданий. Вес критичесюго пути равен нижней границе полного времени выполнения всех заданий. Критический путь можно найти одним из таких двух способов: ° заменить знаки всех весов ребер и выполнить алгоритм ПАС ЗНОКТЕЗТ РАТНЗ; ° воспользоваться модифицированным алгоритмом 13АО БнОктезт РАтнз, заменив в строке 2 процедуры 1нгтгАыле Я!мсье Боиксе значение оо значением -оо„ а в процедуре Кн.Ах — знак ">" знаком "<". Упражнения 24.2-1.

Выполните процедуру 13АО Бноктезт РАтнз для графа, показанного на рис. 24.5, с использованием вершины т в качестве истока. 24.2-2. Предположим, что строка 3 в процедуре 13АО Яноктезт РАтнз изменена следующим образом: 3 !ог (для) первых ٠— 1 вершин, расположенных в порядке топологической сортировки Покажите, что процедура останется корректной. 24.2-3. Представленная выше формулировка диаграммы РЕгтТ несюлько неестественна. Логичнее было бы, если бы вершины представляли задания, 2 Аббревиатура РЕКТ расшифровывается как "ргобгаш еча! иабоп апб геч1ечг гесьпгяие" — система планирования и руковолства разработками.

Часть Ч1 Алгоритмы для работы с графами 680 а ребра — ограничения, накладываемые на порядок их выполнения„т.е. если бы наличие ребра (и,и) указывало на то, что задание и необходимо выполнить перед заданием и. Тогда бы вес присваивался не ребрам, а вершинам. Модифицируйте процедуру Плс Зноктезт Рлтиз таким образом, чтобы она в течение линейного времени позволяла найти самый длинный путь по ориентированному ациклическому графу со взвешенными вершинами.

24.2-4. Разработайте эффективный алгоритм, позволяющий определить общее количество путей, содержащихся в ориентированном ациклическом графе. Проанализируйте время работы этого алгоритма. 24.3 Алгоритм Дейкстры Алгоритм Дейкстры решает задачу о кратчайшем пути из одной вершины во взвешенном ориентированном графе С = (К Е) в том случае, когда веса ребер неотрицательны. Поэтому в настоящем разделе предполагается, что для всех ребер (и, и) Е Е выполняется неравенство и (и, и) > О. Через некоторое время станет понятно, что при хорошей реализации алгоритм Дейкстры производительнее, чем алгоритм Беллмана-форда.

В алгоритме Дейкстры поддерживается множество вершин Я, для которых уже вычислены окончательные веса кратчайших путей к ним из истока ж В этом алгоритме поочередно выбирается вершина и Е Ъ' — Я, которой на данном этапе соответствует минимальная оценка кратчайшего пути.

После добавления этой вершины и в множество Я производится ослабление всех исходящих из нее ребер. В приведенной ниже реализации используется неубывающая очередь с приоритетами Я, состоящая из вершин, в роли ключей для которых выступают значения д. 1311КЕТКЛ(С, и, а) 1 1х!т1л1.1ее 81х0/е 801исе(С,а) г Е 1О 3 Π— У[С] 4 и Гй!е Я ф О 5 по и ~ — ЕхтклСт М!х®) б Я ~ — Я 13 (и) 7 Гог (для) каждой вершины и Е Аф[и] 8 йо йи.лх(и.и..) Процесс ослабления ребер в алгоритме Дейкстры проиллюстрирован на рис. 24.6. Исток г расположен на рисунке слева от остальных вершин. В каждой вершине приведена оценка кратчайшего пути к ней, а выделенные ребра указывают предшественников.

Черным цветом обозначены вершины, добавленные Глава 24. Кратчайшие пути нз одной вершины в множество Я, а белым — содержащиеся в неубывающей очереди с приоритетами Я = У вЂ” Я. В части а рисунка проиллюстрирована ситуация, сложившаяся непосредственно перед выполнением первой итерации цикла ттИ!е в строках 4-8, Выделенная серым цветом вершина имеет минимальное значение И и выбирается и строк.

5 в качестве вершины и для следующей итерации. В частях б-е изображены ситуации после выполнения очередной итерации цикла ттЫ1е. В каждой из этих частей выделенная серым цветом вершина выбирается в качестве вершины и в строке 5. В части е приведены конечные значения величин Ы и к. Опишем работу рассматриваемого алгоритма.

В строке 1 производится обычная инициализация величин Ы и я, а в строке 2 инициализируется пустое множество вершин Я. В этом алгоритме поддерживается инвариант, согласно которому в начале каждой итерации цикла ттИ1е в строках 4-8 выполняется равенство Я = = У вЂ” Я. В строке 3 неубывающая очередь с приоритетами Я инициализируется таким образом, чтобы она содержала все вершины множества У; поскольку в этот момент Я = 9, после выполнения строки 3 сформулированный выше инвариант выполняется. При каждой итерации цикла ттЬ11е в строках 4-8 вершина и извлекается из множества Я = У вЂ” Я и добавляется в множество Я, в результате чего инвариант продолжает соблюдаться.

Характеристики

Тип файла
DJVU-файл
Размер
18,3 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6552
Авторов
на СтудИзбе
299
Средний доход
с одного платного файла
Обучение Подробнее