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

Parallel Multi-Start #76

Open
ccoffrin opened this issue Dec 9, 2017 · 5 comments
Open

Parallel Multi-Start #76

ccoffrin opened this issue Dec 9, 2017 · 5 comments

Comments

@ccoffrin
Copy link
Member

ccoffrin commented Dec 9, 2017

It might be more valuable to parrallize multiple starts of the NLP solver, rather than the tree search. Worth exploring.

@Wikunia
Copy link
Member

Wikunia commented Dec 9, 2017

Might be reasonable if the gap to the global optimal seems to be huge, right? Otherwise if the gap is 0 or small enough to the best known solution which turns out to be the case most of the time it doesn't help, right?
If that is the case it should be an option to switch between gap priority and speedup.

@ccoffrin
Copy link
Member Author

ccoffrin commented Dec 9, 2017

If the problem is non-convex then the relaxation is only locally optimal. Even in the gap is 0, there may be another solution out there with a non-zero gap.

That said, in being practical you probably only want to run multi-start when you converge to local infeasibly, and maybe when you get an error.

@ccoffrin
Copy link
Member Author

ccoffrin commented Dec 9, 2017

also when the relaxation is worse than the incumbent you might also want to do it, just to increase your confidence that you should fathom this node.

To cover both of these ideas there are probably two generic solver options, avoid-removing-feasible solutions, avoid-removing-optimal solutions. Which of these you want will depend on the application at hand.

@Wikunia
Copy link
Member

Wikunia commented Dec 9, 2017

Yes I think an option to customize it in any sense is quite reasonable for Juniper. Definitely restarting in infeasible nodes is reasonable and maybe for special cases where you have like 16 cores it might be even reasonable to split it into 8 parallel branch and bound and 8 for restarts as there is nearly no improvement from 8 to 16 cores anyway currently.

@ccoffrin
Copy link
Member Author

Yup! I think how to best make use of multiple cores is a good open question for R&D.

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

2 participants