An adaptive genetic algorithm for the pattern sequencing problem