Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## latest #2490 +/- ##
=========================================
Coverage ? 79.58%
=========================================
Files ? 346
Lines ? 85897
Branches ? 0
=========================================
Hits ? 68364
Misses ? 17533
Partials ? 0 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
galabovaa
left a comment
There was a problem hiding this comment.
LGTM
Parsing with stringstream seems fine
fwesselm
left a comment
There was a problem hiding this comment.
Thanks, @Opt-Mucca, this looks good.
|
I've put "draft" in the title because for some instance I'm debugging it brought up a potential bug in presolve. I thought the debug solution was only intended to work after presolve, so I quickly disabled it with a commit, and now I need to investigate if there's actually a bug In presolve or the debug solution should just be disabled for this bit of the solve process..... Edit: Was just an oversight by me. The commit a few days ago should have fixed the problem (ignore the debug solution until post-presolve) |
BenChampion
left a comment
There was a problem hiding this comment.
Shouldn't we reuse the existing parser code we have for .sol files? Or am I missing something that makes this problematic?
|
The issue with the existing |
The existing parser code does (now) have a "sparse" option. The reason that the SCIP .sol format was used was so that the optimal solution from XPress could be used (by Leona) to check for cut violations. |
This expands how the MIP debug solution can be used.
Previously: Presolve had to be disabled and the solution was removed if a restart occurred. The expected solution format was also SCIP's .sol format with anaonymised variable names.
Now: The expected solution format is a .sol file produced by HiGHS (of the original problem). The solution is then saved both in the original and transformed space when loaded in, and transformed appropriately at each restart and after presolve.
I guess this feature is not used by many people? It's not meant to public facing, and the code is hidden by a compiler flag. This makes is substantially easier to use, and has already been helpful.
I'm still not too sure on C++ that isn't doing MIP stuff. Opinions on how the
.solfile is parsed are welcome.