1. A method for optimizing a solution set comprising, not necessarily in the sequence listed: generating a solution set; evaluating solutions in said solution set; selecting desirable solutions from the solution set; creating a structural model using said desirable solutions; creating a surrogate fitness model based on said structural model and said desirable solutions; generating a new solution set; wherein said generating a new solution set comprises: analyzing at least one of said structural model and said surrogate fitness model; determining a method for generating a new solution set based at least in part on said analyzing; generating a new solution set based on said determined method.