Meta Optimization

The process of designing and/or tuning an automated search, design or optimization algorithm to suit a particular combination of

 search problem,
 representation or algorithmic toolkit, and
 performance measure.
This is a big issue in building and implementing EvolutionaryAlgorithms such as GeneticAlgorithms, GeneticProgramming, EvolutionStrategies?, or EvolutionaryProgramming, and in ConstraintProgramming. Of course, it's also a problem that applies in general to all forms of design....

For instance, in crafting a GeneticAlgorithm to schedule jobs in a manufacturing setting, you would need to

  1. define the class of problems you're trying to optimize, say as "minimizing the MakeTime?s of 5 jobs with particular requirements and durations, given 3 machines they all have to share";
  2. decide on how to represent the prospective solutions and how they would be used to select new ones as search progresses, for instance you might choose to represent schedules in memory as a sort of GanttChart and allow crossover between them;
  3. decide when to quit, for instance you might choose to proceed with search until no further improvements are found in 1000 consecutive tries.

When it turns out that these choices don't really do any better than random guessing, it's time to do some MetaOptimization. -- BillTozier

View edit of March 17, 2010 or FindPage with title or text search