1. A method for optimizing a solution set for a problem comprising the sequential steps of: a) generating a first set of solutions comprising a plurality of members; b) creating a second set of solutions using a selection operator to select members from said first set of solutions; c) creating a probabilistic model fitting said second set of solutions, said probabilistic model allowing for multiple variables to be merged together to form a single new variable whereby hierarchically decomposable problems can be modeled; d) using said model to generate a third set of solutions; and, e) replacing at least a portion of said first set of solutions with said third set of solutions to create a new solution set.