Алгоритм поиска кратчайших путей между всеми парами при помощи матричного произведения: различия между версиями

Перейти к навигации Перейти к поиску
нет описания правки
Нет описания правки
Нет описания правки
Строка 34: Строка 34:


Если стоимости дуг ограничены положительным целым числом M, можно разработать более удачный алгоритм, что было показано Такаокой в [9]. Вкратце рассмотрим алгоритм Романи [6] для произведения матриц расстояния.
Если стоимости дуг ограничены положительным целым числом M, можно разработать более удачный алгоритм, что было показано Такаокой в [9]. Вкратце рассмотрим алгоритм Романи [6] для произведения матриц расстояния.
Пусть A и B – матрицы расстояния формата (n, m) и (m, n), соответственно, элементы которых ограничены числом M либо равны бесконечности. Пусть диагональные элементы равны 0. Преобразуем матрицы A и B в A' и B', где a'ij = (m + l)M-aij, если aij  , и 0 в противном случае, а b'ij =(m + 1)M-bij, если bij  , и 0 в ином случае.
 
Пусть A и B – матрицы расстояния формата (n, m) и (m, n), соответственно, элементы которых ограничены числом M либо равны бесконечности. Пусть диагональные элементы равны 0. Преобразуем матрицы A и B в A' и B', где <math>a'_{ij} = (m + 1)^{M - a_{ij}}</math>, если <math>a_{ij} \ne \infty \, </math>, и 0 в противном случае, а <math>b'_{ij} =(m + 1)^{M - b_{ij}}</math>, если <math>b_{ij} \ne \infty \, </math>, и 0 в ином случае.
 
Пусть C' = A' B' – результат обычного матричного произведения, а C = A × B – результат произведения матриц расстояния. Тогда верно следующее:
Пусть C' = A' B' – результат обычного матричного произведения, а C = A × B – результат произведения матриц расстояния. Тогда верно следующее:


4501

правка

Навигация