1. A computer-readable medium having computer-readable instructions stored thereon which when executed in a computer system having at least one processor and at least one user interface including at least one output device and at least one input device, instruct the computer system to perform a method, comprising: a) for each of a plurality of users, choosing in at least one processor a part of a solution set to be presented to said user; b) for each of said plurality of users, causing the part of the solution set chosen for said user to be presented through at least one of the at least one output devices to said user; c) receiving through at least one of the at least one input devices, from at least one of said users, a ranking of the part of the solution set presented to that user; d) aggregating the rankings and generating in at least one processor an updated solution set based on the aggregated rankings; e) determining in at least one processor if an overall stopping criterion has been satisfied; f) if said overall stopping criterion has not been satisfied, repeating steps a) through e) based upon the updated solution set; and g) if said overall stopping criterion has been satisfied, causing at least a portion of the updated solution set to be presented to at least one user through at least one of the at least one output devices.