logger.info("Planner timed out after "+timeout+" milliseconds");
throw new TimeoutException("No plan possible in "+timeout+" milliseconds");
}
logger.info("Plan not found with "+((int)this.planningGraph.size()/2)+" steps");
if(!planPossible()) {
throw new PlanningGraphException("Graph has levelled off, plan is not possible.",this.planningGraph.levelOffIndex());
}
}
} else {
logger.info("Goals not possible with "+((int)this.planningGraph.size()/2)+" steps");
//If the goals are not possible, and the graph has levelled off,
//then this problem has no possible plan
if(this.planningGraph.levelledOff()) {
throw new PlanningGraphException("Goals are not possible and graph has levelled off, plan is not possible.",this.planningGraph.levelOffIndex());
}
}
}
return solutionExtraction.getPlanResult();