scipy.sparse.csgraph.

breadth_first_order#

scipy.sparse.csgraph.breadth_first_order(csgraph, i_start, directed=True, return_predecessors=True)#

Gibt eine Breitensuche-Reihenfolge zurück, die mit dem angegebenen Knoten beginnt.

Beachten Sie, dass eine Breitensuche-Reihenfolge nicht eindeutig ist, aber der von ihr erzeugte Baum eindeutig ist.

Hinzugefügt in Version 0.11.0.

Parameter:
csgrapharray_like oder dünnbesetzte Array oder Matrix

Der N x N komprimierte dünnbesetzte Graph. Die Eingabe csgraph wird für die Berechnung in das csr-Format konvertiert.

i_startint

Der Index des Startknotens.

directedbool, optional

Wenn True (Standard), dann wird auf einem gerichteten Graphen gearbeitet: es wird nur von Punkt i zu Punkt j entlang der Pfade csgraph[i, j] navigiert. Wenn False, dann wird der kürzeste Pfad in einem ungerichteten Graphen gesucht: der Algorithmus kann von Punkt i zu j entlang csgraph[i, j] oder csgraph[j, i] fortschreiten.

return_predecessorsbool, optional

Wenn True (Standard), dann wird das Vorgänger-Array zurückgegeben (siehe unten).

Rückgabe:
node_arrayndarray, eindimensional

Die Breitensuche-Liste der Knoten, beginnend mit dem angegebenen Knoten. Die Länge von node_array ist die Anzahl der Knoten, die vom angegebenen Knoten erreichbar sind.

predecessorsndarray, eindimensional

Wird nur zurückgegeben, wenn return_predecessors True ist. Die Längen-N-Liste der Vorgänger jedes Knotens in einem Breitensuche-Baum. Wenn Knoten i im Baum ist, dann ist sein Elternknoten durch predecessors[i] gegeben. Wenn Knoten i nicht im Baum ist (und für den Elternknoten), dann ist predecessors[i] = -9999.

Hinweise

Wenn mehrere gültige Lösungen möglich sind, kann die Ausgabe je nach SciPy- und Python-Version variieren.

Beispiele

>>> 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)
<Compressed Sparse Row sparse array of dtype 'int64'
    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))