1. A method for optimizing a solution comprising: a) creating at least one solution; b) presenting said at least one solution to a user; c) receiving input from the user representing subjective fitness of the at least one solution; d) providing a partial ordering of a plurality of solutions based on said received input; e) inducing a complete order of at least the plurality of solutions presented to the user based on said provided partial ordering; f) generating a synthetic surrogate subjective fitness function using said induced complete order; g) creating at least one new solution using said generated synthetic surrogate subjective fitness.