Solving the aircraft engine maintenance scheduling problem using a multi-objective evolutionary algorithm