Skip to content
Sandro Sgier edited this page Nov 18, 2022 · 12 revisions

This wiki contains information about cambrian and how to use it. Some key points:

  • Cambrian is a global stochastic black-box optimizer.
  • It is implemented as an adaptive genetic algorithm (not described in detail here, information can be found here).
  • Adaptive in this context means that the meta parameters of the algorithm (e.g. mutation rate, crossover probability, selection pressure) adapt dynamically to the problem and therefore no configuration is required of the user. The adaptation mechanism involves a mix of co-evolution with the individuals and random exploration. The details are not important from the perspective of the user.
  • The user interacts with cambrian via its command line interface. To run an optimization, the following need to be provided:
    • the definition of the parameter space in form of a spec file
    • the implementation of the objective function, in form of a standalone executable
    • command line options (e.g. termination criteria)
  • Once the user has started cambrian, it will repeatedly fork the objective function program, providing new parameters each time
  • The parameters are passed to the objective function program in form of a JSON string as the last command line argument. Its implementation has to interpret this JSON, compute the objective function value and return it on the standard output, also in form of a JSON. It can also reject the parameters by returning an empty map JSON.
  • Once one of the chosen termination criteria is satisfied, cambrian will terminate by writing the best seen parameter instance on the standard output.
  • The user can optionally specify an output directory, where detailed reporting files will be stored for analysis by the user.
  • Since a new process is forked for each objective function evaluation, this application is not suitable for very short running objective functions.

Below are links to wiki pages with more detailed information on various sub-topics: