1. A method for partitioning a pattern into optimized sub-patterns, the method comprising: providing a list of features of the pattern; generating a set of candidate partitions using the list of features of the pattern; scoring each candidate partition of the set of candidate partitions by building sub-patterns using the set of candidate partitions, wherein the scoring includes analyzing degeneracy; determining a best-scoring partition among the set of candidate partitions; applying the best-scoring partition to the list of features so as to provide a plurality of sub-lists of features respectively representing a plurality of optimized sub-patterns.