Modeling and solving planning problems in tabled logic programming: Experience from the Cave Diving domain