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

Redesign block-based interface to graph-based interface #5

Merged
merged 5 commits into from
Feb 25, 2024

Conversation

jalving
Copy link
Member

@jalving jalving commented Feb 25, 2024

This PR gets away from the block interface and implements a pure graph data structure in MathOptInterface. We adopt the name GraphOptInterface.OptiGraph as the primary data structure. It works in a similar way to Plasmo.jl, but it instead defines MOI models on nodes and edges.

Also note that we initially tried designing the data-structure such that nodes only contained variables (and bounds); whereas edges contained MOI models with constraints. I found this to make the interface somewhat inconsistent as constraints on nodes required the use of self-edges so users would handle them differently. The self-edges also made implementation quite messy for reasons related to extending MOI.

@codecov-commenter
Copy link

Welcome to Codecov 🎉

Once merged to your default branch, Codecov will compare your coverage reports and display the results in this comment.

Thanks for integrating Codecov - We've got you covered ☂️

@jalving jalving merged commit efcf403 into main Feb 25, 2024
3 of 4 checks passed
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

Successfully merging this pull request may close these issues.

2 participants