1 Introduction  
2 Branch-and-Bound  
2.1 Branching Variable Selection  
2.2 Node Selection  
2.3 Cutting Plane  
3 Heuristic Algorithms  
3.1 Large Neighborhood Search  
3.2 Feasibility Pump  
3.3 Predict and Pick  
4 Conclusion and Outlook