Endless loop in checkDeadEnd

Issue #55 new
geisserf created an issue

The checkDeadEnd method in rddl_parser/task_analyzer.cc (as well as in search/search_engine.cc) may end in an infinite loop for a task where no action is possible and the state switches only between two values with minimal reward, see attachment.

Although not tested, it seems that this also may happen if no action increases the reward. The reason is that checkDeadEnd checks (in the case of no increased reward) the state has changed. If the states always fluctuate between two states this condition will never hold.

An easy check is to merge the successor state with the current state and then continue the dead-end check. As this results in a monotonic increase of the kleene state there will always be a fix point.

Comments (0)

  1. Log in to comment