This article provides a general overview of the field now known as "evolutionary multi-objective optimization," which refers to the use of evolutionary algorithms to solve problems with two or more (often conflicting) objective functions. Using as a framework the history of this discipline, we discuss some of the most representative algorithms that have been developed so far, as well as some of their applications. Also, we discuss some of the methodological issues related to the use of multi-objective evolutionary algorithms, as well as some of the current and future research trends in the area.