1. A method of finding an optimal set within collected data objects, each particular data object having a score and having a list of objects that are incompatible with that particular data object, the method comprising: by a hardware processor: initializing a plurality of sets in a memory, each set having one or more compatible data objects; raise the score of the plurality of sets by repeatedly adding compatible subsets of data objects to the plurality of sets, the compatible subsets created by a plurality of processors by: (a) at each of the plurality of processors, generating a list of subsets of the collected data objects by loading a list of sets from a memory and testing data objects of the subsets for compatibility for each set, and (b) calculating a score for each subset in the generated list, each one of the plurality of processors calculating the score for a particular subset in the generated list in parallel; and selecting a group of subsets having a highest score.