Let algorithms and computing power do the heavy lifting to find optimal products in terms of utility, share, revenue, or profit. The obvious approach is to examine all possible product combinations (exhaustive search), but this only works for the smallest of problems. Big search space means using faster heuristics such as greedy hill climbing or genetic algorithms. Genetic algorithms also make it possible to do multi-objective searches in large spaces, such as for finding a product line extension that near-maximizes profit while simultaneously near-maximizing share.