A method and system for finding a multiple solutions to a problem is
disclosed. The method includes: modeling a problem as an objective
function, generating a multitude of candidate solutions for said
objective function; and determining a set of acceptable and distinct
solutions. The objective function is capable of mapping structures in a
search space. The search space includes a multitude of points. For each
of said candidate solutions at each of said multitude of points, the set
of acceptable and distinct solutions are determined by: calculating a
fitness using the objective function; assigning each fitness to its
candidate solution; transforming the fitness using a penalty function;
determining if the candidate solution is acceptable; determining if the
candidate solution is sufficiently distinct; and adding the candidate
solution to the set of acceptable and distinct solutions if the candidate
solution was determined to be acceptable and distinct.