title: Julia - Understanding JuMP Gurobi outputs
body: <p>I am often using Gurobi with JuMP and I noticed that there are still parts of its outputs that I don't understand. Unless it is documented somewhere and the link would be most welcome, could you help understand the following? :)</p>
  <pre><code>Found heuristic solution: objective 5820.0000000
  Presolve removed 33 rows and 11 columns
  Presolve time: 0.00s
  Presolved: 607 rows, 331 columns, 2445 nonzeros
  Variable types: 111 continuous, 220 integer (220 binary)
  
  Root relaxation: objective 1.157500e+03, 64 iterations, 0.00 seconds
  
      Nodes    |    Current Node    |     Objective Bounds      |     Work
   Expl Unexpl |  Obj  Depth IntInf | Incumbent    BestBd   Gap | It/Node Time
  
       0     0 1157.50000    0   25 5820.00000 1157.50000  80.1%     -    0s
  H    0     0                    2535.0000000 1157.50000  54.3%     -    0s
       0     0 1236.00000    0   23 2535.00000 1236.00000  51.2%     -    0s
       0     0 1273.65351    0   41 2535.00000 1273.65351  49.8%     -    0s
       0     0 1274.59375    0   41 2535.00000 1274.59375  49.7%     -    0s
       0     0 1274.69841    0   42 2535.00000 1274.69841  49.7%     -    0s
       0     0 1309.98305    0   42 2535.00000 1309.98305  48.3%     -    0s
       0     0 1310.26027    0   42 2535.00000 1310.26027  48.3%     -    0s
       0     0 1340.01176    0   47 2535.00000 1340.01176  47.1%     -    0s
       0     0 1342.47826    0   49 2535.00000 1342.47826  47.0%     -    0s
       0     0 1342.60000    0   49 2535.00000 1342.60000  47.0%     -    0s
       0     0 1362.32468    0   50 2535.00000 1362.32468  46.3%     -    0s
       0     0 1363.08000    0   49 2535.00000 1363.08000  46.2%     -    0s
       0     0 1363.13077    0   49 2535.00000 1363.13077  46.2%     -    0s
       0     0 1370.79545    0   53 2535.00000 1370.79545  45.9%     -    0s
       0     0 1375.50000    0   52 2535.00000 1375.50000  45.7%     -    0s
       0     0 1375.50000    0   52 2535.00000 1375.50000  45.7%     -    0s
       0     0 1376.70025    0   52 2535.00000 1376.70025  45.7%     -    0s
       0     0 1376.70122    0   53 2535.00000 1376.70122  45.7%     -    0s
       0     0 1376.70122    0   53 2535.00000 1376.70122  45.7%     -    0s
       0     2 1376.98418    0   53 2535.00000 1376.98418  45.7%     -    0s
  *  255   157              14    2457.0000000 1473.00000  40.0%  22.5    0s
  H  407   223                    2397.0000000 1548.00000  35.4%  20.3    0s
  * 1962   758              22    2355.0000000 1772.85714  24.7%  16.8    0s
  *14326  2205              27    2343.0000000 2088.50000  10.9%  15.7    3s
  </code></pre>
  <p>From what I think I already know, in order of apparition:</p>
  <hr />
  <h3>Presolve</h3>
  <ul>
  <li><strong>Found heuristic solution: objective 5820</strong>, Gurobi launched a presolve and found a solution of value 5820</li>
  <li><strong>Presolve removed</strong> 33 redundant or useless variables as well as 11 constraints?</li>
  <li><strong>Presvoled:</strong> sizes of the model presolved</li>
  <li><strong>Types of variables:</strong> some are binary and some are continuous.</li>
  <li><strong>Root relaxation:</strong> LP relaxation has an objective of 1 157.5</li>
  </ul>
  <hr />
  <h3>Nodes</h3>
  <ul>
  <li><strong>Expl</strong> (1): * empty or H, I don't know the difference when there is these symbols but I noticed all rows with a given symbol (H, *, or empty) will have same outputs.</li>
  <li><strong>Expl and Unexpl</strong> number of explored nodes and unexplored nodes in the solving tree.</li>
  </ul>
  <hr />
  <h3>Current Node</h3>
  <ul>
  <li><strong>Obj</strong>: objective of current node being explored?</li>
  <li><strong>Depth</strong>: tree's depth where solving is currently</li>
  <li><strong>IntInf</strong>: I have no idea for this one</li>
  </ul>
  <hr />
  <h3>Objective Bounds</h3>
  <ul>
  <li><strong>Incumbent</strong>: current value of best valid solution found</li>
  <li><strong>BestBd</strong>: Best lower bound currently found</li>
  <li><strong>Gap</strong>: This is probably a gap between current best solution and best bound but I couldn't deduce how it is computed.</li>
  </ul>
  <hr />
  <h3>Work</h3>
  <ul>
  <li><strong>It/Node</strong>: Here we need to find what is an iteration</li>
  <li><strong>Time</strong>: Time spent in solving until then.</li>
  </ul>