Heuristic search (usually genetic programming) implemented on testtubes instead of on computer hardware. Combinatorial chemistry is a new technique used mainly in rational drug design to search a huge space of candidate molecules to find one with specified activity. Typically, in a search for a drug, some protein needs to be neutralised by binding to (some of) its active sites. This involves getting several active components into an appropriate three dimensional conformation on the drug molecule. However, it is hard to predict the shape of the molecule in advance.

Instead, combinatorial chemistry suggests using a protocol somewhat like the following:

  1. Pick a number of "useful components": small molecules with desired shapes or activity (typically parts of existing drugs), which can be combined in any order along a backbone. The space of all combinations (of some prescribed length) is huge; this is the search space.
  2. Synthesize a number (say 100) of essentially random combinations of these components.
  3. Test each against the target protein, and score it for activity (success in neutralising the protein).
  4. Ditch the lowest scoring combinations (say the bottom 20); replace them by modifications of the highest scoring combinations (changing one or two components is like simulated annealing; taking the start of a sequence of one combination and continuing with another is like genetic programming).
  5. Iterate until a combination with good activity is found.
Note that like the analogous techniques in computer science, you can use combinatorial chemistry to improve an existing molecule, or to find an all-new drug. The results are cheaper than employing an appropriate number of Ph.D.s in pharmacology and molecular biology (although you still need them).