Computational-optimization methods can broadly be classified into two groups: classical methods, which require and exploit specific functional forms of objective function and constraints, and heuristics. Those latter methods impose few, if any, restrictions on models, at the price of being more...