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

Warm start best practice #271

Open
andrea-cassioli-maersk opened this issue Jun 21, 2023 · 2 comments
Open

Warm start best practice #271

andrea-cassioli-maersk opened this issue Jun 21, 2023 · 2 comments

Comments

@andrea-cassioli-maersk
Copy link

Hi,
we are refactoring an old code based on clp that implements a column-generation algorithm.

The current implementation

  • stores the master problem in a CoinModel object,
  • accesses clp via OsiClpSolverInterface,
  • stores the warm start information in a CoinWarmStart object
  • uses the initialSolve the first time and then setWarmStart and resolve later on.

I am wondering if this is still the right way. I am looking at the ClpDualSimplex solver class and I am wondering whether under the hood it will performa warm start if I apply changes (basically adding columns) .

@jjhforrest
Copy link
Contributor

Adding columns you would want ClpPrimalSimplex. Yes it will perform a warm start and the coding would be a bit simpler - but it would only be marginally faster. It may be worth looking at the example in Clp/examples - sprint.cpp. This is in many ways more complicated - but it may give you some ideas.

@andrea-cassioli-maersk
Copy link
Author

Thanks @jjhforrest I will go for the ClpPrimalSimplex. For now simplicity is quite important over speed. The sprint.cpp example is a bit convoluted by I will look into it.

Btw, what is the meaning of the ifValuesPass parameter in ClpPrimalSimplex.primal()?

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

No branches or pull requests

2 participants