Although it is written that ff_planner_interface works with Contingent-FF, it is not working well. The problem is that it returns that the plan is unsolvable when it is solvable.
After Contingent-FF generates correctly generating the plan, the "FFPlannerInstance" should look for "ff: found plan as follows"
to check if the plan was solved or not. However, it is looking for "ff: found legal plan". See below:
bool solved = false;
while (not solved and std::getline(planfile, line)) {
// skip lines until there is a plan
if (line.find("ff: found legal plan") != line.npos) {
solved = true;
}
}
Looking for "ff: found legal plan" is correct because it is what FF planner writes, but it is not what Contingent-FF does. So, "FFPlannerInstance" should also look for "ff: found plan as follows", other option is only look for "ff: found" for both planners.
Although it is written that ff_planner_interface works with Contingent-FF, it is not working well. The problem is that it returns that the plan is unsolvable when it is solvable.
After Contingent-FF generates correctly generating the plan, the "FFPlannerInstance" should look for "ff: found plan as follows"
to check if the plan was solved or not. However, it is looking for "ff: found legal plan". See below:
Looking for "ff: found legal plan" is correct because it is what FF planner writes, but it is not what Contingent-FF does. So, "FFPlannerInstance" should also look for "ff: found plan as follows", other option is only look for "ff: found" for both planners.