allshortestpaths (biograph)

Найдите все кратчайшие пути в объекте биографика

Синтаксис

[dist] = allshortestpaths(BGObj)
[dist] = allshortestpaths(BGObj, ...'Directed', DirectedValue, ...)
[dist] = allshortestpaths(BGObj, ...'Weights', WeightsValue, ...)

Аргументы

BGObj Объект биографика, созданный biograph (конструктор объектов).
DirectedValueСвойство, которое указывает, направлен ли график или не направлен. Введите false для неориентированного графа. Это приводит к игнорированию верхнего треугольника разреженной матрицы. По умолчанию это true.
WeightsValueВектор-столбец, который задает пользовательские веса для ребер в матрице смежности N на N, извлеченной из объекта биографика BGObj. Он должен иметь одну запись для каждого ненулевого значения ( ребра) в матрице. Порядок пользовательских весов в векторе должен совпадать с порядком ненулевых значений в матрице, когда она пройдена по столбцу. Это свойство позволяет использовать нулевые веса. По умолчанию allshortestpaths получает информацию о весе из ненулевых значений в матрице.

Описание

Совет

Для получения вводной информации о функциях теории графиков, см. «Функции теории графиков».

[dist] = allshortestpaths(BGObj) находит кратчайшие пути между каждой парой узлов в графике, представленной матрицей смежности N на N, извлеченной из биографика объекта, BGObj, используя алгоритм Джонсона. Ненулевые значения в матрице представляют веса ребер.

Выходные dist - матрица N на N, где dist(S, T) - расстояние от самого короткого пути до исходного узла S к целевому узлу T. Элементы диагонали этой матрицы всегда 0, указывает, что исходный и целевой узлы совпадают. A 0 не в диагонали указывает, что расстояние между исходным узлом и целевым узлом 0. Система координат Inf указывает, что между исходным узлом и целевым узлом нет пути.

Алгоритм Джонсона имеет временную сложность O(N*log(N)+N*E), где N и E являются числом узлов и кромками соответственно.

[...] = allshortestpaths (BGObj, 'PropertyName', PropertyValue, ...) вызывает allshortestpaths с необязательными свойствами, которые используют пары имя/значение свойства. Можно задать одно или несколько свойств в любом порядке. Каждый PropertyName должны быть заключены в одинарные кавычки и нечувствительны к регистру. Эти имена свойства/пары значения свойств следующие:

[dist] = allshortestpaths(BGObj, ...'Directed', DirectedValue, ...) указывает, направлен ли график или не направлен. Задайте DirectedValue на false для неориентированного графа. Это приводит к игнорированию верхнего треугольника разреженной матрицы. По умолчанию это true.

[dist] = allshortestpaths(BGObj, ...'Weights', WeightsValue, ...) позволяет задать пользовательские веса для ребер. WeightsValue - вектор-столбец, имеющая одну запись для каждого ненулевого значения (ребра) в матрице смежности N на N, извлеченной из объекта биографика, BGObj. Порядок пользовательских весов в векторе должен совпадать с порядком ненулевых значений в матрице смежности N на N, когда она пройдена по столбцу. Это свойство позволяет использовать нулевые веса. По умолчанию allshortestpaths получает информацию о весе из ненулевых значений в матрице смежности N на N.

Ссылки

[1] Johnson, D.B. (1977). Эффективные алгоритмы для кратчайших путей в разреженных сетях. Журнал ACM 24 (1), 1-13.

[2] Siek, J.G., Lee, L-Q, and Lumsdaine, A. (2002). Руководство пользователя библиотеки График (Upper Saddle River, NJ: Pearson Education).

Введенный в R2006b