scipy.sparse.csgraph.

breadth_first_order#

scipy.sparse.csgraph.breadth_first_order(csgraph, i_start, направленный=True, return_predecessors=True)#

Вернуть порядок обхода в ширину, начиная с указанного узла.

Обратите внимание, что порядок обхода в ширину не уникален, но дерево, которое он генерирует, уникально.

Добавлено в версии 0.11.0.

Параметры:
csgrapharray_like или разреженный массив или матрица

Граф N x N в сжатом разреженном формате. Входной csgraph будет преобразован в формат csr для вычислений.

i_startint

Индекс начального узла.

направленныйbool, необязательно

Если True (по умолчанию), то работа с ориентированным графом: перемещение только от точки i к точке j по путям csgraph[i, j]. Если False, то поиск кратчайшего пути на неориентированном графе: алгоритм может переходить от точки i к j по csgraph[i, j] или csgraph[j, i].

return_predecessorsbool, необязательно

Если True (по умолчанию), то вернуть массив предшественников (см. ниже).

Возвращает:
node_arrayndarray, одно измерение

Список узлов в ширину, начиная с указанного узла. Длина node_array — это количество узлов, достижимых из указанного узла.

предшественникиndarray, одно измерение

Возвращается только если return_predecessors равен True. Список длины N предшественников каждого узла в дереве поиска в ширину. Если узел i находится в дереве, то его родитель задаётся predecessors[i]. Если узел i не в дереве (и для родительского узла), то predecessors[i] = -9999.

Примечания

Если возможны несколько допустимых решений, вывод может варьироваться в зависимости от версии SciPy и Python.

Примеры

>>> from scipy.sparse import csr_array
>>> from scipy.sparse.csgraph import breadth_first_order
>>> graph = [
... [0, 1, 2, 0],
... [0, 0, 0, 1],
... [2, 0, 0, 3],
... [0, 0, 0, 0]
... ]
>>> graph = csr_array(graph)
>>> print(graph)

    with 5 stored elements and shape (4, 4)>
    Coords  Values
    (0, 1)  1
    (0, 2)  2
    (1, 3)  1
    (2, 0)  2
    (2, 3)  3
>>> breadth_first_order(graph,0)
(array([0, 1, 2, 3], dtype=int32), array([-9999,     0,     0,     1], dtype=int32))