Ferret: a parallel multi-objective linkage-learning genetic algorithm
`In the struggle for survival, the fittest win out at the expense of their rivals because they succeed in adapting themselves best to their environment.' - Charles Darwin
Ferret is a multi-objective evolutionary optimizer, which is most similar to a genetic algorithm (GA), but with several innovative differences that make it much more powerful than other GAs. Like a traditional GA, Ferret “evolves” optimal solutions in analogy to biological evolution, via crossover, mutation, and natural selection. However, this is where the similarity ends.
- Multi-objective analysis: Ferret is Qubist's most powerful multi-objective optimizer and is designed to map trade-off surfaces efficiently and thoroughly. Regions of parameter space can also be mapped for single-objective problems when a “fuzzy tolerance” is defined on the fitness function.
- Linkage-learning: Ferret's evolutionary operators are built on top of an advanced machine-learning core that studies the mathematical structure of each problem, looking for opportunities to break large, difficult problems with many parameters into smaller sub-problems that can be more easily solved by the genetic algorithm. Ferret's “linkage-learning” algorithm is essentially the “divide and conquer” strategy used by humans to break large problems into more manageable sub-problems. This ability is at the heart of human intelligence and innovation, and sets Ferret apart from other optimizers. Linkage-learning occurs automatically as Ferret experiments with your problem – a linkage map is displayed by the interface, but no user interaction is required.
- Parallel computing: Ferret contains a built-in parallel computing system that can parallelize your run with just a few mouse clicks. Qubist does the parallelization for you, with no modifications to your code, and requiring minimal knowledge about parallel computing. This feature does not require the MATLAB® parallel computing toolbox or any other third party parallel computing solution.
- Strategy auto-adaptation: Ferret models its own performance as it runs, and automatically adjusts several of it's most important control parameters to optimize its performance on your problem.
- Critical parameter detection: It is often the case that some parameters of a problem are much more important than others. This is especially true when using Ferret to model data, since some parameters might control features of the model that are not significant, compared to the data's noise. Ferret observes the significance of each parameter and looks for opportunities to effectively decrease the size of the problem, which is possible when some parameters are much less important than others. When this occurs, it both improves the efficiency of the run and gives you vital information about what parameters are actually important to your model.
- Automatic zooming: Ferret can be configured to automatically zoom in on the global solution as the population converges toward the optimal set. This allows the code to find the optimal set efficiently and to high accuracy.
- Advanced Lethal Suppression (ALS): “Lethals” are poor quality solutions that are sometimes obtained from the crossover of two good parent solutions in a GA. Lethals degrade the performance of a GA, since they represent poor quality, wasted solutions. When enabled, Ferret's ALS algorithm allows the code to learn what parts of the parameter space are likely to contain lethals, and to avoid these regions during crossovers.
- Analysis and integration of other Qubist optimizers: Ferret can analyze the solution set for a run at any time, and transparently call one of three different polishers to fine-tune the solution.
- Suspending runs and crash-proofing: Nobody likes to lose results when their computer crashes, especially on sophisticated long-duration calculations. Ferret writes “History” files every few generations to minimize your loss should an unforeseen error or crash occur. This ability also allows you to suspend runs and resume them at any time – even on a different computer – without losing information.
- Integrated visualization: Ferret contains a sophisticated visualization interface that allows you to display your optimal solution set using several different 2-D and 3-D plotting options, show multiple projections, and “paint” interesting solutions for future analysis. The visualization interface also generates publication-quality figures using a “snapshot” feature available in one of the interface menus.
Ferret: a high-performance optimizer for your toughest problems: This set of features, along with several others, makes Ferret unparalleled in the industry. Ferret is a powerful optimizer, and a premier knowledge discovery tool that helps you to make sense of your results, whether your applications are in pure science, engineering, or another discipline.