/// <param name="startCost"> Starting cost for both the start node and the end node </param> /// <param name="startNode"> the start node </param> /// <param name="endNode"> the end node </param> /// <param name="costRelationTypes"> the relationship that should be included in the /// path </param> /// <param name="relationDirection"> relationship direction to follow </param> /// <param name="costEvaluator"> the cost function per relationship </param> /// <param name="costAccumulator"> adding up the path cost </param> /// <param name="costComparator"> comparing to path costs </param> public Dijkstra(CostType startCost, Node startNode, Node endNode, CostEvaluator <CostType> costEvaluator, CostAccumulator <CostType> costAccumulator, IComparer <CostType> costComparator, Direction relationDirection, params RelationshipType[] costRelationTypes) : base() { this.StartCost = startCost; this.StartNodeConflict = startNode; this.EndNodeConflict = endNode; this.CostRelationTypes = costRelationTypes; this.RelationDirection = relationDirection; this.CostEvaluator = costEvaluator; this.CostAccumulator = costAccumulator; this.CostComparator = costComparator; }
/// <param name="startCost"> /// The cost for just starting (or ending) a path in a node. </param> /// <param name="infinitelyBad"> /// A cost worse than all others. This is used to initialize the /// distance matrix. </param> /// <param name="relationDirection"> /// The direction in which the paths should follow the /// relationships. </param> /// <param name="costEvaluator"> </param> /// <seealso cref= <seealso cref="CostEvaluator"/> </seealso> /// <param name="costAccumulator"> </param> /// <seealso cref= <seealso cref="CostAccumulator"/> </seealso> /// <param name="costComparator"> </param> /// <seealso cref= <seealso cref="CostAccumulator"/> or <seealso cref="CostEvaluator"/> </seealso> /// <param name="nodeSet"> /// The set of nodes the calculation should be run on. </param> /// <param name="relationshipSet"> /// The set of relationships that should be processed. </param> public FloydWarshall(CostType startCost, CostType infinitelyBad, Direction relationDirection, CostEvaluator <CostType> costEvaluator, CostAccumulator <CostType> costAccumulator, IComparer <CostType> costComparator, ISet <Node> nodeSet, ISet <Relationship> relationshipSet) : base() { this.StartCost = startCost; this.InfinitelyBad = infinitelyBad; this.RelationDirection = relationDirection; this.CostEvaluator = costEvaluator; this.CostAccumulator = costAccumulator; this.CostComparator = costComparator; this.NodeSet = nodeSet; this.RelationshipSet = relationshipSet; }
/// <seealso cref= Dijkstra </seealso> public SingleSourceShortestPathDijkstra(CostType startCost, Node startNode, CostEvaluator <CostType> costEvaluator, CostAccumulator <CostType> costAccumulator, IComparer <CostType> costComparator, Direction relationDirection, params RelationshipType[] costRelationTypes) : base(startCost, startNode, null, costEvaluator, costAccumulator, costComparator, relationDirection, costRelationTypes) { Reset(); }