メインコンテンツへスキップ

Multi seed solving

回答済み

コメント

6件のコメント

  • 正式なコメント
    Simranjit Kaur
    • Gurobi Staff
    This post is more than three years old. Some information may not be up to date. For current information, please check the Gurobi Documentation or Knowledge Base. If you need more help, please create a new post in the community forum. Or why not try our AI Gurobot?.
  • Jaromił Najman
    • Gurobi Staff

    Hi Daniel,

    Unfortunately, solution variability is often unavoidable. To mitigate it to some extent, you could use the concurrent optimizer. Models suffering from solution variability often also have some numerical issues. Maybe using a different scaling and/or improving the numerics might help reduce the variability you experience. You can find general hints for numerics in our Guidelines for Numerical Issues.

    Best regards,
    Jaromił

    0
  • Daniel Onduš
    • Gurobi-versary
    • First Comment
    • First Question

    Thanks, from what I've read it seems like concurrent optimizer always stops once the first one finishes but I don't see a way how the solves that are obviously slower can be stopped before this point to free threads. Let's say I have 16 cores and would run MIP model with 4 solves each on 4 cores. Now if the first one reaches 10% gap within a minute while other three solves are still at 50% I want to stop them and run the first one on all 16 cores or use those free cores for solving another problems, because otherwise the best solve has to be 4 times faster than average to make this an effective option.

    0
  • Jaromił Najman
    • Gurobi Staff

    This option is currently not available. Maybe you could use multiprocessing to run 4 runs in parallel with different seeds and use callbacks to check which one is best after X seconds. Then terminate all of them and re-start the good one.

    Best regards,
    Jaromił

    0
  • Daniel Onduš
    • Gurobi-versary
    • First Comment
    • First Question

    I've done some statistics running the same computation on multiple seeds and it seems like 70% seeds run in reasonable ammount of time and then other 30% might take up to 10 times longer. Is this behaviour expected or it means there is some issue with my model? I ve gone through numerical and robustness guidelines and it seems to be alright. The first picture is 3-multiobjective model and the second one is its 2-multiobjective equivalent, x is seed y is work units to solve.

    0
  • Jaromił Najman
    • Gurobi Staff

    Hi Daniel,

    The observation you made is an effect of Performance Variability. You could isolate a few bad seeds and try to find tuning parameter in order to overcome the poor performance in this case. Of course you then have to check whether these parameters have a negative effect on the good runs. You could try running Gurobi's tuning tool for 1-2 days (or longer depending on how long one solve takes).

    In order to possibly speed up the process, you could try to find tuning parameters for the good runs and check whether these parameters improve the poor performance with bad seeds.

    Best regards,
    Jaromił

    0

投稿コメントは受け付けていません。