prost-planner / prost

probabilistic planning system for tasks encoded in RDDL
MIT License
37 stars 17 forks source link

Allow removal of values from domains of state-fluents #115

Open thomaskeller79 opened 4 years ago

thomaskeller79 commented 4 years ago

There is currently no way to remove values from a domain of a state-fluent. E.g., if we have a state fluent s with domain {0,1,2,3}, but only {0,2} can be reached, we have to keep all because we cannot replace all occurrences of s == 2 with s == 1 (the new domain would be {0,1}, so "2" would be mapped to "1").

This is non-trivial because, to support this, we'd also have to replace every occurrence of expression of the form s1 == s2 for two state fluents with ((s1 == 0) and (s2 == 0)) or ((s1 == 1) and s2 == 1)) or ... because there is no longer the guarantee that both state fluents have the same value if we allow that some values are removed.