Ways to Solve NP–Hard Problems