Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[180]

Начальные значения для рекуррентного соотношения (26.12) таковы:

;(о) = f X(i,j) если г ф j, %з у l0A(i,j) если г = j.

В самом деле, путь из одного ребра имеет метку, равную метку этого ребра, а пустой путь имеет метку 1 в соответствии с нашим соглашением; этот путь надо учесть при г = j.

Мы приходим к алгоритму, использующему метод динамического программирования для последовательного отыскания величин iff при к = 0,1, 2 ... , га; его ответом является матрица = (iff) (соответствующая «суммированию» по всем путям без ограничений на промежуточные вершины).

{\sc Compute-Summaries}!(\lambda,V)$\\ $n\leftarrowV$\\ I for $i\leftarrowl$ to $n$\\

I do for $j\leftarrowl$ to $n$\\ I do if $i=j$\\

I then $l~{(0)} {ij}\leftarrow\barl\oplus\lambda(i I else $l~{(0)} {ij}\leftarrow\lambda(i,j)$\\ r $k\leftarrowl$ to $n$\\ I do for $i\leftarrowl$ to $n$\\

I do for $j\leftarrowl$ to $n$\\

I do $l4(k)> {ij>=l4(k-l)> {ij>\oplus(l4(k-l)> -odot(l~{(k-l)> {kk»~{\ast>\odot l~{(k-l)} {kj})$\\ \verbll return $L~{(n)}$

Время работы данного алгоритма зависит от времени выполнения операций 0, © и *. Обозначив время выполнения операций через Tq, Гф, Г*, общее время работы алгоритма Compute-Summaries можно записать как ©(га3)(Tq + Гф +Г*)), что превращается в 0(га3), если время выполнения любой из трёх операций составляет 0(1).

Упражнения

26.4-1 Проверьте, что S\ = (К° U {оо}, min,+, оо, 0) и S3 = ({0,1}, V, Л, 0,1}) являются замкнутыми полукольцами.

26.4-2 Проверьте, что = (R U { - сю, +00}, min, +, +00, 0) является закнутым полукольцом. Чему равно значение а + ( - оо) для a G М? Что можно сказать о значении ( - оо) + (+оо)?

26.4-3 Запишите алгоритм Compute-Summaries для случая замкнутого полукольца 5*2, аналогичный алгоритму Флойда-Уоршолла. Чему должно быть равно значение -оо + оо, чтобы алгоритм правильно искад длины кратчайших путей?

26.4-4 Является ли S4 = (М,+, •, 0,1) замкнутым полукольцом? (Точнее следовало бы спросить так: можно ли его превратить в замкнутое полукольцо, определив каким-либо образом сумму любого бесконечного ряда?)

\verb

1

\verb

2

\verb

3

\verb

4

\verb

5

\verb

6

\verb

7

\verb

8

\verb

9

\verb

10


26.4-5 Можем ли мы обобщить на случай проивзольного замкнутого полукольца алгоритм Дейкстры? Алгоритм Беллмана-Форда? Процедуру Faster-All-Pairs-Shortest-Paths?

26.4-6

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

Задачи

26-1 Транзитивное замыкание растущего графа Мы хотим вычислять транзитивное замыкание ориентированного графа G = (V,E), множество рёбер которого растёт. Другими словами, мы хотим обновлять транзитивное замыкание после добавления в граф ещё одного ребра. Мы считаем, что изначально граф G не имел рёбер вовсе. Транзитивное замыкание должно храниться в булевой матрице.

a.Покажите, как за время 0(V2) можно произвести обновление транзитивного замыкания после добавления в граф G нового ребра.

b.Покажите, что любой алгоритм обновления транзитивного замыкания (хранящий его в булевой матрице) может потребовать времени 0(V2) после добавления одного ребра.

c.Постройте алгоритм обновления транзитивного замыкания графа после добавления рёбер, для которого суммарное время работы при добавлении любой последовательности рёбер не превосходит 0(V3).

26-2 Кратчайшие пути в е-плотных графах

Граф G = (V, Е) называется s-плотным, если \Е\ = 0(С1+е) для некоторой константы е, лежащей в диапазоне 0 < е 1. Использование d-ичных куч (см. задачу 7-2) в алгоритме поиска кратчайших путей на е-плотных графах позволяет избавиться от использования фибоначчиевых куч (довольно сложной структуры данных), сохранив ту же асимптотическую оценку времени работы.

a.Определите асимптотику времени работы процедур Insert, Extract-Min и Decrease-Key как функцию от d и п (здесь п - число элементов d-ичной кучи). Что получается при d = Q(na), где 0 < а 1 - некоторая константа. Сравните эти времена с учётными временами этих операций для фибонначиевых куч.

b.Придумайте способ вычислить кратчайшие пути из одной вершины в е-плотном ориентированном графе G = (V, Е) без рёбер отрицательного веса за время О(Е). (Указание: выберите подходящее d как функцию е.)

c.Покажите, что можно вычислить кратчайшие пути для всех пар вершин в е-плотном ориентированном графе G = (V, Е) без рёбер отрицительного веса за время 0(VE).


d. Покажите, что за время 0(VE) можно вычислить кратчайшие пути для всех пар вершин в е-плотном ориентированном графе G = (V,E), который может иметь рёбра отрицательного веса, но не содержит циклов отрицательного веса.

26-3 Минимальный остов и замкнутое полукольцо Пусть G = (V, Е) - связный неориентированный граф с весовой функций w : Е -> Ж, вершинами которого являются числа от 1 до п. Предположим, что веса w(i,j) всех рёбер различны. Пусть Т - единственный (см. упр. 24.1-6) минимальный остов графа G. Маге (B.M.Maggs) и С.А.Плоткин предложили использовать замкнутое полукольцо для отыскания минимального покрывающего дерева. Для каждой пары вершин определим минимаксный вес (minimax weight) rriij взяв минимум по всем путям максимумов весов рёбер на каждом пути.

a.Покажите, что s = (м. U { - оо, оо}, min, max, оо, -оо) является замкнутым полукольцом.

Таким образом, мы можем использовать процедуру Compute-Summapjes для вычисления минимаксных весов rriij в графе G.

(к)

Обозначим через т- минимаксный вес для всех путей из i в j с промежуточными вершинами из множества {1, 2, • • • , к}.

(к)

b.Напишите рекуррентную формулу для т- при к 0.

c.Пусть Тт =G Е : w(i,j) = rriij}. Докажите, что ребра из Тт образуют покрывающее дерево для графа G.

d.Покажите, что это покрывающее дерево будет минимальным. (Указание. Посмотрите, что происходит при добавлении ребра в Г и одновременном удалении из Т какого-нибудь ребра, лежащего на пути из г в j. Посмотрите также, что происходит при замене ребра из Т на другое ребро.)

Замечания

Лоулер [132] подробно рассматривает задачу нахождения кратчайших путей для всех пар вершин, хотя и не выделяет отдельно случай разреженных графов (при этом связь задачи о кратчайших путях с умножением матриц относится к фольклору). Алгоритм Флойда-Уоршолла описан в работе Флойда [68], который опирается результат Уоршолла [198] (о транзитивным замыкании булевых матриц). Понятие замкнутого полукольца появилось в книге Ахо, Хопкофта и Ульмана [4]. Алгоритм Джонсона взят из [114].



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120] [стр.121] [стр.122] [стр.123] [стр.124] [стр.125] [стр.126] [стр.127] [стр.128] [стр.129] [стр.130] [стр.131] [стр.132] [стр.133] [стр.134] [стр.135] [стр.136] [стр.137] [стр.138] [стр.139] [стр.140] [стр.141] [стр.142] [стр.143] [стр.144] [стр.145] [стр.146] [стр.147] [стр.148] [стр.149] [стр.150] [стр.151] [стр.152] [стр.153] [стр.154] [стр.155] [стр.156] [стр.157] [стр.158] [стр.159] [стр.160] [стр.161] [стр.162] [стр.163] [стр.164] [стр.165] [стр.166] [стр.167] [стр.168] [стр.169] [стр.170] [стр.171] [стр.172] [стр.173] [стр.174] [стр.175] [стр.176] [стр.177] [стр.178] [стр.179] [стр.180] [стр.181] [стр.182] [стр.183] [стр.184] [стр.185] [стр.186] [стр.187] [стр.188] [стр.189] [стр.190] [стр.191] [стр.192] [стр.193] [стр.194] [стр.195] [стр.196] [стр.197] [стр.198] [стр.199] [стр.200] [стр.201] [стр.202] [стр.203] [стр.204] [стр.205] [стр.206] [стр.207] [стр.208] [стр.209] [стр.210] [стр.211] [стр.212] [стр.213] [стр.214] [стр.215] [стр.216] [стр.217] [стр.218] [стр.219] [стр.220] [стр.221] [стр.222] [стр.223] [стр.224] [стр.225] [стр.226] [стр.227] [стр.228] [стр.229] [стр.230] [стр.231] [стр.232] [стр.233] [стр.234] [стр.235] [стр.236] [стр.237] [стр.238] [стр.239] [стр.240] [стр.241] [стр.242] [стр.243] [стр.244] [стр.245] [стр.246] [стр.247] [стр.248] [стр.249] [стр.250] [стр.251] [стр.252] [стр.253] [стр.254] [стр.255] [стр.256] [стр.257] [стр.258] [стр.259] [стр.260] [стр.261] [стр.262] [стр.263] [стр.264] [стр.265] [стр.266] [стр.267] [стр.268] [стр.269] [стр.270] [стр.271] [стр.272] [стр.273] [стр.274] [стр.275] [стр.276] [стр.277] [стр.278] [стр.279] [стр.280] [стр.281] [стр.282] [стр.283] [стр.284] [стр.285] [стр.286] [стр.287] [стр.288] [стр.289] [стр.290] [стр.291] [стр.292] [стр.293] [стр.294]