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

[FEATURE] MultivaluedDecisionDiagram : Making the compact method optionnal #1089

Closed
ib31 opened this issue Mar 18, 2024 · 2 comments
Closed

Comments

@ib31
Copy link

ib31 commented Mar 18, 2024

I'm currently working on utilizing the MultivaluedDecisionDiagram class to handle an MDD I've constructed through knowledge compilation. This MDD is quite large, and I've already applied heuristics to minimize its size. However, I've encountered an issue with the mandatory compact() method in the MultivaluedDecisionDiagram class. This method for detecting and removing isomorphisms seems to have exponential time complexity, which becomes problematic for the largest instances, leading to out of memory errors.

Do you think it is possible to have a constructor to handle mdds as it is instead of trying to compact() them? It would call the method init(int[][] TRANSITIONS) but without calling the method compact(). Thus the call for compact() would be optionnal.

So far i've tried this on my local sources of choco-solver and it works for my large instances of MDD.

@cprudhom
Copy link
Member

What you are looking for is to totally disable compaction?
I suppose I can change the boolean parameter to an int (0: no compaction, 1: compact once, otherwise compact after each tuple addition), what do you think?

@ib31
Copy link
Author

ib31 commented Jun 10, 2024

Yes please it would be great !

Additionally, i can give you the model (variables and transitions array) that makes this method run endlessly.

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