Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data Structures and Algorithms in C++ 2e (На ру...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.37 Mб
Скачать

Глава 13. Сети Graph Algorithms c-13.20 Computer должны избежать единственных пунктов неудачи, то есть, сети

узлы, которые могут разъединить сеть, если они терпят неудачу. Мы говорим, что связанный граф G является biconnected, если это не содержит вершины, удаление которой было бы di-смотри G в два или больше связанных компонента. Дайте O (n + m) разовый алгоритм для добавления на большинстве n краев к связанному графу G с n³ 3 вершины и m³ n- 1 край, чтобы гарантировать, что G - biconnected.

C-13.21 НАСА хочет связать n станции, распространенные по стране, используя communica-

каналы tion. Каждая пара станций имеет различную полосу пропускания в наличии,

который известен априорно. НАСА хочет выбрать n- 1 канал (мини -

возможная мама) таким способом, которым все станции связаны каналами

и полная полоса пропускания (определенный как сумма отдельных полос пропускания каналов) максимальна. Дайте эффективный алгоритм для этого prob-lem и определите его сложность времени худшего случая. Рассмотрите взвешенный граф G = (V, E), где V набор станций, и E - набор канала - nels между станциями. Определите вес w (e) края e в E как полоса пропускания соответствующего канала.

C-13.22 предположим Вам дают расписание, которое состоит из:

• Набор n аэропортов, и для каждого аэропорта в, минимальном доводе «против» -

время necting c (a).

• Набор m flights и следующего, для каждого flight f в:

◦ аэропорт Происхождения a1 (f) в◦ аэропорт Назначения a2 (f) в◦ Время отъезда t1 (f) ◦ Время прибытия t2 (f)

Опишите эффективный алгоритм для flight планирование проблемы. В этом

проблема, нам дают аэропорты a и b, и время t, и мы желаем к com-pute последовательности flights, который позволяет прибывать в самое раннее время в b, отступая в или после времени t. Должны наблюдаться минимальные соединительные времена в промежуточных аэропортах. Какова продолжительность Вашего алгоритма как функция n и m?

C-13.23 В Замке Asymptopia есть лабиринт, и вдоль каждого коридора

из лабиринта есть мешок золотых монет. Количество золота в каждой сумке варьируется. Благородному рыцарю, названному сэром Полом, дадут возможность идти через лабиринт, беря мешки золота. Он может войти, лабиринт только через отмеченную дверь «ВХОДЯТ» и выходят через отмеченный «ВЫХОД» другой двери. В то время как в лабиринте, он может не вернуться той же дорогой. У каждого коридора лабиринта есть стрела, подрисовал стену. Сэр Пол может только спуститься по коридору в направлении стрелы. Нет никакого способа пересечь «петлю» в лабиринте. Учитывая карту лабиринта, включая количество золота в и направления каждого коридора, описывают алгоритм, чтобы помочь сэру Полу взять самое золотое.

13.7. Упражнения 661

C-13.24 Позвольте G быть взвешенным диграфом с n вершинами. Проектируйте изменение Флойда -

Алгоритм Вошола для вычисления длин кратчайших путей от каждой вершины до любой вершины в O (n3) время.

C-13.25 предположим нам дают направленный граф G с n вершинами и позволяют M быть

n n матрица смежности, соответствующая G.

a. Позвольте продукту M с собой (M2) быть определенным, за1£ i, j£ n, как

следует

M2 (я, j) = M (я, 1)⊙ M (1, j)⊕⊕ M (я, n)⊙ M (n, j),

где «» - Булево или оператор, и «» Булев и.

Учитывая это определение, что делает M2 (я, j) = 1, подразумевают о ver-

tices i и j? Что, если M2 (я, j) = 0?

b. Предположим, что M4 - продукт M2 с собой. Что делает записи

M4 имеют значение? Как насчет записей M5 = (M4) (M)? В целом, какая информация содержится в матрице M p?

c. Теперь предположите, что G нагружен, и примите следующее:

(a) [1]. За£ £1 in, M (я, i) = 0.

(b) [2]. За1£ i, j£ n, M (я, j) = вес (я, j), если (я, j) находится в E. (c) [3]. Поскольку за1£ i, j£ n, M (я, j) =¥, если (я, j) не находится в E.

Кроме того, позвольте M2 быть определенным, за1£ i, j£ n, следующим образом

M2 (я, j) = минута M (я, 1) + M (1, j)..., M (я, n) + M (n, j). Если M2 (я, j) = k, что мы можем завершить об отношениях, - вершины подростка i и j?

C-13.26 Граф G двусторонний, если его вершины могут быть разделены в два набора X и

Y таким образом, что у каждого края в G есть одна вершина конца в X и другой в Y. Проектируйте и проанализируйте эффективный алгоритм для определения, если ненаправленный граф G двусторонний (не зная наборы X и Y заранее).

C-13.27 Старый метод ПО СТАНДАРТНОМУ ГОРНОМУ ВРЕМЕНИ, названный алгоритмом Бэравки, работает следующим образом над ˚

граф G имеющий n вершины и m края с отличными весами.

Позвольте T быть подграфом G, первоначально содержащего просто вершины в V.

в то время как у T есть меньше, чем n- 1 край делает

поскольку каждый связанный составляющий Ci T делает

Найдите край самого низкого веса (v, u) в E с v в Ci и u не в Ci.

Добавьте (v, u) к T (если это уже не находится в T).

возвратите T

Обсудите, почему этот алгоритм правилен и почему он бежит в O (m, регистрируют n), время. C-13.28 Позвольте G быть графом с n вершинами и m краями, таким образом что все веса края

в G целые числа в диапазоне [1, n]. Дайте алгоритм для нахождения мини - мама, охватывающая дерево для G в O (m регистрация* n) время.