Optimization problems arise in many application areas such as engineering, transportation planning, and climate modeling. Often, several conflicting objectives must be optimized simultaneously. For example, in airfoil design the goals may be to minimize the drag and maximize the lift coefficient. For these multi-objective problems, there does not exist a single solution that optimizes all objective functions. Rather, a set of trade-off (Pareto-optimal) solutions must be identified.