-
Notifications
You must be signed in to change notification settings - Fork 14
Improvements to hinting and subproblem handling #244
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
Open
adamrauh
wants to merge
33
commits into
markmfredrickson:proj1-nodeprices
Choose a base branch
from
adamrauh:nodeprices
base: proj1-nodeprices
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
...in case this helps w/ 'ubuntu-latest (devel)' CI compile failure (on fork but not in main repo). If that issue remains, this commit can be `git revert`-ed.
Collaborator
|
Some initial comments... subproblems
inline comments
|
Collaborator
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.
Nice stuff here, collecting all these calculations under the "utils" banner and giving them informative names. Some of this would have been a little painful, but it's a nice win for readibility/maintainability and I appreciate it.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi all,
This PR contains a number of changes aimed generally at improving hinting and handling subproblem metadata. The major proposed changes are as follows:
Improvements to hinting aimed at closing out issue 76. This functionality was in a pretty far-along state when I picked up work on it recently, so most of the recent work here amounted to adding some documentation, examples, and (I think) tests.
Explicit tracking of subproblem feasibility that has the immediate implication of (hopefully) closing out issue 178. Practically speaking, changes here ensure that an MCFSolutions object is always returned from
pairmatch()andfullmatch(), regardless of feasibility, and regardless of where in the stack the subproblem is found to be infeasible (if it is infeasible). So, we can rely on that subproblems table existing and pull from it accordingly.I'll flag that I did change a test in the implementation of (2). Substantively, if a problem consists of only one subproblem, the subproblem group now gets listed as "", as opposed to "1" in the subproblems table, as it was previously. The test in question that I changed can be found here. I have no strong doctrinal reason for this and also am not sure if this breaks important expectations, so of course open to changing things around.
The ability for users to specify subproblem-level resolution values to
pairmatch()andfullmatch()via a new argument,resolution.Some under the hood refactoring to improve the clarity of the lower-level functions that handle solving individual subproblems (e.g.
.fullmatch_with_recovery(), fmatch(), solve_reg_fm_prob(), a new functionparse_subproblems())I'll refer to this thread on my fork of the repo for more information/discussion of what's in here. I'll note that I'm requesting into the
proj1-nodepricesbranch, per @benthestatistician 's request -- I'm not sure what else lives in that branch.With the caveat mentioned above in (2), all tests are currently passing on my machine. Please let me know how else I can help!