NP-What? Complexity Types of Optimization Problems Explained