Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Advanced Simplification #8

Open
haz opened this issue Jul 24, 2020 · 0 comments
Open

Advanced Simplification #8

haz opened this issue Jul 24, 2020 · 0 comments
Labels
enhancement New feature or request

Comments

@haz
Copy link
Collaborator

haz commented Jul 24, 2020

Either a modification of the simplify method or an extended version / separate:

  • If an internal node has both a literal and it's negation, replace it with true (if an Or) or false (if an And), as appropriate.
  • If every child of an Or node n is either literal L, or of the form And([L, ...]), then remove L from the children and add it to the parent of n. If n is the root, then a new root is created: And([L, n])

The first fixes some degenerate cases, and the second propagates recognized backbones up the structure. It needs to be revised slightly for DAGs instead of trees -- (1) only remove the literal if there's no other incoming edge to the And node child of n; and (2) another simplification to remove redundant literals if they are already implied (all ancestor paths have an And node with the literal as a sibling) -- but it's an important step in being able to assess backbones quickly (useful in other fields like planning with partial observability).

@haz haz added the enhancement New feature or request label Jul 24, 2020
@blyxxyz blyxxyz mentioned this issue Jul 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant