1. A method, comprising: identifying, by a slave processor, an input population of parent chromosome data structures (block 902 ), wherein each parent chromosome data structure provides a plurality of genes representative of variables in which associated values are permitted to evolve; selecting, by the slave processor, pairs of parent chromosome data structures from the input population of parent chromosome data structures (block 904 ), combining, by the slave processor, genes of each selected pair of parent chromosome data structures according to at least one evolutionary operator to generate a plurality of child chromosome data structures (blocks 906 , 908 ); evaluating, by the slave processor, the plurality of child chromosome data structures according to a plurality of constraint functions to generate a respective plurality of constraint function values for each child chromosome data structure (block 910 ), wherein the constraint functions define constraints on a feasible solution set; determining, by the slave processor, whether any of the plurality of child chromosome data structures are within the feasible solution set based upon the respective plurality of constraint violation function values ( 912 ); wherein the prior steps are repeated for a number of iterations until at least one child chromosome data structure is determined to be within the feasible solution set, wherein if no child chromosome data structure has been identified for a current iteration, then a portion of the plurality of child chromosome data structures are identified as an elite set of chromosome data structures (block 916 ), wherein the elite set of chromosome data structures is received as the input population of parent chromosome data structures during a subsequent iteration.