Skip to main content

Different MIP start outputs

Ongoing

Comments

3 comments

  • Sonja Mars
    Gurobi Staff Gurobi Staff

    What do you mean by "sometimes you just see"? You are doing the exact same thing and sometimes in the Gurobi log the extra line is printed and sometimes not?

    Gurobi by default will try to use as much as possible from a previous run of the model for the current run. It will even store the tree. However, there are many changes to a model that make the tree invalid, so this hot start is not always possible. However, trying to use a previous solution for a new run and a slightly modified model is always possible. So Gurobi tries this already and it will report if it is feasible or not. So the line "MIP start produced solution with objective" comes from one of these tries of Gurobi to use a solution from a previous run.

    • There seems to be an implicit Start-vector for all variables after the first optimize() but I can delete it with model.reset(), is this correct?
      As I said, Gurobi tries to use as much as possible, not only the best solution. If you call reset() all the information will be discarded and also the Start vector will be gone. If you only want to discard the solution, you can set the values of the start attribute to a special undefined value. Please see here for more details.
    • Is the parameter StartNodeLimit considered for full (non-partial) MIP Starts?
      No, this is only used for completing a partial MIP start.

    Best,

    Sonja

     

    0
  • Hans Kirchner
    Gurobi-versary
    Conversationalist
    First Question

    > What do you mean by "sometimes you just see"?

     

    I had a programming mistake that probably led to sometimes making a full and sometimes a partial MIP start.

     

    Thanks for the other answers. I still have some remaining questions:

    - So "MIP start produced solution with objective 3736.6 (0.12s)" is only printed by Gurobi when it found an initial solution from a partial MIP start?

    - After the first optimize(), Gurobi has an internal MIP start that is different from the one you can set via variable.Start. Is this correct?

     

    0
  • Jun Ling
    Gurobi-versary
    First Comment
    First Question

    hello!

    I use the warm start feature of Gurobi when solving MILP problems.  I don't really understand what the output of the solution means. The following is the log of my optimization problem:

    Optimize a model with 193613 rows, 219648 columns and 1727393 nonzeros
    Model fingerprint: 0xb9d828e5
    Variable types: 137280 continuous, 82368 integer (82368 binary)
    Coefficient statistics:
      Matrix range     [1e-01, 1e+03]
      Objective range  [4e+00, 1e+05]
      Bounds range     [3e-02, 4e+02]
      RHS range        [3e-01, 5e+04]

    User MIP start did not produce a new incumbent solution

    Presolve removed 112027 rows and 113508 columns
    Presolve time: 3.82s
    Presolved: 81586 rows, 106140 columns, 488233 nonzeros
    Variable types: 98753 continuous, 7387 integer (7387 binary)
    Deterministic concurrent LP optimizer: primal and dual simplex
    Showing first log only...


    Root simplex log...

    Iteration    Objective       Primal Inf.    Dual Inf.      Time
           0    2.0250830e+07   3.928851e+04   2.536149e+10      6s
       14855    5.2477739e+07   0.000000e+00   1.128216e+06      6s
    Concurrent spin time: 0.01s

    Solved with dual simplex

    Root relaxation: objective 5.042488e+07, 53296 iterations, 3.65 seconds (3.38 work units)
    Another try with MIP start
     
    The following is my problem.
    1. What does "User MIP start did not produce a new incumbent solution” mean?
    2. What does "Another try with MIP start" mean? 
    3. Why does "Another try with MIP start" appear after "user MIP startup does not produce new existing solution"? How can I understand that the initial point I gave did not produce a feasible solution, but the solution found another good feasible solution based on the information I gave?

     

    Thanks in advance!
    1

Please sign in to leave a comment.