protected internal override Traverser InstantiateTraverser(Node start, Node end) { GraphDatabaseService db = start.GraphDatabase; TraversalDescription side = Db.traversalDescription().breadthFirst().uniqueness(_uniqueness).order((startSource, _expander) => new LiteDepthFirstSelector(startSource, _startThreshold, _expander)); return(Db.bidirectionalTraversalDescription().startSide(side.Expand(_expander).evaluator(toDepth(_onDepth / 2))).endSide(side.Expand(_expander.reverse()).evaluator(toDepth(_onDepth - _onDepth / 2))).collisionEvaluator(atDepth(_onDepth)).traverse(start, end)); }
protected internal override Traverser InstantiateTraverser(Node start, Node end) { // Bidirectional traversal GraphDatabaseService db = start.GraphDatabase; TraversalDescription @base = Db.traversalDescription().depthFirst().uniqueness(Uniqueness()); return(Db.bidirectionalTraversalDescription().startSide(@base.Expand(_expander).evaluator(toDepth(_maxDepth / 2))).endSide(@base.Expand(_expander.reverse()).evaluator(toDepth(_maxDepth - _maxDepth / 2))).traverse(start, end)); }
public override PathExpander <double> Reverse() { return(new DijkstraPathExpander(Source.reverse(), ShortestSoFar, Epsilon, StopAfterLowestCost)); }
public override PathExpander <double> Reverse() { return(new DijkstraBidirectionalPathExpander(Source.reverse(), ShortestSoFar, StopAfterLowestCost, OtherSideShortest, ThisSideShortest, Epsilon)); }
public override PathExpander Reverse() { return(new CountingPathExpander(_outerInstance, Delegate.reverse(), NodesVisited)); }
public override PathExpander <object> Reverse() { return(new LengthCheckingExpanderWrapper(Expander.reverse())); }