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

Filter-NAC Optimisations #376

Open
anthonyanjorin opened this issue Oct 4, 2018 · 2 comments
Open

Filter-NAC Optimisations #376

anthonyanjorin opened this issue Oct 4, 2018 · 2 comments
Assignees

Comments

@anthonyanjorin
Copy link
Contributor

Filter NACs can be quite costly (we don't yet know how costly).

Here are some ideas to reduce the number of filter NACs we currently generate:

  • Don't generate filter NACs if the forbidden structure is impossible anyway (multiplicities 0..1, container semantics, multiplicities and other matched edges in the same pattern?, ...)
  • Check if we handle the case where the forbidden edge can never be translated anyway with the rules of the TGG (and if we handle this generally enough)
@anthonyanjorin anthonyanjorin self-assigned this Oct 4, 2018
@Arikae
Copy link
Collaborator

Arikae commented Dec 16, 2018

The first point makes sense, isn't that something where we could possible reuse some code/logic from our pattern optimization?

About the second point, we already do this with the current filter NAC generation or do you mean more general cases?

@anthonyanjorin
Copy link
Contributor Author

Can't remember --- but when optimising we found some examples where the generated filter NACs were a bit paranoid (and could be omitted).

After refactoring and cleaning up the code, I guess one would have to go through our TGGs and inspect randomly the generated filter NACs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants