-
Notifications
You must be signed in to change notification settings - Fork 92
Added Group Model Order thesis strategies #1147
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
Added Group Model Order thesis strategies #1147
Conversation
Co-authored by: Max Riepe <[email protected]>
This counts how many model order nodes are there to properly partition them.
This supports group model order.
Removed unnecessary strategies. Added comments, and fixed the scc cycle breakers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR extends the ELK layered layout algorithm to support group model order strategies for both cycle breaking and crossing minimization phases. The changes enable users to define ordering groups that can be enforced or used as partial ordering constraints beyond simple model order.
- Adds group model order support to cycle breaking strategies with new SCC-based approaches
- Integrates group model order into crossing minimization with configurable enforcement strategies
- Introduces new cycle breaking algorithms (DFS/BFS node order, SCC connectivity/node type) that respect group ordering
Reviewed Changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| ModelOrderBarycenterHeuristic.java | Updates comparator to use group model order calculation with configurable enforcement |
| LayerSweepCrossingMinimizer.java | Adds group order strategy parameters to model order counting methods |
| SCConnectivity.java | New SCC-based cycle breaker using connectivity heuristics with group model order |
| SCCNodeTypeCycleBreaker.java | New SCC cycle breaker with preferred node type selection and group ordering |
| SCCModelOrderCycleBreaker.java | Abstract base class for SCC-based cycle breaking with group model order support |
| ModelOrderCycleBreaker.java | Refactored to use shared GroupModelOrderCalculator with group ordering support |
| GroupModelOrderCalculator.java | New utility class for calculating model order vs group model order with constraints |
| GreedyModelOrderCycleBreaker.java | Updated to support group model order in node selection heuristics |
| DFSNodeOrderCycleBreaker.java | New DFS-based cycle breaker using node model order for traversal ordering |
| BFSNodeOrderCycleBreaker.java | New BFS-based cycle breaker using node model order for traversal ordering |
| InternalProperties.java | Adds properties for tracking max model order, group counts, and Tarjan algorithm state |
| GroupOrderStrategy.java | New enum defining group ordering enforcement strategies |
| CycleBreakingStrategy.java | Extended with new cycle breaking strategy options supporting group model order |
| ModelOrderPortComparator.java | Updated to use group model order calculation in port comparison logic |
| ModelOrderNodeComparator.java | Enhanced with group order strategy support and improved edge handling |
| CMGroupModelOrderCalculator.java | New utility for crossing minimization group model order calculations |
| SortByInputModelProcessor.java | Updated to pass group order strategy to comparators |
| ElkGraphImporter.java | Enhanced to track group model order statistics during graph import |
| Tarjan.java | New implementation of Tarjan's algorithm for strongly connected component detection |
| Layered.melk | Adds configuration options for group model order strategies and enforcement |
...ipse.elk.alg.layered/src/org/eclipse/elk/alg/layered/p1cycles/GroupModelOrderCalculator.java
Outdated
Show resolved
Hide resolved
...lipse.elk.alg.layered/src/org/eclipse/elk/alg/layered/p1cycles/BFSNodeOrderCycleBreaker.java
Outdated
Show resolved
Hide resolved
...ipse.elk.alg.layered/src/org/eclipse/elk/alg/layered/p1cycles/SCCModelOrderCycleBreaker.java
Outdated
Show resolved
Hide resolved
...ins/org.eclipse.elk.alg.layered/src/org/eclipse/elk/alg/layered/p1cycles/SCConnectivity.java
Outdated
Show resolved
Hide resolved
…yered/p1cycles/GroupModelOrderCalculator.java Co-authored-by: Copilot <[email protected]> Signed-off-by: Sören Domrös <[email protected]>
…yered/p1cycles/BFSNodeOrderCycleBreaker.java Co-authored-by: Copilot <[email protected]> Signed-off-by: Sören Domrös <[email protected]>
…yered/p1cycles/SCCModelOrderCycleBreaker.java Co-authored-by: Copilot <[email protected]> Signed-off-by: Sören Domrös <[email protected]>
…yered/p1cycles/SCConnectivity.java Co-authored-by: Copilot <[email protected]> Signed-off-by: Sören Domrös <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good to me
|
Fixes #952 |
Uh oh!
There was an error while loading. Please reload this page.