The absolute bare minimum interface an optimization algorithm needs to have is an observe method and a suggest method, so that:

  1. An algorithm can observe the results associated with the evaluation of a list of points in the parameter space. Using the history of evaluated attempts, the algorithm can estimate better points to evaluate.
  2. An algorithm can suggest new points in the parameter space to try.

An attribute given to all algorithms is an object defining the parameter search space. It may be useful to the developer, or an algorithm may want to advise it.

Finally, it is suggested to distribute algorithm implementations independently from the core Oríon package. In fact, the core package is able to discover externally installed algorithms implementing Oríon’s interface as plugins!

Developer’s Guide 104: Basic Algorithm

Meet BaseAlgorithm

Basic algorithm’s interface is defined in Algorithm modules. The example we are going to follow is from the nested source repository used for actual functional testing, gradient_descent_algo.