Содержание книги

  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. База данных - унифицированная совокупность хранимых и воспроизводимых данных, используемых в рамках организации.


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Нахождение кратчайших маршрутов



Пусть G = (М, R) взвешенный граф, имеющий п вершин и матрицу весов W = (wij), Î R. Опишем некоторые методы нахождения взвешенного расстояния от фиксированной вершины ai Î М (называемой источником) до всех вершин графа G.

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

Определим алгоритм Форда-Беллмана. Зададим строку D(1) = (d1(1), d2(1),…, dn(1)), полагая di(1) = 0, dj(1) = wij, i ¹ j. В этой строке dj(1) (j ¹ i) есть вес wij дуги (ai ¹ aj), если (ai,aj) существует, и dj(1) = ¥, если (ai,aj) Î R. Теперь определим строку D(2) = (d1(2), d2(2),…, dn(2)), полагая dj(2) = min{ dj(1), dk(1) + wkj } k=1,…,n. Нетрудно заметить, что dj(2) — минимальный из весов (ai,aj)-маршрутов, состоящих не более чем из двух дуг (рис. 4.24).

Продолжая процесс, на шаге s определим строку D(s) = (d1(s), d2(s),…, dn(s)), полагая dj(s) = min{ dj(s-1), dk(s-1) + wkj } k=1,…,n. Искомая строка, w -расстояний получается при s = n - 1: dj(n-1) =
pw (ai,aj). Действительно, на этом шаге из весов всех (ai,aj)-маршрутов, содержащих по более п - 1 дуг, выбирается наименьший, а каждый маршрут более чем с п - 1 дугами содержит контур, добавление которого к маршруту не уменьшает w- расстояния, так как мы предположили отсутствие контуров отрицательного веса. Работу алгоритма можно завершить на шаге k, если D(k) = D(k+1)

Пример 4.5.1. Продемонстрируем работу алгоритма Форда-Беллмана на примере взвешенного графа, показанного на, рис 4.25, с матрицей весов

0 1 ¥ ¥ 3

¥ 0 3 3 8

.
W =
¥ ¥ 0 1 -5

¥ ¥ 2 0 ¥

¥ ¥ ¥ 4 0

В качестве источника выберем вершину 1. Тогда D(1) = (0,1,¥,¥,3), D(2) = (0,1,4,4,3), D(3) = (0,1,4,4,-1), D(4) = (0,1,4,3,-1). Таким образом, pw (1,1) = 0, pw (1,2) = 1, pw (1,3) = 4, pw (1,4) = 3, pw (1,5) = -1.

Отметим, что, зная расстояние от источника ai до всех остальных вершин графа, можно найти и сами кратчайшие (ai,aj)-маршруты. Действительно, пусть ai,b1,b2,…,br,aj кратчайший (ai,aj)-маршрут. Тогда по строке D(n-1) вершина br = находится из соотношения pw (ai,aj) = pw (ai, ) + , вершина br-1 = из соотношения pw (ai, ) = pw (ai, ) + , и т. д.

Пример 4.5.2. В примере 4.5.1 кратчайший (1,4)-маршрут определяется следующим образом: pw (1,4) = 3 = -1 + 4 = pw (1,5) + w 54, тогда br = 5; pw (1,5) = -1 = 4 - 5 = pw (1,3) + w 35, откуда br-1 = 3; pw (1,3) = 4 = 1 + 3 = w 12 + w 23, следовательно, br-1 = b2 = 3, br-3 = b1 = 2. Таким образом, кратчайший (1,4)-маршрут задается последовательностью вершин (1,2,3, 5,4).

Алгоритм Дейкстры является более эффективным, чем алгоритм Форда-Беллмана, но используется только для взвешенных графов, в которых веса всех дуг неотрицательны.

Итак, пусть G = (M,R)— взвешенный граф, W = (wij)— матрица весов графа G, где wij ³ 0; ai; — выделенный источник. Зададим строку D(1) = (d1(1), d2(1),…, dn(1)), полагая, как и в алгоритме Форда-Беллмана, di(1) = 0, dj(1) = wij, i ¹ j, Обозначим через T1 множество вершин M \{ ai }. Предположим, что на шаге s уже определены строка D(s) = (d1(s), d2(s),…, dn(s)) и множество вершин Ts. Выберем теперь вершину aj Î Ts так, что dj(s) = min{ dk(s) | ak Î Ts }. Положим Тs+1 = Тs \{ аj }, D(s+1) = (d1(s+1),…, dn(s+1)), где dk(s+1) = min{ dk(s), dj(s) + wjk }, если ak Î Тs+1. На шаге s = n -1 образуется строка D(n-1) w -расстояний между вершиной аi и остальными вершинами графа: dj(n-1) = рwi,aj).

Отметим, что для реализации алгоритма Форда-Беллмана требуется порядка n3 операций, тогда как в алгоритме Дейкстры необходимо выполнить порядка n2 операций.

Пример 4.5.3. Рассмотрим взвешенный граф G с матрицей весов

0 1 ¥ ¥ ¥ ¥

¥ 0 5 2 ¥ 7

W =
¥ ¥ 0 ¥ ¥ 1

2 ¥ 1 0 4 ¥

¥ ¥ ¥ 3 0 ¥

¥ ¥ ¥ ¥ 1 0

и источником 1 (рис. 4.26).

Тогда по алгоритму Дейкстры T1 = {2,3,4,5,6}, D(1) = (0, 1,¥,¥,¥,¥), T2 = {3,4,5,6}, D(2) = (0,1,6, 3,¥,¥), T3 = {3,5,6}, D(3) = (0,1, 4,3,7,8), T4 = {5,6}, D(4) = (0,1,4,3,7, 5); T5 = {5}, D(5) = (0,1,4,3,6,5) (в D(s) подчеркнута величина dj(s), для которой Ts.+1 = Ts \{ aj }). Таким образом, рw (1,1) = 0, рw (1,2) = 1, рw (1,3) = 4, рw (1,4) = 3, рw (1,5) = 6, рw (1,6) = 5. □

Опишем теперь алгоритм нахождения кратчайших маршрутов, в бесконтурном графе. Так же, как и в алгоритме Дейкстры, для выполнения этого алгоритма необходимо порядка п2 операций.

Прежде всего заметим, что в конечном бесконтурном графе G = (М,R)вершины можно перенумеровать так, что каждая дуга будет иметь вид (ai,aj), где i < j. Действительно, в конечном бесконтурном графе всегда существует вершина а, в которую не заходит ни одна дуга. Обозначим эту вершину через а1 и рассмотрим граф G1,полученный из G удалением вершины а1. Граф G1 также является бесконтурным и, следовательно, содержит вершину , в которую не заходит ни одна дуга графа G1. Вершину обозначим через а2, а граф, полученный из G1 удалением вершины а2 через G2. Продолжая процесс, получим в результате искомую нумерацию a1, a2,…, an вершин графа G.

Пример 4.5.4. На рис. 4.27 приведен пример нумерации вершин бесконтурного взвешенного графа, при которой из (ai,aj) Î R. следует i < j (в скобках указаны веса взвешенных дуг). □

Предположим, что в бесконтурном графе G = ({ a1,…, an }, R)для произвольной дуги (ai,aj)выполняется условие i < j. Заметим, что при такой нумерации все элементы матрицы весов, стоящие под главной диагональю, равны ¥. Найдем расстояние от ai до всех вершин графа. Рассмотрим строку D(1) = (d1(1), d2(1),…, dn(1)), где d1(1) = 0, dj(1) = w1j, j ³ 2. Если на шаге s строка D(s) = (d1(s), d2(s),…, dn(s)) определена, положим D(s+1) = (d1(s+1), d2(s+1),…, dn(s+1)), где dj(s+1) = min{ dj(s), dk(s) + wkj }, для k < j и Î R, j = 1,…, n. Данный алгоритм является аналогом алгоритма Форда-Беллмана, учитывающим бесконтурность графа. G, и при s = п – 1 получаем dj(n-1) = pw (a1,aj)

Пример 4.5.5. Для графа G (рис. 4.27) имеем

0 1 ¥ 2 ¥ ¥ 1 ¥

¥ 0 -2 ¥ 7 ¥ ¥ ¥

¥ ¥ 0 ¥ ¥ 10 ¥ ¥

,
S = C + Q =
¥ ¥ ¥ 0 -5 ¥ ¥ ¥

¥ ¥ ¥ ¥ 0 6 ¥ 1

¥ ¥ ¥ ¥ ¥ 0 ¥ ¥

¥ ¥ ¥ ¥ ¥ ¥ 0 3

¥ ¥ ¥ ¥ ¥ ¥ ¥ 0

D(1) = (0,1,¥,2,¥,¥,1,¥), D(2) = (0,1,-1,2,-3,¥,1,4), D(3) = (0,1,-1,2,-3,3,1,
-2) = D(4) = D(5) = D(6) = D(7). □

Отметим, что если в приведенных алгоритмах ¥ заменить на -¥, min — на max, то получим алгоритмы, которые позволяют в графах, не имеющих контуров положительных весов, находить маршруты наибольшей длины.

 



Поделиться:


Последнее изменение этой страницы: 2016-04-07; просмотров: 459; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.220.247.152 (0.007 с.)