issues
search
plaans
/
aries
Toolbox for automated planning and combinatorial solving.
MIT License
39
stars
5
forks
source link
Equality logic + Symmetry breaking + Rolling
#137
Closed
arbimo
closed
2 weeks ago
arbimo
commented
2 weeks ago
chore: build basis of equality logic reasoner
chore(eq): Complete propagation of equality logic
feat(eq): support explanation of equality logic propagation.
chore(eq): initial integration of equality reasoner into the main solver.
wip
chore(eq): allow value nodes in equality graph
chore(eq): complete domain propagation.
tmp
chore(eq): complete explanations.
tmp
chore(eq): Optimize propagation.
feat(solver): Record events for variable creation.
feat(solver): Use equality logic in table constraints.
feat(eq): Distinguish pos and neg edges among enabled edges.
chore(eq): Improve propagation of newly added edges.
fix(plan): Re-enable boolean values in table constraints.
chore(explain): Add reasoner id to explanation callback.
chore(explain): Add env param to enable/disable equality logic.
chore(eq): Implement an optimized equality theory that partition variables into potentially unifiable ones.
feat(eq): Implement simplification of equality constraints.
fix(planning): ActivityBoolLight was not used when asked.
chore(eq): Update usage of equality theory for splitted version.
feat(planning): Add experimental PSP symmetry breaker.
feat(planning): preprocessing to merge identical condition whose interval meet.
feat(planning): Improved detection of state variables from sets of predicates.
feat(planning): Additional preprocessing of mutex predicates.
fix(planning): Make sure we do not remove an effect that may induce a threat.
fix(planning): Conditions & effect merging resulted in infinite loops.
fix(planning): Allow multiple events in conflict based search.
feat(planning): In PSP symmetry-braking, ensure actions are not inserted only for detrimental supports.
feat(planning): Exploit Knoblock's hierarchy in symmetry breaking.
fix(linear-constraint): Simplification had a sign error.
chore: Fix compiler warnings.
fix(eq): Work around bug in equality logic propagator.
chore: Add convenience method for constructing Table constraints.
chore(planning): Extract constraint encoding from the main
encode
method.
chore: fix compilation warnings.
chore: Add convenience method for extracting variables from an
SAtom
feat(cp): add a new method to
Solver
to enumerate all possible assignments to a set of variables.
feat(planning): add a new preprocesing step that rollup actions.
chore(planning): Move table constraint encoding to separate function.
fix(planning): make sure all action templates are given a fluent-hierarchy level, even if they do not contribute meaningful effects.
feat(planning): Improved propagation for table constraints.
chore: Exclude non-interesting patterns from action rolling.
feat(planning): Make enforcing minimality optional in PSP symmetry breaking.
fix(planning): do not use plan-space symmetry breaking in hierarchical planning.
feat(planning): Add command line option to
lcp
to specify known sat/unsat status.
fix(planning): conversion of bools into table constraints was incorrect
fix(state-variables): lifting to ST from predicates had an erroneous case.
fix(state-variables): ensure that all conditions can be lifted before commiting to lift a state variable.
fix(state-variables): disable potentially a detrimental support recognition pattern with rare problematic corner cases
feat(solver): new struct for representing constant values.
chore(solver): Deactivate equality logic by default as it seem to be detrimental on some rare problems.
deps(up): Update unified planning dependency.
chore(planning): Very minor improvement of plan output
chore(model): Add method to get the type of an atom.
chore(model): add method to extract replaced variables from a substitution.
chore(model): add
From<...>
implementations for converting literals to
Cst
chore(model): Add a new
PartialAssignment
trait to enable the partial evaluation of expressions.
feat(planning): Allow unrolling action in the solution plan.
chore: renaming to avoid name clash of PartialAssignment
lint: fix clippy lint for rust 1.79
fix(planning): check that we can unroll the action before allowing to roll
fix(planning): Deactivate PSP symmetry breaking in numeric planning problems.
feat(up): Declare support of undefined initial values.
fix(up): remove declared support for undefined values in the validator
encode
method.SAtom
Solver
to enumerate all possible assignments to a set of variables.lcp
to specify known sat/unsat status.From<...>
implementations for converting literals toCst
PartialAssignment
trait to enable the partial evaluation of expressions.