<> <> <> <> <<>> DIRECTORY Graphs0; Graphs0Path: CEDAR DEFINITIONS = BEGIN <<>> <> <> <> Graph: TYPE = Graphs0.Graph; Arc: TYPE = Graphs0.Arc; EnumArcProc: TYPE = Graphs0.EnumArcProc; NodeSetList: TYPE = LIST OF Graphs0.NodeList; ArcCostProc: TYPE = PROC [arc: Arc, graph: Graph, data: REF] RETURNS [cost: INT_infinite]; <> <> infinite: INT = LAST[INT]; NotConnected: ERROR; FindPath: PROC [graph: Graph, nodeSets: NodeSetList, arcCostProc: ArcCostProc, arcDeliverProc: EnumArcProc, data: REF_NIL, effort: NAT _ 1, random: BOOL_FALSE] RETURNS [quit: BOOL_FALSE]; <> <> <> <> <> <> <> <> <> << The graph topology must not change during path finding.>> << The cost of arcs must not change except when an(y) arc is delivered.>> << All arcs must have non negative cost.>> << The graph must not have arcs making self loops.>> <<>> END.