searchOutcome = SearchOutcome.PATH_NOT_FOUND;
clearInstrumentation();
Problem op = ((BidirectionalProblem) p).getOriginalProblem();
Problem rp = ((BidirectionalProblem) p).getReverseProblem();
CachedStateQueue<Node> opFrontier = new CachedStateQueue<Node>();
CachedStateQueue<Node> rpFrontier = new CachedStateQueue<Node>();
GraphSearch ogs = new GraphSearch();
GraphSearch rgs = new GraphSearch();
// Ensure the instrumentation for these
// are cleared down as their values
// are used in calculating the overall
// bidirectional metrics.
ogs.clearInstrumentation();
rgs.clearInstrumentation();
Node opNode = new Node(op.getInitialState());
Node rpNode = new Node(rp.getInitialState());
opFrontier.insert(opNode);
rpFrontier.insert(rpNode);
setQueueSize(opFrontier.size() + rpFrontier.size());
setNodesExpanded(ogs.getNodesExpanded() + rgs.getNodesExpanded());