Method ADT.Relation.Binary()->find_shortest_path()
- Method
find_shortest_path
array
|zero
find_shortest_path(mixed
from
,mixed
to
,void
|multiset
avoiding
)- Description
Assuming the relation's domain and range sets are equal, and that the relation xRy means "there is a path from node x to node y", find_shortest_path attempts to find a path with a minimum number of steps from one given node to another. The path is returned as an array of nodes (including the starting and ending node), or 0 if no path was found. If several equally short paths exist, one of them will be chosen pseudorandomly.
Trying to find a path from a node to itself will always succeed, returning an array of one element: the node itself. (Or in other words, a path with no steps, only a starting/ending point).
The argument
avoiding
is either 0 (or omitted), or a multiset of nodes that must not be part of the path.