Add an abstract class for an optimisation algorithm