An algorithm for fast hypervolume-based many-objective optimization