public int initSearch(int centerNode, int sourceNode, int sourceEdge) {
        reset();
        this.sourceEdge = sourceEdge;
        this.sourceNode = sourceNode;
        this.centerNode = centerNode;
        setInitialEntries(sourceNode, sourceEdge, centerNode);
        // if there is no entry that reaches the center node we won't need to search for any witnesses
        if (numPathsToCenter < 1) {
            reset();
            return 0;
        }
        currentBatchStats.numSearches++;
        currentBatchStats.maxNumSettledEdges += maxSettledEdges;
        totalStats.numSearches++;
        totalStats.maxNumSettledEdges += maxSettledEdges;
        return dijkstraHeap.getSize();
    }
public int initSearch ( int centerNode , int sourceNode , int sourceEdge ) { reset ( ) ; this . sourceEdge = sourceEdge ; this . sourceNode = sourceNode ; this . centerNode = centerNode ; setInitialEntries ( sourceNode , sourceEdge , centerNode ) ; if ( numPathsToCenter < 1 ) { reset ( ) ; return 0 ; } currentBatchStats . numSearches ++ ; currentBatchStats . maxNumSettledEdges += maxSettledEdges ; totalStats . numSearches ++ ; totalStats . maxNumSettledEdges += maxSettledEdges ; return dijkstraHeap . getSize ( ) ; }
Deletes the shortest path tree that has been found so far and initializes a new witness path search for a given
node to be contracted and search edge.

@param centerNode the node to be contracted (x)
@param sourceNode the neighbor node from which the search starts (s)
@param sourceEdge the original edge incoming to s from which the search starts
@return the number of initial entries and always 0 if we can not directly reach the center node from the given
source edge, e.g. when turn costs at s do not allow this.