BFO, a trainable derivative-free solver

for mixed integer bound-constrained optimization

The new release BFO 2.0 is available at https://github.com/m01marpor/BFO

BFO is an open-source direct-search derivative-free MATLAB solver for bound-constrained mathematical optimization problems.

Its purpose is to find a local minimizer when applied to problems of the form

where f is a scalar valued function and the variables contained in the n-vector x are subject to bound constraints

where these inequalities hold componentwise and where components of l and/or u may be infinite.

As indicated above, using BFO does not require the provision of derivatives of the function f(x). Like all methods of this type it is most efficient on problems involving a relatively small number of variables (not much above 10).

BFO's remarkable features are

  • its ability to handle a mix of continuous and discrete variables,

  • a novel self-training option, which may significantly improve the performance of the code on the user's class of problems,

  • its capacity to handle multilevel, min-max and equilibrium problems,

  • an extremely versatile and easy-to-use interface.


BFO also provides a number of user-oriented features, such as

  • checkpointing and restart,

  • facilities for specifying variable scaling, thereby improving problem conditioning,

  • tools allowing the user to specify a variety of termination conditions

BFO has been thoroughly tested and is the subject of continued development. It can be downloaded free of charge.