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

contrib.alternative_solutions TODO #3342

Open
8 tasks
emma58 opened this issue Aug 13, 2024 · 2 comments
Open
8 tasks

contrib.alternative_solutions TODO #3342

emma58 opened this issue Aug 13, 2024 · 2 comments

Comments

@emma58
Copy link
Contributor

emma58 commented Aug 13, 2024

Summary

I'm using this issue to compile outstanding improvements for contrib.alternative_solutions not addressed in #3270:

  • Transition from APPSI to contrib.solver
  • Once solvers are standardized, switch to having users pass in configured solvers rather than separately passing solver_options arguments
  • Break balas.enumerate_binary_solutions function into smaller functions that can be tested
  • Implement random and norm objectives in lp_enum.
  • Add handling for mixed-integer case in lp_enum_solnpool
  • Support variables argument being something other than None in lp_enum.enumerate_linear_solutions
  • Refactor shifted_lp.get_shifted_linear_model to use the compile_standard_form writer from repn.plugins.standard_form
  • Refactor balas and obbt tests to inherit from unittest.TestCase and reduce bare assertions.
@jlgearh
Copy link
Contributor

jlgearh commented Aug 13, 2024

Some additional issues include:

  • Add handling for mixed-binary case in lp_enum
  • Do more testing for shifted_lp, specficially check the constraints in the reformulated problem
  • Parallelize the main for loop in obbt
  • Add more tests to test_lp_enum_solnpool (at least those from test_lp_enum). As part of this, handle the case where duplicate solutions can get returned. The pentagonal pyramid test returns 6 solutions. The issue is that we actually get back 7. The same solution get’s returned twice, once in presolve and once in B&B.
  • See if the heuristics option can be (re)enabled for lp_enum. This was disabled since Gurobi can produce solutions that are not extreme points during heuristic searches.
  • See if the algorithms can be updated to allow for subsets of variables to explored for lp_enum and lp_enum_solnpool.

@whart222
Copy link
Member

Some additional issues:

  • Refactor the library to use a custom SolutionPool class. Return this solution pool class, rather than a list of Solution objects.
  • Develop summary techniques that analyze and visualize a SolutionPool (e.g. consensus patterns)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants